<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Francois Aichelbaum</title>
  <link href="https://francois.aichelbaum.com/atom.xml" rel="self" />
  <link href="https://francois.aichelbaum.com/"/>
  <updated>2026-06-09T10:19:38+02:00</updated>
  <id>https://francois.aichelbaum.com/</id>
  <author>
    <n>Francois Aichelbaum</n>
    <email>francois@aichelbaum.com</email>
  </author>
  
    <entry>
      <title>The Story You Were Sold About Your System</title>
      <link href="https://francois.aichelbaum.com/2026/06/09/the-story-you-were-sold-about-your-system" />
      <updated>2026-06-09T00:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/06/09/the-story-you-were-sold-about-your-system</id>
      <content type="html">&lt;p&gt;An information system never lies to its CEO. It is narrated to its CEO. Every audit, every dashboard, every internal report is a deposition, not a statement of fact. We apply the unreliable narrator grid to journalism, to courtroom testimony, to memoir, without any trouble at all. We refuse to apply it to the technical report we just commissioned, because we believe the technical report is somehow different. It is not.&lt;/p&gt;

&lt;h2 id=&quot;reports-do-not-lie-they-are-narrated&quot;&gt;Reports do not lie. They are narrated.&lt;/h2&gt;

&lt;p&gt;When a CEO opens an IT audit, the reading posture is almost always the same. The document is treated as a state of the system, not as the deposition of the person who wrote it. The figures are scanned. The risk matrix is glanced at. The conclusion is internalized. And the entire reading is done in a frame that assumes the author had no stake, no angle, no positioning interest.&lt;/p&gt;

&lt;p&gt;That frame is wrong. The author always has a stake. Not because auditors are dishonest. Because auditors are human, embedded in a market, paid by someone, scored by someone, recruited again by someone. Every audit is written knowing who will read it and who will commission the next one.&lt;/p&gt;

&lt;p&gt;This is not corruption. It is positioning. The same word, the same finding, the same recommendation can be phrased twenty ways. Each phrasing is a choice. Each choice carries a small directional vector. Twenty small vectors aligned in the same direction become a story. The CEO reads the story and calls it a state of the system.&lt;/p&gt;

&lt;h2 id=&quot;wayne-booth-gave-us-the-word-in-1961-we-never-applied-it-to-the-audit-report&quot;&gt;Wayne Booth gave us the word in 1961. We never applied it to the audit report.&lt;/h2&gt;

&lt;p&gt;The literary critic Wayne C. Booth defined the unreliable narrator in &lt;em&gt;The Rhetoric of Fiction&lt;/em&gt; in 1961. A narrator, Booth wrote, is reliable when he speaks for or acts in accordance with the norms of the work, and unreliable when he does not. The definition was technical, careful, and meant for fiction. It traveled. It traveled to cinema, to non-fiction memoir, to legal testimony analysis, to oral history.&lt;/p&gt;

&lt;p&gt;It never traveled to the corporate technical artifact.&lt;/p&gt;

&lt;p&gt;Read a critical review of a presidential biography, and you will see the unreliable narrator grid applied paragraph by paragraph. Watch a film studies seminar discuss Bryan Singer and Christopher McQuarrie’s 1995 film &lt;em&gt;The Usual Suspects&lt;/em&gt;, and you will see the same grid applied to Verbal Kint’s voiceover from minute one. Open a courtroom transcript, and you will see attorneys train juries to look for the gap between what the witness says and what the witness has reason to say.&lt;/p&gt;

&lt;p&gt;Now open an IT audit. Open the quarterly system review. Open the slide deck the integrator presented at the last steering committee. Where is the unreliable narrator grid? Nobody applies it. Not the CEO. Not the CFO. Not the board. The audit is treated as a state, and the state is acted upon.&lt;/p&gt;

&lt;p&gt;This asymmetry is not a small thing. It is the central blind spot of executive decision-making on technical matters. A CEO who would never accept a single-source story from a journalist, and who would interrogate any witness in a deal negotiation for hidden interest, accepts the audit report as if it had no narrator at all.&lt;/p&gt;

&lt;h2 id=&quot;why-technical-reports-escape-the-unreliable-narrator-grid&quot;&gt;Why technical reports escape the unreliable narrator grid&lt;/h2&gt;

&lt;p&gt;There are three reasons the grid does not get applied, and all three are worth naming.&lt;/p&gt;

&lt;p&gt;The first reason is that technical reports use the visual codes of objectivity. Numbers. Tables. Maturity matrices on a five-point scale. The visual codes mimic the look of measurement, and measurement is culturally coded as neutral. The CEO who would smell positioning in a paragraph of prose loses the reflex when the same positioning is hidden behind a green-yellow-red column.&lt;/p&gt;

&lt;p&gt;The second reason is that the CEO is, by self-assessment, not technical. The lack of subject matter expertise creates a reading posture that is structurally deferential. The audit author is the expert. The expert is treated as the source. The narrator-as-source is exactly what Booth told us, in 1961, to never assume in any narrated artifact.&lt;/p&gt;

&lt;p&gt;The third reason is more subtle. It is that the alternative is exhausting. To read an audit report as a deposition is to commit to the work of reading between the lines. It is to ask who paid for the work, who commissioned the framing, who chose the questions, who decided which findings would be in the executive summary and which would be in appendix C. Most executive readers do not have the time, the inclination, or the protected attention to do that. They want a state. They are given a story.&lt;/p&gt;

&lt;h2 id=&quot;the-luxury-group-that-did-not-know-which-side-to-grab&quot;&gt;The luxury group that did not know which side to grab&lt;/h2&gt;

&lt;p&gt;I spent some time, a few years ago, inside a global luxury group trying to harmonize a single technical standard across its subsidiaries. The standard was internal. It was supposed to be the same in Paris, in Milan, in Hong Kong, in New York. It was not.&lt;/p&gt;

&lt;p&gt;Each subsidiary told me, over several months, a coherent version of how their implementation of the standard worked, why it deviated from the others, and why their deviation was the legitimate one. The CTO of one subsidiary explained that historical sourcing constraints made his version the original. The CTO of another explained that volume scale forced his version to be the reference. A third explained that regulatory pressure in his geography made his deviation a compliance requirement, not a deviation.&lt;/p&gt;

&lt;p&gt;Four versions. Four internal coherences. None describing the same thing.&lt;/p&gt;

&lt;p&gt;For months, the central architecture team tried to broker consensus. The brokering followed the natural pattern. Workshops. Comparative documents. Side-by-side tables. Joint sessions. The pattern produced something predictable. Each subsidiary, when asked to describe the standard, doubled down on its own version, because each subsidiary had a deposition to defend.&lt;/p&gt;

&lt;p&gt;What ended the deadlock was not consensus. It was not a vote. It was not a synthesis.&lt;/p&gt;

&lt;p&gt;It was a formal mandate.&lt;/p&gt;

&lt;p&gt;A central architecture committee, convened with formal sponsorship from the group’s executive committee, ruled on the standard. Not by aggregating the four versions. By stating, with authority and on the record, what the standard would be from a defined date forward. The committee did not ask the subsidiaries which version they preferred. The committee stated which version would hold.&lt;/p&gt;

&lt;p&gt;The result was immediate. The subsidiaries did not love it. Two of them filed structured objections. But the four narratives collapsed at the moment the standard became a mandate. The story each subsidiary had been telling itself, with full internal coherence, lost its narrative authority because a different authority had been formally constituted.&lt;/p&gt;

&lt;p&gt;This is the deep mechanism. Narrators hold their narrative as long as nobody else holds anything. A formal mandate, properly sponsored and properly documented, takes the narration away from the narrators. The standard stops being told. It becomes stated.&lt;/p&gt;

&lt;p&gt;The CEO who was watching this from a distance learned something he had not learned in twenty years of running the group. The fight was not between four technical positions. The fight was over who held the right to narrate the standard. The committee did not win on technical grounds. It won by becoming the legitimate narrator.&lt;/p&gt;

&lt;h2 id=&quot;the-detail-that-does-not-fit&quot;&gt;The detail that does not fit&lt;/h2&gt;

&lt;p&gt;In Bryan Singer’s film, Detective Dean Kujan listens to Verbal Kint’s story for the entire runtime. The story is internally coherent. The witnesses he can check check out. The narrative does not snag. Kujan validates, in his own mind, almost every beat of it.&lt;/p&gt;

&lt;p&gt;What breaks the story is not a contradiction in the story. It is a detail in the room.&lt;/p&gt;

&lt;p&gt;A coffee cup falls. The detective looks down. He looks at the bulletin board behind his chair, sees the names of cities and people that match too perfectly the names Verbal Kint just produced. The detail that was always in the room, that Kujan had been looking at and not seeing, suddenly becomes the only thing that matters.&lt;/p&gt;

&lt;p&gt;The unreliable narrator does not get caught by interrogating the narration. He gets caught by stopping the interrogation and looking at what was always already in the room.&lt;/p&gt;

&lt;p&gt;This is the operational lesson for a CEO reading a technical report. The most useful work is not to demand more reports, more audits, more sources, more triangulation. Triangulation gives you three coherent stories. The most useful work is to slow down at the detail that does not fit, the figure that does not align, the silence in the report on a subject that should obviously be there.&lt;/p&gt;

&lt;p&gt;The technical artifact almost always contains the detail that does not fit. It is almost never in the executive summary. It is almost always in a footnote, in an appendix, in a sentence that begins with “we did not have access to” or “this dimension was out of scope”. The CEO who learns to read those sentences first learns more in fifteen minutes than the executive summary can give in two hours.&lt;/p&gt;

&lt;h2 id=&quot;what-changes-when-a-ceo-becomes-kujan&quot;&gt;What changes when a CEO becomes Kujan&lt;/h2&gt;

&lt;p&gt;The transformation I am describing is not technical. It is a reading posture.&lt;/p&gt;

&lt;p&gt;A CEO who reads a technical report as a state of the system will, over years, accumulate a series of decisions taken inside narratives constructed by people whose interests were never on the table. The decisions will look defensible. They will be auditable. They will be presentable to a board. They will also, in aggregate, slowly diverge from any state of the system that exists outside the narration.&lt;/p&gt;

&lt;p&gt;A CEO who reads a technical report as a deposition stops doing that. Not because the CEO becomes paranoid. Because the CEO becomes a reader of the kind Booth described in 1961. A reader who assumes that every narrator has a position, and who treats the narration as a piece of evidence about the narrator as much as about the subject.&lt;/p&gt;

&lt;p&gt;This posture does not require technical expertise. It requires a frame. The same frame the CEO already uses on memoirs, on press releases, on courtroom testimony, on competitive intelligence about other companies. The same frame nobody currently applies to the artifacts produced inside the CEO’s own organization.&lt;/p&gt;

&lt;p&gt;Applying the frame inside the organization is what changes the decision quality. Not more audits. Not more dashboards. Not more cross-checking. A different kind of reading.&lt;/p&gt;

&lt;p&gt;The moment a CEO becomes Kujan, the room changes. The narrators sense it. The reports start to be written differently because the writers know they are being read as narrators, not as instruments. The dashboards become more honest, because the green-yellow-red is no longer accepted as a measurement and is instead questioned as a framing choice.&lt;/p&gt;

&lt;p&gt;This is the work. Not commissioning more. Reading what already exists with the grid that exists, and that we already use on every other narrated artifact we encounter.&lt;/p&gt;

&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Wayne C. Booth, &lt;em&gt;The Rhetoric of Fiction&lt;/em&gt;, 1961 (2nd ed. 1983). University of Chicago Press. https://press.uchicago.edu/ucp/books/book/chicago/R/bo5965941.html&lt;/li&gt;
  &lt;li&gt;Wayne C. Booth, &lt;em&gt;The Rhetoric of Fiction&lt;/em&gt;, 1961, digital archive (full text, see definition of reliable/unreliable narrator pp. 158-159). https://archive.org/details/rhetoricoffictio00boot&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Unreliable narrator&lt;/em&gt;, encyclopedic article tracing the concept from Booth to its extension in film and television, 2026. https://en.wikipedia.org/wiki/Unreliable_narrator&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Confirmation bias&lt;/em&gt;, encyclopedic article on the cognitive bias of selectively interpreting evidence consistent with prior expectations, 2026. https://en.wikipedia.org/wiki/Confirmation_bias&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Authority bias&lt;/em&gt;, encyclopedic article on the tendency to attribute greater accuracy to authority figures, with reference to Milgram 1963, 2026. https://en.wikipedia.org/wiki/Authority_bias&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;The Usual Suspects&lt;/em&gt;, encyclopedic article on the 1995 film directed by Bryan Singer, screenplay by Christopher McQuarrie, 2026. https://en.wikipedia.org/wiki/The_Usual_Suspects&lt;/li&gt;
&lt;/ul&gt;
</content>
    </entry>
  
    <entry>
      <title>When Organizations Believe</title>
      <link href="https://francois.aichelbaum.com/2026/06/02/when-organizations-believe" />
      <updated>2026-06-02T00:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/06/02/when-organizations-believe</id>
      <content type="html">&lt;p&gt;Some belief systems are not refuted by evidence. They feed on it. Every objection becomes a confirmation, every dissenter becomes a traitor, every external observation becomes part of the conspiracy. The non-technical CEO who cannot recognize the closed system inside his own organization will discover, too late, that his technology strategy stopped being a hypothesis years ago and turned into a doctrine that nobody can challenge.&lt;/p&gt;

&lt;h2 id=&quot;tartaria-is-a-mud-flood-that-never-happened&quot;&gt;Tartaria is a mud flood that never happened&lt;/h2&gt;

&lt;p&gt;Tartaria is the name of an empire that never existed and that, according to its believers, was deliberately erased from the historical record.&lt;/p&gt;

&lt;p&gt;The story goes like this. A vast, technologically advanced civilization once spanned Eurasia, with cities built in a style now visible only in pre-1900 photographs of European and Russian capitals. Then, sometime in the nineteenth century, a global mud flood buried it. Streets were paved over its lower floors. Buildings that were too magnificent to credibly belong to the modern world are attributed to this lost empire. Historians, the believers say, are complicit in the erasure. Architects who built the great train stations and opera houses of the 1800s could not possibly have built them with the tools of their time. So they did not.&lt;/p&gt;

&lt;p&gt;The theory works because it is generative. Every old photograph that shows a building with windows partially below street level becomes evidence. Every grand exposition site that was demolished after a single fair becomes a coverup. Every nineteenth-century structure that survived a war becomes a relic that was already there. The believer is not asked to find new evidence. He is asked to reinterpret existing evidence under a new key. The supply is unlimited.&lt;/p&gt;

&lt;p&gt;The mechanism that interests me is not the content. It is the impossibility of refutation.&lt;/p&gt;

&lt;p&gt;Show a believer the construction documents of an 1893 train station, archived, dated, signed by the architect. He will tell you the documents were fabricated. Show him the bricks, the foundations, the contracts. He will tell you the foundations are older than the documents and were repurposed. Show him a continuous photographic record from the period. He will tell you the photographs are part of the cover. There is no fact that the system cannot absorb. There is no datum that does not strengthen it.&lt;/p&gt;

&lt;p&gt;This is not a problem of intelligence. Many of the people who believe in Tartaria are functional, articulate, and curious. The problem is structural. The belief is held in a form that no external evidence can ever penetrate. It is a closed system.&lt;/p&gt;

&lt;h2 id=&quot;anatoly-fomenko-built-a-chronology-in-which-most-of-history-was-invented&quot;&gt;Anatoly Fomenko built a chronology in which most of history was invented&lt;/h2&gt;

&lt;p&gt;The intellectual scaffolding for Tartaria did not come from TikTok. It came from a Soviet mathematician.&lt;/p&gt;

&lt;p&gt;Anatoly Fomenko, a topologist at Moscow State University, began publishing in the late 1970s a theory he called the New Chronology. He claimed that most of recorded history before the seventeenth century was either invented, duplicated, or dated incorrectly. Ancient Greece, the Roman Empire, biblical history, the medieval European chronologies, all collapsed into a much shorter period and were largely the work of later forgers. Jesus Christ, in his framework, lived in the twelfth century. The Mongol invasions were a misnaming of Russian Christianization. And so on.&lt;/p&gt;

&lt;p&gt;Fomenko’s work was rejected by every recognized historian, archaeologist, linguist, and astronomer who examined it. The dating he proposed contradicts dendrochronology, ice cores, sediment records, independent astronomical observations, coin metallurgy, and the textual cross-references of dozens of unrelated traditions. None of this mattered to the theory. Fomenko’s framework had been designed, mathematically, in a way that absorbed contradiction by attributing it to the very forgeries it was trying to expose.&lt;/p&gt;

&lt;p&gt;In the 1990s, the writer Nikolai Levashov took elements of Fomenko’s chronology and rewove them with Russian nationalist mysticism. The result was the embryonic version of what would later be called Tartaria. Internet forums in the 2000s, especially on Russian-language sites, kept the thread alive. Reddit picked it up around 2015 to 2016, attracted by the photographs of half-buried buildings. TikTok, after 2020, made it a meme. By the time it began appearing in mainstream feeds, the theory had a complete vocabulary, a stable iconography, and a clear list of acceptable historical periods.&lt;/p&gt;

&lt;p&gt;What made Tartaria viable as a contemporary internet phenomenon was not its truth value. It was its productivity. The framework can be applied to any old building anywhere in the world. Each application produces engagement. Each new applier feels he has discovered something. The believer is not consuming a story. He is participating in the rewriting of history. It is fundamentally democratic. That, too, is part of its appeal.&lt;/p&gt;

&lt;h2 id=&quot;a-closed-system-rewrites-its-own-history-not-the-worlds&quot;&gt;A closed system rewrites its own history, not the world’s&lt;/h2&gt;

&lt;p&gt;Here is the part of Tartaria that should interest a CEO.&lt;/p&gt;

&lt;p&gt;A flat-earther refuses to revise his model of the world. A Tartaria believer refuses to revise his model of the past. The difference matters. Flat-earthism takes a stable, observable claim about the geometry of the Earth and tries to override it. Tartaria takes the much softer terrain of historical interpretation and rewrites it in a way that locks itself in.&lt;/p&gt;

&lt;p&gt;Most organizations are closer to the second case than to the first.&lt;/p&gt;

&lt;p&gt;A company does not usually develop a closed system about its product or its market. The market answers back. Sales numbers move. Customers churn. Competitors win deals. The terrain is too noisy to sustain a fully closed doctrine.&lt;/p&gt;

&lt;p&gt;But a company can develop a closed system about its own history. About why the stack was chosen. About why the architecture was designed the way it was. About what the previous CTO meant when he signed the original ADRs. About what the former auditor recommended. About the reasoning behind the SAP migration in 2017. Internal history is much softer than market reality. It can be rewritten without anyone outside noticing. And if the leadership team has been there long enough, the rewriting will be done in the leadership team’s favor.&lt;/p&gt;

&lt;p&gt;The pattern looks like this. A choice was made years ago. It was defensible at the time. It became a doctrine over time. Newcomers who question it are told, “you weren’t here, you don’t understand the context.” Outsiders who question it are told, “you don’t know the history of this company.” Departing employees who questioned it are remembered, after the fact, as having had attitude problems. The choice itself is never re-examined on its merits. It has been moved, quietly, from the category of hypothesis to the category of identity.&lt;/p&gt;

&lt;p&gt;You can audit this. You walk into the room and ask a simple question. “Under what conditions would we conclude that this choice was wrong?” In a system that is still falsifiable, somebody will answer. In a closed system, the question itself will be received as an attack.&lt;/p&gt;

&lt;h2 id=&quot;karl-popper-drew-the-line-in-1963-and-most-boards-do-not-know-it&quot;&gt;Karl Popper drew the line in 1963 and most boards do not know it&lt;/h2&gt;

&lt;p&gt;In &lt;em&gt;Conjectures and Refutations&lt;/em&gt;, published in 1963, Karl Popper proposed a criterion for distinguishing scientific theories from non-scientific ones. The criterion is not whether the theory is true. The criterion is whether the theory could, in principle, be shown to be false.&lt;/p&gt;

&lt;p&gt;A scientific theory is one that takes risks. It says, explicitly, the world should look like this, and if instead it looks like that, then I am wrong. A non-scientific theory, in Popper’s view, is one that has been constructed in such a way that no possible observation could contradict it. Such a theory is not false. Worse than false, it has placed itself outside the conditions of being either true or false. It is unfalsifiable.&lt;/p&gt;

&lt;p&gt;This criterion is rarely taught in business schools. It should be. Most strategic discussions in the executive committee of a non-technical CEO are conducted, implicitly, in the unfalsifiable mode. We have a great culture. Our brand is strong. Our infrastructure is modern. Our DSI knows what he is doing. These are not hypotheses. They are not designed to be tested. They are designed to be expressed.&lt;/p&gt;

&lt;p&gt;The role of an external advisor, in the Popperian sense, is not to assert a competing truth. The competing truth would be just another doctrine. The role is to reintroduce the conditions of refutation. To take statements that have been held in the unfalsifiable mode and rewrite them in a form that could, in principle, be disconfirmed. “Our infrastructure is modern” becomes “if we ran a load test of this specification on this date, the system would respond within this latency.” The statement is now risky. It can be wrong. It is back inside the domain of inquiry.&lt;/p&gt;

&lt;p&gt;Most CEOs do not understand that the value of an audit is not in the answer. The value is in restoring the question. The competent external never sells truth. He sells the conditions under which truth can again be produced internally.&lt;/p&gt;

&lt;h2 id=&quot;organizations-ostracize-the-messenger-before-reading-the-message&quot;&gt;Organizations ostracize the messenger before reading the message&lt;/h2&gt;

&lt;p&gt;There is a second mechanism that closed systems share with closed organizations. The treatment of dissidents.&lt;/p&gt;

&lt;p&gt;In the sociology of organizations, a long tradition has examined how groups protect their doctrine not by refuting the dissenter, but by neutralizing him socially. The mechanism is well documented. It does not require malice. It requires only that the cost of engaging with the dissenter’s content exceed the cost of disqualifying his standing. When that threshold is crossed, the group reflexively redirects energy from the message to the messenger.&lt;/p&gt;

&lt;p&gt;You can observe it in the executive committee. A new hire raises a concern about the data architecture. The committee does not engage with the concern. The committee asks who he is, where he comes from, why he is raising it now, who he has spoken to. The concern itself becomes secondary. By the time the conversation ends, the participant remembers the new hire’s tone, not the substance of what he said. The concern has not been refuted. It has been displaced.&lt;/p&gt;

&lt;p&gt;This is exactly what happens to former believers when they leave a closed belief system. Ex-flat-earthers are described as having been bought, as having lost their nerve, as having succumbed to social pressure. Ex-Tartaria adherents are said to have failed to keep digging. The community does not engage with the substance of their departure. It rewrites them as renegades whose exit confirms the doctrine.&lt;/p&gt;

&lt;p&gt;A CEO who wants to know whether his executive committee has become a closed system should look at how it treats its former dissenters. Not its current ones, who can still be persuaded to come around. Its former ones, who have left, been pushed out, or now work for competitors. If the leadership team describes them in moral terms rather than analytic terms, the system has closed.&lt;/p&gt;

&lt;h2 id=&quot;the-ceos-quiet-duty-is-to-keep-the-doctrine-falsifiable&quot;&gt;The CEO’s quiet duty is to keep the doctrine falsifiable&lt;/h2&gt;

&lt;p&gt;A CEO does not have to dismantle his stack. He does not have to fire his DSI. He does not have to redo the SAP migration.&lt;/p&gt;

&lt;p&gt;He has to keep his organization in the falsifiable mode.&lt;/p&gt;

&lt;p&gt;This means tolerating, sometimes provoking, the periodic confrontation of the internal doctrine with external observation. It means having a clear answer to the question, “under what conditions would I conclude that our current technical strategy is wrong?” If the answer is “I would not, because the strategy is right,” the system is closed. If the answer is “the strategy would be wrong if we observed X, Y, or Z,” the system is still open. The difference is not trivial. It is the entire game.&lt;/p&gt;

&lt;p&gt;A non-technical CEO is at higher risk than a technical one for one specific reason. His authority on technical choices comes from his trust in the people who hold them. Once those people have constructed a doctrine, he has no native instrument for cracking it. The doctrine sits inside the very team he has authorized to defend it. The system closes not because he wants it to, but because he has nothing left to push against it with.&lt;/p&gt;

&lt;p&gt;The external mandate exists precisely to provide that instrument. Not a competing truth. A discipline. The discipline is to bring the doctrine back into the domain of inquiry.&lt;/p&gt;

&lt;h2 id=&quot;three-tests-for-a-stack-that-may-have-stopped-being-a-hypothesis&quot;&gt;Three tests for a stack that may have stopped being a hypothesis&lt;/h2&gt;

&lt;p&gt;You can run these tests yourself before bringing anyone in.&lt;/p&gt;

&lt;p&gt;Pick the three statements your leadership team makes most often about the technical stack. Write them down. Now ask, for each statement, under what observable conditions you would conclude that the statement is wrong. If you cannot answer for at least two of the three, the stack has stopped being a hypothesis.&lt;/p&gt;

&lt;p&gt;Pick the last three people who left your tech organization in the past eighteen months. Ask three of their colleagues to describe why they left. If the descriptions converge on character (he was difficult, she could not adapt, he was not aligned), and not on substance (he disagreed about X, she pushed against Y, he could not get traction on Z), the system has started to disqualify its messengers before reading their messages.&lt;/p&gt;

&lt;p&gt;Pick the last technical decision your committee made unanimously without external input. Ask yourself what would have had to be true, six months earlier, for the committee to have made the opposite decision. If nothing would have changed the outcome, the decision was professed, not chosen.&lt;/p&gt;

&lt;p&gt;Three signals do not prove a closed system. They suggest one. The work of keeping the doctrine falsifiable, year after year, is the quiet, unglamorous discipline of a CEO who does not want to wake up one day inside a Tartaria of his own making.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>What Privateers Knew About Tech Contracts</title>
      <link href="https://francois.aichelbaum.com/2026/05/26/what-privateers-knew-about-tech-contracts" />
      <updated>2026-05-26T08:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/05/26/what-privateers-knew-about-tech-contracts</id>
      <content type="html">&lt;p&gt;On October 7th, 1800, in the Bay of Bengal, two ships met in conditions that should have produced a quick result.&lt;/p&gt;

&lt;p&gt;The first was the Kent, an East Indiaman owned by the British East India Company. Forty guns. Four hundred and thirty-seven men. Twelve hundred tons of cargo and crew, returning slowly under sail along a known trade route.&lt;/p&gt;

&lt;p&gt;The second was the Confiance, a French privateer corvette under the command of a twenty-seven-year-old captain from Saint-Malo named Robert Surcouf. Eighteen guns. One hundred and fifty men.&lt;/p&gt;

&lt;p&gt;By every reasonable calculation, the Kent should have won this encounter. It had nearly three times the men, more than twice the guns, and the structural advantage of a heavier hull built for global commerce.&lt;/p&gt;

&lt;p&gt;It did not win. Surcouf boarded the Kent, took it, and brought the prize back to the French Île de France, today’s Mauritius, in November of that year. The British Admiralty subsequently put a price on his head.&lt;/p&gt;

&lt;p&gt;The reason this attack was a celebrated military exploit and not a piracy charge punishable by hanging is the same reason most modern tech contracts go quietly wrong. It comes down to a piece of paper, dated and signed, with five specific elements on it.&lt;/p&gt;

&lt;p&gt;The piece of paper was called a letter of marque. The five elements are what your prestataire’s contract is probably missing.&lt;/p&gt;

&lt;h2 id=&quot;what-a-letter-of-marque-actually-was&quot;&gt;What a Letter of Marque Actually Was&lt;/h2&gt;

&lt;p&gt;Letters of marque were not, despite the romantic image, blank licenses to attack enemy ships. They were precise, bounded, and accountable instruments of state warfare conducted through private operators.&lt;/p&gt;

&lt;p&gt;A letter of marque had five constitutive elements, and a letter that lacked any of them was either invalid or an instrument of piracy under another name.&lt;/p&gt;

&lt;p&gt;The first element was a defined geographical scope. The Bay of Bengal, yes. The territorial waters of a neutral nation, no. A privateer who took prizes outside the geographical scope of his letter could be, and frequently was, prosecuted by his own crown for piracy. The geographical bound was not decorative. It was the substantive limit of legitimate action.&lt;/p&gt;

&lt;p&gt;The second was a defined time horizon. Six months, a year, two years. Not indefinite. The mandate was an operation, not a position. When the letter expired, the privateer either returned to port for a new commission or stopped operating entirely. Continuing to take prizes after expiration was, again, piracy.&lt;/p&gt;

&lt;p&gt;The third was a defined target. Which flags were lawful prey. Which were not. Neutrals, allies, and certain protected categories of merchant traffic were excluded. The list was explicit, not implicit. A privateer who attacked an unauthorized target was operating outside the letter, regardless of how rich the prize was.&lt;/p&gt;

&lt;p&gt;The fourth was the share. The royal treasury took a percentage of every prize, fixed in advance, paid before the privateer touched his cut. This was not a tax on success. It was the price of the mandate itself. Without paying the share, the privateer was not a privateer. He was an unsanctioned operator, which is to say, a pirate.&lt;/p&gt;

&lt;p&gt;The fifth was accountability at the return. When the privateer came back to port, he produced his logs, his prize manifests, his casualty records, and any evidence of his conduct on the voyage. The prize court reviewed everything. A privateer whose paperwork did not match his prizes, or who could not account for his conduct, lost his commission, his prizes, or his head, depending on the severity.&lt;/p&gt;

&lt;p&gt;Five elements. Geographical scope. Time horizon. Defined target. Pre-agreed share. Mandatory accountability at the return.&lt;/p&gt;

&lt;p&gt;This is what made the Kent a legitimate prize and not a crime.&lt;/p&gt;

&lt;h2 id=&quot;the-1681-ordinance&quot;&gt;The 1681 Ordinance&lt;/h2&gt;

&lt;p&gt;The five-element structure was not an oral tradition or a customary practice. It was codified in French law in August 1681, under the direction of Jean-Baptiste Colbert, in what became known as the Grande Ordonnance de la Marine, or simply the Ordinance of 1681.&lt;/p&gt;

&lt;p&gt;The Ordinance was the first comprehensive maritime code in modern Europe. It covered shipping contracts, charter parties, sailor wages, marine insurance, and the law of prizes. The privateering provisions sat inside the prizes section, alongside the procedural rules for adjudicating captured property.&lt;/p&gt;

&lt;p&gt;Colbert drew explicitly on Dutch maritime statutes from Amsterdam and Antwerp. He was not inventing a regime. He was systematizing a practice that already existed in fragmentary form, and giving it the legal weight that allowed French privateers to operate, and French prize courts to adjudicate, with predictable rules.&lt;/p&gt;

&lt;p&gt;The Ordinance survived in modified form until the Declaration of Paris of 1856, which abolished privateering across most of Europe. For 175 years, the privateer-pirate distinction was a stable feature of European maritime law, and the five-element structure was its operational core.&lt;/p&gt;

&lt;p&gt;What is interesting, for present purposes, is not the legal history. It is that the same five-element structure recurs, almost intact, every time a society needs to give private operators substantial autonomy without losing the ability to call them to account.&lt;/p&gt;

&lt;p&gt;It recurs in modern military rules of engagement. It recurs in police use-of-force authorizations. It recurs in financial fiduciary mandates. It recurs in clinical trial protocols.&lt;/p&gt;

&lt;p&gt;It does not, generally, recur in tech consulting contracts.&lt;/p&gt;

&lt;h2 id=&quot;why-this-matters-for-modern-tech-contracts&quot;&gt;Why This Matters for Modern Tech Contracts&lt;/h2&gt;

&lt;p&gt;If you are a CEO who has signed a tech consulting contract recently, take it out and read the first page.&lt;/p&gt;

&lt;p&gt;You are looking for five things. You will probably find two of them, partially.&lt;/p&gt;

&lt;p&gt;You will find a list of services. Not a defined scope, but an enumeration of what is included. The difference is significant. An enumeration tells you what is in. A defined scope tells you what is in, what is out, and what the procedure is when something is in dispute. Most tech contracts enumerate. Almost none define.&lt;/p&gt;

&lt;p&gt;You will find a duration, but it is likely to be either a fixed term with an automatic renewal clause, or an indefinite duration with a termination procedure. Neither of these is a time horizon in the letter-of-marque sense. A letter of marque ended on its expiration date and required a new commission to continue. A renewable contract ends only when one party affirmatively decides to end it, which means it has a default toward continuation. The two structures produce different incentives, and the default-toward-continuation structure produces drift.&lt;/p&gt;

&lt;p&gt;You will probably not find a defined target in the operational sense. You will find a description of the work. Whether the work is succeeding, however, is rarely defined in the contract itself. It is left to the parties to assess at periodic reviews, which means it is left to relational dynamics rather than contractual structure.&lt;/p&gt;

&lt;p&gt;You will find a price, but the price is rarely a share of outcomes. It is usually a fee for time and effort. This is not a moral problem. It is a structural one. A fee for effort produces an incentive to produce more effort, regardless of whether more effort is what is needed. A share of outcomes, on the other hand, produces an incentive to produce outcomes efficiently. The privateer’s share was the latter, and it was the price of the mandate.&lt;/p&gt;

&lt;p&gt;You will find some form of reporting, but you are unlikely to find mandatory accountability at the return, in the sense of a defined moment when the relationship is reviewed against its full record and either renewed, modified, or closed. Most tech contracts have ongoing reporting and quiet attrition. They rarely have a clear moment when everything is laid on the table for review.&lt;/p&gt;

&lt;p&gt;In other words, most tech consulting contracts have a contract structure that, if you compare it to the letter of marque, is missing three of the five constitutive elements.&lt;/p&gt;

&lt;h2 id=&quot;the-three-questions-before-you-sign&quot;&gt;The Three Questions Before You Sign&lt;/h2&gt;

&lt;p&gt;If you do not have time to redesign your prestataire contracts from scratch, there are three questions you can ask before signing that will tell you whether you are looking at a mandate or a cohabitation.&lt;/p&gt;

&lt;p&gt;The first question is about scope. Not “what services are included?”, but “what happens when something is in the gray zone, and how do we know in advance?”. The answer should not be “we discuss it as it comes up”. The answer should be a procedure. If your prestataire cannot describe the procedure for resolving scope ambiguity in fewer than three sentences, the scope is not defined.&lt;/p&gt;

&lt;p&gt;The second question is about ending. Not “what is the duration?”, but “how do we know we are done, and what is the test for that?”. The answer should be a state, a deliverable, or a date, with the test specified in advance. The answer should not be “when the engagement no longer adds value”, because that test produces continuous mission creep without a single moment of clear completion.&lt;/p&gt;

&lt;p&gt;The third question is about review. Not “how often do we have status meetings?”, but “when do we lay everything on the table and decide whether to continue?”. The answer should be a calendar entry. It should not be “we review continuously”, because continuous review without a forcing function produces continuous reporting without continuous decision.&lt;/p&gt;

&lt;p&gt;A contract that survives these three questions cleanly is rare. It is also, almost without exception, a contract that produces good outcomes for both sides.&lt;/p&gt;

&lt;p&gt;A contract that does not survive these questions is not necessarily fraudulent or even badly intentioned. Most of the time, it has been written by people who have always written contracts that way, and who have not had the occasion to ask whether the structure they have inherited produces the outcomes they want.&lt;/p&gt;

&lt;p&gt;The three questions are uncomfortable to ask. They are also the cheapest piece of due diligence available to a CEO before signing a long-term tech contract.&lt;/p&gt;

&lt;h2 id=&quot;pirates-of-modernity&quot;&gt;Pirates of Modernity&lt;/h2&gt;

&lt;p&gt;The privateer-pirate distinction is not, even in its historical form, a moral distinction. It is a structural one.&lt;/p&gt;

&lt;p&gt;A privateer with a valid letter of marque, attacking a permitted target in the permitted area within the permitted time, was a legal combatant. The same person, doing the same act, the day after the letter expired, was a pirate, subject to summary execution.&lt;/p&gt;

&lt;p&gt;The act was identical. The structure had changed.&lt;/p&gt;

&lt;p&gt;In modern tech consulting, the same person, doing the same work, can be operating either as a mandataire under a defined commission or as something closer to an embedded resource without a clear sponsor. The work might look identical from the outside. The structural posture is entirely different.&lt;/p&gt;

&lt;p&gt;The privateer-pirate distinction in modern terms does not have a hanging at the end. It has, instead, a slow erosion of accountability, a quiet inflation of scope, and a gradual conversion of what was meant to be a mission into what becomes, in practice, a permanent annex to the organization.&lt;/p&gt;

&lt;p&gt;This is not a catastrophic outcome. It is an expensive one. It is also a quiet one, which is why it goes unnoticed until someone, usually a new finance director or a new CEO, starts asking why a particular prestataire has been on the books for six years and what, exactly, the original mandate was.&lt;/p&gt;

&lt;p&gt;The answer is often that the original mandate has long since been completed, and what remains is a residual relationship that nobody has the political energy to terminate cleanly.&lt;/p&gt;

&lt;h2 id=&quot;the-art-of-the-return&quot;&gt;The Art of the Return&lt;/h2&gt;

&lt;p&gt;There is one final element of the letter of marque that does not appear on the document itself but that runs through the entire institution.&lt;/p&gt;

&lt;p&gt;A privateer was supposed to return.&lt;/p&gt;

&lt;p&gt;The voyage had a beginning, a duration, and a return to port. The return was not optional. It was the moment when accountability was rendered, the prizes adjudicated, the share distributed, and the next commission, if there was to be one, negotiated on the basis of what had just been done.&lt;/p&gt;

&lt;p&gt;A privateer who did not return became, by default, a pirate. Not because anyone declared him so, but because the structural conditions of his legitimacy required the return to close the loop.&lt;/p&gt;

&lt;p&gt;Most modern tech mandates have no equivalent return.&lt;/p&gt;

&lt;p&gt;The work continues, the invoices continue, the meetings continue, but the moment of accountability, the moment when everything is laid on the table and the question is asked whether the original mandate has been fulfilled, never comes.&lt;/p&gt;

&lt;p&gt;The simplest fix is to put it on the calendar before the work begins. Six months, twelve months, eighteen months. A specific date. A defined review. An explicit decision to continue, modify, or close.&lt;/p&gt;

&lt;p&gt;This is not a complication of the relationship. It is the frame that makes the relationship a mandate at all.&lt;/p&gt;

&lt;p&gt;If you are signing a tech consulting contract this quarter, find the return date.&lt;/p&gt;

&lt;p&gt;If it is not in the contract, write it in.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Saturation Is Not the Problem</title>
      <link href="https://francois.aichelbaum.com/2026/05/19/saturation-is-not-the-problem" />
      <updated>2026-05-19T10:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/05/19/saturation-is-not-the-problem</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-bookmark&quot;&gt;&lt;/i&gt; Contents&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#four-dune-adaptations-one-lesson&quot; id=&quot;markdown-toc-four-dune-adaptations-one-lesson&quot;&gt;Four Dune adaptations, one lesson&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#frank-herbert-the-saturated-source&quot; id=&quot;markdown-toc-frank-herbert-the-saturated-source&quot;&gt;Frank Herbert, the saturated source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-corporate-version&quot; id=&quot;markdown-toc-the-corporate-version&quot;&gt;The corporate version&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#three-lived-examples&quot; id=&quot;markdown-toc-three-lived-examples&quot;&gt;Three lived examples&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-contrarian-recommendation&quot; id=&quot;markdown-toc-the-contrarian-recommendation&quot;&gt;The contrarian recommendation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-to-ask-of-your-next-report&quot; id=&quot;markdown-toc-what-to-ask-of-your-next-report&quot;&gt;What to ask of your next report&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;A CEO once handed me an eighty-page IT audit and asked what I thought of it. I read it on the train home. Every page was technically correct. The taxonomy of incidents was rigorous. The vendor benchmark covered the right comparators. The recommendations matched the standards.&lt;/p&gt;

&lt;p&gt;I told him the report was excellent and useless. He had paid for it. He filed it. He kept calling for committees on the same subject.&lt;/p&gt;

&lt;p&gt;That conversation is the reason I want to talk about Frank Herbert and four films.&lt;/p&gt;

&lt;h2 id=&quot;four-dune-adaptations-one-lesson&quot;&gt;Four Dune adaptations, one lesson&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Dune&lt;/em&gt;, Frank Herbert’s 1965 novel, has been adapted four times depending on how you count. Each attempt tells you more about reports than about science fiction.&lt;/p&gt;

&lt;p&gt;Alejandro Jodorowsky tried first, between 1974 and 1976. Fourteen months of pre-production. Moebius drew thousands of storyboards. H.R. Giger designed the Harkonnen world. Pink Floyd were attached to score one section, Magma another. Salvador Dalí had agreed to play the Emperor for a fee that became part of the pre-production legend. Orson Welles was set for Baron Harkonnen. Mick Jagger was Feyd. The screenplay grew into a book several kilos thick that circulated through studio archives across Hollywood for years.&lt;/p&gt;

&lt;p&gt;The film was never shot. Studios refused to commit. Two million dollars vanished into a project that ended on a dining table in Paris. Frank Pavich’s 2013 documentary &lt;em&gt;Jodorowsky’s Dune&lt;/em&gt; is the public record of this failure. And yet. Star Wars borrowed from those storyboards. Alien borrowed Giger directly. Blade Runner used the visual grammar. The Fifth Element pulled from Moebius’s costume drawings. Prometheus revisited the biomechanical lineage.&lt;/p&gt;

&lt;p&gt;The work survived. The decision was never made.&lt;/p&gt;

&lt;p&gt;David Lynch shot &lt;em&gt;Dune&lt;/em&gt; in 1984 because someone had to. Universal had bought the rights, signed distribution, locked release dates. The Jodorowsky failure had taught them caution about Dune projects, which is precisely why they wanted theirs done quickly. Lynch was hired. Lynch delivered. Lynch disowned the result and refuses to discuss it to this day.&lt;/p&gt;

&lt;p&gt;The SyFy mini-series &lt;em&gt;Dune&lt;/em&gt; in 2000, directed by John Harrison, is what completists love. It is faithful. It is exhaustive. It includes the Bene Gesserit politics, the gom jabbar test, the Litany Against Fear in the right scene, an Arrakis you can almost map. &lt;em&gt;Children of Dune&lt;/em&gt;, the second mini-series in 2003, has lines that genuinely land, including a moment where Leto II recognises his father in the desert wind. The score by Brian Tyler does work the visuals never quite reach. But the whole thing is flat. Everything is there. Nothing strikes.&lt;/p&gt;

&lt;p&gt;Then Denis Villeneuve gives us five hours of cinema across &lt;em&gt;Dune&lt;/em&gt; (2021) and &lt;em&gt;Dune: Part Two&lt;/em&gt; (2024) to cover the first novel in full. Five hours. One book. Not a minute committed to the sequels. He understood that the good adaptation is the one that knows when to stop.&lt;/p&gt;

&lt;p&gt;You may have already noticed that I have not described any of these as a film. They are reports. About reports.&lt;/p&gt;

&lt;h2 id=&quot;frank-herbert-the-saturated-source&quot;&gt;Frank Herbert, the saturated source&lt;/h2&gt;

&lt;p&gt;The book itself was written by a man who spent six years documenting before he wrote a first chapter. Botany of arid biomes. Hydrology. Comparative theology of monotheistic systems. Geopolitics of oil economies. The biology of camels and other water-conserving mammals. Six years of stacking material.&lt;/p&gt;

&lt;p&gt;The result is a six-hundred-page novel saturated with invented terminology, unpronounceable proper names, fictional institutions, footnotes inside the narrative, appendices that rival the main text in length. Total saturation. The Bene Gesserit, the Mentat training, the Kwisatz Haderach prophecy, the Atreides line, the Harkonnen baroque, the Fremen sietches, the spice that grants prescience and shortens lives, Shai-Hulud rolling beneath the dunes.&lt;/p&gt;

&lt;p&gt;And yet. The book opens on the gom jabbar test, where Paul Atreides keeps his hand inside a box of induced pain under the watch of a Bene Gesserit, and the dread passes before any explanation lands. A few chapters later it is the dust in the mouth, the dry heat of Arrakis, the silent menace of an institution we have not yet seen act. The fear is felt before it is named. Something passes that no Wikipedia summary will ever transmit.&lt;/p&gt;

&lt;p&gt;Saturation is not the problem. Intention is.&lt;/p&gt;

&lt;p&gt;Most IT reports I have read in twenty years of working in technology fail this test in ways that have nothing to do with their length.&lt;/p&gt;

&lt;h2 id=&quot;the-corporate-version&quot;&gt;The corporate version&lt;/h2&gt;

&lt;p&gt;Every report I have read sits somewhere on this spectrum.&lt;/p&gt;

&lt;p&gt;Some are Jodorowsky reports. Brilliant, expensive, never decided on, leaking influence into other places where the original author has no name. The work is real. The decision never happens. Years later you spot the strategy in a competitor’s roadmap.&lt;/p&gt;

&lt;p&gt;Some are Lynch reports. Filmed because the cameras were rolling and the studio needed something to release. Disowned by their own authors after delivery. The agenda preceded the question. The deliverable could not say what it had been built to say.&lt;/p&gt;

&lt;p&gt;Some are SyFy reports. Faithful to the brief, technically complete, evoking nothing, leaving the executive holding two hundred pages and no decision. Everything is there. Every section is correct. The reader closes the document with no next action and a vague sense that something has been done.&lt;/p&gt;

&lt;p&gt;The one I describe to clients most often is the Villeneuve report. The one that knows where to stop. The one that takes five chapters where the matter needs five chapters and refuses the temptation of the sixth.&lt;/p&gt;

&lt;h2 id=&quot;three-lived-examples&quot;&gt;Three lived examples&lt;/h2&gt;

&lt;p&gt;Three reports from the field. None of them named. None of them recognisable.&lt;/p&gt;

&lt;p&gt;The first is an audit commissioned not to understand a problem but to remove a consultant. The previous consultant had done the work, said what needed to be said, and politely declined to endorse a personal initiative of the chief executive. He had to go. The audit was the instrument. It was produced. It was signed. The consultant was ejected. The investment decision underneath, which was what was actually broken, kept costing money and going nowhere. The report was a Lynch. It existed because the cameras were rolling. The director knew it.&lt;/p&gt;

&lt;p&gt;The second is a several-month engagement where the brief looked organisational and the actual mandate was political. Build the dossier that designates the IT team as the source of every problem. The IT team would become the fuse. Someone needed to be the fuse. The report was produced. The fuse blew. Several engineers left. The product governance, the unstaffed finance steering, the over-promising commercial pipeline, all stayed in place. The CEO had seen sharply. He had only allowed himself to see in one direction.&lt;/p&gt;

&lt;p&gt;There is a particular trap in seeing too clearly. Herbert calls it prescience and treats it as a curse rather than a gift across the entire Dune saga. Seeing all paths is not seeing. Seeing one path very sharply is worse. It looks like clarity. It is selection. The Litany Against Fear in the book is recited by characters about to lose themselves to exactly this kind of false vision. Most CEO dashboards are exercises in the same false vision dressed in green and red.&lt;/p&gt;

&lt;p&gt;The third is a luxury group. Several months of analysis and conceptualisation. A real report, dense, abundant, with intention behind every section. A few weeks after delivery, an internal IT director had rewritten the executive summary in their own name, edited the cover, and circulated the version upward. The internal version was thinner, less coherent, but it carried the right signature. It checked the box. The original kept gathering dust. The plagiarised version made decisions that the original would have refused to permit.&lt;/p&gt;

&lt;p&gt;Lynch eating Jodorowsky. The richer work existed. It was replaced by a degraded version that served the photo opportunity.&lt;/p&gt;

&lt;h2 id=&quot;the-contrarian-recommendation&quot;&gt;The contrarian recommendation&lt;/h2&gt;

&lt;p&gt;The standard advice given to executives sounds clean. Ask for more visibility. Map everything. Commission a full audit. Put every option on the table before deciding.&lt;/p&gt;

&lt;p&gt;That advice is what paralyses you.&lt;/p&gt;

&lt;p&gt;The more complete the report, the less the CEO decides. The more committees come back, the less they cut. Seeing every possible path means losing the ability to choose one. The Bene Gesserit knew this about prescience. It is not a tool. It is a hall of mirrors that absorbs the operator. The Kwisatz Haderach in &lt;em&gt;Dune&lt;/em&gt; is not the answer to a problem of vision. He is the consequence of trying to engineer total vision in the first place, and Herbert spends four sequels showing what that costs.&lt;/p&gt;

&lt;p&gt;What you actually need is a report with intention. A report that closes questions instead of opening them. Dense where decision needs density. Short where decision needs no further air. Saturated, in the spirit of Herbert, only where saturation evokes something the reader has to feel before they can decide.&lt;/p&gt;

&lt;p&gt;Privateer does not write the report you can plagiarise. It writes the report that stops where the next action begins. It refuses the eighty pages whose only function is to look like enough to justify the line item. It refuses the audit that exists because someone has to take the fall.&lt;/p&gt;

&lt;p&gt;The good report names the next thing to do and then stops talking.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog-post-saturation.jpg&quot; alt=&quot;Stack of old books with weathered pages&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-to-ask-of-your-next-report&quot;&gt;What to ask of your next report&lt;/h2&gt;

&lt;p&gt;Frank Herbert spent six years documenting and then wrote a novel that closes. The novel ends. There are sequels for those who want them, but the first book finishes its sentence. That is the discipline of intention.&lt;/p&gt;

&lt;p&gt;Most reports never finish their sentence. They trail off into recommendations for further analysis. They list considerations to be examined. They suggest committees to revisit them.&lt;/p&gt;

&lt;p&gt;That is the spice that paralyses. That is what extends the meeting, narrows the executive, and ends the quarter with the same question still open.&lt;/p&gt;

&lt;p&gt;If your next IT or strategy report does not name three or four decisions you can make this quarter, it is not finished. The brilliance of the analysis is not the issue. Eighty rigorous pages can be empty. Twenty ruthless pages can decide the year.&lt;/p&gt;

&lt;p&gt;Ask for intention. Ask the author what they want you to do after reading. If they cannot answer in two sentences, the report is not for you. It is for the file.&lt;/p&gt;

&lt;p&gt;The desert in the book is felt before it is described because Herbert wanted you to feel it. The five hours of Villeneuve’s two-part adaptation are what they are because Villeneuve refused to film what could not be filmed yet. The Jodorowsky storyboards still influence cinema half a century later because someone refused to dilute them into something studios could approve.&lt;/p&gt;

&lt;p&gt;The reports that work for executives are not the longest. They are the ones whose author wanted the executive to do something specific.&lt;/p&gt;

&lt;p&gt;Saturation is not the problem.&lt;/p&gt;

&lt;p&gt;Intention is.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The Accusation Already Written</title>
      <link href="https://francois.aichelbaum.com/2026/05/12/the-accusation" />
      <updated>2026-05-12T10:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/05/12/the-accusation</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-bookmark&quot;&gt;&lt;/i&gt; Contents&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#the-one-sided-hearing&quot; id=&quot;markdown-toc-the-one-sided-hearing&quot;&gt;The one-sided hearing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#charge-of-proof-inverted&quot; id=&quot;markdown-toc-charge-of-proof-inverted&quot;&gt;Charge of proof, inverted&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-auditor-i-encountered-by-accident&quot; id=&quot;markdown-toc-the-auditor-i-encountered-by-accident&quot;&gt;The auditor I encountered by accident&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#when-the-process-is-perfect-and-the-outcome-is-unjust&quot; id=&quot;markdown-toc-when-the-process-is-perfect-and-the-outcome-is-unjust&quot;&gt;When the process is perfect and the outcome is unjust&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-designated-fuse&quot; id=&quot;markdown-toc-the-designated-fuse&quot;&gt;The designated fuse&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-the-right-to-confrontation-actually-does&quot; id=&quot;markdown-toc-what-the-right-to-confrontation-actually-does&quot;&gt;What the right to confrontation actually does&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#who-convenes-the-absent&quot; id=&quot;markdown-toc-who-convenes-the-absent&quot;&gt;Who convenes the absent&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;There is a principle in criminal procedure that most people take for granted without understanding what it actually protects.&lt;/p&gt;

&lt;p&gt;The accused has the right to know the accusation. Not at the verdict. Not during deliberation. Before the hearing begins. They have the right to examine the evidence, to call their own witnesses, to confront the opposing testimony, to respond to each element of the case against them.&lt;/p&gt;

&lt;p&gt;If you strip this principle away, you do not get a faster trial. You get a ceremony that looks like a trial and produces a conviction every time.&lt;/p&gt;

&lt;p&gt;I think about this when I walk into an organization and discover a decision that has already been taken about a technical situation where only one version of events has been heard.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog-post-justice.jpg&quot; alt=&quot;A wooden gavel on a desk&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;the-one-sided-hearing&quot;&gt;The one-sided hearing&lt;/h2&gt;

&lt;p&gt;The most common configuration I encounter when I enter a technical mission in crisis is this: the executive team has built an interpretation of what is going wrong, they have a candidate explanation, they have a candidate responsible party, and they are now looking for the independent expert who will confirm it.&lt;/p&gt;

&lt;p&gt;They do not describe it this way. They describe it as wanting a diagnosis. But the scope of the diagnosis has already been narrowed. The questions that would open alternative explanations are not on the agenda. The people who would provide the opposing testimony are not in the meeting.&lt;/p&gt;

&lt;p&gt;I have sat through executive briefings where the CEO described the situation, the COO confirmed the COO version, the CFO added a financial angle that supported the same reading, and the entire room agreed on what needed to happen next, while the technical team responsible for the execution of the contested decision was not in the building, had not been consulted, and would only learn about the verdict when the implementation order arrived.&lt;/p&gt;

&lt;p&gt;This is not a conspiracy. It is the default configuration of organizational decision-making in the absence of procedural discipline. The people with the most access to executive attention get to tell the story. The people with the least access to executive attention have the story told about them.&lt;/p&gt;

&lt;p&gt;The problem is not that the story being told is wrong. Sometimes it is exactly right. The problem is that there is no procedure for finding out whether it is right before a decision based on it is executed.&lt;/p&gt;

&lt;h2 id=&quot;charge-of-proof-inverted&quot;&gt;Charge of proof, inverted&lt;/h2&gt;

&lt;p&gt;In a proper trial, the burden of proof sits on the accusation. The prosecution must demonstrate guilt beyond reasonable doubt. The defense is not required to prove innocence; the absence of proof against them is sufficient.&lt;/p&gt;

&lt;p&gt;Inside organizations, this principle is almost universally inverted.&lt;/p&gt;

&lt;p&gt;A technical team produces a system that is performing below expectations. A decision is contemplated to replace the vendor, terminate the partnership, restructure the team, or change the technical approach. The burden of proof, in practice, sits on the technical team to prove that the current situation is acceptable, that the expectations were unrealistic, that the external pressures were unmanageable.&lt;/p&gt;

&lt;p&gt;They are not asked to defend a specific accusation. They are asked to justify their continued existence against a diffuse sense that things should be going better.&lt;/p&gt;

&lt;p&gt;This is a structurally losing position. You cannot prove the counterfactual. You cannot demonstrate what would have happened if a different decision had been made two years ago. You cannot adequately contest an accusation that has never been formally articulated.&lt;/p&gt;

&lt;p&gt;The accused technical team does what anyone in that position does. They produce defensive documentation. They explain context that nobody asked to hear. They preemptively justify choices that may or may not have been the actual source of the problem. And they lose, because they are fighting against a verdict that was reached before they understood they were on trial.&lt;/p&gt;

&lt;h2 id=&quot;the-auditor-i-encountered-by-accident&quot;&gt;The auditor I encountered by accident&lt;/h2&gt;

&lt;p&gt;Some years ago, I was leading a technical team inside an organization going through a governance crisis. A minority shareholder had commissioned an independent audit to understand what was actually happening in the business.&lt;/p&gt;

&lt;p&gt;The audit was conducted professionally. The auditor interviewed the executive committee, mapped the formal decision-making structure, reviewed the financial data, and built a picture of the organization from the vantage point of its governance documents and its leadership team.&lt;/p&gt;

&lt;p&gt;My team was not mentioned in those interviews. We were in a different building, working on a different floor, isolated from the political center for reasons that had more to do with internal positioning than with technical necessity. The auditor had no reason to know we existed, and nobody in the governance reviews had any incentive to surface our existence.&lt;/p&gt;

&lt;p&gt;One afternoon, the auditor came to the building for a coffee break. Someone happened to mention my team. He came to find me. We spoke for fifteen minutes.&lt;/p&gt;

&lt;p&gt;At the end of that fifteen-minute conversation, he called his assistant from my office, and canceled every meeting he had scheduled for the rest of the afternoon.&lt;/p&gt;

&lt;p&gt;The audit’s conclusions changed. Not because my testimony was privileged or definitive. Because it was a version of events that no one at the governance level had any interest in surfacing, and the auditor recognized immediately that the picture he had been building was structurally incomplete.&lt;/p&gt;

&lt;p&gt;The most useful information about what is actually happening inside an organization is almost never where the formal inquiry is looking for it. It is in the rooms nobody thought to check, with the people nobody thought to call.&lt;/p&gt;

&lt;h2 id=&quot;when-the-process-is-perfect-and-the-outcome-is-unjust&quot;&gt;When the process is perfect and the outcome is unjust&lt;/h2&gt;

&lt;p&gt;There is a specific kind of failure mode in organizational decision-making that looks like success from every procedural angle.&lt;/p&gt;

&lt;p&gt;The process was followed. The committee was consulted. The documents were produced. The decision was ratified by the appropriate governing body. Nothing was skipped. Nothing was expedited. Nothing was irregular.&lt;/p&gt;

&lt;p&gt;And someone walks out of the outcome with a completely legitimate sense that they have been treated unjustly.&lt;/p&gt;

&lt;p&gt;I have seen this repeatedly in technical organizations. A procurement process that selected the lowest bidder over the incumbent partner who knew the system, because the procurement rules rewarded price over capability transfer. A reorganization that respected every applicable labor protection while eliminating the person who carried two critical systems in their head, because the formal criteria did not value tacit knowledge. An investment committee that approved a project because it ticked every box, while ignoring the weak signals from the operational team that the assumptions were wrong.&lt;/p&gt;

&lt;p&gt;In each case, the rigidity of the process produced the illusion of neutrality. The decision was “not personal” because the process had been followed. The outcome was “not anyone’s fault” because every step was documented.&lt;/p&gt;

&lt;p&gt;The procedural integrity of the decision was used, implicitly, to avoid the substantive judgment that someone in authority needed to make and did not want to make.&lt;/p&gt;

&lt;p&gt;This is how organizations avoid accountability for decisions that require it. The process absorbs the responsibility. Nobody has to say: I chose this, and here is why, and if it is wrong it is wrong on me.&lt;/p&gt;

&lt;h2 id=&quot;the-designated-fuse&quot;&gt;The designated fuse&lt;/h2&gt;

&lt;p&gt;In electrical engineering, a fuse is a deliberately weak point in a circuit. It is designed to fail first so that the more expensive, harder-to-replace components behind it survive.&lt;/p&gt;

&lt;p&gt;When a fuse blows, the electrician’s first question is not “why did this fuse fail?” The question is “what upstream condition forced this component to sacrifice itself?”&lt;/p&gt;

&lt;p&gt;Organizations use people as fuses.&lt;/p&gt;

&lt;p&gt;A project goes badly. The explanation converges on a single individual or a single team, usually the one that arrived most recently, or that had the least political cover, or that was in the room last when the failure became visible. That person absorbs the organizational verdict. A reorganization follows. The problem is declared solved.&lt;/p&gt;

&lt;p&gt;Six months later, a similar failure occurs. A different fuse blows. The cycle repeats.&lt;/p&gt;

&lt;p&gt;The reason it repeats is that the fuse is not the cause of the failure. The cause of the failure is further upstream, in the governance configuration, in the decision-making protocols, in the political alignment that forced the fuse into a role it was never equipped to succeed in. The fuse fails because something else, structurally, could not hold.&lt;/p&gt;

&lt;p&gt;When the fuse is replaced, the underlying condition remains. The next fuse fails the same way.&lt;/p&gt;

&lt;p&gt;Recognizing this pattern is difficult from inside the organization, because everyone upstream of the fuse has a direct interest in the fuse being the explanation. The explanation that blames the fuse protects the circuit behind it. The explanation that audits the circuit threatens the positions of everyone who designed it.&lt;/p&gt;

&lt;p&gt;This is not a moral failure. It is a structural one. It requires, almost by definition, someone from outside the circuit to see what is actually happening.&lt;/p&gt;

&lt;h2 id=&quot;what-the-right-to-confrontation-actually-does&quot;&gt;What the right to confrontation actually does&lt;/h2&gt;

&lt;p&gt;The right to confront one’s accuser, one of the oldest principles in adversarial legal systems, is not primarily about fairness to the accused. It is about the quality of the evidence that reaches the decision-maker.&lt;/p&gt;

&lt;p&gt;Testimony that cannot be cross-examined is structurally less reliable than testimony that can. Not because the witness is lying. Because the full picture of what the witness knows, and does not know, and how the information came to them, is only visible when the testimony is contested.&lt;/p&gt;

&lt;p&gt;In corporate decision-making, the equivalent principle is almost never applied. The technical team’s version of events is heard, if at all, in a separate meeting from the executive team’s version. The consultant’s report is received. The vendor’s pushback is dismissed as self-interested. Each source of testimony is evaluated in isolation, by people with their own prior commitments, without the discipline of contradictory examination.&lt;/p&gt;

&lt;p&gt;The decision that emerges from this process is not better than the best testimony. It is an average of the available testimony, weighted by the political influence of each source.&lt;/p&gt;

&lt;p&gt;In a courtroom, this would be recognized immediately as a miscarriage of procedure. In a boardroom, it is the normal operating mode.&lt;/p&gt;

&lt;h2 id=&quot;who-convenes-the-absent&quot;&gt;Who convenes the absent&lt;/h2&gt;

&lt;p&gt;When I enter a technical situation in crisis, the first thing I look for is not who is being accused. It is who has not been heard.&lt;/p&gt;

&lt;p&gt;The auditor who found my team by accident is the template for how this work actually gets done. You cannot trust the formal inquiry to surface the most important testimony, because the formal inquiry is structured by the same political dynamics that produced the crisis in the first place. The people with the best view of the actual mechanics of the failure are almost always the people the formal inquiry has the least incentive to interview.&lt;/p&gt;

&lt;p&gt;You have to go find them. Not as an afterthought, not as a completeness check, but as the primary activity of the diagnosis. The verdict that reaches the executive committee should reflect every material version of events, examined under contradiction, with the procedural discipline that is mandatory in courts and optional in corporations.&lt;/p&gt;

&lt;p&gt;This is not a neutral activity. It changes the outcome. In many of the situations where I have done this work, the conclusion that the executive team initially favored was not the conclusion that held up under full examination. A vendor was not replaced. A team was not dissolved. A reorganization was halted. The actual cause was further upstream than anyone wanted to look.&lt;/p&gt;

&lt;p&gt;The cost of not doing this work is not only that innocent parties take the fall. It is that the organization learns nothing. The circuit continues to blow fuses. Each verdict confirms the previous bias. The institutional memory of what actually goes wrong degrades over time, because every autopsy is conducted by the same people with the same interests.&lt;/p&gt;

&lt;p&gt;The value of the adversarial principle is not that it is fair. It is that it produces decisions grounded in the strongest available evidence. That value does not disappear when you move from the courtroom to the boardroom. The requirement for it does not diminish because the defendant is a technical team instead of a citizen.&lt;/p&gt;

&lt;p&gt;It just becomes optional. And in its absence, the verdict is written before the hearing begins.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;The pattern of stories told about teams rather than with them is the inversion of &lt;a href=&quot;/2026/04/07/looking-inside-the-walls/&quot;&gt;Looking Inside the Walls&lt;/a&gt;. The external vantage point required to surface unheard testimony is the argument of &lt;a href=&quot;/2026/04/28/the-pit-wall/&quot;&gt;The Pit Wall and the Cockpit&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The Leica Eye</title>
      <link href="https://francois.aichelbaum.com/2026/05/05/the-leica-eye" />
      <updated>2026-05-05T10:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/05/05/the-leica-eye</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-bookmark&quot;&gt;&lt;/i&gt; Contents&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#what-the-algorithm-corrects-away&quot; id=&quot;markdown-toc-what-the-algorithm-corrects-away&quot;&gt;What the algorithm corrects away&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-photocopy-bias&quot; id=&quot;markdown-toc-the-photocopy-bias&quot;&gt;The photocopy bias&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-this-looks-like-in-an-is-audit&quot; id=&quot;markdown-toc-what-this-looks-like-in-an-is-audit&quot;&gt;What this looks like in an IS audit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-tool-versus-the-oracle&quot; id=&quot;markdown-toc-the-tool-versus-the-oracle&quot;&gt;The tool versus the oracle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;Arnaud said it during an internal meeting last week. We were reviewing a deliverable, talking about quality tolerances, the gap between what looks right and what is right. He wasn’t making a point. He was thinking out loud.&lt;/p&gt;

&lt;p&gt;“The imperfection that creates perfection.”&lt;/p&gt;

&lt;p&gt;I wrote it down. Not because it was clever. Because it described something I’d been circling around for months without finding the right frame.&lt;/p&gt;

&lt;p&gt;In Wetzlar, Germany, Leica assembles every lens by hand. Not as a marketing claim. As a manufacturing constraint. The tolerances involved in high-end optical engineering mean that two lenses of the exact same model, built on the same line, by the same technicians, will not produce exactly the same image. Photographers know this. They call it the “Leica rendering.” An organic quality to the image. Slightly warm, slightly imperfect, immediately recognizable. Not a flaw. A signature.&lt;/p&gt;

&lt;p&gt;No image correction algorithm reproduces it. Because it isn’t a setting. It’s the accumulated result of specific imperfections in that specific lens, ground by that specific hand, on that specific day.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog-post-leica.jpg&quot; alt=&quot;Leica camera and lens detail&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-the-algorithm-corrects-away&quot;&gt;What the algorithm corrects away&lt;/h2&gt;

&lt;p&gt;Take the same scene. Same light, same frame. Shoot it with an iPhone and with a Leica M.&lt;/p&gt;

&lt;p&gt;The iPhone gives you a perfect image. Sharp everywhere. Colors corrected. Sky enhanced. Skin smoothed. Fourteen algorithms decided for you what you wanted to see. The result is technically excellent. It is also functionally identical to the image anyone else would have taken with the same phone, in the same conditions.&lt;/p&gt;

&lt;p&gt;The Leica gives you your image. With the grain of that moment. The sharpness of that particular lens, not another. The depth of field you chose, not the one a computational model calculated as optimal.&lt;/p&gt;

&lt;p&gt;One produces consensus. The other produces point of view.&lt;/p&gt;

&lt;p&gt;I keep thinking about this when a CEO shows me an IS audit he received from a previous provider. Clean. Complete. Twenty pages. All the right sections. All the expected recommendations. And this strange feeling that it could be the audit of any company of the same size, in the same sector.&lt;/p&gt;

&lt;p&gt;The audit is technically correct. The recommendations are defensible. Nothing is wrong. But nothing is specifically right either. The report describes an archetype, not an organization. The algorithmic correction smoothed away everything that made this company’s situation unique.&lt;/p&gt;

&lt;p&gt;The photographer William Eggleston once said something about the democratic forest: everything in the frame has the same value. The gas station and the cathedral get the same attention. That’s what a good diagnostic does. It doesn’t privilege what the framework says should be important. It reads the whole frame with equal attention and lets the actual situation determine what matters.&lt;/p&gt;

&lt;p&gt;Most IS audits do the opposite. They arrive with the framework already loaded. The equivalent of an iPhone’s computational photography: before the shutter clicks, the software has already decided what the image should look like.&lt;/p&gt;

&lt;h2 id=&quot;the-photocopy-bias&quot;&gt;The photocopy bias&lt;/h2&gt;

&lt;p&gt;In 1928, Alexander Fleming left a petri dish open by mistake before going on holiday. A mold contaminated the bacterial culture. The bacteria around the mold died. Any rigorous lab technician would have discarded the contaminated dish, sterilized the bench, and started the experiment over.&lt;/p&gt;

&lt;p&gt;Fleming looked at it.&lt;/p&gt;

&lt;p&gt;What followed was penicillin. Millions of lives saved. Born from an error that any automated protocol would have corrected before it became visible.&lt;/p&gt;

&lt;p&gt;The discovery wasn’t the accident. The discovery was the gaze. Someone who saw in the anomaly something other than a problem to fix.&lt;/p&gt;

&lt;p&gt;I think about Fleming when I watch what’s happening with generative AI and the knowledge cycle. Models trained on content. That produce content. Ingested by other models. That produce more content. Each iteration smooths the outliers. Eliminates the accidents. The distribution tightens around an artificial center of gravity that nobody chose.&lt;/p&gt;

&lt;p&gt;This is the photocopy bias. Copy a text. Copy the copy. Copy that copy. After twenty iterations, the fine details are gone. What remains is legible, but it’s no longer the original text. The signal-to-noise ratio didn’t improve. The signal converged toward noise.&lt;/p&gt;

&lt;p&gt;In IS diagnostics, I see it emerging. Audits starting to look alike. Not because organizations look alike. Because the tools look alike. Same analysis frameworks. Same pattern libraries. Same standard recommendations. “Refactor your technical debt.” “Migrate to the cloud.” “Implement data governance.”&lt;/p&gt;

&lt;p&gt;Fine. But the technical debt in this particular organization exists because a CTO who left three years ago made a political decision disguised as a technical one, and nobody has dared to revisit it since. The real question isn’t in the code. It’s in the org chart. In a meeting that never happened.&lt;/p&gt;

&lt;p&gt;No model trained on ten thousand cases sees that. It’s too local. Too contextual. Too human. The algorithm corrected it away.&lt;/p&gt;

&lt;h2 id=&quot;what-this-looks-like-in-an-is-audit&quot;&gt;What this looks like in an IS audit&lt;/h2&gt;

&lt;p&gt;I was called into a mid-sized industrial company last year. A hundred and twenty people. Three different providers had audited their IS in two years. Each one recommended refactoring the in-house ERP. Each report was thorough, well-structured, defensible. Each one arrived at the same conclusion through the same analytical path.&lt;/p&gt;

&lt;p&gt;The CEO was hesitant to start a fourth project. Not because he doubted the diagnosis. Because something felt off and he couldn’t name what.&lt;/p&gt;

&lt;p&gt;We spent two days on site. Not in the code. In the corridors. With the teams. The ERP worked. Badly documented, fragile in places, but it ran. The real issue was an architecture decision taken in 2021 by a CTO who had left the company six months after making it. A political choice dressed as a technical one. Everyone knew. Nobody had written it down.&lt;/p&gt;

&lt;p&gt;The three previous audits had all seen the symptoms. Fragile ERP, inconsistent architecture, slow deployments. They’d all applied the standard pattern: the system is old, refactor it. None of them had asked why the system looked the way it did. Because the answer wasn’t in the system. It was in the history of the organization, in a decision that lived in the memory of three people who were still there but had never been asked.&lt;/p&gt;

&lt;p&gt;We didn’t recommend refactoring. We recommended a conversation. Between the CEO, his operations director, and the dev team. Three hours in a room. With the real question on the table: do we own this inheritance and build on it, or do we start over, but knowing why.&lt;/p&gt;

&lt;p&gt;Six months later, the system is running on the same base. Stabilized. Documented. The cost of a migration that didn’t need to happen was saved entirely.&lt;/p&gt;

&lt;p&gt;That’s the Leica eye. Not sharper than the algorithm. Differently focused. Tuned to what makes this particular situation unlike any other, even when the surface pattern says otherwise.&lt;/p&gt;

&lt;p&gt;The three previous audits weren’t bad. They were generic. They did exactly what they were designed to do: apply a proven framework to an observable situation and produce a defensible recommendation. The problem is that defensible and correct are not the same thing. A recommendation can be perfectly reasonable and entirely wrong for this specific organization, at this specific moment, given this specific history.&lt;/p&gt;

&lt;p&gt;The Leica doesn’t take better photos than the iPhone. It takes different ones. Ones where the photographer’s judgment is the primary variable, not the algorithm’s optimization target.&lt;/p&gt;

&lt;h2 id=&quot;the-tool-versus-the-oracle&quot;&gt;The tool versus the oracle&lt;/h2&gt;

&lt;p&gt;I should be direct about something before anyone reads this as an anti-AI argument. I use AI tools. Every day. For synthesis, for modeling, for accelerating the parts of the work where speed doesn’t compromise quality. The carpenter who uses a power drill doesn’t apologize for not drilling by hand.&lt;/p&gt;

&lt;p&gt;But the carpenter doesn’t ask the drill where to put the hole.&lt;/p&gt;

&lt;p&gt;The distinction matters. AI as a tool in the hands of a practitioner is formidable. AI as an oracle replacing the practitioner is something else entirely. It confuses computational power with contextual understanding.&lt;/p&gt;

&lt;p&gt;When I build a diagnostic for a client, AI helps me process information. It doesn’t help me sense that the CIO and the CFO haven’t spoken in six months. That the cloud migration was sold by a salesperson before an architect validated it. That the real problem isn’t the legacy system but the fear of touching something that still works.&lt;/p&gt;

&lt;p&gt;That comes from accumulated experience. Hundreds of situations read, reread, sometimes gotten wrong. A filter that nobody could train because the data doesn’t exist anywhere. It lives in the meeting room. In the unspoken. In the look on the CEO’s face when someone says the word “overhaul.”&lt;/p&gt;

&lt;p&gt;An iPhone gives you a perfect photo. A Leica gives you one that only you could have taken.&lt;/p&gt;

&lt;p&gt;The question for the person commissioning the audit isn’t which tool was used. It’s whether the person behind it was looking through a calibrated lens or just pointing and shooting.&lt;/p&gt;

&lt;p&gt;There’s a reason Leica still assembles lenses by hand in 2026, while every economic incentive in the world pushes toward automation. Some things cannot be produced by optimizing for the average. The specific, the contextual, the particular: these require a human hand that has done this enough times to know exactly why this time is different.&lt;/p&gt;

&lt;p&gt;Your IS doesn’t need a better algorithm. It needs someone who has looked through enough lenses to know which one fits.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;The view from outside the cockpit that the driver structurally cannot have is &lt;a href=&quot;/2026/04/28/the-pit-wall/&quot;&gt;The Pit Wall and the Cockpit&lt;/a&gt;. The IS equivalent of a building where nobody has looked inside the walls is &lt;a href=&quot;/2026/04/07/looking-inside-the-walls/&quot;&gt;Looking Inside the Walls&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The Pit Wall and the Cockpit</title>
      <link href="https://francois.aichelbaum.com/2026/04/28/the-pit-wall" />
      <updated>2026-04-28T10:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/04/28/the-pit-wall</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-bookmark&quot;&gt;&lt;/i&gt; Contents&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#the-undercut-and-the-timing-of-decisions&quot; id=&quot;markdown-toc-the-undercut-and-the-timing-of-decisions&quot;&gt;The undercut and the timing of decisions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-thresholds-dont-tell-you&quot; id=&quot;markdown-toc-what-thresholds-dont-tell-you&quot;&gt;What thresholds don’t tell you&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-decision-that-isnt-made-where-it-appears-to-be-made&quot; id=&quot;markdown-toc-the-decision-that-isnt-made-where-it-appears-to-be-made&quot;&gt;The decision that isn’t made where it appears to be made&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#when-the-safety-car-comes-out&quot; id=&quot;markdown-toc-when-the-safety-car-comes-out&quot;&gt;When the safety car comes out&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-radio-problem&quot; id=&quot;markdown-toc-the-radio-problem&quot;&gt;The radio problem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-i-do-from-the-pit-wall&quot; id=&quot;markdown-toc-what-i-do-from-the-pit-wall&quot;&gt;What I do from the pit wall&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;In Formula 1, there are always two versions of the race happening simultaneously.&lt;/p&gt;

&lt;p&gt;The version on the pit wall: tire degradation curves updated every sector, gap to competitors measured to the hundredth of a second, undercut windows calculated by simulation, weather models updated every few minutes.&lt;/p&gt;

&lt;p&gt;The version in the cockpit: the rear end stepping out under traction on turn nine, the steering vibrating differently since lap thirty-two, the car feeling planted or loose in ways no sensor fully captures, the competitor’s line through the last corner suggesting he’s managing something.&lt;/p&gt;

&lt;p&gt;These are not the same race. They are complementary views of the same race. Neither is complete without the other.&lt;/p&gt;

&lt;p&gt;The decisions that win championships are not made from the pit wall alone. They are made in the gap between these two readings — in the quality of the interface between the engineer with the data and the driver with the feel.&lt;/p&gt;

&lt;p&gt;I think about this constantly when I audit an information system.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog-post-f1.jpg&quot; alt=&quot;Racing circuit at night with pit lane&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;the-undercut-and-the-timing-of-decisions&quot;&gt;The undercut and the timing of decisions&lt;/h2&gt;

&lt;p&gt;The undercut is one of the more elegant strategic concepts in modern Formula 1, and it illustrates something important about how good technical decisions work.&lt;/p&gt;

&lt;p&gt;A driver is running second, unable to pass on track. The gap to the leader is stable but not closing. On raw pace, they’re equal. The race appears locked.&lt;/p&gt;

&lt;p&gt;The pit wall brings the second car in for fresh tires several laps before the normal window. The driver exits with a ten-second deficit but considerably faster tires. He attacks. He posts fastest lap. Fastest lap. Fastest lap again.&lt;/p&gt;

&lt;p&gt;When the leader finally pits, he comes out behind.&lt;/p&gt;

&lt;p&gt;The position changed in the pit lane, not on track. The decisive move happened before anyone in the grandstands understood that a move was being made.&lt;/p&gt;

&lt;p&gt;What makes the undercut work is not speed. It’s the decision being made before the situation becomes obvious. By the time the undercut window is apparent to everyone — to the commentators, to the rival team, to the fans — it’s already too late to execute it cleanly.&lt;/p&gt;

&lt;p&gt;The teams that win on strategy are the ones that decided before the window opened. Not because they had better data. Because they acted on what the data was beginning to show before the picture was complete.&lt;/p&gt;

&lt;p&gt;Technical organizations fail in exactly the inverse way. They wait for the situation to be unambiguous. They want the full diagnosis before committing to treatment. By the time the technical debt, the architectural limit, or the team capacity problem is obvious to everyone in the room, the window for a clean resolution has usually closed. What remains is a forced pit stop under pressure, with cold tires, in traffic.&lt;/p&gt;

&lt;h2 id=&quot;what-thresholds-dont-tell-you&quot;&gt;What thresholds don’t tell you&lt;/h2&gt;

&lt;p&gt;There is a recurring argument I have with technical leaders that I now recognize as structurally identical to the threshold-versus-pattern debate in monitoring.&lt;/p&gt;

&lt;p&gt;The threshold argument: if a metric exceeds a value, trigger an alert. Simple, auditable, defensible.&lt;/p&gt;

&lt;p&gt;The pattern argument: monitor the shape of what’s happening, not just whether a number has crossed a line.&lt;/p&gt;

&lt;p&gt;On a mission for a startup that was in the process of fundraising — brought in by a business angel, the company had significant technical problems they weren’t fully seeing — I built a complete monitoring infrastructure. The ability to ingest every available metric, store it, display it, correlate it.&lt;/p&gt;

&lt;p&gt;The CEO wanted threshold-based alerts. Clear, readable, binary. Something exceeds X, notify me.&lt;/p&gt;

&lt;p&gt;I built something different. Behavioral detection. Patterns. Graphs that showed the form of what was happening, not just whether a number had crossed a boundary.&lt;/p&gt;

&lt;p&gt;He never fully understood why.&lt;/p&gt;

&lt;p&gt;His engineers did.&lt;/p&gt;

&lt;p&gt;The day they had scaling problems, the pattern had been visible in the graphs for six hours before any threshold was breached. The team could point to exactly what was forming, how it was forming, and why. They could act on the mechanism, not just observe the symptom.&lt;/p&gt;

&lt;p&gt;A threshold tells you the tire is hot. A pattern tells you how it’s going to fail and approximately when.&lt;/p&gt;

&lt;p&gt;In F1, the difference between a proactive pit stop and a tire failure on the main straight at 300 kilometers per hour is often the team’s ability to read the degradation curve rather than wait for a temperature alert.&lt;/p&gt;

&lt;h2 id=&quot;the-decision-that-isnt-made-where-it-appears-to-be-made&quot;&gt;The decision that isn’t made where it appears to be made&lt;/h2&gt;

&lt;p&gt;Hamilton. Silverstone. 2013.&lt;/p&gt;

&lt;p&gt;The British Grand Prix, late in the race. Mercedes kept Hamilton out three laps longer than the data suggested was safe. The rear-left tire was degrading faster than the models predicted — an issue that would affect multiple cars that afternoon.&lt;/p&gt;

&lt;p&gt;The tire failed at speed on the Hangar Straight.&lt;/p&gt;

&lt;p&gt;The data showed the tire was holding. The car wasn’t holding. These are different statements, and they diverged with consequences.&lt;/p&gt;

&lt;p&gt;I’ve been brought into COMEX presentations where the data was telling a story. Clean, coherent, well-formatted. The numbers supported the decision the room had already decided to make.&lt;/p&gt;

&lt;p&gt;The problem: I had the context. The actual data. Evidence that showed what was being constructed in that room — not an honest reading of the situation, but a political narrative dressed as analysis. The goal was to win an internal argument, not to act in the company’s interest.&lt;/p&gt;

&lt;p&gt;What struck me was not the maneuver. What struck me was that it worked.&lt;/p&gt;

&lt;p&gt;It worked because the executives in the room didn’t know what questions would break the story. They didn’t know what data existed that the presentation had chosen not to show. They couldn’t tell the difference between a dashboard that reflected reality and a dashboard built to reflect a decision already made.&lt;/p&gt;

&lt;p&gt;The pit wall was deciding. On filtered telemetry.&lt;/p&gt;

&lt;p&gt;(I should be precise about what I mean here: this isn’t necessarily cynical. People often genuinely believe the story they’re constructing. The mechanism is more subtle than deliberate fraud. When you’ve spent eight months building a case for an architectural decision, you start reading data through that lens. The confirmation isn’t fabricated — it’s selected. The effect is the same. The tire isn’t holding.)&lt;/p&gt;

&lt;p&gt;In that particular case, I had already put the necessary things in place. The political decision didn’t change the technical outcome. But it shouldn’t have required that kind of preparation. The failure was upstream — in a governance structure that couldn’t distinguish between telemetry and a story about telemetry.&lt;/p&gt;

&lt;h2 id=&quot;when-the-safety-car-comes-out&quot;&gt;When the safety car comes out&lt;/h2&gt;

&lt;p&gt;One of the most operationally revealing moments in Formula 1 is the safety car period.&lt;/p&gt;

&lt;p&gt;The race neutralizes. Every car closes up. Teams have ninety seconds, perhaps less, to make a decision: pit and take fresh rubber, or stay out and hold position.&lt;/p&gt;

&lt;p&gt;The teams that perform consistently well in these moments share one characteristic: they’ve already made the decision, before the safety car came out.&lt;/p&gt;

&lt;p&gt;Not the specific decision for this specific race. The framework. The decision tree. The predefined criteria that determine when you pit under safety car and when you don’t, who has the authority to override the simulation, what information is required before committing.&lt;/p&gt;

&lt;p&gt;The worst performances I’ve seen under safety car are from teams trying to improvise the decision criteria in real time while also executing the tactical choice. They’re simultaneously deciding how to decide and deciding. The cognitive load collapses the window.&lt;/p&gt;

&lt;p&gt;Technical organizations have safety car moments constantly. An unexpected departure. A security incident. A competitor shipping something that changes the market. A regulatory change with a six-week compliance window.&lt;/p&gt;

&lt;p&gt;The organizations that respond well are not necessarily the ones with the fastest leaders or the most data. They’re the ones that have defined, in advance, who decides what, with what minimum information, in what timeframe. Not a process document — a decision protocol. The difference is that a process describes steps. A protocol specifies authority, information minimums, and time constraints.&lt;/p&gt;

&lt;p&gt;Most technical organizations have processes. Almost none have decision protocols.&lt;/p&gt;

&lt;h2 id=&quot;the-radio-problem&quot;&gt;The radio problem&lt;/h2&gt;

&lt;p&gt;Everything I’ve described so far depends on something that Formula 1 teams have invested enormous effort in getting right and still frequently get wrong: the radio communication between the pit wall and the cockpit.&lt;/p&gt;

&lt;p&gt;The driver has three seconds per corner to receive information, process it, respond. The engineer has a firehose of incoming data and a driver whose attention is 95% on the car.&lt;/p&gt;

&lt;p&gt;The teams that communicate well have developed an extreme discipline about what gets said, when, and how. Critical information first. Short sentences. Acknowledged, not assumed. They’ve mapped the moments when the driver can process complex information versus moments where only immediate tactical instructions work.&lt;/p&gt;

&lt;p&gt;They’ve also developed an explicit protocol for the failure mode: what happens when the driver and the pit wall have conflicting reads of the situation. Not who wins the argument — the procedure for surfacing the conflict fast enough that both pieces of information can inform the decision.&lt;/p&gt;

&lt;p&gt;In technical organizations, this translation problem is almost universally unaddressed.&lt;/p&gt;

&lt;p&gt;The CTO has the system’s technical reality in his head in a form that took years to develop. The CEO has the business context and the strategic constraints. These two people meet for ninety minutes per week in a format designed for status updates, not for surfacing the kind of complex, ambiguous, partially-formed information that would actually be useful for joint decision-making.&lt;/p&gt;

&lt;p&gt;The radio doesn’t work. Not because either party is failing. Because nobody designed the communication protocol for the actual content that needs to travel across it.&lt;/p&gt;

&lt;h2 id=&quot;what-i-do-from-the-pit-wall&quot;&gt;What I do from the pit wall&lt;/h2&gt;

&lt;p&gt;I want to be direct about what role I’m describing here, because it’s easy to misread.&lt;/p&gt;

&lt;p&gt;The pit wall doesn’t drive the car better than the driver. It doesn’t have better instincts, better physical feedback, better situational awareness in the cockpit. What it has is a different vantage point — one that the driver structurally cannot occupy while driving.&lt;/p&gt;

&lt;p&gt;When I work with a technical organization, I’m not bringing superior technical judgment to the engineers who’ve been inside the system for three years. They know things about that system that I will never know.&lt;/p&gt;

&lt;p&gt;What I bring is the view from the pit wall. The ability to read the full picture from a position outside the cockpit. The ability to see what the data is beginning to show before the situation becomes unambiguous. The ability to name what the telemetry is actually measuring versus what the story about the telemetry is claiming.&lt;/p&gt;

&lt;p&gt;And critically: no stake in the decision. No architecture to defend. No team to protect. No political position to maintain.&lt;/p&gt;

&lt;p&gt;The driver who knows the car is wrong but can’t say so clearly because the team has six months invested in the current setup needs someone at the pit wall who will read the lap times without the attachment.&lt;/p&gt;

&lt;p&gt;Most technical organizations don’t have that position filled. Not because they lack competent people. Because everyone is in the cockpit.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;The pattern detection that lets you see problems forming before thresholds break is in &lt;a href=&quot;/2026/04/07/looking-inside-the-walls/&quot;&gt;Looking Inside the Walls&lt;/a&gt;. The decision paralysis that keeps cars in the wrong tire window is &lt;a href=&quot;/2026/04/21/pekin-express/&quot;&gt;Pekin Express&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Pekin Express</title>
      <link href="https://francois.aichelbaum.com/2026/04/21/pekin-express" />
      <updated>2026-04-21T10:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/04/21/pekin-express</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-bookmark&quot;&gt;&lt;/i&gt; Contents&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#the-truck-you-didnt-stop&quot; id=&quot;markdown-toc-the-truck-you-didnt-stop&quot;&gt;The truck you didn’t stop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#we-need-more-data-is-not-an-analytical-statement&quot; id=&quot;markdown-toc-we-need-more-data-is-not-an-analytical-statement&quot;&gt;“We need more data” is not an analytical statement&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-constraint-actually-does&quot; id=&quot;markdown-toc-what-constraint-actually-does&quot;&gt;What constraint actually does&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#recovery-speed-is-the-measurement-that-doesnt-exist&quot; id=&quot;markdown-toc-recovery-speed-is-the-measurement-that-doesnt-exist&quot;&gt;Recovery speed is the measurement that doesn’t exist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-constraint-is-already-there&quot; id=&quot;markdown-toc-the-constraint-is-already-there&quot;&gt;The constraint is already there&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;Pekin Express. Two people. One euro a day. No GPS. No hotel reservation. No plan beyond “get to the checkpoint before the elimination.”&lt;/p&gt;

&lt;p&gt;The show has been running for years. I’ve watched enough seasons to have a clear, uncomfortable opinion about why most teams lose. It’s not the one the show wants you to have.&lt;/p&gt;

&lt;p&gt;The teams who fail aren’t the ones without skills. They’re the ones who can’t stop waiting for better conditions before deciding to move.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog-post-roadtrip.jpg&quot; alt=&quot;Road through open landscape&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;the-truck-you-didnt-stop&quot;&gt;The truck you didn’t stop&lt;/h2&gt;

&lt;p&gt;There’s a pattern that appears in almost every season.&lt;/p&gt;

&lt;p&gt;A team is standing by the side of a road in the middle of nowhere. A truck drives past. They hesitate. Is it going in the right direction? Do they speak enough of the language? What if there’s a better option in twenty minutes?&lt;/p&gt;

&lt;p&gt;The truck is gone. Another team fifty meters away ran to the road the moment they heard the engine, gestured something universally understandable, and is now in the cab while the first team finishes its deliberation.&lt;/p&gt;

&lt;p&gt;The difference between these two teams is not intelligence. Not preparation. Not experience.&lt;/p&gt;

&lt;p&gt;It’s the tolerance for being wrong.&lt;/p&gt;

&lt;p&gt;The team that stopped the truck doesn’t know where it’s going. They might get out in three kilometers because it’s heading the wrong direction. They accept that. They’ve built into their operating model the assumption that some decisions will be wrong, and that speed of correction matters more than accuracy of first attempt.&lt;/p&gt;

&lt;p&gt;The team that waited had a different implicit model: make fewer, better decisions. Wait for more information. Optimize the choice. They’re still standing by the road when the other team reaches the checkpoint.&lt;/p&gt;

&lt;h2 id=&quot;we-need-more-data-is-not-an-analytical-statement&quot;&gt;“We need more data” is not an analytical statement&lt;/h2&gt;

&lt;p&gt;I want to name something that gets dressed up in analytical language constantly in technical organizations.&lt;/p&gt;

&lt;p&gt;“We need more data before we can decide on the architecture.”&lt;/p&gt;

&lt;p&gt;“We need another quarter of metrics before we can evaluate the team’s performance.”&lt;/p&gt;

&lt;p&gt;“We need to complete the RFP process before we can assess whether to change vendors.”&lt;/p&gt;

&lt;p&gt;These statements sound rigorous. They position the speaker as careful, methodical, evidence-based. In my experience, approximately half the time they’re accurate. And the other half of the time, they’re a political maneuver dressed as analytical discipline.&lt;/p&gt;

&lt;p&gt;Here’s how you tell the difference: ask what specific data point, if provided, would change the decision. If the answer is clear and concrete — “if retention drops below 85%, we change the approach” — it’s analytical. If the answer is vague — “we just need to have a clearer picture” — it’s not.&lt;/p&gt;

&lt;p&gt;The clearer picture is never coming. The picture is always incomplete. The decision is being avoided because making it creates accountability for the outcome, and not making it preserves the ability to say “we hadn’t decided yet” if things go wrong.&lt;/p&gt;

&lt;p&gt;In Pekin Express, that team is still standing by the road when the show ends.&lt;/p&gt;

&lt;h2 id=&quot;what-constraint-actually-does&quot;&gt;What constraint actually does&lt;/h2&gt;

&lt;p&gt;I spent years believing that resources solve problems. More budget, more time, more people, more clarity before committing. I was wrong, and I’ve watched enough technical organizations confirm it that I’m no longer polite about this.&lt;/p&gt;

&lt;p&gt;Constraint doesn’t just create urgency. It changes the decision-making process itself.&lt;/p&gt;

&lt;p&gt;When you have one euro a day, you stop optimizing and start deciding. Not chaotically — strategically. Every interaction has to count. You develop a sharp instinct for what’s worth trying and what isn’t, because the cost of a failed attempt is real and immediate. You become economical with your hypotheses.&lt;/p&gt;

&lt;p&gt;The teams with unlimited resources spend three months planning and ship something with seventeen dependencies, four of which nobody has time to maintain. The constraint teams ship in six weeks, own every decision they made, and can explain the reasoning for each one.&lt;/p&gt;

&lt;p&gt;I’ve seen this repeatedly in technical organizations. The teams that produced the most coherent work were not the ones with the most resources. They were the ones who had internalized a constraint-first mindset — who built features you could actually ship with the team you had, who made architecture decisions you could actually maintain at the current headcount, who said no to things that were theoretically good but practically impossible given the actual operating conditions.&lt;/p&gt;

&lt;p&gt;Unlimited budget doesn’t produce good decisions. Clarity about constraints does.&lt;/p&gt;

&lt;h2 id=&quot;recovery-speed-is-the-measurement-that-doesnt-exist&quot;&gt;Recovery speed is the measurement that doesn’t exist&lt;/h2&gt;

&lt;p&gt;The teams who win Pekin Express are not the ones who make the best first decisions.&lt;/p&gt;

&lt;p&gt;They’re the ones who recover fastest when their decisions don’t work out.&lt;/p&gt;

&lt;p&gt;They get dropped off in the wrong city. They adapt immediately. They stop a truck, discover it’s going the wrong direction, get out three kilometers later, and try again. They don’t spend twenty minutes processing the mistake. They’re already working the next problem.&lt;/p&gt;

&lt;p&gt;This is the capability that actually separates high-functioning technical organizations from struggling ones. And I’ll be direct: most companies hire for first-decision quality and have no idea how to measure recovery speed.&lt;/p&gt;

&lt;p&gt;Job interviews ask how you solved the hard problem. They don’t ask how long it took your team to acknowledge that an approach wasn’t working and change course. They don’t ask how you managed the transition from “we’re committed to this architecture” to “this architecture is wrong and we need to move” without losing six months of progress and three engineers who burned out during the pivot.&lt;/p&gt;

&lt;p&gt;Recovery speed is the metric. A team that decides carefully but recovers slowly will get lapped by a team that moves quickly, fails occasionally, and corrects without drama. Every time.&lt;/p&gt;

&lt;h2 id=&quot;the-constraint-is-already-there&quot;&gt;The constraint is already there&lt;/h2&gt;

&lt;p&gt;The executives I find most effective to work with share one characteristic: they want to understand the actual state of their technical system, including the uncomfortable parts, specifically because a decision is coming and they want to make it with accurate information. Not to delay the decision. To make it faster and better.&lt;/p&gt;

&lt;p&gt;The other kind — the one who commissions a study to validate a direction already decided — wants something else. They want coverage, not diagnosis. They’re not standing by the road waiting for a truck. They’re waiting for someone to confirm that waiting was the right strategy.&lt;/p&gt;

&lt;p&gt;I’m not useful for that second scenario.&lt;/p&gt;

&lt;p&gt;What I find useful to say, clearly: your technical debt is already accumulating. Your architecture already has limits your team is navigating around every sprint. Your system is already gaining complexity at a rate your current headcount cannot absorb indefinitely.&lt;/p&gt;

&lt;p&gt;That’s not a future risk. That’s the road you’re currently standing on. The truck has been passing for months.&lt;/p&gt;

&lt;p&gt;The question is not whether to move. The question is whether you’re going to build a decision-making model that lets you move with 60% of the information, recover fast when you’re wrong, and make the next decision without relitigating the last one.&lt;/p&gt;

&lt;p&gt;Or whether you’re going to wait for better conditions.&lt;/p&gt;

&lt;p&gt;They’re not coming.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;The authority structure that makes the first decision stick — or not — is in &lt;a href=&quot;/2026/03/23/the-referee/&quot;&gt;Three Seconds&lt;/a&gt;. The full diagnostic picture before you move is &lt;a href=&quot;/2026/04/07/looking-inside-the-walls/&quot;&gt;Looking Inside the Walls&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>The Kitchen</title>
      <link href="https://francois.aichelbaum.com/2026/04/14/the-kitchen" />
      <updated>2026-04-14T10:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/04/14/the-kitchen</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-bookmark&quot;&gt;&lt;/i&gt; Contents&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#what-happens-when-the-kitchen-falls-apart&quot; id=&quot;markdown-toc-what-happens-when-the-kitchen-falls-apart&quot;&gt;What happens when the kitchen falls apart&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-kitchen-that-runs-on-heroism&quot; id=&quot;markdown-toc-the-kitchen-that-runs-on-heroism&quot;&gt;The kitchen that runs on heroism&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-brigade-structure-and-why-nobody-implements-it&quot; id=&quot;markdown-toc-the-brigade-structure-and-why-nobody-implements-it&quot;&gt;The brigade structure and why nobody implements it&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-question-the-ceo-doesnt-ask&quot; id=&quot;markdown-toc-the-question-the-ceo-doesnt-ask&quot;&gt;The question the CEO doesn’t ask&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;A good kitchen is invisible.&lt;/p&gt;

&lt;p&gt;The food arrives hot. The timing is right. The table doesn’t wait between courses. From the dining room, the experience is seamless, apparently effortless.&lt;/p&gt;

&lt;p&gt;What the customer doesn’t see: ten minutes ago, the main course station was three dishes behind. Someone called it. Another station covered. A dish got plated in the wrong order and was reset in thirty seconds. The expediter absorbed two problems that never left the kitchen.&lt;/p&gt;

&lt;p&gt;The customer got his food on time. He has no idea anything happened. That’s the point — in a well-run kitchen, the customer never knows what it cost to serve him.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog-post-kitchen.jpg&quot; alt=&quot;Professional kitchen&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-happens-when-the-kitchen-falls-apart&quot;&gt;What happens when the kitchen falls apart&lt;/h2&gt;

&lt;p&gt;From the dining room you can tell. The entrees come out unevenly — some hot, some clearly plated ten minutes ago and kept waiting. The server starts apologizing with a look that says she’s been apologizing since service started. The bread basket gets refilled twice in five minutes and then not at all for half an hour.&lt;/p&gt;

&lt;p&gt;Nobody in the dining room saw the kitchen. But everyone felt that something broke.&lt;/p&gt;

&lt;p&gt;I think about this constantly when I audit an information system.&lt;/p&gt;

&lt;p&gt;The executive team is the dining room. They see what reaches the table. Deliveries, reports, incidents, release notes. They have opinions about team velocity, product quality, technical decisions. All of those opinions are formed from what arrives in front of them.&lt;/p&gt;

&lt;p&gt;They almost never see the kitchen.&lt;/p&gt;

&lt;p&gt;And this is not a metaphor. It’s a structural description of how most technical organizations operate. The people who make technical decisions at the organizational level do so from a position of almost complete information asymmetry. They know what they’re served. They don’t know what it cost to produce it, what was absorbed invisibly, what problem was routed around without being fixed, what the person who made it work has been doing for the last three sprints that isn’t on any roadmap.&lt;/p&gt;

&lt;h2 id=&quot;the-kitchen-that-runs-on-heroism&quot;&gt;The kitchen that runs on heroism&lt;/h2&gt;

&lt;p&gt;The worst technical kitchens I’ve encountered aren’t the ones with bad engineers. They’re the ones with excellent engineers running a system that only works because of them personally.&lt;/p&gt;

&lt;p&gt;One person who knows where everything is. One person who gets called at 3am when the production system breaks. One person whose departure would create an immediate crisis that nobody in management has modeled or prepared for, because as long as he’s there, the crisis doesn’t materialize and nobody needs to confront what his presence is actually hiding.&lt;/p&gt;

&lt;p&gt;The system works. Food comes out. Executives are satisfied with the delivery rate. The kitchen is invisible because one person is making it invisible, every single day, at a personal cost that isn’t on any dashboard.&lt;/p&gt;

&lt;p&gt;Then he leaves. Or burns out. Or gets an offer from a company that pays him what he’s actually worth. And the entire kitchen is exposed at once.&lt;/p&gt;

&lt;p&gt;This is where I find myself being brutally direct with CEOs: your senior engineer’s availability is not a performance indicator. It’s a risk indicator. The fact that he solves every crisis is evidence that the crises are structural and recurring — not that the system is healthy.&lt;/p&gt;

&lt;p&gt;A fire department that puts out fires efficiently is not proof that your building is safe. It’s proof that you have good firefighters. The building is still on fire.&lt;/p&gt;

&lt;h2 id=&quot;the-brigade-structure-and-why-nobody-implements-it&quot;&gt;The brigade structure and why nobody implements it&lt;/h2&gt;

&lt;p&gt;Escoffier’s brigade de cuisine wasn’t invented because restaurants got complicated. It was invented because the model where one head chef does everything by memory while helpers execute blindly doesn’t survive scale.&lt;/p&gt;

&lt;p&gt;Every role defined. Every station autonomous. Every hand-off explicit. The expediter at the pass ensures that timing aligns across stations before anything leaves the kitchen. When it works, a problem at the patissier station doesn’t cascade to the entremettier, because dessert is downstream and isolated from what’s happening at other stations.&lt;/p&gt;

&lt;p&gt;The IS equivalent is obvious and almost universally absent.&lt;/p&gt;

&lt;p&gt;Clear ownership of each technical domain. Explicit interfaces between systems. Defined decision authority. An architecture where a problem in the billing module doesn’t corrupt the delivery pipeline because the coupling was designed out at the start, not discovered during an incident at 2am.&lt;/p&gt;

&lt;p&gt;What I find instead, in almost every engagement: a kitchen where every station is connected to every other station. A change in one place requires three people to coordinate on two other things before anything can deploy. The expediter — usually the CTO or the senior engineer — spends his day managing dependencies rather than ensuring quality.&lt;/p&gt;

&lt;p&gt;You can hire better engineers into that structure. You can run sprints, ceremonies, retrospectives. You will improve the output rate at the margins. You will not solve the architecture.&lt;/p&gt;

&lt;p&gt;The kitchen is badly designed. You’re optimizing the chefs.&lt;/p&gt;

&lt;h2 id=&quot;the-question-the-ceo-doesnt-ask&quot;&gt;The question the CEO doesn’t ask&lt;/h2&gt;

&lt;p&gt;I ask executives one question at the start of every engagement: describe a time in the last six months when a technical project took significantly longer than you expected.&lt;/p&gt;

&lt;p&gt;Every answer has the same shape. We thought it would take three weeks. It took four months. We kept discovering dependencies we didn’t know existed. Every time we fixed one thing, three other things needed attention.&lt;/p&gt;

&lt;p&gt;The CEO tasted a late dish. What he experienced as a delivery problem was a kitchen architecture problem. And he’d been solving it by apologizing to the dining room.&lt;/p&gt;

&lt;p&gt;You can’t fix what you can’t see. You can’t restructure a kitchen you’ve never walked through. Status meetings and sprint reviews are the equivalent of reading the menu — they tell you what’s supposed to arrive, not what’s actually happening between the stations.&lt;/p&gt;

&lt;p&gt;The plates tell you the symptom. The kitchen shows you the cause. And until you’ve been in the kitchen — not for a tour, but to understand how it actually runs, where the dependencies live, what the known structural weaknesses are, who is the single point of failure — you’re making decisions about performance based on incomplete information.&lt;/p&gt;

&lt;p&gt;Most executives haven’t been in the kitchen. Because the kitchen is the engineers’ domain. The food is the CEO’s concern.&lt;/p&gt;

&lt;p&gt;This separation is expensive. More expensive than the four-month project that took eighteen months. Because the same structural cause will produce the same structural effect, in the next project, and the one after that, until someone walks through the kitchen and decides to redesign it.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;The IS equivalent of a kitchen running on heroism is described in &lt;a href=&quot;/2026/04/07/looking-inside-the-walls/&quot;&gt;Looking Inside the Walls&lt;/a&gt;. The decision paralysis that keeps bad kitchens running is &lt;a href=&quot;/2026/04/21/pekin-express/&quot;&gt;Pekin Express&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Looking Inside the Walls</title>
      <link href="https://francois.aichelbaum.com/2026/04/07/looking-inside-the-walls" />
      <updated>2026-04-07T10:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/04/07/looking-inside-the-walls</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-bookmark&quot;&gt;&lt;/i&gt; Contents&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#nobody-reads-page-11&quot; id=&quot;markdown-toc-nobody-reads-page-11&quot;&gt;Nobody reads page 11&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-real-reason-nobody-looks&quot; id=&quot;markdown-toc-the-real-reason-nobody-looks&quot;&gt;The real reason nobody looks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-the-survey-actually-reveals&quot; id=&quot;markdown-toc-what-the-survey-actually-reveals&quot;&gt;What the survey actually reveals&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-decision-to-proceed-anyway&quot; id=&quot;markdown-toc-the-decision-to-proceed-anyway&quot;&gt;The decision to proceed anyway&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-youre-deciding-when-you-dont-look&quot; id=&quot;markdown-toc-what-youre-deciding-when-you-dont-look&quot;&gt;What you’re deciding when you don’t look&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;I know people who signed property contracts without reading the diagnostic report. Not naive people. Smart people with good judgment and functioning careers, who spent months finding the right property, found it, and then treated the due diligence as a bureaucratic formality that stood between them and the decision they’d already made.&lt;/p&gt;

&lt;p&gt;The crack was in the report. Page 11. Forty thousand euros they hadn’t planned for.&lt;/p&gt;

&lt;p&gt;They’d been shown the property. They liked it. The rest was detail.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog-post-house-survey.jpg&quot; alt=&quot;Building inspection&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;nobody-reads-page-11&quot;&gt;Nobody reads page 11&lt;/h2&gt;

&lt;p&gt;I am searching for a space for a project. Every visit starts the same way. Before we discuss price, before we discuss layout: who ran the diagnostics, when, and can I read the full report?&lt;/p&gt;

&lt;p&gt;I’ve walked away from properties that looked perfect on the surface. Right neighborhood, right price, right light. But the asbestos survey was from 2009. The electrical assessment was marked incomplete. The structural report had a note that the inspector himself described as “requiring further investigation.”&lt;/p&gt;

&lt;p&gt;That note is the whole story. When the inspector says further investigation, he means: I found something I couldn’t resolve. That’s not a minor remark buried in an appendix. That’s the professional who examined the building telling you there’s something he couldn’t see clearly and that warrants a specialist.&lt;/p&gt;

&lt;p&gt;In property, the diagnostic is legally mandatory. The system forces the look because the regulators understood, correctly, that almost nobody does it voluntarily. Without the legal requirement, the market would run entirely on presentation.&lt;/p&gt;

&lt;p&gt;In tech, there’s no legal requirement. You can hire a new CTO, launch a full rebuild, raise a funding round, sign an enterprise contract — without anyone having examined the actual state of your information system. Nothing stops you. Nothing forces the look.&lt;/p&gt;

&lt;p&gt;And so most companies don’t look. They buy on presentation.&lt;/p&gt;

&lt;h2 id=&quot;the-real-reason-nobody-looks&quot;&gt;The real reason nobody looks&lt;/h2&gt;

&lt;p&gt;I want to be direct about something that rarely gets said: most leadership teams avoid the IS audit not because they don’t know it exists, but because they sense what it will find.&lt;/p&gt;

&lt;p&gt;They’ve been managing around problems they can’t name for months. Deliveries that take longer than they should. Decisions that require five people to coordinate something that should require one. Specific initiatives that always get blocked at the same point. They know something is wrong. They don’t know exactly what.&lt;/p&gt;

&lt;p&gt;Commissioning an audit makes the invisible visible. And once it’s visible, you’re obligated to address it. Or you’re explicitly choosing not to, which is a different kind of accountability.&lt;/p&gt;

&lt;p&gt;The survey creates obligation. Not commissioning it preserves optionality — the comfortable fiction that maybe it’s not that bad, maybe it resolves itself, maybe next quarter the context will be better.&lt;/p&gt;

&lt;p&gt;I’ve seen this explicitly. A CEO who told me, directly and without embarrassment: “I know we have technical debt. I’d rather not know exactly how much until after the fundraise closes.” He wasn’t ignorant. He was managing his information exposure deliberately. The fundraise closed. He called me three months later. The technical debt had not respected his timeline.&lt;/p&gt;

&lt;h2 id=&quot;what-the-survey-actually-reveals&quot;&gt;What the survey actually reveals&lt;/h2&gt;

&lt;p&gt;The reaction I see most often when I deliver a technical survey isn’t panic. It’s relief.&lt;/p&gt;

&lt;p&gt;The executive has been living with a weight he couldn’t name or locate. Specific decisions kept taking longer than expected. Certain questions couldn’t be answered without involving four people and taking two weeks. There was a pattern, a recurring friction, that he’d learned to route around because he didn’t know what was causing it.&lt;/p&gt;

&lt;p&gt;The survey names it. Gives it edges and a scope. Turns “there’s something wrong with the way we make technical decisions” into “your authentication layer is tightly coupled to your billing module, which means any change to pricing logic requires a full regression test across two systems that have no separation of concerns.”&lt;/p&gt;

&lt;p&gt;Before the name, it’s anxiety. After the name, it’s a project. Projects are manageable. Anxiety is not.&lt;/p&gt;

&lt;p&gt;The survey didn’t create the problem. The problem existed long before we looked. The survey changed it from the vague category to the specific one, and specific problems have solutions.&lt;/p&gt;

&lt;h2 id=&quot;the-decision-to-proceed-anyway&quot;&gt;The decision to proceed anyway&lt;/h2&gt;

&lt;p&gt;Here’s where I need to be honest about what happens after the survey, because it’s not always what you’d hope.&lt;/p&gt;

&lt;p&gt;I’ve had clients who read the report, understood it completely, and decided to proceed with the acquisition or the launch anyway. Knowing the roof needed replacing. Having read page 11 this time.&lt;/p&gt;

&lt;p&gt;That’s not necessarily wrong. You can buy the house with the roof if the price reflects it and you’ve allocated the budget. You can launch on architecture with known debt if you’ve modeled the risk and have a remediation plan with real dates on it.&lt;/p&gt;

&lt;p&gt;What’s not acceptable is the CEO reading the executive summary, asking two questions, and announcing that they’re proceeding with the product launch because the fundraise timeline doesn’t allow a four-month architecture pause — and then being surprised eight months later when the architecture breaks at the worst possible moment.&lt;/p&gt;

&lt;p&gt;Technical debt doesn’t respect launch timelines. It surfaces at maximum load: the product launch, the enterprise contract, the press mention that brings ten times normal traffic. The system held through the testing environment. It holds through the pilot. It fails the day you need it most, because the day you need it most is the first time it’s under production conditions at production scale.&lt;/p&gt;

&lt;p&gt;At that point it doesn’t cost four months. It costs eight months, a botched launch, a client who left, and three engineers who are quietly updating their CVs.&lt;/p&gt;

&lt;h2 id=&quot;what-youre-deciding-when-you-dont-look&quot;&gt;What you’re deciding when you don’t look&lt;/h2&gt;

&lt;p&gt;Not reading the report is a decision. It’s a decision to proceed with a known information gap, dressed as an oversight.&lt;/p&gt;

&lt;p&gt;I’m taking time on a current project to look properly before we commit. Some people in the room think we’re moving too slowly. They’re counting the weeks we’re not producing deliverables.&lt;/p&gt;

&lt;p&gt;I’m counting the problems we won’t have in eight months. That math always comes out the same way.&lt;/p&gt;

&lt;p&gt;The question isn’t whether to commission a technical survey of your IS. The question is whether you’re prepared to act on what it finds, including the findings that are inconvenient for the decisions you’ve already leaned toward.&lt;/p&gt;

&lt;p&gt;If the answer is no — if you know in advance that the survey won’t change what you’re going to do — then you’re not missing a diagnostic. You’re missing the organizational honesty to admit you’ve already decided.&lt;/p&gt;

&lt;p&gt;That’s a different problem. And it doesn’t have a technical solution.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;Why executives avoid the diagnostic is covered in &lt;a href=&quot;/2026/03/30/prescribing-without-examining/&quot;&gt;Prescribing Without Examining&lt;/a&gt;. Why the same kitchen breaks every time is in &lt;a href=&quot;/2026/04/14/the-kitchen/&quot;&gt;The Kitchen&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Prescribing Without Examining</title>
      <link href="https://francois.aichelbaum.com/2026/03/30/prescribing-without-examining" />
      <updated>2026-03-30T10:00:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2026/03/30/prescribing-without-examining</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-bookmark&quot;&gt;&lt;/i&gt; Contents&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#the-brief-already-has-the-conclusion&quot; id=&quot;markdown-toc-the-brief-already-has-the-conclusion&quot;&gt;The brief already has the conclusion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-consulting-industry-has-a-structural-incentive-to-keep-you-sick&quot; id=&quot;markdown-toc-the-consulting-industry-has-a-structural-incentive-to-keep-you-sick&quot;&gt;The consulting industry has a structural incentive to keep you sick&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#referred-pain&quot; id=&quot;markdown-toc-referred-pain&quot;&gt;Referred pain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-questions-i-ask-that-arent-in-the-brief&quot; id=&quot;markdown-toc-the-questions-i-ask-that-arent-in-the-brief&quot;&gt;The questions I ask that aren’t in the brief&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-happens-when-the-diagnosis-is-inconvenient&quot; id=&quot;markdown-toc-what-happens-when-the-diagnosis-is-inconvenient&quot;&gt;What happens when the diagnosis is inconvenient&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;You would never accept a doctor who walks into the examination room, hears you say “my head hurts,” and writes a prescription without touching you.&lt;/p&gt;

&lt;p&gt;In medicine, that’s a fault. It can cost a doctor their license.&lt;/p&gt;

&lt;p&gt;In tech consulting, it’s the business model.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog-post-medical.jpg&quot; alt=&quot;Doctor with stethoscope&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;the-brief-already-has-the-conclusion&quot;&gt;The brief already has the conclusion&lt;/h2&gt;

&lt;p&gt;I receive these kinds of briefs regularly. Not occasionally. Regularly.&lt;/p&gt;

&lt;p&gt;“Our team is slow. We need a process audit.” Translation: confirm that the problem is the team lead and recommend replacing them. We’ve already told him his contract isn’t being renewed. We need documentation for HR.&lt;/p&gt;

&lt;p&gt;“Our cloud costs are out of control. We need an optimization plan.” Translation: confirm that the migration was poorly handled and recommend a new vendor. We’ve already started conversations with AWS. We need an outside voice to close the internal debate.&lt;/p&gt;

&lt;p&gt;“Our CTO isn’t performing. We need an outside view.” Translation: we’ve decided to let him go. We need a professional who’ll write it up in a way that holds legally and looks objective.&lt;/p&gt;

&lt;p&gt;I’ve turned down these missions. Not out of principle — principle is a luxury. Because the work is structurally corrupt. You spend the entire engagement justifying a conclusion that existed before you started. Anything you find that doesn’t support the original diagnosis gets quietly deprioritized. And at the end, the client gets what they paid for, which was never the truth about their system. It was ammunition.&lt;/p&gt;

&lt;p&gt;The consultant who takes that work isn’t doing consulting. They’re doing litigation support without the courtroom.&lt;/p&gt;

&lt;h2 id=&quot;the-consulting-industry-has-a-structural-incentive-to-keep-you-sick&quot;&gt;The consulting industry has a structural incentive to keep you sick&lt;/h2&gt;

&lt;p&gt;Here’s what I rarely hear said directly: the dominant economic model in tech consulting rewards the prescription, not the diagnosis.&lt;/p&gt;

&lt;p&gt;If I run a team of fifty consultants and I need them billable, I need ongoing engagements. An engagement that finds the problem, solves it in four months, and ends is bad for revenue. An engagement that validates a migration, manages the migration, then optimizes the result of the migration is eighteen months of billings.&lt;/p&gt;

&lt;p&gt;I’m not describing bad actors. I’m describing rational actors in a system that rewards perpetuation over resolution.&lt;/p&gt;

&lt;p&gt;The client is often not aware of this. They’ve hired a firm. The firm has good people. The people are well-intentioned. But the incentive structure means that the questions the firm asks are shaped by what they can subsequently sell, not by what the client actually needs to understand.&lt;/p&gt;

&lt;p&gt;This is why “referred pain” is so prevalent and so expensive.&lt;/p&gt;

&lt;h2 id=&quot;referred-pain&quot;&gt;Referred pain&lt;/h2&gt;

&lt;p&gt;In medicine, referred pain means the injury is in one place and the pain manifests somewhere else entirely. You treat the shoulder. The problem is in the heart.&lt;/p&gt;

&lt;p&gt;Tech systems have referred pain as their default mode.&lt;/p&gt;

&lt;p&gt;A cloud bill that keeps growing is almost never a cloud problem. It’s usually an architecture decision made under time pressure three years ago, without visibility on what the business would become. The engineer made a reasonable choice given what they knew. The business grew in a direction nobody fully anticipated. The architecture didn’t adapt. The bill reflects the structural gap, not cloud mismanagement.&lt;/p&gt;

&lt;p&gt;You hire a cloud optimization consultant. You shave 22% off the invoice in quarter one. You’re satisfied. In quarter three, the bill is back at 90% of where it started, because you changed the symptom, not the cause. The consultant will offer you a phase two engagement.&lt;/p&gt;

&lt;p&gt;A CTO who “isn’t performing” is almost never performing badly on purpose. More often, he’s navigating an organization that gave him the title without the authority, expects him to deliver technical transformation while fighting every budget conversation alone, and has a product roadmap that changes direction every quarter. He can’t perform because the structural conditions for performance don’t exist.&lt;/p&gt;

&lt;p&gt;Replace him. You get a new person in the same structural trap. I’ve watched this happen. The new CTO quit eight months in. The outgoing CTO found a role at a company with actual governance. The board called it a hiring failure.&lt;/p&gt;

&lt;p&gt;It was a diagnostic failure.&lt;/p&gt;

&lt;h2 id=&quot;the-questions-i-ask-that-arent-in-the-brief&quot;&gt;The questions I ask that aren’t in the brief&lt;/h2&gt;

&lt;p&gt;I start every engagement by asking things the brief didn’t ask for.&lt;/p&gt;

&lt;p&gt;“Before we look at team velocity — walk me through the last three times a technical decision was overridden after it was made.” That’s not a process question. That’s a governance question. It tells me whether the CTO leads or manages upward anxiety. The answer usually comes with a pause.&lt;/p&gt;

&lt;p&gt;“Show me the last significant vendor choice that went against what the technical team recommended.” If it exists, the story it tells about authority and accountability in that organization is almost always the real brief.&lt;/p&gt;

&lt;p&gt;I’ve had clients tell me these questions are off-topic. “We hired you for the cloud costs.”&lt;/p&gt;

&lt;p&gt;I keep asking anyway. Because the referring pain is never in the cloud bill, and a doctor who only examines where it hurts is going to miss the thing that matters.&lt;/p&gt;

&lt;h2 id=&quot;what-happens-when-the-diagnosis-is-inconvenient&quot;&gt;What happens when the diagnosis is inconvenient&lt;/h2&gt;

&lt;p&gt;Finding the problem is not the hard part. Problems are visible once you stop looking where you were told to look.&lt;/p&gt;

&lt;p&gt;The hard part is delivering a finding that contradicts the decision the client has already committed to emotionally. That’s when the room gets quiet in an uncomfortable way.&lt;/p&gt;

&lt;p&gt;I’ve delivered reports that said the CTO was not the problem. That the architecture was sound given the constraints. That the cloud costs reflected real business growth, not waste. Three times in four, the client takes the report, says it’s very interesting, and proceeds with the replacement or migration they had already decided on.&lt;/p&gt;

&lt;p&gt;That’s their right. It’s their company.&lt;/p&gt;

&lt;p&gt;But here’s what I want to be clear about: the problem doesn’t go away because you changed the person or the vendor. The structural conditions that produced the symptoms remain intact. In twelve months, you’ll have new symptoms. And someone will recommend a new prescription.&lt;/p&gt;

&lt;p&gt;The question isn’t whether your technical situation is a problem. It’s whether you actually want to know what’s causing it. Those two questions have different answers more often than anyone in this industry admits.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;The authority problem behind “who makes the call” is explored in &lt;a href=&quot;/2026/03/23/the-referee/&quot;&gt;Three Seconds&lt;/a&gt;. The structural consequence — an IS nobody has properly examined — is in &lt;a href=&quot;/2026/04/07/looking-inside-the-walls/&quot;&gt;Looking Inside the Walls&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Three Seconds</title>
      <link href="https://francois.aichelbaum.com/2026/03/23/the-referee" />
      <updated>2026-03-23T10:00:00+01:00</updated>
      <id>https://francois.aichelbaum.com/2026/03/23/the-referee</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-bookmark&quot;&gt;&lt;/i&gt; Contents&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#300-decisions-per-match-with-incomplete-information&quot; id=&quot;markdown-toc-300-decisions-per-match-with-incomplete-information&quot;&gt;300 decisions. Per match. With incomplete information.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-executives-in-that-room-had-been-spectators&quot; id=&quot;markdown-toc-the-executives-in-that-room-had-been-spectators&quot;&gt;The executives in that room had been spectators&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#not-deciding-is-also-a-decision&quot; id=&quot;markdown-toc-not-deciding-is-also-a-decision&quot;&gt;Not deciding is also a decision&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#most-companies-dont-know-who-the-referee-is&quot; id=&quot;markdown-toc-most-companies-dont-know-who-the-referee-is&quot;&gt;Most companies don’t know who the referee is&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;I sponsor the SCO. I hold a corporate box. I go to almost every home game.&lt;/p&gt;

&lt;p&gt;For years I thought I understood football. I had opinions about the referee. Loud ones, sometimes. Like every executive who has opinions about their IS without having looked at it.&lt;/p&gt;

&lt;p&gt;Then I spent an evening with Pierre Chevreux — 13 years as a Ligue 1 assistant referee, now running a café in Angers. He dismantled something I’d been doing professionally for twenty-five years without knowing it.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/blog-post-referee.jpg&quot; alt=&quot;Referee on a pitch&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;300-decisions-per-match-with-incomplete-information&quot;&gt;300 decisions. Per match. With incomplete information.&lt;/h2&gt;

&lt;p&gt;300 decisions per match. One every 18 seconds. Some clusters of ten decisions in under a minute. No pause, no rewind, no committee, no “let’s schedule a follow-up.”&lt;/p&gt;

&lt;p&gt;Pierre described a Bordeaux-PSG where the keeper picks up a backpass because Ibrahimovic is charging. Obvious foul. Pierre sees it clearly from his position on the line, signals it. The central referee doesn’t follow. And in a trio, you trust each other. You don’t override each other publicly. Pierre swallows it. The decision holds. The match moves on.&lt;/p&gt;

&lt;p&gt;What struck me wasn’t the injustice. It was the architecture.&lt;/p&gt;

&lt;p&gt;Each official has a zone, a role, an angle of vision. The system only works if everyone accepts its constraints. The moment one person starts overriding another’s zone, the whole structure collapses. What looks like a wrong call from the stands is often the correct application of a governance model the crowd doesn’t know exists.&lt;/p&gt;

&lt;h2 id=&quot;the-executives-in-that-room-had-been-spectators&quot;&gt;The executives in that room had been spectators&lt;/h2&gt;

&lt;p&gt;Everyone in that room — including me — had spent years building confident opinions about referee quality. From sixty meters away. At a sprint. Under floodlights. With thirty thousand people shouting in our ears.&lt;/p&gt;

&lt;p&gt;We had never seriously considered what the role actually requires.&lt;/p&gt;

&lt;p&gt;This is the exact cognitive posture most executives bring to their information system. They’ve watched it from the stands. They have opinions. The system is slow. The team doesn’t deliver. The CTO doesn’t communicate. The architecture is outdated.&lt;/p&gt;

&lt;p&gt;All of that might be true. But it’s spectator analysis. Built from what reaches the dining room, not from what happens in the kitchen. Built from the output, not from understanding the constraints that produced it.&lt;/p&gt;

&lt;p&gt;I’ve sat across from CEOs who were completely convinced their architecture problem was a people problem. Three months into the engagement, it turned out their “slow team” was navigating an undocumented maze of dependencies that took me two weeks to fully map. The team wasn’t slow. They were doing the equivalent of refereeing with one eye, one arm, and a rulebook written in a language nobody remembered having learned.&lt;/p&gt;

&lt;p&gt;The CEO had watched the match. He hadn’t looked at the referee’s operating conditions.&lt;/p&gt;

&lt;h2 id=&quot;not-deciding-is-also-a-decision&quot;&gt;Not deciding is also a decision&lt;/h2&gt;

&lt;p&gt;The part that stopped me cold: Pierre said, not saying anything is also a decision.&lt;/p&gt;

&lt;p&gt;A referee’s silence has consequences exactly like his whistle. Except we never replay the abstentions after the match. We only analyze the interventions. The non-calls, the moments where play was allowed to continue — nobody reviews those.&lt;/p&gt;

&lt;p&gt;I think about this in every COMEX I’ve observed where a technical decision was avoided for months. The call to replace a brittle architecture. The call to exit a vendor relationship that costs more than it produces. The call to tell the board that the product roadmap assumes a technical capacity the team doesn’t have.&lt;/p&gt;

&lt;p&gt;Silence is not neutrality. Silence is a decision with deferred consequences. And the deferred consequences in tech are almost always more expensive than the call would have been, because technical debt compounds exactly like financial debt — with interest.&lt;/p&gt;

&lt;p&gt;The organizations I’ve seen handle this well have one thing in common: someone with the actual authority to make a call and have it hold. Not just the title. Not the meeting organizer. The person whose whistle the rest of the organization respects without relitigating it.&lt;/p&gt;

&lt;h2 id=&quot;most-companies-dont-know-who-the-referee-is&quot;&gt;Most companies don’t know who the referee is&lt;/h2&gt;

&lt;p&gt;Here’s the question I now ask at the start of every engagement, and it’s rarely answered cleanly:&lt;/p&gt;

&lt;p&gt;In your organization, who has the actual authority to make a technical call and have it hold?&lt;/p&gt;

&lt;p&gt;Not who has the title. Not who calls the meetings. Who, when they blow the whistle, has the rest of the organization move forward without negotiating the call?&lt;/p&gt;

&lt;p&gt;The most common answer: the CEO thinks it’s the CTO. The CTO thinks he needs buy-in from the CFO. The CFO thinks it’s a product question. Nobody whistles. The play continues. The foul compounds. And eighteen months later, you’re looking at a bill that represents the accumulated cost of decisions that were never made when they should have been.&lt;/p&gt;

&lt;p&gt;Pierre Chevreux made 300 calls per match. He had authority within his zone. He trusted the system. He delivered clean results under conditions most executive teams would find unworkable.&lt;/p&gt;

&lt;p&gt;Your organization makes fewer decisions than a Ligue 1 referee. It takes longer. And the authority structure is less clear.&lt;/p&gt;

&lt;p&gt;That’s not a football problem.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;em&gt;On a related note: the same executives who can’t name their referee are often the same ones who pre-write the verdict before commissioning the audit. &lt;a href=&quot;/2026/03/30/prescribing-without-examining/&quot;&gt;Prescribing Without Examining&lt;/a&gt; goes into that.&lt;/em&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Social benefits and risks from AI</title>
      <link href="https://francois.aichelbaum.com/2023/01/23/social-benefits-and-risks-from-ai" />
      <updated>2023-01-23T08:01:01+01:00</updated>
      <id>https://francois.aichelbaum.com/2023/01/23/social-benefits-and-risks-from-ai</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; Social benefits and risks from AI&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#will-it-help-or-will-it-hurt&quot; id=&quot;markdown-toc-will-it-help-or-will-it-hurt&quot;&gt;Will it help or will it hurt?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-social-benefit&quot; id=&quot;markdown-toc-the-social-benefit&quot;&gt;The social benefit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-social-risk&quot; id=&quot;markdown-toc-the-social-risk&quot;&gt;The social risk&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#some-examples&quot; id=&quot;markdown-toc-some-examples&quot;&gt;Some examples&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot; id=&quot;markdown-toc-conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;There’s a lot of talk about the benefits and risks of artificial intelligence (AI). Some people believe that AI will make our lives better, while others fear that it could do harm. We’re not going to settle that debate here–but we will look at what some experts say about how AI might affect society in general.&lt;/p&gt;

&lt;h2 id=&quot;will-it-help-or-will-it-hurt&quot;&gt;Will it help or will it hurt?&lt;/h2&gt;

&lt;p&gt;It’s unclear whether AI will help or hurt society, but there are both risks and benefits associated with the technology.&lt;/p&gt;

&lt;p&gt;AI is a tool, like any other technology: it has the potential to be used for good or bad. It depends on how it is applied. There are many examples of AI being used for good: for example, Facebook’s Messenger bot that helps identify suicidal posts; or Microsoft’s Tay chatbot that was trained on twitter data and quickly became racist after interacting with real people online (in response to this failure, Microsoft decided not to release its new teen girl chatbot Zo).&lt;/p&gt;

&lt;p&gt;It’s not all about the technology though—it’s also about how people use it.&lt;/p&gt;

&lt;p&gt;When a company becomes a monopoly, it can charge higher prices than would be possible with competition. This makes consumers worse off because they have to pay more for products or services that would cost less if there were multiple companies in the market. In addition, monopolies reduce the incentive for firms to innovate new products because there is no reason to improve on their existing product if they don’t have any competitors that can offer something different. This is why we need AI more than ever before. The world is changing faster than ever before, and it’s only going to get faster. We can either embrace those changes or fight them - but if we want the best possible future for ourselves and our children, then we have no choice but to embrace them. The same technology can be used for both good and bad. For example, the internet has been used to create jobs that didn’t exist before (like being an Uber driver) but also allowed terrorists to recruit and plan attacks…&lt;/p&gt;

&lt;p&gt;AI is no different. It will be used for both good and bad purposes, but the good uses far outweigh the bad ones. That’s why it’s so important that we continue to develop AI technology so that it can help humanity solve some of its biggest problems&lt;/p&gt;

&lt;h2 id=&quot;the-social-benefit&quot;&gt;The social benefit&lt;/h2&gt;

&lt;p&gt;The social benefit of AI is that it will make life better for everyone.&lt;/p&gt;

&lt;p&gt;AI will help us find jobs, learn new skills, and make better decisions. It will help us solve problems in new ways and enjoy life more than ever before. And it will also connect people together in ways that were never possible before - bringing families closer together and making the world a better place for all of us to live in.&lt;/p&gt;

&lt;p&gt;AI is already making a huge difference in the lives of many people. AI can help us find jobs, learn new skills and make better decisions. AI will help us solve problems in new ways and enjoy life more than ever before.&lt;/p&gt;

&lt;p&gt;AI will connect people together in ways that were never possible before. AI will bring families closer together and make the world a better place for all of us to live in.
AI is already making a huge difference in the lives of many people.&lt;/p&gt;

&lt;p&gt;AI can help us find jobs, learn new skills and make better decisions. AI will help us solve problems in new ways and enjoy life more than ever before. AI will connect people together in ways that were never possible before - bringing families closer together and making the world a better place for all of us to live in. AI is already making a huge difference in the lives of many people.&lt;/p&gt;

&lt;h2 id=&quot;the-social-risk&quot;&gt;The social risk&lt;/h2&gt;

&lt;p&gt;The social risk of AI is that the technology companies will turn into monopolies.&lt;/p&gt;

&lt;p&gt;Monopolies are companies that dominate an industry and have no or few competitors. Examples of monopolies include Starbucks, Walmart, and Google. When a firm becomes a monopoly, it can charge higher prices than would be possible with competition. This makes consumers worse off because they have to pay more for products or services that would cost less if there were multiple companies in the market. In addition, monopolies reduce the incentive for firms to innovate new products because there is no reason to improve on their existing product if they don’t have any competitors that can offer something different.&lt;/p&gt;

&lt;p&gt;As AI technology continues to progress, the risk that technology companies will become monopolies increases. With the power of AI, companies will be able to create products and services that are so advanced that no other company can compete. This could lead to a situation where a single company controls the entire market, leaving consumers with no other choice.&lt;/p&gt;

&lt;p&gt;This could result in a decrease in consumer welfare and an increase in social inequality.&lt;/p&gt;

&lt;h2 id=&quot;some-examples&quot;&gt;Some examples&lt;/h2&gt;

&lt;h3 id=&quot;chatgpt-and-copyai&quot;&gt;Chatgpt and Copy.ai&lt;/h3&gt;

&lt;p&gt;They are both two examples of how AI can be used for good.&lt;/p&gt;

&lt;p&gt;Chatgpt is an example of how AI can be used to help people with autism. Chatgpt is a chatbot that helps people learn social skills, including what it means to be autistic and ways they can interact with others. It’s designed as a resource for children who have been diagnosed with autism and their parents, but anyone can use it too!&lt;/p&gt;

&lt;p&gt;Copy.ai is another example of how AI can be used for good: It’s an intelligent personal assistant that learns from your behavior and helps you make decisions based on what you’ve done before. For example, if you want to make sure you never forget about a dentist appointment again (and who doesn’t?), Copy will remind you every day at noon—unless it notices that Dr. Snickerdoodle has become your dentist after all, in which case he’ll let himself into your office space at 6 pm every evening until he sees the light go off in his office next door when everyone leaves after 7 pm.”&lt;/p&gt;

&lt;p&gt;As a society, we need to be careful about how we approach AI. I believe there is an ethical dimension to AI that needs more attention. This means thinking about the implications of AI and how it could impact our lives before it becomes mainstream. It’s important for us to have conversations now—about who will control this technology and how it will be used in society—rather than reacting once it’s already out there.&lt;/p&gt;

&lt;p&gt;Another area I’m interested in is how AI can help us with our emotions. For example, we could use a system like this to help people who are suffering from depression or anxiety.&lt;/p&gt;

&lt;h3 id=&quot;midjourney-can-draw-it-for-you&quot;&gt;Midjourney can draw it for you&lt;/h3&gt;

&lt;p&gt;Midjourney is a platform designed to connect people with similar values and interests.&lt;/p&gt;

&lt;p&gt;Midjourney is a social network designed to help you connect with like-minded people. Whether you’re looking to make friends, find a partner or a business connection, Midjourney makes it easy for you to find them. Midjourney isn’t just another place where people can share their ideas—it’s also a place where people can come together and support each other in their shared values.&lt;/p&gt;

&lt;p&gt;It’s a revolutionary social network that has been designed to make it easier than ever to meet like-minded people. Whether you’re looking to make friends, find a romantic partner, or establish a business connection, Midjourney makes it simple to find the right person.&lt;/p&gt;

&lt;p&gt;It is the place where you can connect with other people who are interested in self-development, personal growth and spiritual awareness. We know that there are many ways to achieve these goals, so we don’t want to limit what you share.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Mijourney top list&quot; src=&quot;/images/2023/01/midjourney-top.png&quot; title=&quot;Midjourney top list&quot; srcset=&quot;/assets/resized/480/midjourney-top.png 480w,/assets/resized/800/midjourney-top.png 800w, /images/2023/01/midjourney-top.png 1077w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Midjourney top list&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Midjourney is revolutionizing the way people connect with each other. It’s a social network designed to help you find like-minded people and build meaningful relationships. Whether you’re looking for a friend, a partner, or a business connection, Midjourney makes it easy to find them.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;As you can see, there are a lot of benefits and risks associated with AI. The technology is still in its early stages, so it’s difficult to predict exactly how it will affect our lives. We do know that AI will have a big impact on our society and economy as it continues to develop over time.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Only the bias is biased</title>
      <link href="https://francois.aichelbaum.com/2023/01/06/only-the-bias-is-biased" />
      <updated>2023-01-06T08:01:01+01:00</updated>
      <id>https://francois.aichelbaum.com/2023/01/06/only-the-bias-is-biased</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; Only the bias is biased&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#types-of-bias&quot; id=&quot;markdown-toc-types-of-bias&quot;&gt;Types of bias&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#impact-of-bias&quot; id=&quot;markdown-toc-impact-of-bias&quot;&gt;Impact of bias&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-next&quot; id=&quot;markdown-toc-what-next&quot;&gt;What next?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot; id=&quot;markdown-toc-conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;Cognitive bias is a phenomenon that occurs when our brain processes information in a way that is systematically different from the way a rational, unbiased mind would. These biases can affect our decision-making, our perceptions and our memory, and they can have a significant impact on our lives.&lt;/p&gt;

&lt;h2 id=&quot;types-of-bias&quot;&gt;Types of bias&lt;/h2&gt;

&lt;p&gt;There are many different types of cognitive biases, and they can be grouped into several categories. Some common types of cognitive biases include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Confirmation bias: This is the tendency to seek out and give more weight to information that confirms our preexisting beliefs and assumptions. This bias can lead us to ignore or downplay evidence that contradicts our beliefs, and it can make it difficult for us to change our minds even when presented with new or conflicting information.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Anchoring bias: This is the tendency to give too much weight to the first piece of information we receive, even if it is not necessarily relevant or accurate. For example, if we are asked to estimate the number of jelly beans in a jar and are first told that there are 50, we may anchor our subsequent estimates to that initial number, even if it is not a reasonable estimate.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Framing effect: This is the way in which the way a problem or situation is presented can influence our decision-making. For example, if we are asked whether we would rather have a 60% chance of winning $100 or a 40% chance of winning $150, we may choose the first option because it is framed in terms of probability, even though the second option is clearly a better deal.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Representativeness bias: This is the tendency to judge the likelihood of an event based on how closely it resembles our mental concept of that event, rather than on statistical analysis. For example, if we are asked to estimate the likelihood that a person is a doctor based on the fact that they are wearing a white coat and carrying a stethoscope, we may judge that the probability is high, even though there are many other professions that also involve wearing a white coat and using a stethoscope.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img alt=&quot;Perceval and Karadoc - Kaamelott&quot; src=&quot;/images/2023/01/perceval-karadoc.jpg&quot; title=&quot;Perceval and Karadoc - Kaamelott&quot; srcset=&quot;/assets/resized/480/perceval-karadoc.jpg 480w,/assets/resized/800/perceval-karadoc.jpg 800w, /images/2023/01/perceval-karadoc.jpg 1280w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Perceval and Karadoc - Kaamelott&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These are just a few examples of the many cognitive biases that can influence our thinking and decision-making. Other common biases include the availability heuristic (the tendency to judge the likelihood of an event based on how easily we can recall similar events), the sunk cost fallacy (the tendency to continue investing in a project or course of action because of the resources we have already invested), and the halo effect (the tendency to judge a person or thing more favorably based on one positive characteristic).&lt;/p&gt;

&lt;h2 id=&quot;impact-of-bias&quot;&gt;Impact of bias&lt;/h2&gt;

&lt;p&gt;Cognitive biases can have a significant impact on our lives and decision-making, and they can lead us to make judgments that are not based on accurate or objective information. For example, confirmation bias can make it difficult for us to accept new or conflicting information, even when it is supported by evidence, and the sunk cost fallacy can lead us to continue investing in a project even when it is not likely to be successful.&lt;/p&gt;

&lt;p&gt;It is important to be aware of these biases and to try to correct for them as much as possible in order to make more informed and rational decisions. There are several strategies that can help us to mitigate the effects of cognitive bias, including seeking out diverse sources of information, questioning our assumptions and beliefs, and using tools like decision trees and cost-benefit analysis to help us make more objective decisions.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Double Impact&quot; src=&quot;/images/2023/01/double-impact.png&quot; title=&quot;Double Impact&quot; srcset=&quot;/assets/resized/480/double-impact.png 480w,/assets/resized/800/double-impact.png 800w,/assets/resized/1400/double-impact.png 1400w, /images/2023/01/double-impact.png 2400w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Double Impact&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By understanding the ways in which our brains can distort or simplify information, we can work to overcome cognitive bias and make more informed and rational decisions. This is important not only for our personal lives, but also for the many complex problems and challenges we face as a society.&lt;/p&gt;

&lt;p&gt;Cognitive biases can have a significant impact on how we evaluate and make decisions about risks. The availability heuristic, for example, can lead us to overestimate the likelihood of rare or highly publicized events, such as plane crashes or terrorist attacks. This can lead us to make decisions that are not based on a realistic assessment of the risks we face, and it can also affect public policy and resource allocation.&lt;/p&gt;

&lt;p&gt;Cognitive biases can also have an impact on how we perceive and remember events and experiences. For example, the misinformation effect is the tendency for new information to overwrite or distort our memories of events. This can have serious consequences in legal settings, where eyewitness testimony is often an important piece of evidence.&lt;/p&gt;

&lt;h2 id=&quot;what-next&quot;&gt;What next?&lt;/h2&gt;

&lt;p&gt;There is a growing body of research on cognitive biases and how to mitigate their effects, and there are several strategies that can help us to make more informed and rational decisions. These include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Seeking out diverse sources of information: By exposing ourselves to a wide range of perspectives and viewpoints, we can help to mitigate the effects of confirmation bias and other biases that can distort our perceptions.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Questioning our assumptions and beliefs: By actively questioning our own assumptions and beliefs, we can help to identify and correct for biases that might otherwise distort our thinking.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Using tools like decision trees and cost-benefit analysis: These tools can help us to make more objective and unbiased decisions by forcing us to consider multiple factors and to weigh the pros and cons of different options.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, it is important to be aware of the ways in which our brains can distort or simplify information, and to take steps to correct for these biases in order to make more informed and rational decisions. By understanding and addressing cognitive biases, we can improve our decision-making and increase our chances of success in both our personal and professional lives.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Inspired by one of my extra-professional presentations during a monthly event at &lt;a href=&quot;https://www.enyx.com&quot;&gt;Enyx&lt;/a&gt;, I decided to try the &lt;a href=&quot;https://openai.com/blog/chatgpt/&quot;&gt;ChatGPT&lt;/a&gt; experiment on the theme of cognitive bias. The question? “Rédige un article de 20000 caractères sur le biais cognitif en anglais” in French, as-is. What do you think of the result?&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>JSON, MongoDB and rsyslog are on a boat</title>
      <link href="https://francois.aichelbaum.com/2020/12/23/json-mongodb-rsyslog-are-on-a-boat" />
      <updated>2020-12-23T11:01:01+01:00</updated>
      <id>https://francois.aichelbaum.com/2020/12/23/json-mongodb-rsyslog-are-on-a-boat</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; JSON, MongoDB and rsyslog are on a boat&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#json-is-standard&quot; id=&quot;markdown-toc-json-is-standard&quot;&gt;JSON is standard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#nginx-knows-about-cee&quot; id=&quot;markdown-toc-nginx-knows-about-cee&quot;&gt;Nginx knows about @cee&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#rsyslog-is-great-its-documentation-is-not&quot; id=&quot;markdown-toc-rsyslog-is-great-its-documentation-is-not&quot;&gt;Rsyslog is great. Its documentation is not.&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#thats-not-all-folks&quot; id=&quot;markdown-toc-thats-not-all-folks&quot;&gt;That’s not all folks!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#at-the-end&quot; id=&quot;markdown-toc-at-the-end&quot;&gt;At the end&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;When dealing with log management, obvious solutions emerge earlier, often before you even discussed the purpose of the log management. We can discuss about &lt;a href=&quot;https://www.elastic.co/fr/what-is/elk-stack&quot;&gt;ELK&lt;/a&gt;, &lt;a href=&quot;https://www.graylog.org/&quot;&gt;Graylog&lt;/a&gt;, &lt;a href=&quot;https://www.splunk.com/&quot;&gt;Splunk&lt;/a&gt;, … Those are great tools but they may not fit will all your needs. Lately, I had to work for one of my customer on enforcing log management for billing purposed. Rsyslog was already set to collect and centralize all the logs (and manage their backups). MongoDB seemed as a perfect tips for storing JSON extract of the logs to generate the proper stats.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Invoice Management - DronaHQ&quot; src=&quot;/images/2020/12/invoice-management.jpg&quot; title=&quot;Invoice Management - DronaHQ&quot; srcset=&quot;/assets/resized/480/invoice-management.jpg 480w,/assets/resized/800/invoice-management.jpg 800w, /images/2020/12/invoice-management.jpg 1280w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Invoice Management - DronaHQ&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;json-is-standard&quot;&gt;JSON is standard&lt;/h2&gt;

&lt;p&gt;From &lt;a href=&quot;https://www.json.org/json-en.html&quot;&gt;json.org&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On top of that format, we can used a more structured syntax, adapted to log management: &lt;a href=&quot;https://cee.mitre.org/language/0.6/CEE_Common_Log_Syntax-JSON-v0.6.html&quot;&gt;CEE Log Syntax&lt;/a&gt;. This defined format is well used by various tools you might use, in the present case: nginx, rsyslog, and mongodb. Up to a certain level…&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Structured JSON&quot; src=&quot;/images/2020/12/json.gif&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/json.gif 480w, /images/2020/12/json.gif 628w&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;nginx-knows-about-cee&quot;&gt;Nginx knows about @cee&lt;/h2&gt;

&lt;p&gt;Sort of. Nginx has a &lt;a href=&quot;https://nginx.org/en/docs/syslog.html&quot;&gt;native syslog export&lt;/a&gt; for both error_log and access_log. Out of the box, it will simply push all logs from the default log formats to syslog. This won’t be very convenient for proper management afterwards. But nginx is easy to use, and you can define your own custom format. You’ll find plenty of blogposts, tutorials, and others as &lt;a href=&quot;https://ahelpme.com/software/rsyslog/send-access-logs-in-json-to-elasticsearch-using-rsyslog/&quot;&gt;Any IT here? Help me!&lt;/a&gt; describing the &lt;em&gt;proper&lt;/em&gt; @cee JSON log format you need:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-nginx&quot; data-lang=&quot;nginx&quot;&gt;&lt;span class=&quot;k&quot;&gt;log_format&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;mainJSON&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;escape=json&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;@cee:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;vhost&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$server_name&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;remote_addr&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$remote_addr&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;time_iso8601&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$time_iso8601&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;request_uri&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$request_uri&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;request_length&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$request_length&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;request_method&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$request_method&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;request_time&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$request_time&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;server_port&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$server_port&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;server_protocol&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$server_protocol&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;ssl_protocol&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$ssl_protocol&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;status&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$status&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;bytes_sent&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$bytes_sent&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;http_referer&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$http_referer&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;http_user_agent&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$http_user_agent&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;upstream_response_time&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$upstream_response_time&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;upstream_addr&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$upstream_addr&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;upstream_connect_time&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$upstream_connect_time&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;upstream_cache_status&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$upstream_cache_status&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;tcpinfo_rtt&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$tcpinfo_rtt&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;tcpinfo_rttvar&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$tcpinfo_rttvar&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;They all give you the very same structure. Not sure who started it, but that’s not the point: they’re all wrong about it!&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;I am this close - Terminator 2&quot; src=&quot;/images/2020/12/close.gif&quot; title=&quot;I am this close - Terminator 2&quot; srcset=&quot;/assets/resized/480/close.gif 480w, /images/2020/12/close.gif 720w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;I am this close - Terminator 2&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;They are close, indeed, but some details have to be fixed first. Why are they wrong? Because JSON, and especially the @cee version of it, has datatypes. Numbers (integers and floats) should not be encapsulated between quotes: quotes are for string only.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-nginx&quot; data-lang=&quot;nginx&quot;&gt;&lt;span class=&quot;k&quot;&gt;log_format&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;mainJSON&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;escape=json&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&apos;@cee:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;vhost&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$server_name&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;remote_addr&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$remote_addr&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;time_iso8601&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$time_iso8601&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;request_uri&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$request_uri&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;request_length&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$request_length&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;request_method&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$request_method&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;request_time&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$request_time&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;server_port&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$server_port&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;server_protocol&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$server_protocol&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;ssl_protocol&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$ssl_protocol&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;status&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$status&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;bytes_sent&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$bytes_sent&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;http_referer&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$http_referer&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;http_user_agent&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$http_user_agent&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;upstream_response_time&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$upstream_response_time&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;upstream_addr&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$upstream_addr&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;upstream_connect_time&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$upstream_connect_time&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;upstream_cache_status&quot;:&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$upstream_cache_status&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;tcpinfo_rtt&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$tcpinfo_rtt&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;,&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&quot;tcpinfo_rttvar&quot;:&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$tcpinfo_rttvar&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;&lt;/span&gt;
        &lt;span class=&quot;s&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Now we are good to go. Then, as all documentations state it, we can use this log format to push logs to syslog:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-nginx&quot; data-lang=&quot;nginx&quot;&gt;&lt;span class=&quot;k&quot;&gt;access_log&lt;/span&gt;      &lt;span class=&quot;s&quot;&gt;syslog:server=10.10.10.2:514,facility=local7,tag=nginx,severity=info&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;mainJSON&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;For sure, you can adapt the faciliy, the tag and the severity of it, along with the log format name.&lt;/p&gt;

&lt;h2 id=&quot;rsyslog-is-great-its-documentation-is-not&quot;&gt;Rsyslog is great. Its documentation is not.&lt;/h2&gt;

&lt;p&gt;That’s a fact, technical documentation, made by technical individuals, for technical persons, are not the best. Rsyslog might be one of the best example about this statement. Rainer Gerhards did a great work with his tool, one of the best syslog manager in my humble opinion. Thought, the documentation is a hell to read. Add to this fact, that it not as accurate as it should be.&lt;/p&gt;

&lt;p&gt;In the use case I was working on, the infrastructure is benefiting from &lt;a href=&quot;https://www.rsyslog.com/doc/v8-stable/&quot;&gt;rsyslog v8-sable&lt;/a&gt;. And as stated, we want to use the mongodb exporter, aka &lt;a href=&quot;https://www.rsyslog.com/doc/v8-stable/configuration/modules/ommongodb.html&quot;&gt;ommongodb&lt;/a&gt;. Seems easy and straight forward? Almost. But remember this IT mantra:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If all goes well, we forget something.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For reasons out of my mind while writing down this post, I can tell you that it just do not work. Several aspects are to be considering before dealing with those logs.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;You need to ensure about the encoding: BSON (the JSON variant mongodb uses internally) only supports valid UTF-8 character. For that, you need to properly fix the encoding before sending them. There is a &lt;a href=&quot;https://www.rsyslog.com/doc/v8-stable/configuration/modules/mmutf8fix.html&quot;&gt;module&lt;/a&gt; for that.&lt;/li&gt;
  &lt;li&gt;The structured @cee sent using the default configuration to mongodb will just push data “as-is”: first issue and main issue you’ll hit is about the date which will be pushed as a regular string.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;img alt=&quot;But why? - Ryan Reynolds&quot; src=&quot;/images/2020/12/why.gif&quot; title=&quot;But why? - Ryan Reynolds&quot; srcset=&quot; /images/2020/12/why.gif 480w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;But why? - Ryan Reynolds&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Why? Simply because rsyslog only understand numbers and strings as &lt;a href=&quot;https://www.rsyslog.com/doc/v8-stable/configuration/templates.html&quot;&gt;datatypes&lt;/a&gt; on one end, and mongodb doesn’t auto detect date and timestamps on the other end. Is it an issue at the end? If you want to benefit from mongodb filtering features on dates, yes it is. For that purpose, you need to use the ISODate() functions that mongodb only knows about.&lt;/p&gt;

&lt;p&gt;After a tremendous number of attempts, trying to deal with the documentation to find the proper format, I decided to read the &lt;a href=&quot;https://github.com/rsyslog/rsyslog/blob/master/plugins/ommongodb/ommongodb.c#L392-L393&quot;&gt;ommongodb module source code&lt;/a&gt;. Pretty easy as it’s a well written C code:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-c&quot; data-lang=&quot;c&quot;&gt;		&lt;span class=&quot;cm&quot;&gt;/* Convert text to ISODATE when needed */&lt;/span&gt;
		&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;strncmp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;date&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;strncmp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;time&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;You’ve just read it well: the code does not expect the fieldname to start with a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;date&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;time&lt;/code&gt;, but it expect the fieldname to be &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;date&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;time&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Two solutions there:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;either update the log format, in nginx configuration, from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;time_iso8601:&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;date:&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;update your rsyslog configuration&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I’m not found of the string exporter used in the default documentation of rsyslog for mongodb: we’re using JSON as an input, we expect JSON at the output, why should we use strings in between?&lt;/p&gt;

&lt;p&gt;For that reason, I moved to a JSON manipulation, thanks to the JSON parse module, and list type for the template:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-rsyslog&quot; data-lang=&quot;rsyslog&quot;&gt;module(load=&quot;mmutf8fix&quot;)
module(load=&quot;mmjsonparse&quot;)
module(load=&quot;ommongodb&quot;)

template(name=&quot;json-syslog&quot; type=&quot;list&quot; option.jsonf=&quot;on&quot;) {
        property(outname=&quot;vhost&quot; name=&quot;$!vhost&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;remote_addr&quot; name=&quot;$!remote_addr&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;time_iso8601&quot; name=&quot;$!time_iso8601&quot; format=&quot;jsonf&quot;)
        property(outname=&quot;date&quot; name=&quot;$!time_iso8601&quot;)
        property(outname=&quot;request_uri&quot; name=&quot;$!request_uri&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;request_length&quot; name=&quot;$!request_length&quot; format=&quot;jsonf&quot; datatype=&quot;number&quot;)
        property(outname=&quot;request_method&quot; name=&quot;$!request_method&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;request_time&quot; name=&quot;$!request_time&quot; format=&quot;jsonf&quot; datatype=&quot;number&quot;)
        property(outname=&quot;server_port&quot; name=&quot;$!server_port&quot; format=&quot;jsonf&quot; datatype=&quot;number&quot;)
        property(outname=&quot;server_protocol&quot; name=&quot;$!server_protocol&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;ssl_protocol&quot; name=&quot;$!ssl_protocol&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;status&quot; name=&quot;$!status&quot; format=&quot;jsonf&quot; datatype=&quot;number&quot;)
        property(outname=&quot;bytes_sent&quot; name=&quot;$!bytes_sent&quot; format=&quot;jsonf&quot; datatype=&quot;number&quot;)
        property(outname=&quot;http_referer&quot; name=&quot;$!http_referer&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;http_user_agent&quot; name=&quot;$!http_user_agent&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;upstream_response_time&quot; name=&quot;$!upstream_response_time&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;upstream_addr&quot; name=&quot;$!upstream_addr&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;upstream_connect_time&quot; name=&quot;$!upstream_connect_time&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;upstream_cache_status&quot; name=&quot;$!upstream_cache_status&quot; format=&quot;jsonf&quot; datatype=&quot;string&quot; onEmpty=&quot;null&quot;)
        property(outname=&quot;tcpinfo_rtt&quot; name=&quot;$!tcpinfo_rtt&quot; format=&quot;jsonf&quot; datatype=&quot;number&quot;)
        property(outname=&quot;tcpinfo_rttvar&quot; name=&quot;$!tcpinfo_rttvar&quot; format=&quot;jsonf&quot; datatype=&quot;number&quot;)
}&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;img alt=&quot;Now we can talk. - Kyle Maclachlan - Twin Peaks&quot; src=&quot;/images/2020/12/talk.gif&quot; title=&quot;Now we can talk. - Kyle Maclachlan - Twin Peaks&quot; srcset=&quot;/assets/resized/480/talk.gif 480w, /images/2020/12/talk.gif 498w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Now we can talk. - Kyle Maclachlan - Twin Peaks&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;thats-not-all-folks&quot;&gt;That’s not all folks!&lt;/h2&gt;

&lt;p&gt;Following that changes, nginx logs are pushed to mongodb, allowing easy statistics aggregation for billing purpose. As we just want to push these lines to mongodb, best is to proceed with something like:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-rsyslog&quot; data-lang=&quot;rsyslog&quot;&gt;if ($syslogfacility-text == &apos;local7&apos; and $syslogseverity-text == &apos;info&apos;) then {
        action(type=&quot;mmutf8fix&quot;)
        action(type=&quot;mmjsonparse&quot;)
        action(type=&quot;ommongodb&quot; uristr=&quot;mongodb://--REDACTED--:--REDACTED--@--REDATED--:27017/?authSource=logs&amp;amp;authMechanism=SCRAM-SHA-1&quot; db=&quot;logs&quot; collection=&quot;nginx&quot; template=&quot;json-syslog&quot;)
        &amp;amp; stop
}&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uristr&lt;/code&gt; is a bit different from the the documentation because, once again, the document is not really explicit enough about it. For most real-life scenarios, even if you use a mongodb cluster, you want to rely on dedicated database and dedicated user, with the proper set of permissions. To benefit from it, you need to add some details within the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uristr&lt;/code&gt; as the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;user:password&lt;/code&gt; but also some query parameters:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;authSource&lt;/code&gt;: the db to rely on for authentication, as you user has only permissons on it&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;authMechanism&lt;/code&gt;: you’re pushing a password via the dsn&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;at-the-end&quot;&gt;At the end&lt;/h2&gt;

&lt;p&gt;We went through. We’ve set up nginx to push JSON @cee-compliant logs to syslog, then we prepare the logs to be properly pushed to mongodb, and we publish them.&lt;/p&gt;

&lt;p&gt;Now our folks can run their micro-batching to generate live billing and usage statistics for the customers.&lt;/p&gt;

&lt;p&gt;How would you have tackled this kind of need? Did you suffer from technical documentations not adequate or not uptodate?&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Too big to fall, not to fail!</title>
      <link href="https://francois.aichelbaum.com/2020/11/09/too-big-to-fall-no-to-fail" />
      <updated>2020-11-09T11:03:06+01:00</updated>
      <id>https://francois.aichelbaum.com/2020/11/09/too-big-to-fall-no-to-fail</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; Too big to fall, not to fail&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#internet-is-dead-nope-just-facebook&quot; id=&quot;markdown-toc-internet-is-dead-nope-just-facebook&quot;&gt;Internet is dead! Nope, just Facebook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#no-one-has-ever-been-fired-for-opting-for-ibm&quot; id=&quot;markdown-toc-no-one-has-ever-been-fired-for-opting-for-ibm&quot;&gt;No one has ever been fired for opting for IBM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#you-said-to-say-hardy&quot; id=&quot;markdown-toc-you-said-to-say-hardy&quot;&gt;You said to say Hardy!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#me-myself-and-the-apocalypse&quot; id=&quot;markdown-toc-me-myself-and-the-apocalypse&quot;&gt;Me, myself, and the Apocalypse&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;The late US election inspired me, mixed with several of my customers suffering from their providers’ failure, and led me to write this post to remind about &lt;em&gt;the&lt;/em&gt; reality, and not someone’s reality.
When dealing with a provider, or selecting a one, you may thing about the consequences and his failure on your business: often, you’ll prefer a big player, as he might be too big to fall. Even if falling and failing are just a character away, they are far more different.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;lem.mings (‘lem-ingz): adorable yet incredible stupid furry creatures. Without your help, they have no chance of survival.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img alt=&quot;Lemmings Puzzle&quot; src=&quot;/images/2020/11/lemmings.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/lemmings.jpg 480w,/assets/resized/800/lemmings.jpg 800w, /images/2020/11/lemmings.jpg 1100w&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;internet-is-dead-nope-just-facebook&quot;&gt;Internet is dead! Nope, just Facebook&lt;/h2&gt;

&lt;p&gt;No need to go back to the beginning of Zuck’s company history: an ultra-fast search on your favorite search engine will lead you to a major crash &lt;a href=&quot;https://www.express.co.uk/life-style/science-technology/1233407/Facebook-DOWN-MAJOR-outage-leaves-social-media-users-unable-to-login&quot;&gt;beginning of 2020&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We often confuse failing our company’s box with failing our customers. That’s why I prefer the term “falling” in the first case. With this little vocabulary point, we can dig a little more into what we call the “To big to &lt;del&gt;fail&lt;/del&gt;fall”. This has been a recurring topic since the subprime crisis of 2008. The fact that banks can fall, disappear, what about the major players in each field.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Too-big-to-fail banks not only threaten our financial system – they also distort competition © Frédéric Hache / Finance Watch&quot; src=&quot;/images/2020/11/too_big_to_fail.png&quot; title=&quot;Too-big-to-fail banks not only threaten our financial system – they also distort competition © Frédéric Hache / Finance Watch&quot; srcset=&quot;/assets/resized/480/too_big_to_fail.png 480w,/assets/resized/800/too_big_to_fail.png 800w, /images/2020/11/too_big_to_fail.png 814w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Too-big-to-fail banks not only threaten our financial system – they also distort competition © Frédéric Hache / Finance Watch&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The fall of “too big” would theoretically cause the whole system to fall. Although this is not without disastrous consequences, no system disappeared with the fall of the American banks. No system disappeared with the massive fall of the car manufacturers. Massive bankruptcies, unemployment, people on the street yes. But the system did not. So those “too big” can fall.&lt;/p&gt;

&lt;p&gt;Well, that’s not really the subject of this post, but you’ve understood: we suppose that a big actor can’t disappear because we’ll do everything we can to hold him, because after all, if he were to disappear, we suppose the consequences would be far too disastrous. So let’s move on.&lt;/p&gt;

&lt;h2 id=&quot;no-one-has-ever-been-fired-for-opting-for-ibm&quot;&gt;No one has ever been fired for opting for IBM&lt;/h2&gt;

&lt;p&gt;Choosing “too big” is reassuring. It is known, it has thousands of employees, it weighs hundreds of millions of dollars, … It cannot &lt;del&gt;fail&lt;/del&gt;fall. Nope, but it can fail.&lt;/p&gt;

&lt;p&gt;The first source of error is and has always been human. This is the primary reason for relying on a principle such as HAZOP (HAZard and OPerability studies). The principle of HAZOP is the decomposition of the system to be analyzed into several subsets, called “nodes” so that the risk analysis can be shared between individuals or multidisciplinary teams. Assume that something will fail, and then you can prevent the risk. In fact, in IT, we often use the expression:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If everything went well, then you’ve forgotten something.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not for nothing.&lt;/p&gt;

&lt;p&gt;In 2017, AWS suffered a huge incident on its massive storage (AWS S3). &lt;a href=&quot;https://aws.amazon.com/message/41926/&quot;&gt;This incident&lt;/a&gt; was the direct consequence of human error, to debug another situation. As a result, all companies relying on AWS’ S3 service in this region have been impacted by the service outage, but worse, some have lost data, with no hope of ever finding it again. How many customers have gone out of business due to a failure at AWS?&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Bigger is not better&quot; src=&quot;/images/2020/11/bigger_better.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/bigger_better.jpg 480w,/assets/resized/800/bigger_better.jpg 800w, /images/2020/11/bigger_better.jpg 1024w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Very often, the first reaction of a customer of these “too big”, on this type of incident, is that given the massive failure, and the number of companies impacted, your own users, the end-users, will have other things to deal with.&lt;/p&gt;

&lt;p&gt;This is true, but within a certain limit. On the other hand, it also shows that you have not calculated the risks, and assume that this risk would be borne unilaterally by this “too big”.&lt;/p&gt;

&lt;h2 id=&quot;you-said-to-say-hardy&quot;&gt;You said to say Hardy!&lt;/h2&gt;

&lt;p&gt;Very often, in order to respond to these human errors, we decide that the best way is the constraint, the limitation, the process. Do what you are told and strictly what you are told. This is how your “too big”, under cover of a Quality certification for example, will set up various levels of support, each with its own forms, processes, …&lt;/p&gt;

&lt;p&gt;Here, we can echo one of my customers, who ordered from the largest French hosting provider (Hello there, OVH), servers, proudly announced available in 120s, without specifying the quantity. Well yes, marketing doesn’t have the same concern for quality process and transparency as technology: after all, it’s not a service ;)&lt;/p&gt;

&lt;p&gt;Anyway, servers ordered, but only partially delivered two weeks later. Impossible to have a status because the delivery process is jammed. But the fun doesn’t stop there. In order not to be caught off guard, this customer decides to start installing the servers already delivered, using the tools of this provider. Except, that these tools are bug’d. A support ticket is opened, without reaction. The customer’s teams continue to work on it all the weekend, hoping to get the whole thing up and running, and at times, receive charming mails from the provider, as:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;you have set such a value to 0: except that the provider’s installation tool forbids such a value … which is only the result of a bug&lt;/li&gt;
  &lt;li&gt;stop loop crashing: except that it crashes in a loop, because installing it crashes in a loop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Solution proposed by the founder of OVH? Replace the famous servers with its Object Storage service. The same service, which has been in error for a week, with no solution, and where some customers are complaining about a loss of revenue of several thousand euros over the same period.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;The company feels that if we ease up just because someone dies, it will encourage other people to die&quot; src=&quot;/images/2020/11/failure.gif&quot; title=&quot;Better off Ted&quot; srcset=&quot; /images/2020/11/failure.gif 434w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Better off Ted&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And meanwhile, the mail open to the support, with all the details, is not read by the speakers. Why is this? It’s out of process! The emails are processed by the level 1 support, which doesn’t work on weekends, while the technicians on site only intervene on alarms. The link between the two in normal times? Level 2 support which can only be triggered by level 1. The famous level 1 unavailable. The process is therefore, once again, at fault.&lt;/p&gt;

&lt;p&gt;Here it is possible to distinguish several failures:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;managerial, where the founder ignores the state of his department (voluntarily or not) and gives you inadequate recommendations&lt;/li&gt;
  &lt;li&gt;supply chain, where a server is missing, with no possible information, and no possible billing for the supplier.&lt;/li&gt;
  &lt;li&gt;support, where segmentation of teams prevents information from circulating correctly, preventing a technical solution from being implemented&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;me-myself-and-the-apocalypse&quot;&gt;Me, myself, and the Apocalypse&lt;/h2&gt;

&lt;p&gt;Such failures often go unnoticed by the mass of customers of these providers. However, if you take the time to search, you will always find customers. This becomes all the more true when these customers reach critical size.&lt;/p&gt;

&lt;p&gt;So yes, one provider can be better than another (in fact, any truly professional provider is better than a low-cost provider). However, no one is infallible, and no one is too big in the face of fails.&lt;/p&gt;

&lt;p&gt;If the service to be delivered to you is critical, then the skill levels of that provider are critical. But it is also your responsibility to have a plan-B outside of your provider. Processes (and certifications) will only serve you in court to ascertain whether the obligations of means and results have been met. Period.&lt;/p&gt;

&lt;p&gt;How about you? Do you prefer “too big”?&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Let&apos;s walk in a minefield</title>
      <link href="https://francois.aichelbaum.com/2020/08/27/lets-walk-in-a-minefield" />
      <updated>2020-08-27T11:24:06+02:00</updated>
      <id>https://francois.aichelbaum.com/2020/08/27/lets-walk-in-a-minefield</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; Let&apos;s walk in a minefield&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#avant-propos&quot; id=&quot;markdown-toc-avant-propos&quot;&gt;Avant-Propos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#suit-up-&quot; id=&quot;markdown-toc-suit-up-&quot;&gt;Suit up !&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#i-want-to-blacklist&quot; id=&quot;markdown-toc-i-want-to-blacklist&quot;&gt;I want to blacklist&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#thats-all-folks&quot; id=&quot;markdown-toc-thats-all-folks&quot;&gt;That’s all folks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;If you manage an infrastructure, you probably always know the same problem: how to properly manage the blacklisting of malicious IPs. If you are on hybrid infrastructures, without adequate equipment for firewalling, this question often arises all the more. And if you want to be proactive, by securing the whole platform, as soon as a machine detects abnormal behavior, it becomes critical.
Fortunately, an opensource tool, MineMeld, allows you to manage this situation, with a minimum of work.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Star Trek - Mind meld - Paramount Pictures&quot; src=&quot;/images/2020/08/mind_meld.jpg&quot; title=&quot;Star Trek - Mind meld - Paramount Pictures&quot; srcset=&quot;/assets/resized/480/mind_meld.jpg 480w,/assets/resized/800/mind_meld.jpg 800w,/assets/resized/1400/mind_meld.jpg 1400w, /images/2020/08/mind_meld.jpg 1436w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Star Trek - Mind meld - Paramount Pictures&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;avant-propos&quot;&gt;Avant-Propos&lt;/h2&gt;

&lt;p&gt;(Image inspired by the iTWire article on &lt;a href=&quot;https://www.itwire.com/security/mine-meld,-mind-meld-%E2%80%93-the-principles-are-the-same.html&quot;&gt;MineMeld&lt;/a&gt;)
Not all of us can have next-gen firewalls. On the other hand, we manage servers and can deploy more and more of them. We will therefore focus on this case.&lt;/p&gt;

&lt;p&gt;Quick presentation of MineMeld from the &lt;a href=&quot;https://github.com/PaloAltoNetworks/minemeld/wiki&quot;&gt;official Wiki&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;MineMeld is a community supported tool to manipulate list of indicators and transform/aggregate them for consumption by third party enforcement infrastructure. MineMeld has many use-cases and can easily be extended to fulfill many more. 
Check &lt;a href=&quot;https://github.com/PaloAltoNetworks/minemeld/wiki/List-of-Supported-Nodes&quot;&gt;this page&lt;/a&gt; for a brief list of currently supported nodes/feeds.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With non-hype words, it’s a mean to centralize all your blacklist and scorifications in order to manage your threat prevention: it imports multiple feeds, analyze/dedup them, in order to output clean feed you’d be able to use.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;MineMeld diagram&quot; src=&quot;/images/2020/08/minemeld_diagram.png&quot; title=&quot;MineMeld diagram&quot; srcset=&quot;/assets/resized/480/minemeld_diagram.png 480w,/assets/resized/800/minemeld_diagram.png 800w,/assets/resized/1400/minemeld_diagram.png 1400w, /images/2020/08/minemeld_diagram.png 3000w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;MineMeld diagram&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The project is opensource and can be installed on a bunch of &lt;strong&gt;old&lt;/strong&gt; Linux distros: the word “old” is quite important but we can deal with it. For the rest of it, I’ll provide some scripts via GitHub.&lt;/p&gt;

&lt;h2 id=&quot;suit-up-&quot;&gt;Suit up !&lt;/h2&gt;

&lt;p&gt;So we start with the installation of MineMeld. As said above, they officially support old distributions. Go figure! However, their doc explains a little bit the process for the installation on Ubuntu 18.04 for example. A little less old, I decide to start on it.&lt;/p&gt;

&lt;p&gt;I won’t detail their installation which is done via an Ansible playbook. Rather readable, if you want to do something else, it should not be complicated.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;The Hurt Locker - Kingsgate Films&quot; src=&quot;/images/2020/08/minemeld_demineurs.jpg&quot; title=&quot;The Hurt Locker - Kingsgate Films&quot; srcset=&quot; /images/2020/08/minemeld_demineurs.jpg 450w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;The Hurt Locker - Kingsgate Films&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Post installation, the service seems to start, but generates many errors in the logs, mainly concerning a ‘ujson’ python library. Nothing in the MineMeld documentation. However, my best friend, Google, quickly finds the answer: you have to replace the library provided by the package, by the library available in Ubuntu repositories.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;python-ujson
&lt;span class=&quot;nb&quot;&gt;sudo mv&lt;/span&gt; /opt/minemeld/engine/current/lib/python2.7/site-packages/ujson.so /opt/minemeld/engine/current/lib/python2.7/site-packages/ujson.so.bak
&lt;span class=&quot;nb&quot;&gt;sudo ln&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-s&lt;/span&gt; /usr/lib/python2.7/dist-packages/ujson.x86_64-linux-gnu.so /opt/minemeld/engine/current/lib/python2.7/site-packages/ujson.so&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;After a restart of the MineMeld service, everything is running smoothly and you can finally authenticate. If you are looking for the default credentials: admin / minemeld .&lt;/p&gt;

&lt;p&gt;Getting to know MineMeld can take a little time. I’ll give you the first few configuration items from our use case, then let you get familiar with it. Of course, I am always available if you need my assistance.&lt;/p&gt;

&lt;h2 id=&quot;i-want-to-blacklist&quot;&gt;I want to blacklist&lt;/h2&gt;

&lt;p&gt;Now that the service is in place, it’s time to configure it, before you can take advantage of it on your different servers, but also to keep it up to date with your own IPs to blacklist.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Queen - I want to break free&quot; src=&quot;/images/2020/08/minemeld_iwanttobreakfree.jpg&quot; title=&quot;Queen - I want to break free&quot; srcset=&quot;/assets/resized/480/minemeld_iwanttobreakfree.jpg 480w,/assets/resized/800/minemeld_iwanttobreakfree.jpg 800w,/assets/resized/1400/minemeld_iwanttobreakfree.jpg 1400w, /images/2020/08/minemeld_iwanttobreakfree.jpg 1920w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Queen - I want to break free&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;All scripts I provide here are available on my &lt;a href=&quot;&quot;&gt;GitHub account&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;prepare-minemeld&quot;&gt;Prepare MineMeld&lt;/h3&gt;

&lt;p&gt;When you are logged in to MineMeld, you will see different menus:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Dashboard: the home page with a reminder of your statistics&lt;/li&gt;
  &lt;li&gt;Nodes: to configure your different nodes (miners, feeds, aggregators, …)&lt;/li&gt;
  &lt;li&gt;Config: to load your various (proto)types of nodes you would like to use&lt;/li&gt;
  &lt;li&gt;Logs&lt;/li&gt;
  &lt;li&gt;Admin: to configure your users&lt;/li&gt;
  &lt;li&gt;System: to see how things are going from a system point of view&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img alt=&quot;Dashboard MineMeld&quot; src=&quot;/images/2020/08/minemeld_dashboard.png&quot; title=&quot;Dashboard MineMeld&quot; srcset=&quot;/assets/resized/480/minemeld_dashboard.png 480w,/assets/resized/800/minemeld_dashboard.png 800w, /images/2020/08/minemeld_dashboard.png 1196w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Dashboard MineMeld&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So the first step is to go to the Admin, and to manage your users for a minimum:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;change the admin password&lt;/li&gt;
  &lt;li&gt;add a user whose login and password you will use for the scripts detailed later in this article&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then, let’s go to the Config, to manage the prototypes we want to have. In my case, I usually use at least the following ones:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;blacklist_of&lt;/li&gt;
  &lt;li&gt;spamhaus DROP &amp;amp; EDROP&lt;/li&gt;
  &lt;li&gt;dshield&lt;/li&gt;
  &lt;li&gt;wlWhilteListIPv4 (the ‘wl’ prefix is important)&lt;/li&gt;
  &lt;li&gt;an inboundaggregator to which I assign all the miners&lt;/li&gt;
  &lt;li&gt;an inboundfeedhc (for High Confidence) of feedHCGreen type&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To which I add my own ‘localDB’ blacklist. You can simply view/add new nodes by clicking on the list button at the bottom of the table:&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Config list&quot; src=&quot;/images/2020/08/minemeld_config.png&quot; title=&quot;Config list&quot; srcset=&quot;/assets/resized/480/minemeld_config.png 480w,/assets/resized/800/minemeld_config.png 800w, /images/2020/08/minemeld_config.png 1192w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Config list&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The default configuration of the various nodes should be suitable for the use we detail here. However, you have to add the IPs that you don’t want to see blacklisted. To do this, simply edit the wlWhiteListIPv4 Node.&lt;/p&gt;

&lt;p&gt;Be careful, the name of this node is a fake friend: it does not generate a whitelist, but just makes sure that the IPs listed there do not appear in the aggregate that you will generate at the end.&lt;/p&gt;

&lt;p&gt;Finally, the last point to consult is the URL of the output stream. It is a matter of looking at the URL announced in the configuration of the inboundfeedhc Node. For practical reasons, it will be necessary to add the query ‘?tr=1’ to have a CIDR writing of the IPs. For ex:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;http://&lt;fqdn&gt;/feeds/inboundfeedhc?tr=1&lt;/fqdn&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;benefit-from-minemeld-on-linux-servers&quot;&gt;Benefit from MineMeld on Linux servers&lt;/h3&gt;

&lt;p&gt;Now that the service is setup, let’s benefit from it. Easy way, is to rely on kernel’s ipset. So don’t forget to install &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ipset&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I found a &lt;a href=&quot;https://github.com/dannysheehan/iptables-ipset-blacklists/blob/master/blacklists.sh&quot;&gt;bash script&lt;/a&gt; that can use blacklist feed and source them to ipset (and maintain the local list based on the feed age). As the script was doing part of MineMeld job, in a very long time, I had to amend it a bit. You’ll find my version &lt;a href=&quot;https://github.com/faichelbaum/minemeld-additions/blob/master/linux/blacklists.sh&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Don’t forget to edit it with two information:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;BL_URL&lt;/code&gt;: with the URL from your inboundfeedhc&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MAIL_ADMIN&lt;/code&gt;: with your email address&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also provision a (real) whitelist by adding IPs to /var/lib/blacklists/whitelist.txt . If you have specific IPs you want to blacklist only on that hosts, you can edit the blacklist.txt file at the same location.&lt;/p&gt;

&lt;p&gt;On my end, I prefer to run this script at least once an hour, while keeping the possibility to run it on-demand.&lt;/p&gt;

&lt;p&gt;On all my servers, I use &lt;a href=&quot;https://en.wikipedia.org/wiki/Fail2ban&quot;&gt;fail2ban&lt;/a&gt; to parse my various logs and generate ban actions. Let’s update it with a new action: simply import the file &lt;a href=&quot;https://github.com/faichelbaum/minemeld-additions/blob/master/linux/fail2ban-minemeld.conf&quot;&gt;fail2ban-minemeld.conf&lt;/a&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/fail2ban/action.d/minemeld.conf&lt;/code&gt; and then update your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/fail2ban/jail.local&lt;/code&gt;with a new value for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;banaction&lt;/code&gt;: ‘minemeld’. Also, import the new &lt;a href=&quot;https://github.com/faichelbaum/minemeld-additions/tree/master/linux&quot;&gt;ban/unban scripts&lt;/a&gt; and you’re done after a restart of fail2ban.&lt;/p&gt;

&lt;p&gt;The later scripts are to be updated with the proper fqdn and credentials to access your MineMeld API.&lt;/p&gt;

&lt;h2 id=&quot;thats-all-folks&quot;&gt;That’s all folks&lt;/h2&gt;

&lt;p&gt;Now, you’re set with MineMeld as a centralized blacklist management for your non-next-gen firewallis. This can also be used as a feed for the NG-FW plugin from pfSense, for instance. Yet, it can still be improved, based on your needs, as via created a real output feed for your whitelists, or with different management of the blacklists.&lt;/p&gt;

&lt;p&gt;Do you consider this useful ? How would you tackle such use case ? Feel free to ping me and share your thoughts.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Are you a Person of Interest ?</title>
      <link href="https://francois.aichelbaum.com/2020/05/26/are-you-a-person-of-interest" />
      <updated>2020-05-26T11:35:46+02:00</updated>
      <id>https://francois.aichelbaum.com/2020/05/26/are-you-a-person-of-interest</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; Are you a Person of Interest?&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#in-the-last-episode-of&quot; id=&quot;markdown-toc-in-the-last-episode-of&quot;&gt;In the last episode of…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#ok-that-ive-turned-paranoid&quot; id=&quot;markdown-toc-ok-that-ive-turned-paranoid&quot;&gt;Ok, that I’ve turned paranoid…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#you-shall-not-pass&quot; id=&quot;markdown-toc-you-shall-not-pass&quot;&gt;You shall not pass&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#its-time-now&quot; id=&quot;markdown-toc-its-time-now&quot;&gt;It’s time now&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#am-i-safe&quot; id=&quot;markdown-toc-am-i-safe&quot;&gt;Am I safe?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;
&lt;p&gt;Of course, as an individual, you’re an interesting person. But are you a Person of Interest? By that I mean, are you a person that it is individually interesting to hack, or are you just a person who is immersed in the mass of data that the hacker has targeted? With the confinement and the video binge, the opportunity is too strong to make discover some TV series to neophytes, and to debate with them on all the questions they open. After having made discover series like &lt;a href=&quot;https://www.imdb.com/title/tt1839578/&quot;&gt;Person of Interest&lt;/a&gt; (for mass surveillance and hacking), but also &lt;a href=&quot;https://www.imdb.com/title/tt4158110/&quot;&gt;Mr. Robot&lt;/a&gt; (for hacking), we have a lot to do, and especially to question ourselves. So, are you a Person of Interest?&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Mass surveillance in China&quot; src=&quot;/images/2020/05/mass_surveillance.jpg&quot; title=&quot;Mass surveillance in China&quot; srcset=&quot;/assets/resized/480/mass_surveillance.jpg 480w, /images/2020/05/mass_surveillance.jpg 512w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Mass surveillance in China&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;in-the-last-episode-of&quot;&gt;In the last episode of…&lt;/h2&gt;

&lt;p&gt;A short summary of these series that launched the debate, and thus this article, may be useful (thanks to Wikipedia).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt1839578/&quot;&gt;Person of Interest&lt;/a&gt; centers on a mysterious reclusive billionaire computer programmer named Harold Finch, who develops a computer program for the federal government known as “The Machine” that is capable of collating all sources of information to predict terrorist acts and identify people planning them. The Machine also identifies perpetrators and victims of other premeditated deadly crimes, but, because the government considers these “irrelevant”, he programs the Machine to delete this information each night. Anticipating abuse of his creation, Finch created a backdoor into the Machine. Tormented by the “irrelevant” deaths that might have been prevented, he eventually decides to use his backdoor to act covertly. To escape detection, he directs the Machine to provide only a tiny fragment of data: the social security number of a “person of interest”. The person may be a victim, a perpetrator, or an innocent bystander caught up in lethal events. The first episode shows how Finch recruited John Reese, a former Green Beret and CIA agent now presumed dead, to investigate the number provided by the Machine and act accordingly. As time passes, others join the team. From the beginning, the program raises an array of moral issues, from questions of privacy and “the greater good” to the idea of justifiable homicide to problems caused by working with limited information.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;https://www.imdb.com/title/tt4158110/&quot;&gt;Mr. Robot&lt;/a&gt; follows Elliot Alderson, a young man living in New York City, who works at the cyber security company Allsafe as a cybersecurity engineer. Constantly struggling with social anxiety, dissociative identity disorder and clinical depression, Elliot’s thought process seems heavily influenced by paranoia and delusion. He connects to people by hacking them, which often leads him to act as a cyber-vigilante. He is recruited by a mysterious insurrectionary anarchist known as Mr. Robot and joins his team of hacktivists known as &lt;em&gt;fsociety&lt;/em&gt; (namely “F*ck Society”). One of their missions is to cancel all consumer debt by destroying the data of one of the largest corporations in the world, E Corp (which Elliot perceives as Evil Corp), which also happens to be Allsafe’s biggest client.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Let’s not forget &lt;a href=&quot;https://www.imdb.com/title/tt4063800/&quot;&gt;The Bureau&lt;/a&gt;, and in particular its latest season, which puts a little more emphasis on hacking.&lt;/p&gt;

&lt;h2 id=&quot;ok-that-ive-turned-paranoid&quot;&gt;Ok, that I’ve turned paranoid…&lt;/h2&gt;

&lt;p&gt;Personally, I’ve grown very fond of these shows. Not so much for the technical aspect (far too romanticized on Person if Interest, and a few too many mistakes on Mr. Robot), but for the questions they always raise. A good way to awaken the paranoid or conspiratorial in you.&lt;/p&gt;

&lt;p&gt;The first question to be generally stated is:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;But is there such a thing as mass surveillance?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There, you just have to call back quickly, for example:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;China, and its &lt;a href=&quot;https://en.wikipedia.org/wiki/Mass_surveillance_in_China&quot;&gt;mass surveillance system&lt;/a&gt;, as well as its capitalist drift with a &lt;a href=&quot;https://en.wikipedia.org/wiki/Social_Credit_System&quot;&gt;point system&lt;/a&gt;…&lt;/li&gt;
  &lt;li&gt;the various revelations of &lt;a href=&quot;https://en.wikipedia.org/wiki/Edward_Snowden&quot;&gt;Edward Snowden&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Mass_surveillance_in_Russia&quot;&gt;mass surveillance in Russia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img alt=&quot;You&apos;re being watched&quot; src=&quot;/images/2020/05/youre_being_watched.jpg&quot; title=&quot;You&apos;re being watched&quot; srcset=&quot;/assets/resized/480/youre_being_watched.jpg 480w,/assets/resized/800/youre_being_watched.jpg 800w, /images/2020/05/youre_being_watched.jpg 1200w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;You’re being watched&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We are talking about everything that is state-owned, but we should not forget private interests:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;the massive &lt;a href=&quot;https://cliqz.com/en/magazine/cookies-fingerprinting-co-tracking-methods-clearly-explained&quot;&gt;use of cookies&lt;/a&gt; to track users through their internet browsing&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Social_login&quot;&gt;social authentications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;coverage of major groups: Google (with Android, Nest, GCP, …), Amazon (with AWS, Amazon Prime Video, Amazon Prime Photo, Amazon Prime Music, Alexa, …), Apple (with iPhone, iMac, iCloud, Siri, …), Facebook (with WhatsApp, Oculus VR, Giphy, Atlas - an advertising agency -, …)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And scandals related to the (mis)use of your personal data by all these organisations regularly make the headlines.&lt;/p&gt;

&lt;h2 id=&quot;you-shall-not-pass&quot;&gt;You shall not pass&lt;/h2&gt;

&lt;p&gt;The second question is in general:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;But how easy is it to hack me, whether it’s my phone, my computer, or even my online banking account?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img alt=&quot;You shall not pass!&quot; src=&quot;/images/2020/05/you_shall_not_pass.jpg&quot; title=&quot;You shall not pass!&quot; srcset=&quot;/assets/resized/480/you_shall_not_pass.jpg 480w, /images/2020/05/you_shall_not_pass.jpg 537w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;You shall not pass!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I like to answer this question in such a way as to make sure you are totally paranoid: excessively easy. Well, I admit, that kind of answer often makes me lose a part of the audience that is already between throwing the phone and the computer into the fire. But, for those who remain open, we can dig up the why.&lt;/p&gt;

&lt;p&gt;If you have finished building your Faraday cage at the foot of the Green Bank Telescope, we can continue with my explanation.&lt;/p&gt;

&lt;p&gt;The first answer to be given concerns the means. For those that do (see the second answer), companies spend astronomical budgets to guarantee the security of information systems. However, the result is not “is the door locked properly”, but “how long will the lock hold”. As with your armoured door. The real goal is not to prevent access, but to slow down the attacker enough so that you are warned and can take action. And very often these companies fail: just read the various daily announcements about massive data theft. So if, with their means, these companies fail, how can you be perfectly impervious?&lt;/p&gt;

&lt;p&gt;The second answer concerns responsibility. So we know that your means are limited: you don’t necessarily have the knowledge or the support to do it. All too often, security measures are so restrictive for normal use that users end up competing with each other in ingenuity to circumvent them, and thus make them useless. Under these conditions, it is therefore incumbent on those who provide you with these services to guarantee their security, but also their confidentiality. This is the purpose of, for example, the &lt;a href=&quot;https://en.wikipedia.org/wiki/General_Data_Protection_Regulation&quot;&gt;GDPR&lt;/a&gt; in Europe, or the &lt;a href=&quot;https://en.wikipedia.org/wiki/California_Consumer_Privacy_Act&quot;&gt;CCPA&lt;/a&gt; in California. In the same way, they must provide you with simple (and motivating) ways to make use of any security that you may be entrusted with.&lt;/p&gt;

&lt;h2 id=&quot;its-time-now&quot;&gt;It’s time now&lt;/h2&gt;

&lt;p&gt;But are they all effective? What can you do? The answer varies greatly from one solution to the next, but when I hear some people take pride in having “secured” their iPhone with FaceID, I can only recall an old episode of Columbo, where the assassin’s accomplice was driving around in a car, carrying a picture of the assassin to fool the cameras. Of course, not everyone is Columbo, but what about that young boy who manages to unlock his mother’s phone with his own face?&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Columbo&apos;s mask&quot; src=&quot;/images/2020/05/columbo_mask.jpg&quot; title=&quot;Columbo&apos;s mask&quot; srcset=&quot;/assets/resized/480/columbo_mask.jpg 480w,/assets/resized/800/columbo_mask.jpg 800w, /images/2020/05/columbo_mask.jpg 1116w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Columbo’s mask&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The first rule is to review your PIN codes and passwords:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;finish your son’s date of birth&lt;/li&gt;
  &lt;li&gt;no more 4-digit code&lt;/li&gt;
  &lt;li&gt;no more using your children’s names as passwords&lt;/li&gt;
  &lt;li&gt;no more using the same code or password everywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So yes, it can quickly become very complicated to have an ultra-complex password (a number, a special character, a lowercase, an uppercase, a hieroglyph, an emoticon, and especially in the right order in relation to what you ask the site or application.&lt;/p&gt;

&lt;p&gt;But it doesn’t matter: you still have your post-its and your notebook… … … Did you hear me yelling there?&lt;/p&gt;

&lt;p&gt;If you have an excellent memory and like mental gymnastics, you still can:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;remember a page from your favorite religious book, and use it as a password with all the punctuation that goes with it *&lt;/li&gt;
  &lt;li&gt;or define a “dynamic” password: a fixed password base, that you specifically and logically complete/modify for each site.&lt;/li&gt;
  &lt;li&gt;put all the important dates in your life in a row&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Except that you will always have sites or applications for which this will not fit, and you will have to find an exception… and how to memorize it.&lt;/p&gt;

&lt;p&gt;Some users are more perverse: they lie about anything at every use and as soon as the system asks them for a password again, they follow the lost password procedure. It’s almost effective, but it’s tiring.&lt;/p&gt;

&lt;p&gt;Others will rely on password portfolio solutions (&lt;a href=&quot;https://www.dashlane.com/&quot;&gt;Dashlane&lt;/a&gt;, &lt;a href=&quot;https://1password.com/&quot;&gt;1Password&lt;/a&gt;, …). Why not! But we come back to the above mentioned aspects on responsibilities and their obligations. On your side, this can clearly simplify your life: there is only one password to memorize, and you can make it as complex as you want! But there is one important point to remember: they can sometimes send you a temporary code to your main e-mail address to make sure that it is you who is trying to access the wallet, so remember the password as well. That’s only two, but still.&lt;/p&gt;

&lt;p&gt;But a password, it’s crackable. So it may take time, but since there is no such thing as zero risk, … It has to be reduced. That’s what the different techniques of [MFA] (https://en.wikipedia.org/wiki/Multi-factor_authentication) are all about:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;The use of multiple authentication factors to prove one’s identity is based on the premise that an unauthorized actor is unlikely to be able to supply the factors required for access. If, in an authentication attempt, at least one of the components is missing or supplied incorrectly, the user’s identity is not established with sufficient certainty and access to the asset (e.g., a building, or data) being protected by multi-factor authentication then remains blocked. The authentication factors of a multi-factor authentication scheme may include:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Something you have - some physical object in the possession of the user, such as a USB stick with a secret token, a bank card, a key, etc.&lt;/li&gt;
    &lt;li&gt;Something you know - certain knowledge only known to the user, such as a password, PIN, TAN, etc.&lt;/li&gt;
    &lt;li&gt;Something you are - some physical characteristic of the user (biometrics), such as a fingerprint, eye iris, voice, typing speed, pattern in key press intervals, etc.&lt;/li&gt;
    &lt;li&gt;Somewhere you are - some connection to a specific computing network or utilizing a GPS signal to identify the location.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;The applications listed above can help you with this, for example.&lt;/p&gt;

&lt;p&gt;Okay, great, so you can “secure” access to your tools within certain limits. But what about your devices (computers, phone, …)? They are just as vunerable. Coming back to our friends Harold and Elliot, you too often leave open access to your phones: Wifi, Bluetooth, NFC, … So start by disabling them whenever possible. In the case of Bluetooth, some software versions allow to have it active (so that it connects elsewhere) but without “publishing” it. Same for the Wifi in your home.&lt;/p&gt;

&lt;p&gt;Then, a good antivirus is always useful. A paying one is better. It’s stupid to say but, the advanced functions above are very useful but paying. You could always multiply the free applications that each brings a part of these functions … But this can become counterproductive in terms of security, but also in terms of performance. We then come back to the constraints that you would try to bypass.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Yes, but &lt;em&gt;me&lt;/em&gt; I’m under Mac OS, and there’s no virus or anything like that!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;img alt=&quot;Objection!&quot; src=&quot;/images/2020/05/objection.png&quot; title=&quot;Objection!&quot; srcset=&quot;/assets/resized/480/objection.png 480w, /images/2020/05/objection.png 550w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Objection!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Just last week, I was able to demonstrate just by installing an antivirus on a friend’s Mac that it was a nice marketing illusion that had served its time.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Yes, but when I’m on the net, I surf via a VPN&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Well, beyond the question of trust in this VPN service, a VPN is still a tunnel. Have you ever seen a road tunnel preventing a pedestrian from entering it in the opposite direction of the cars? It’s bullshit without a no, but it’s possible. So your VPN, apart from getting you to the other side of the mountain, has little use in that. And when I see the TV commercials of some people promising you privacy on the internet, I can’t help but giggle…&lt;/p&gt;

&lt;h2 id=&quot;am-i-safe&quot;&gt;Am I safe?&lt;/h2&gt;

&lt;p&gt;It depends. We can finally get back to the original subject: are you a Person of Interest?&lt;/p&gt;

&lt;p&gt;You have now done a lot for your security: you have cut useless accesses, you don’t use Social Logins anymore, you have made your passwords more complex, you abuse MFAs, … It’s not bad. So you still have the sites and applications you use. Remember, you got out of your Faraday cage to come back on the internet to read the rest of this article. You are therefore connected to third parties.&lt;/p&gt;

&lt;p&gt;I remember last year, a friend of mine was worried because he had received an email “sent by himself” (remind me to tell you about Sender Forgery and Spoofing), threatening him to “divulge he knows exactly what was found on his hard drive” unless he paid a Bitcoin ransom. So for one, this famous friend is a bit paranoid and only uses LiveUSB. And two, he doesn’t store anything because he’s unable to find anything (which can be funny in private life). Anyway, the question was: why was he targeted?&lt;/p&gt;

&lt;p&gt;Well, he wasn’t actually targeted. His email was simply found in a database that was hacked, and the vile offenders decided to send emails to all known addresses found in it. After all, they would find at least one person “who knows very well what was lying around on his hard drive” and who would pay his ransom without flinching.&lt;/p&gt;

&lt;p&gt;However, there is no stolen confidential data here, nor any real ransom. This is just an attempt at a mass con.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;But the point is interesting. This reminds me of the episode &lt;a href=&quot;https://en.wikipedia.org/wiki/Shut_Up_and_Dance_%28Black_Mirror%29&quot;&gt;Shut Up and Dance&lt;/a&gt; of &lt;em&gt;Black Mirror&lt;/em&gt;. That pretty much sums it up. If we hack you specifically, knowing you for real, there’s an interest. But this is still extremely exceptional, and no, your personal savings do not interest us. Either you’re doing something illegal, and that interests the authorities or the avengers. Either you actually have money (we are talking in billions). Or finally, you have access to interesting information (business, strategy, … always for values in billions).&lt;/p&gt;

&lt;p&gt;But, again, this is an exception. The general rule is that you are just drowning in the mass of information hacked from vulnerable sites/tools. There are various ways to see if this is possible: the portfolios mentioned above, but also a well provisioned website: &lt;a href=&quot;https://haveibeenpwned.com/&quot;&gt;Have I been pwned?&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My soul of great paranoid romantic prefers to stay on the idea that I am a Person of Interest, and that the Machine is watching me. And you, are you a person of interest?&lt;/p&gt;

&lt;p&gt;PS: remember: You’re being watched.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>My neighbor is noisy</title>
      <link href="https://francois.aichelbaum.com/2020/04/17/my-neighbor-is-noisy" />
      <updated>2020-04-17T10:11:46+02:00</updated>
      <id>https://francois.aichelbaum.com/2020/04/17/my-neighbor-is-noisy</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; My neighbor is noisy&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#some-quick-reminder&quot; id=&quot;markdown-toc-some-quick-reminder&quot;&gt;Some quick reminder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#my-noisy-neighbor-is-named&quot; id=&quot;markdown-toc-my-noisy-neighbor-is-named&quot;&gt;My noisy neighbor is named…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#my-neighbor-moves-me&quot; id=&quot;markdown-toc-my-neighbor-moves-me&quot;&gt;My neighbor moves me&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#let-me-be&quot; id=&quot;markdown-toc-let-me-be&quot;&gt;Let me be!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#do-you-agree&quot; id=&quot;markdown-toc-do-you-agree&quot;&gt;Do you agree?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;
&lt;p&gt;Don’t worry, I won’t discuss about my personal neighbors during the Covid-19 confinement. Lately, several of my customers had random and difficult-to-diagnose issues with their Cloud instances. As this is not related to a specific provider (some of them are using &lt;a href=&quot;https://aws.amazon.com/&quot;&gt;AWS&lt;/a&gt; while the others are using &lt;a href=&quot;https://www.ovhcloud.com/fr/public-cloud/compute/&quot;&gt;OVH Public Cloud&lt;/a&gt;), the root cause remains the same. Before going into more detail, I’ll give you a quick answer: their neighbors are noisy.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Protesters demonstrate against Donald Trump&apos;s presidency during the campaign trail in 2016 (by AP)&quot; src=&quot;/images/2020/04/donald-trump-protest-assault.jpg&quot; title=&quot;Protesters demonstrate against Donald Trump&apos;s presidency during the campaign trail in 2016 (by AP)&quot; srcset=&quot;/assets/resized/480/donald-trump-protest-assault.jpg 480w,/assets/resized/800/donald-trump-protest-assault.jpg 800w,/assets/resized/1400/donald-trump-protest-assault.jpg 1400w, /images/2020/04/donald-trump-protest-assault.jpg 1440w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Protesters demonstrate against Donald Trump’s presidency during the campaign trail in 2016 (by AP)&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;some-quick-reminder&quot;&gt;Some quick reminder&lt;/h2&gt;

&lt;p&gt;Of course, you all know what the Cloud is, don’t you? So no, it’s not just your online storage, it’s not just your photo sharing. According to &lt;a href=&quot;https://en.wikipedia.org/wiki/Cloud_computing&quot;&gt;Wikipedia&lt;/a&gt;, as we’re discussing especially about Cloud Computing:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user. The term is generally used to describe data centers available to many users over the Internet. Large clouds, predominant today, often have functions distributed over multiple locations from central servers. If the connection to the user is relatively close, it may be designated an edge server.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Technically, those are virtual resources, easily manageable. By virtual resources, I mean a segmentation of the physical machine into different instances, dedicated to different customers. All of this at the scale of entire data centers.&lt;/p&gt;

&lt;p&gt;The virtualization provided is based on usual market solutions (VMware, kvm, …) with potentially management overlay, or home-made solutions. So we talk about hypervisor for the host machine, and instance for the virtual machine.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Virtual Architecture&quot; src=&quot;/images/2020/04/virtual-architecture.png&quot; title=&quot;Virtual Architecture&quot; srcset=&quot;/assets/resized/480/virtual-architecture.png 480w,/assets/resized/800/virtual-architecture.png 800w, /images/2020/04/virtual-architecture.png 941w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Virtual Architecture&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The subject that interests us here is in itself neither new nor unknown to Cloud providers: they are all gradually releasing offers with “guaranteed performance” or “dedicated resources”. But why this?&lt;/p&gt;

&lt;p&gt;Let’s go back to our virtual architecture: we see it as a segmentation of the host machine. Let’s replace our server by a cake and the instances by slices. So you can cut your cake into as many slices as you want, as long as there is cake. Therefore, to have more slices, you have to make them smaller. The same is theoretically true for virtualization.&lt;/p&gt;

&lt;p&gt;Theoretically is the important word here: indeed, your providers bet that not all their customers were using all the resources allocated to their instances at the same time. They then decided to keep larger sizes for the instances than the host machine can handle. This is called overbooking.&lt;/p&gt;

&lt;p&gt;Most of the time they are right. But the moments that make them wrong, are detrimental to you. This overbooking is predictable for you, customers, depending on the tariff of your provider: the cheaper it is, the higher the probability and the coefficient of overbooking. In addition to dedicated resources, some providers promise you an adequate infrastructure where storage would be the absolute key, through fully SSD-based storage. That’s good. But that’s not all.&lt;/p&gt;

&lt;div class=&quot;alert alert-success&quot; role=&quot;alert&quot;&gt;&lt;i class=&quot;fa fa-check-square-o&quot;&gt;&lt;/i&gt; &lt;b&gt;Tip:&lt;/b&gt; I can’t repeat it enough to my various contacts: no the ‘Cloud’ is not cheap and not very quickly you cost an arm and a leg.&lt;/div&gt;

&lt;h2 id=&quot;my-noisy-neighbor-is-named&quot;&gt;My noisy neighbor is named…&lt;/h2&gt;

&lt;p&gt;Because of this overbooking, whether it’s naturally related to the mass of instances, or specifically due to a single instance (our Noisy Neighbor), the effect is the same: you have at a given time, less resources available than expected.&lt;/p&gt;

&lt;p&gt;The first question I hear most often then is:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;But how do you detect it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the most difficult part for you because, in the middle of a run, this can manifest itself in various ways, with obvious signals only in some rare cases. The other signals will simply be the direct consequences on your own service.&lt;/p&gt;

&lt;p&gt;On Linux, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;top&lt;/code&gt; can provide one of the obvious signal. Have you ever wonder what is the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;st&lt;/code&gt; value at the end of the second line ? To be conciese, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;st&lt;/code&gt;, for “steal time”, is only relevant in virtualized environments (your Cloud setup here). It represents time when the CPU, from the host, was not available to the current instance: it was &lt;em&gt;stolen&lt;/em&gt;. If you want more details about this steal time, you can refer to this &lt;a href=&quot;https://public.dhe.ibm.com/software/dw/linux390/perf/CPU_time_accounting.pdf&quot;&gt;tech paper&lt;/a&gt; from IBM.&lt;/p&gt;

&lt;p&gt;A recommendation to all my customers, when we work on their monitoring platforms, is to include behavior change and comparison tests. Do latency levels suddenly increase? Does the system have hangs without being loaded, and without I/O?&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Monitoring room in China&quot; src=&quot;/images/2020/04/monitoring.jpg&quot; title=&quot;Monitoring room in China&quot; srcset=&quot;/assets/resized/480/monitoring.jpg 480w,/assets/resized/800/monitoring.jpg 800w, /images/2020/04/monitoring.jpg 1200w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Monitoring room in China&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;On latency, for example, I remember one client where we worked on their content distribution services using nginx and doing some pretty advanced fine-tuning. From there, we launched tests and set up monitoring for each of the instances concerned. Very low latencies and high bandwidths, at all times, whatever the instance and the Cloud provider. Then one morning, this customer called me with a catastrophic call: all his European customers were complaining about abnormally long latencies when opening the hosted videos. The analysis tests went quite far:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;check the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Navigation_timing_API&quot;&gt;navigation timing&lt;/a&gt; values to determine what could generate these latencies: the &lt;a href=&quot;https://fr.wikipedia.org/wiki/Time_to_first_byte&quot;&gt;TTFB&lt;/a&gt; increases abnormally while everything else is stable.&lt;/li&gt;
  &lt;li&gt;only the platform hosted in France on one provider is impacted: no abnormal latency on other providers or regions&lt;/li&gt;
  &lt;li&gt;no machine load (nor steal time - see above)&lt;/li&gt;
  &lt;li&gt;no I/O&lt;/li&gt;
  &lt;li&gt;low throughput of the concerned instances: 10 Mbps on average against several hundred for those with no worries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While we’re testing in all directions, with no configuration changes other than juggling the nginx debugging options, the service returns to normal. The next day, around the same time, the same client contacts me again in a panic over the same subject. Same analysis, same result, same return to normal.&lt;/p&gt;

&lt;p&gt;After (too) long exchanges with the support of this provider, we finally got the information: another instance was behaving abnormally and was consuming a good part of the machine resources, in particular the network part (speed and number of connections). You said peer-to-peer for last summer’s family videos?&lt;/p&gt;

&lt;h2 id=&quot;my-neighbor-moves-me&quot;&gt;My neighbor moves me&lt;/h2&gt;

&lt;p&gt;On the subject of the “hang system”, it’s a little more vicious and specific. A client in the video industry, does massive transcoding using ffmpeg. Part of the work is done via CPUs (the smaller resolutions) while the higher resolutions (HD / 4K in mind) are done via GPUs. The setup works well except that regularly some live streams are disturbed in an incomprehensible way, exclusively from the CPU instances. After a long analysis, the only common point of all its interruptions, both in terms of chronology of events, behaviour and logs, is the “bridle” of ffmpeg to a single CPU thread actually used.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Delivery guy collecting a package&quot; src=&quot;/images/2020/04/livraison.jpg&quot; title=&quot;Delivery guy collecting a package&quot; srcset=&quot;/assets/resized/480/livraison.jpg 480w,/assets/resized/800/livraison.jpg 800w,/assets/resized/1400/livraison.jpg 1400w, /images/2020/04/livraison.jpg 1920w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Delivery guy collecting a package&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We therefore focused our analytical work on understanding what could cause this behavioural change on the part of ffmpeg. After different stress-tests of the instances, only one allowed to reproduce the behavior: the I/O stress-tests at the kernel level, causing system hangs.&lt;/p&gt;

&lt;p&gt;At that time, my client remembered having vaguely seen some automated storage migration emails passing by the concerned provider, at the same time as the famous interruptions.&lt;/p&gt;

&lt;p&gt;So yes, another important reminder:&lt;/p&gt;

&lt;div class=&quot;alert alert-success&quot; role=&quot;alert&quot;&gt;&lt;i class=&quot;fa fa-check-square-o&quot;&gt;&lt;/i&gt; &lt;b&gt;Tip:&lt;/b&gt; Theoretically transparent host or storage moves are rarely transparent in practice.&lt;/div&gt;

&lt;h2 id=&quot;let-me-be&quot;&gt;Let me be!&lt;/h2&gt;

&lt;p&gt;The next question, they usually ask, is:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;But how do you prevent it?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It all depends on your budget!&lt;/p&gt;

&lt;p&gt;Large instance consumers allow themselves to test an instance when spawning it to make sure there are no noisy neighbors from the start. Tests are typically stress-tests specific to each instance template used, the results of which are compared to the average values of the instances considered “valid”.  Automation of your entire infrastructure is key here.&lt;/p&gt;

&lt;p&gt;This pre-use stage of the instance can quickly become expensive: some people have been surprised to see dozens of attempts before having a viable instance. Time being money in the Cloud world, …&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;A dog hunting&quot; src=&quot;/images/2020/04/pistage.jpg&quot; title=&quot;A dog hunting&quot; srcset=&quot;/assets/resized/480/pistage.jpg 480w,/assets/resized/800/pistage.jpg 800w,/assets/resized/1400/pistage.jpg 1400w, /images/2020/04/pistage.jpg 1920w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;A dog hunting&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most people implement corrective solutions. The monitoring (see above) is then interfaced with the automation tools and will restart a new instance to replace the one detected as disturbed.&lt;/p&gt;

&lt;p&gt;This is the least expensive but can have two impacts depending on your service/infrastructure:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;a small delay before detection and/or relaunch&lt;/li&gt;
  &lt;li&gt;a service interruption if your instance is not redundant or if your load-balancer is slow to detect its unavailability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Another solution would be to host your services on dedicated infrastructure when it makes sense, and consider Cloud services as overflow solutions.&lt;/p&gt;

&lt;h2 id=&quot;do-you-agree&quot;&gt;Do you agree?&lt;/h2&gt;

&lt;p&gt;I remember an article explaining that it was the fault of your application and not of cloud hosting. We could go back to the eternal war between Dev and Ops, but these articles usually completely overlook the monitoring aspects and therefore the observability of what is going on. Their point of view is therefore valid, but not gospel.&lt;/p&gt;

&lt;p&gt;On your side, have you ever been through these setbacks? How did you react?&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>My life with a geo-replicated GlusterFS setup</title>
      <link href="https://francois.aichelbaum.com/2020/03/26/my-life-with-glusterfs-georep" />
      <updated>2020-03-26T17:15:16+01:00</updated>
      <id>https://francois.aichelbaum.com/2020/03/26/my-life-with-glusterfs-georep</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; Feedback on a geo-rep GlustserFS 7.3 setup&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#but-why-&quot; id=&quot;markdown-toc-but-why-&quot;&gt;But why ?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-setup&quot; id=&quot;markdown-toc-the-setup&quot;&gt;The setup&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#and-then-theres-the-drama&quot; id=&quot;markdown-toc-and-then-theres-the-drama&quot;&gt;And then there’s the drama&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#did-you-think-it-was-over&quot; id=&quot;markdown-toc-did-you-think-it-was-over&quot;&gt;Did you think it was over?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#one-more-thing&quot; id=&quot;markdown-toc-one-more-thing&quot;&gt;One more thing…&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;
&lt;p&gt;Recently, I had to build a geo-replicated GlusterFS setup and encountered a bunch of issues due to the not-so-up-to-date documentation and the &lt;em&gt;unlucky thing&lt;/em&gt;. So much time spent reviewing things and discussing with the dev team over IRC. Here’s my (recent) life with a geo-replicated GlusterFS setup.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;My life with a geo-replicated GlusterFS setup&quot; src=&quot;/images/ants.jpg&quot; title=&quot;My life with a geo-replicated GlusterFS setup&quot; srcset=&quot;/assets/resized/480/ants.jpg 480w,/assets/resized/800/ants.jpg 800w,/assets/resized/1400/ants.jpg 1400w, /images/ants.jpg 1920w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;My life with a geo-replicated GlusterFS setup&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;but-why-&quot;&gt;But why ?&lt;/h2&gt;

&lt;p&gt;Before we get started, it would be good if I gave you a little context. So, this is an assignment for a software company.&lt;/p&gt;

&lt;p&gt;They provide their customers with large amounts of data (about 11 TB). The publisher being French, and for reasons of ease and sysadmin skills - at the time of implementation - has created all its infrastructures in France.&lt;/p&gt;

&lt;p&gt;Due to the fact that they have little control over their network (provided by another service provider from which they cannot leave for the moment) and a worldwide audience (with a strong increase on the North American continent), they were forced to deploy &lt;a href=&quot;https://www.cloudflare.com/learning/cdn/glossary/edge-server/&quot;&gt;edge servers&lt;/a&gt; (HTTP services allowing the local distribution of its famous 11 TB).&lt;/p&gt;

&lt;p&gt;This then irremediably leads to high latencies and low throughput for these North American users. Not a very pleasant user experience, you’ll tell me about it. If we talk about numbers:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Latency: &lt;strong&gt;2 seconds&lt;/strong&gt; compared to &lt;strong&gt;0.3 seconds&lt;/strong&gt; from France.&lt;/li&gt;
  &lt;li&gt;Throughput: &lt;strong&gt;500 kB/s&lt;/strong&gt; compared to &lt;strong&gt;15 MB/s&lt;/strong&gt; from France (and even 150 MB/s locally at storage)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So they decided to call me to see how we could improve things with the following constraints:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;rely on the existing provider (which has infrastructure in Europe and North America)&lt;/li&gt;
  &lt;li&gt;with the smoothest possible future migration to make it a quick-win&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After an audit, we come to a decision for the following setup:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;local cluster in France, based on a distributed GlusterFS setup&lt;/li&gt;
  &lt;li&gt;Local cluster in North America, also based on a distributed GlusterFS setup, geo-replicated on the first one in real time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interesting thing here will also be to recycle technological bricks that the editor’s team already knows about, and to stay on something quite high level: GlusterFS is an overlay to the underlying filesystem (XFS was our choice here). The GlusterFS documentation (since &lt;a href=&quot;https://staged-gluster-docs.readthedocs.io/en/release3.7.0beta1/Administrator%20Guide/Distributed%20Geo%20Replication/&quot;&gt;version 3.5&lt;/a&gt;) also promises the correct operation of geo-replication over a distributed setup.&lt;/p&gt;

&lt;p&gt;Please, note also that I’ll resume the operations here, not describing the minutes of each action.&lt;/p&gt;

&lt;h2 id=&quot;the-setup&quot;&gt;The setup&lt;/h2&gt;

&lt;p&gt;I enjoy working with Ansible to deploy my small clusters, like many DevOps. So I’m starting on it, writing &lt;a href=&quot;https://github.com/faichelbaum/ansible-gluster&quot;&gt;my own playbooks&lt;/a&gt;. Be careful, the project presented on the previous link is the result of the work described here, after a little obvious cleaning, and potentially before a sequel …&lt;/p&gt;

&lt;p&gt;The idea of this setup is to have the following elements:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Each country has its own cluster GlusterFS (the master being in France)&lt;/li&gt;
  &lt;li&gt;Each cluster has two servers in &lt;a href=&quot;https://docs.gluster.org/en/latest/Administrator%20Guide/Setting%20Up%20Volumes/#creating-distributed-volumes&quot;&gt;distributed mode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Each server has 10 disks of 4 TB available for this storage, built in software Raid type 10, formatted in &lt;a href=&quot;https://access.redhat.com/articles/3129891#the-xfs-file-system-3&quot;&gt;XFS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Each node mounts the cluster locally with these parameters: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;127.0.0.1:/storage-fr /opt/self glusterfs defaults,_netdev,noatime,log-level=ERROR,log-file=/var/log/gluster.log,direct-io-mode=no,fopen-keep-cache,negative-timeout=10,attribute-timeout=30,fetch-attempts=5,use-readdirp=no,backupvolfile-server=fs-fr-02 0 0&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img alt=&quot;GlusterFS Distributed Volume&quot; src=&quot;/images/glusterfs/distributed.png&quot; title=&quot;GlusterFS Distributed Volume&quot; srcset=&quot;/assets/resized/480/distributed.png 480w, /images/glusterfs/distributed.png 660w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;GlusterFS Distributed Volume&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That’s the setup at the very beginning. Now let’s live it.&lt;/p&gt;

&lt;h2 id=&quot;and-then-theres-the-drama&quot;&gt;And then there’s the drama&lt;/h2&gt;

&lt;p&gt;Thanks to the Ansible playbook, the entire deployment goes smoothly and without errors. So I import my 11 TB and then I admit… but not for long. It’s perfect, but a SysOps rule scares me:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;If everything goes well on the first try, you’ve forgotten something.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;Fortunately&lt;/em&gt; for me, not everything is so beautiful: geo-replication doesn’t start. A glance at the geo-replication status does indeed bring me back to reality:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;gluster volume geo-replication storage-fr fs-ca-01::storage-ca status

MASTER NODE      MASTER VOL    MASTER BRICK        SLAVE USER    SLAVE                       SLAVE NODE       STATUS    CRAWL STATUS                   LAST_SYNCED
&lt;span class=&quot;nt&quot;&gt;------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/span&gt;
fs-fr-01         storage-fr    /opt/brick           root         fs-ca-01::storage-ca        N/A              Faulty    N/A                            N/A
fs-fr-02         storage-fr    /opt/brick           root         fs-ca-02::storage-ca        N/A              Faulty    N/A                            N/A&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;In fact, the startup passes the replication to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Active&lt;/code&gt; and then immediately to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Faulty&lt;/code&gt;. For a successful setup, I would come back. So obviously, we always start by consulting the logs first:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;less &lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;gluster volume geo-replication storage-fr fs-ca-01::storage-ca config log-file&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;And here we see a beautiful log entry, extremely explicit:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-log&quot; data-lang=&quot;log&quot;&gt;E [syncdutils(worker
/gfs1-data/brick):338:log_raise_exception] &amp;lt;top&amp;gt;: FAIL:
Traceback (most recent call last):
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/gsyncd.py&quot;,
line 322, in main
    func(args)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/subcmds.py&quot;,
line 82, in subcmd_worker
    local.service_loop(remote)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
line 1277, in service_loop
    g3.crawlwrap(oneshot=True)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 599, in crawlwrap
    self.crawl()
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 1555, in crawl
    self.changelogs_batch_process(changes)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 1455, in changelogs_batch_process
    self.process(batch)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 1290, in process
    self.process_change(change, done, retry)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 1229, in process_change
    st = lstat(go[0])
  File
&quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/syncdutils.py&quot;, line
564, in lstat
    return errno_wrap(os.lstat, [e], [ENOENT], [ESTALE, EBUSY])
  File
&quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/syncdutils.py&quot;, line
546, in errno_wrap
    return call(*arg)
OSError: [Errno 22] Invalid argument:
&apos;.gfid/1ab24e67-1234-abcd-5f6g-1ab24e67&apos;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;First though is about a specific issue at some files. Checking the file matching the gfid, it occurs to seem valid. As an attempt to save the day, I get rid of it and restart the geo-replication. With no success at it fails the same way. Discussing with the Gluster dev team over IRC, they wonder if the amount of initial data might not be the issue. Fair enough, I get read of the data 1 TB per 1 TB, testing the geo-replication at each stage. Still no luck. As I end with a totally wiped folder, with no more data, I wondered if the changelog did not get corrupted or filled up during those test. I decide to wipe the complete cluster and attempt once again the deployment with Ansible, but without importing any data. To wipe the setup on the servers, I used the following commands:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs-fr-01 &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;gluster volume geo-replication storage-fr fs-ca-01::storage-ca stop force&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs-fr-01 &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;gluster volume geo-replication storage-fr fs-ca-01::storage-ca delete reset-sync-time&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs_fr &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;echo y | gluster volume stop storage-fr&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs_ca &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;echo y | gluster volume stop storage-ca&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;dpkg -l | grep gluster | awk &apos;{ print &lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\$&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;2 }&apos; | xargs sudo apt -y remove&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;service glusterd stop&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;umount /opt/self&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;setfattr -x trusted.glusterfs.volume-id /opt/brick&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;setfattr -x trusted.gfid /opt/brick&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;rm -fR /opt/brick/.glusterfs&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;find /usr -name &apos;*gluster*&apos; -exec rm -fR {} &lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;find /var -name &apos;*gluster*&apos; -exec rm -fR {} &lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ansible fs &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; shell &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;find /etc -name &apos;*gluster*&apos; -exec rm -fR {} &lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;And as you might have expected: it failed over once again!&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-log&quot; data-lang=&quot;log&quot;&gt;E [syncdutils(worker
/gfs1-data/brick):338:log_raise_exception] &amp;lt;top&amp;gt;: FAIL:
Traceback (most recent call last):
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/gsyncd.py&quot;,
line 322, in main
    func(args)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/subcmds.py&quot;,
line 82, in subcmd_worker
    local.service_loop(remote)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/resource.py&quot;,
line 1277, in service_loop
    g3.crawlwrap(oneshot=True)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 599, in crawlwrap
    self.crawl()
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 1555, in crawl
    self.changelogs_batch_process(changes)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 1455, in changelogs_batch_process
    self.process(batch)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 1290, in process
    self.process_change(change, done, retry)
  File &quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/master.py&quot;,
line 1229, in process_change
    st = lstat(go[0])
  File
&quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/syncdutils.py&quot;, line
564, in lstat
    return errno_wrap(os.lstat, [e], [ENOENT], [ESTALE, EBUSY])
  File
&quot;/usr/lib/x86_64-linux-gnu/glusterfs/python/syncdaemon/syncdutils.py&quot;, line
546, in errno_wrap
    return call(*arg)
OSError: [Errno 22] Invalid argument:
&apos;.gfid/00000000-0000-0000-0000-000000000001&apos;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This time, the gfid matches the Gluster root: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/opt/self&lt;/code&gt;. How may it fails over the empty root? I review the complete setup with the dev guys and we could not find any issues with it: it correspond to the simpliest version of the documentation, without any potential permission issue as I built the setup as a root to begin with. One of them proposed to use a &lt;a href=&quot;https://github.com/aravindavk/gluster-georep-tools&quot;&gt;python script&lt;/a&gt; that can do it all “&lt;em&gt;by magic&lt;/em&gt;”. The tool installation and usage is pretty straight forward … but yet: no luck.&lt;/p&gt;

&lt;p&gt;After several days of digging, building and wiping things, using different hardware and VMs, I asked a simple question: is the distribued setup meant to be the source of the geo-replication? Colleagial positive answer as it’s available since version 3.5, as we are at version 7.3 and none of them touch this part of the code, it &lt;em&gt;should&lt;/em&gt; work. Right. &lt;em&gt;Should&lt;/em&gt; is the key to it all. None of them tested this setup since the branch 4.x of GlusterFS. Or fair enough, I can build a new setup quite quickly: let’s move to a replicated setup as a source to the geo-replication… And &lt;em&gt;voilà&lt;/em&gt;! Now it works perfectly fine. There was some regression at least since the branch 5.x and no once noticed.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/images/facepalm.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/facepalm.jpg 480w,/assets/resized/800/facepalm.jpg 800w, /images/facepalm.jpg 1100w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Not the most perfect solution but I can still achieve the same results my customer expect. Let’s move to a new setup:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Each country has its own cluster GlusterFS (the master being in France)&lt;/li&gt;
  &lt;li&gt;Each cluster has two servers in &lt;a href=&quot;https://docs.gluster.org/en/latest/Administrator%20Guide/Setting%20Up%20Volumes/#creating-replicated-volumes&quot;&gt;replicated mode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Each server has 10 disks of 4 TB available for this storage, built in software Raid type 0, formatted in &lt;a href=&quot;https://access.redhat.com/articles/3129891#the-xfs-file-system-3&quot;&gt;XFS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Each node mounts the cluster locally with these parameters: `127.0.0.1:/storage-fr /opt/self glusterfs defaults,_netdev,noatime,log-level=ERROR,log-file=/var/log/gluster.log,direct-io-mode=no,fopen-keep-cache,negative-timeout=10,attribute-timeout=30,fetch-attempts=5,use-readdirp=no,backupvolfile-server=fs-fr-02 0 0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img alt=&quot;GlusterFS Replicated Volume&quot; src=&quot;/images/glusterfs/replicated.png&quot; title=&quot;GlusterFS Replicated Volume&quot; srcset=&quot;/assets/resized/480/replicated.png 480w, /images/glusterfs/replicated.png 660w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;GlusterFS Replicated Volume&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ok we have a working setup, we can import the 11 TB. It will take quite some time. I run a simple rsync command in a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;screen&lt;/code&gt; without supervising it, and I’ll repeat the command over and over until the migration to be as up-to-date as possible prior to the M-Day:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;rsync &lt;span class=&quot;nt&quot;&gt;-PWavu&lt;/span&gt; /mnt/old/ /mnt/new/ &lt;span class=&quot;nt&quot;&gt;--delete-during&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--ignore-errors&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;So far so good, the M-Day is here and we decide to proceed with the migration. We update the mount points and benefit from the same options as previously. The customer is happy as the promised performance are reach in term of latency and throughput. Meaning, I’m happy and relieved.&lt;/p&gt;

&lt;h2 id=&quot;did-you-think-it-was-over&quot;&gt;Did you think it was over?&lt;/h2&gt;

&lt;p&gt;A couple hours later, his biggest customer in the US reach him out as they can’t access any files. Checking the logs, I can see a bunch of HTTP codes &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/200&quot;&gt;200&lt;/a&gt; and &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/304&quot;&gt;304&lt;/a&gt;, so I wonder if the issue is a &lt;a href=&quot;https://en.wiktionary.org/wiki/PEBCAK&quot;&gt;pebcak&lt;/a&gt; or an intermediate cache issue somewhere else: I request a couple of problematic URL to test.&lt;/p&gt;

&lt;p&gt;Checking the provided URL on both FR and CA platforms, I succeed to reproduce the issue. Checking first the edge servers, they show that the files do not exists. As the platform data was up-to-date, it is pretty unclear. Comparing the same folder on both platforms, the CA instance appear … empty. But &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;df&lt;/code&gt; reports the same volume usage. I decide to just add a simple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;-a&lt;/code&gt; param to my ls … and there they all are: the files exist, with the proper size, in the proper folder but instead of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;player.json&lt;/code&gt; (for instance), it’s named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.player.json.AbvgGY&lt;/code&gt;. Weird ? Not so much as this is the format of the temp files from an rsync. But why do GlusterFS do not fix them on the CA platform as the data and naming are valid on the FR side ? Simply because it relies on a simple checksum of the content, ignoring the name of the files (it expects to track the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rename()&lt;/code&gt; operation on the fly).&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;What&apos;s your name? Fuck you, that&apos;s my name.&quot; src=&quot;/images/thats-my-name.jpg&quot; title=&quot;What&apos;s your name? Fuck you, that&apos;s my name.&quot; srcset=&quot; /images/thats-my-name.jpg 267w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;What’s your name? Fuck you, that’s my name.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At this stage, my guess is that something happened during the data importation leading to the wrong file being copied. Checking each cluster logs, status and details (including the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;heal info&lt;/code&gt;), it appears that a split-brain occured on the FR platform. Pretty logicial with only two nodes in it. Digging a bit more on the timestamps, logs, states, … At the end, a pretty race condition of multiple things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;a pebcak (from me): I ran the rsync command with no specific param, leading to the creation of temp files ; I should have added &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--inplace&lt;/code&gt; argument to ensure using the proper name at once&lt;/li&gt;
  &lt;li&gt;network issues at the provider stage: kinda expected but it occured multiple times, and part during the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rename()&lt;/code&gt; operations&lt;/li&gt;
  &lt;li&gt;GlusterFS georep being too simple: why the heck don’t they include the name in the validation of the content?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, as long as it’s simple to heal the FR cluster (both split-brain and invalid data on one node), fixing the names on the CA cluster is not obvious. There is no GlusterFS mechanism to do so, and I can’t afford waiting for a week for the data to sync again if I decide to wipe the data. From here, I come with a new idea that is just an abuse of what GlusterFS is and how to fix a split-brain situation.&lt;/p&gt;

&lt;p&gt;I know that I have no more customer connections to the CA cluster as I moved them all to the FR cluster while solving the issue. To summarize the idea:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;GlusterFS considers that writing to a local brick (outside of GlusterFS) is an issue as it will lead to a split-brain&lt;/li&gt;
  &lt;li&gt;A split-brain can be resolve by reading locally the file via GlusterFS (mountpoint over 127.0.0.1) if there is no concurrent access to it&lt;/li&gt;
  &lt;li&gt;a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rename()&lt;/code&gt; operation does not change the &lt;em&gt;gfid&lt;/em&gt;, it just update the underlying link GlusterFS use&lt;/li&gt;
  &lt;li&gt;We know the data is valid, just the name is an issue&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks to this, I write a quick script and run it over my folders:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/bash&lt;/span&gt;

find /opt/brick/ &lt;span class=&quot;nt&quot;&gt;-name&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;.*&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-type&lt;/span&gt; f | &lt;span class=&quot;k&quot;&gt;while &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;read &lt;/span&gt;f&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do
        &lt;/span&gt;rename &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;s/\.([^.]*)\.([^.]*)\..*/$1.$2/&apos;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$f&lt;/span&gt;
        &lt;span class=&quot;nv&quot;&gt;brick&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;dirname&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;
        &lt;span class=&quot;nv&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$brick&lt;/span&gt; | &lt;span class=&quot;nb&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;s/brick/self/g&apos;&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;
        &lt;span class=&quot;nv&quot;&gt;filename&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;basename&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$f&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$self&lt;/span&gt; | xargs &lt;span class=&quot;nb&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-la&lt;/span&gt; &amp;amp;&amp;gt; /dev/null
        &lt;span class=&quot;nv&quot;&gt;dest&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;dirname&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$brick&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;rsync &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--inplace&lt;/span&gt;  &lt;span class=&quot;nv&quot;&gt;$brick&lt;/span&gt; root@fs-ca-02:&lt;span class=&quot;nv&quot;&gt;$dest&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--delete-after&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; /dev/null
&lt;span class=&quot;k&quot;&gt;done

&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;exit &lt;/span&gt;0&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Not the proper thing but efficient at least. It rename the file and ensure to solve the split-brain, before removing any invalid remaining dot file on the other node of the cluster. Neat.&lt;/p&gt;

&lt;h2 id=&quot;one-more-thing&quot;&gt;One more thing…&lt;/h2&gt;

&lt;p&gt;We should be fine. “&lt;em&gt;Should&lt;/em&gt;”. But we are not. New issue occurs on the edge servers as a full heal is running on the FR platform. Some of them expose corrupted files that are being healed, then cache those invalid files. As they are ok on both nodes of the cluster, the issue is clearly on the edge servers. To solve it, we just need to umount/mount the Gluster endpoint. Quick, efficient. We should re-do it once the full heal is achieved.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Besides all those issues with GlusterFS 7.3, I used to run a bunch of setup based on it … until the branch 4.x included. It used to be a bit more stable/reliable. I love the solution as it’s just a new layer, allowing you to build lots of things under it or around it. When it works, it just works. But when you have issues, the logs are not your best friend. I thing this is the main issue for a larger adoption of GlusterFS at this stage: the log entries and the documentation.&lt;/p&gt;

&lt;p&gt;Do you use GlusterFS to build your reliable storage or geo-replication services ? Do you struggle with it ? Feel free to ping me to discuss more about it.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Is the Coronovirus your opportunity ?</title>
      <link href="https://francois.aichelbaum.com/2020/03/03/coronavirus-your-opportunity" />
      <updated>2020-03-03T17:14:06+01:00</updated>
      <id>https://francois.aichelbaum.com/2020/03/03/coronavirus-your-opportunity</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; A virus ? An opportunity?&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#dependency-on-asia&quot; id=&quot;markdown-toc-dependency-on-asia&quot;&gt;Dependency on Asia…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#dependency-on-non-education-of-the-lower-classes&quot; id=&quot;markdown-toc-dependency-on-non-education-of-the-lower-classes&quot;&gt;Dependency on non-education of the lower classes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#what-about&quot; id=&quot;markdown-toc-what-about&quot;&gt;What about…&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#and-so&quot; id=&quot;markdown-toc-and-so&quot;&gt;And so?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#your-opportunity-&quot; id=&quot;markdown-toc-your-opportunity-&quot;&gt;Your opportunity ?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;
&lt;p&gt;While the world is watching as much news about the spread of Coronavirus as it is taking its temperature, business discussions are revolving around the global economic slowdown, forcing the various Central Banks and other financial organizations to meet to agree on “solutions”. What if the situation is actually your opportunity?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Inspired by some questions from my contacts as a Freelancer&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;dependency-on-asia&quot;&gt;Dependency on Asia…&lt;/h2&gt;

&lt;p&gt;I don’t think there is any need to linger on the news channels to know/understand how much we are now dependent on Asia (China, Taiwan, Japan, …). Indeed, between processors and micro-controllers foundry, manufacturers of electronic equipment, the various low-cost supplies (who is talking about the FFP2 mask components from China?)… we have such a dependency that our economy is directly affected.&lt;/p&gt;

&lt;p&gt;As recently as yesterday, one of my former colleagues, who was retrained in the supply of fibre-optic networks, seemed to be somewhat concerned about the situation and the risk to his business if he could no longer supply himself with network hardware. This point is collegially taken up by various service providers whose equipment comes from Asia. If the virus continues to spread as it does, many other industries will come to a standstill, also in Europe or the Americas.&lt;/p&gt;

&lt;p&gt;Many economists are therefore pointing the finger at the notorious globalisation that would have pushed us to produce ever cheaper, and therefore ever further. To this, they oppose as a solution to relocate, closer to the places of consumption: the also famous, near-shoring. However, hadn’t we avoided it precisely for reasons of cost, (un)skills, and also for reasons of calculating risks and other opportunities by saying to ourselves “if things go wrong, we’ll find another cheap solution”. To that, I would reply that they do not learn from their own mistakes.&lt;/p&gt;

&lt;h2 id=&quot;dependency-on-non-education-of-the-lower-classes&quot;&gt;Dependency on non-education of the lower classes&lt;/h2&gt;

&lt;p&gt;Today, if we look at our countries, the sectors most at risk because of potential containment are the industrial sectors, with a large workforce at very low cost. The same sector that we were looking to replace with offshoring in Asia, and that we now want to upgrade (conceptually) with near-shoring.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Cutting your costs in half!&quot; src=&quot;/images/2020/03/outsourcing-is-bad.jpg&quot; title=&quot;Cutting your costs in half!&quot; srcset=&quot; /images/2020/03/outsourcing-is-bad.jpg 460w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Cutting your costs in half!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;However, it is this same workforce, unskilled, often poorly educated, that is at the origin of the various populist movements that we have seen emerge in recent years. This is the same class that we continue to feed with fears and no real solutions, other than to tell them that we are protecting them and that the risk is low, or that we should not panic.&lt;/p&gt;

&lt;p&gt;My professional deformation makes me ask myself a question: how is this answer a solution? It is relatively simple: it is not. Indeed, as with our dependency on Asia, we do not look at the original concern that motivated this or that action: we focus exclusively on factors of consequence. For us technically, this is our famous RCA.&lt;/p&gt;

&lt;p&gt;Why is this situation with the lower classes a concern and is related to their non-education? The answer can be broken down, mainly, as follows:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Non-education (for reasons of means, gentrification, …) reduces their ability to rise outside the pre-established framework.&lt;/li&gt;
  &lt;li&gt;non-education will push them towards jobs with little added value and where they themselves have little added value: a robot would do just as well…&lt;/li&gt;
  &lt;li&gt;this work forbids them any possibility of remote work.&lt;/li&gt;
  &lt;li&gt;the low remuneration they earn prevents them from having access to better information (we will come back to this later), but also to quality solutions in the field of health care, e.g., the use of the Internet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img alt=&quot;The sewing room of A.T. Stewart&apos;s in 1875&quot; src=&quot;/images/2020/03/lower-classes.jpg&quot; title=&quot;The sewing room of A.T. Stewart&apos;s in 1875&quot; srcset=&quot;/assets/resized/480/lower-classes.jpg 480w,/assets/resized/800/lower-classes.jpg 800w,/assets/resized/1400/lower-classes.jpg 1400w, /images/2020/03/lower-classes.jpg 3238w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;The sewing room of A.T. Stewart’s in 1875&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-about&quot;&gt;What about…&lt;/h2&gt;

&lt;p&gt;I’ll grant you, it’s not all bad. Many companies already offer their employees remote working as a preventive measure. However, far too few are taking the plunge, for a variety of reasons:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;it’s too complicated (we’ll come back to this later).&lt;/li&gt;
  &lt;li&gt;you lose the human side (really?)&lt;/li&gt;
  &lt;li&gt;it’s because of insurance (do you think?)&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;or it could simply be because of a lack of trust&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img alt=&quot;Are you really working from home?&quot; src=&quot;/images/2020/03/remote-working-pool.jpg&quot; title=&quot;Are you really working from home?&quot; srcset=&quot;/assets/resized/480/remote-working-pool.jpg 480w,/assets/resized/800/remote-working-pool.jpg 800w, /images/2020/03/remote-working-pool.jpg 931w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Are you really working from home?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Of course, conditions and means have to be put in place, but as long as the job is suitable, nothing is unfeasible. This becomes all the more ironic when the companies refusing this teleworking are hosting companies or network operators.&lt;/p&gt;

&lt;p&gt;For the record, this reminds me of a situation at a major French telecom operator a few years ago. I was &lt;em&gt;normally&lt;/em&gt; working from the Paris HQ, to work on datacenter equipment, located in the suburbs. When, for practical as well as human reasons, I preferred to work from the said datacenter, I almost received a reprimand for not coming to the office and performing unofficial remote working. The datacenter belonged to the company and we had complete control over the video surveillance, so it was easy to check whether I was working on site or not.&lt;/p&gt;

&lt;p&gt;Here, we went from one extreme, with the factory, to the other, with a specific case of DevOps. But what about all the small convenience stores, for example? Of course, it’s clearly not that obvious. Still, for administrative matters, the means exist. More and more are getting available over internet: lately I registered myself for the next elections within minutes and received my voter card in the next couple of days.&lt;/p&gt;

&lt;p&gt;And what about our software? See the &lt;a href=&quot;https://www.cnet.com/news/huawei-ban-full-timeline-us-government-china-trump-ban-security-threat-google-p40/&quot;&gt;Android case with Chinese Huawei&lt;/a&gt;? Opensource might be your solution in most of the situation. In France, you can rely on the &lt;a href=&quot;https://www.april.org/&quot;&gt;April&lt;/a&gt; association (I’m also a member there) to assist you on those matters.&lt;/p&gt;

&lt;h2 id=&quot;and-so&quot;&gt;And so?&lt;/h2&gt;

&lt;p&gt;Careful, now. Here I only give possible angles for reflection. These are not absolute truths and I would not claim to be a perfect economist. It is only part of my strategic vision to respond to many concerns. These concerns, I will address them afterwards in the form of small questions. To do so, I would try some parallels with subjects that I master better, because they are related to my daily professional life.&lt;/p&gt;

&lt;h3 id=&quot;how-can-you-not-be-dependent-on-asia&quot;&gt;How can you not be dependent on Asia?&lt;/h3&gt;

&lt;p&gt;The real question here would be rather: how to stop being dependent? So, I’m cutting down on any preconceived notion that you have to be self-sufficient:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;It’s a heresy of our nature: mankind has always done great things because of its communities…&lt;/li&gt;
  &lt;li&gt;the self-sufficient seeks to reduce the definition of our essential needs in order to remedy them; this leads irremediably to a problem: each of us cannot have access to the whole range of resources essential to our own sufficiency and ends up depending on a third party… &lt;a href=&quot;https://www.youtube.com/channel/UC4E1gPBh0_eJ5oftWVsewZA&quot;&gt;or not&lt;/a&gt;…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So yes, the real question is how to avoid (harmful) dependency. The point is precisely in one of the reasons that invalidates self-sufficiency: everyone needs his neighbour because we still don’t have access to the same resources. The solution is therefore to multiply the sources of supply for each type of resource. In our daily work, this is the basis for redundancy:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;We had a single server with a single disk…&lt;/li&gt;
  &lt;li&gt;we have multiplied the disks and power supplies of the PC to guarantee its operation&lt;/li&gt;
  &lt;li&gt;we have multiplied the servers to ensure the loss of a&lt;/li&gt;
  &lt;li&gt;we have multiplied the connectivity with the internet to ensure the loss of a link&lt;/li&gt;
  &lt;li&gt;we have multiplied the points of presence (datacenter) to guarantee the loss of a physical site&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In other areas, this redundancy is omnipresent: be it organizational, procedural, procurement related, … So why is it that in our economy and our business strategy, we persist in having only one supplier? This is the primary reason why offshoring and near-shoring alone is not the answer.&lt;/p&gt;

&lt;p&gt;So yes, you could tell me that multiplying supply contracts reduces the mass agreement with a single supplier, and therefore costs a little more in the end. But how much is your addiction costing you? Today, because of containment and non-supply, you’re in danger of going out of business. Tomorrow, your dependency will give your supplier the power to change the situation and put the knife to your throat. Of course, you will still be able to leave, but at what price. What guarantee do you have that other &lt;del&gt;vultures&lt;/del&gt; won’t try to kill you?&lt;/p&gt;

&lt;h3 id=&quot;is-near-shoring-a-good-thing-&quot;&gt;Is near-shoring a good thing ?&lt;/h3&gt;

&lt;p&gt;When we talk about near-shoring, we are talking mainly about local industrial production, not about small local shops. So yes, clearly, it does not solve everything, but it does bring some benefits:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;it provides work locally&lt;/li&gt;
  &lt;li&gt;it reduces the product transportation chain, and the pollution associated with it&lt;/li&gt;
  &lt;li&gt;in the case of foodstuffs, this could avoid certain phenomena where “local” products for exporters have reached astronomical prices for local populations (i.e. &lt;a href=&quot;https://www.theguardian.com/lifeandstyle/2017/aug/06/mexico-considers-importing-avocados-as-global-demand-drives-up-prices&quot;&gt;avocados&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, since we are talking about industry, we are generally talking about cheap, unskilled/educated labour. Reversing or intensifying near-shoring, therefore means intensifying the use of this labour force and thus favouring its deep rooting in this “cheap and unskilled” situation, generating a nice vicious circle. Are we talking about recent popular movements all over the world, including in France?&lt;/p&gt;

&lt;p&gt;I wonder, then, about one of the main promises of the industrial revolution, which we are continuing today, no matter what anyone says: automate what can be automated. I’m not referring to automating to increase production capacity. I am referring to automating to reduce repetitive human actions.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Whether it’s about home automation, robotic chains, Internet of Things, … so many ways and approaches precisely to rely on automation. For all that, it is not the disappearance of the human on these roles, but rather an obligation of evolution: even if we consider that &lt;a href=&quot;https://www.microsoft.com/en-us/research/publication/deepcoder-learning-write-programs/&quot;&gt;an AI would be able to generate code&lt;/a&gt;, it remains essential that a human remains the master of the code, i.e. the definition of the action, the design of the robot, … That there be assistance, yes, but not replacement. If you want one entrepreneur who talks about it…&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;In the same way, for corrective maintenance, improvements, problem analysis, … All this must require a &lt;em&gt;human factor&lt;/em&gt; intervener for the analysis. The answer to the previous problem of the situation of the lower classes is therefore to promote their education and access to information.&lt;/p&gt;

&lt;h3 id=&quot;remote-working-versus-daily-obligations-&quot;&gt;Remote working versus daily obligations ?&lt;/h3&gt;

&lt;p&gt;When working remotely or, even worse, in forced confinement, the population is exposed to isolation and supply complications. Moreover, recent fears in certain regions of France have motivated local populations to obtain mass supplies of non-perishable foodstuffs, thus producing a small shortage effect that could be managed quite differently.&lt;/p&gt;

&lt;p&gt;Massive remote-working at the level of a community (i.e. far beyond a company) has the effect of amplifying any sense of isolation, but also the fear that the media can convey.&lt;/p&gt;

&lt;p&gt;Here again, access to clear and accurate information helps to compensate for the latter. On the other hand, with regard to isolation, it is necessary to distinguish between different cases.&lt;/p&gt;

&lt;p&gt;In the case of isolation from local shops, online shops can set an example. Of course, this may be easier for the big players (supermarket chains, major e-commerce sites such as Amazon, …) but the small business can have so many possibilities:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;take advantage of marketplaces: after all, a good part of Amazon’s revenue on its site comes from its intermediary model; other sites also exist, more or less specialized (i.e. &lt;a href=&quot;https://www.etsy.com/&quot;&gt;Etsy&lt;/a&gt; for handicrafts)&lt;/li&gt;
  &lt;li&gt;use turnkey SaaS solutions: &lt;a href=&quot;https://shopify.com/&quot;&gt;Shopify&lt;/a&gt;, &lt;a href=&quot;https://www.wix.com/&quot;&gt;Wix&lt;/a&gt;, …&lt;/li&gt;
  &lt;li&gt;rely on local delivery services with food as a good example: UberEats, JustEat, Frichti, …&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And here I’m only mentioning a few 2.0 solutions. What about all the old-fashioned solutions that continue to exist as:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;mobile libraries&lt;/li&gt;
  &lt;li&gt;delivery of bread&lt;/li&gt;
  &lt;li&gt;pizza trucks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And for your supermarket habits, solutions already exist:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;online supermarket with drive-in&lt;/li&gt;
  &lt;li&gt;online supermarket with delivery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then, what about the doctor and any medical care? Online consultations are already a reality in France, officially supported by &lt;a href=&quot;https://www.ameli.fr/assure/remboursements/rembourse/telemedecine/teleconsultation&quot;&gt;social security&lt;/a&gt;. Of course, this only allows an initial filtering for benign concerns, but it can make medical practices and emergencies so much lighter, while at the same time compensating for some medical deserts. Likewise with meds e-commerce websites.&lt;/p&gt;

&lt;p&gt;Yet another case would be about the upbringing of our dear little blonde heads in all this? The subject is indeed a little more peculiar. Where MOOCs and other online course solutions may be suitable for the vast majority, it’s not so easy for young children.&lt;/p&gt;

&lt;p&gt;Mainly because some learning techniques, such as Montessori, show that it is through the effect of community mixed with mimicry and the desire to learn, that our children learn best. The other important point of these teachings is that this group of children must be restricted, contrary to the unwanted trend of “normal” education which wants to have 35 children per class.&lt;/p&gt;

&lt;p&gt;The application of these methods, in small groups, thus makes it possible to return to a very local aspect, even in villages with low density. This point is also related to the previous topic on the middle classes. It is one of the possible ways of providing access to better education. Before going on to specializations that can be done, among others, through the MOOCs.&lt;/p&gt;

&lt;p&gt;Finally, what about the human side, then? I’d say you have free will to choose the best way to maintain your relationships. I would cite for example a solution to keep in touch with your elderly relatives: &lt;a href=&quot;https://www.sunday.love/&quot;&gt;Sunday&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;your-opportunity-&quot;&gt;Your opportunity ?&lt;/h2&gt;

&lt;p&gt;How is this an opportunity for you? Quite simply because it is up to everyone to step in and do what they can to make it happen. There is a range of solutions for every question you may have. This can potentially improve your living environment and even the famous work-life balance.&lt;/p&gt;

&lt;p&gt;Also, containment in China, for example, certainly has an impact on their economy, and by rebound, on ours, but also and above all on pollution and therefore ecology.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;Satellite imagery shows a drop in air pollution over central and eastern China following a government imposed coronavirus quarantine. (NASA Earth Observatory/Joshua Stevens)&quot; src=&quot;/images/2020/03/coronavirus-china-pollution.jpg&quot; title=&quot;Satellite imagery shows a drop in air pollution over central and eastern China following a government imposed coronavirus quarantine. (NASA Earth Observatory/Joshua Stevens)&quot; srcset=&quot;/assets/resized/480/coronavirus-china-pollution.jpg 480w,/assets/resized/800/coronavirus-china-pollution.jpg 800w,/assets/resized/1400/coronavirus-china-pollution.jpg 1400w, /images/2020/03/coronavirus-china-pollution.jpg 1600w&quot; /&gt;
&lt;br /&gt;&lt;em class=&quot;img-legend&quot;&gt;Satellite imagery shows a drop in air pollution over central and eastern China following a government imposed coronavirus quarantine. (NASA Earth Observatory/Joshua Stevens)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Fighting against containment through old and new means; promoting teleworking, while trusting in the professionalism of employees; improving education through new methods; … are all answers for a brighter future.&lt;/p&gt;

&lt;p&gt;What more do you think you could do today to turn this situation into an opportunity? Feel free to contact me to discuss it. I surely have some solutions to submit to you for your connected issues.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Agile and Infrastructure</title>
      <link href="https://francois.aichelbaum.com/2020/02/24/agile-and-infrastructure" />
      <updated>2020-02-24T09:11:25+01:00</updated>
      <id>https://francois.aichelbaum.com/2020/02/24/agile-and-infrastructure</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; What?&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#agile-&quot; id=&quot;markdown-toc-agile-&quot;&gt;Agile ?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#infrastructure-&quot; id=&quot;markdown-toc-infrastructure-&quot;&gt;Infrastructure ?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#and-so-&quot; id=&quot;markdown-toc-and-so-&quot;&gt;And so ?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#making-the-infrastructure-agile&quot; id=&quot;markdown-toc-making-the-infrastructure-agile&quot;&gt;Making the infrastructure agile&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;
&lt;p&gt;Recently, I had a rather interesting discussion with some of my clients over Slack: Agile processes applied to Infrastructure. At the beginning, we did not reach a common ground, but we quickly realized that the problem was not our approaches, but our vocabulary. Agile? Infrastructure? Once we agreed on these terms, the discussion took on a completely different form. Here is a short summary.&lt;/p&gt;

&lt;h2 id=&quot;agile-&quot;&gt;Agile ?&lt;/h2&gt;

&lt;p&gt;Often, when we talk about Agile, we talk about agility. It is assumed that it is about being flexible in our actions and reactions. It is mainly a mix between a mindset, a culture, an approach and above all a paradigm.&lt;/p&gt;

&lt;p&gt;Defined in the &lt;a href=&quot;https://agilemanifesto.org/&quot;&gt;Agile Manifesto&lt;/a&gt;, this approach to project management is the opposite of traditional approaches such as the V Cycle or cascades. The short version is that these traditional methods lead irremediably to a tunnel effect, which can have disastrous effects on both the project and the client relationship. Conversely, the Agile approach proposes to reduce this tunnel effect as much as possible in order to allow better transparency, through an iterative and incremental process.&lt;/p&gt;

&lt;p&gt;So the key elements are there: &lt;strong&gt;transparency&lt;/strong&gt; and &lt;strong&gt;iteration&lt;/strong&gt;. From this, many other concepts will derive, related to the different methods but also to the contexts of applications. Many sites and books will describe them much better than a few lines on this blog.&lt;/p&gt;

&lt;h2 id=&quot;infrastructure-&quot;&gt;Infrastructure ?&lt;/h2&gt;

&lt;p&gt;An infrastructure is a set of interconnected elements that provide a framework to support the entire structure. As such, it is not just the network or system, but a collection of these elements and many more, to be considered in context. In the case of a team, we will have to talk about, for example, NetOps, DevOps, SRE, Architects, Infrastructure Engineers, … All working on the same subject, with different angles, and therefore different needs and means: their daily tasks, depending on their position and the context, will range from pure Run, to R&amp;amp;D applied to infrastructure.&lt;/p&gt;

&lt;h2 id=&quot;and-so-&quot;&gt;And so ?&lt;/h2&gt;

&lt;p&gt;Okay, so let’s go back to our original discussion. Why talk about Agile and Infrastructure?  We had different points of view together (I arrived during the discussion) and the central point was about the ability of “Infrastructure” teams to work in an Agile way.&lt;/p&gt;

&lt;p&gt;One of the participants, who manages an operational team, therefore pure Run, did not see how Agile could be applied to the Run. The other, an R&amp;amp;D manager, was suffering from blockages from an Infrastructure Engineer who had joined his team after years of working on Run. The last one was managing a team that did both R&amp;amp;D and Run, and especially managing a rather junior DevOps that he was happy to model as he went along.&lt;/p&gt;

&lt;p&gt;Depending on the interlocutor, it was more or less possible to apply the Agile approach to Infrastructure and that if someone couldn’t do it, it was simply their fault. Rather abrupt.&lt;/p&gt;

&lt;p&gt;In fact, we must remember that in the professional world, it is our experience that models us. So you have to look at the current tasks to be performed but also at the past tasks of the people who will be working there. A person who has never worked in project mode will potentially find it more difficult to integrate into a project mode than someone who has been in it since the beginning of his or her career. And in Infrastructure, there are a lot of opportunities to work in project mode, but also a lot not to.&lt;/p&gt;

&lt;h2 id=&quot;making-the-infrastructure-agile&quot;&gt;Making the infrastructure agile&lt;/h2&gt;

&lt;p&gt;So the real point is there: apply the Agile approach only when necessary, on the project, with people who have an approach to the subjects compatible with the two key elements.&lt;/p&gt;

&lt;p&gt;Indeed, we could try to apply Agile methods to the Run, but this will not concern the core business rather than more related topics (documentation, debug tests, …). In the same way, a person whose experience has taught him how to look directly for the right final solution, even though he will spend a long and unmeasured amount of time on it, will not easily be able to work in incremental iterations, more time-limited.&lt;/p&gt;

&lt;p&gt;This is the point that I sometimes have fun stygmatizing with my clients to trigger reflection. I then caricature by talking about the American approach of a startup, ready to do anything and question itself the next day with a complete turnaround; versus the French approach, much more posed, and which will only deliver once perfection is reached.&lt;/p&gt;

&lt;p&gt;So it comes down to the fact that we can work in project mode, according to the Agile approach, with teams that are used to working iteratively and incrementally. The basics. In reality, therefore, we can come up against other problems:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;a non-compatible mindset&lt;/li&gt;
  &lt;li&gt;a lack of method or disagreement on method&lt;/li&gt;
  &lt;li&gt;an inability to sequence work to make it iterative and incremental&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the first two points, an Agile coach is the best way to find an answer. Indeed, the Agile coach will make sure that both the mindset of the team, but also the coaching structure allows this work in Agile. In the same way, he will often overflow on the means made available. He will then continue the work on the method, because in the Agile approach, each implementation comes with its own method and its own framework that will serve as a basis for its integration. The Agile coach will accompany you on the choice of the right approach and the right method, which will help to remove barriers.&lt;/p&gt;

&lt;p&gt;On the difficulty of sequencing the work on the part of one of your collaborators, the work will be more on your side as a mentor of your team to accompany him or her. Although this long work requires an enormous capacity for hindsight on the part of the collaborator, who must change his way of doing things, it is your responsibility to place yourself as a benevolent coach and to find the right words to get your collaborator to put himself in the best possible frame of mind. There is always a risk of complete blockage, because it is still human, but it is up to you to persist and remain … agile. Act, Fail/Success, Iterate.&lt;/p&gt;

&lt;p&gt;Why is it interesting to work with the Agile approach on Infrastructure?&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Deploy faster more often, which requires standardizing your work (this is one of the bases of the DevOps mentality)&lt;/li&gt;
  &lt;li&gt;Gain in flexibility: whereas in the past, the infrastructure was relatively fixed in the long term, here the actions are only valid for a short period (before being called into question).&lt;/li&gt;
  &lt;li&gt;Continuous feedback: the basis of the Agile approach, feedback from users/customers/employees comes in all the time, during the course of the project.&lt;/li&gt;
  &lt;li&gt;Continuous improvement: because of the above points, you have gained the opportunity to improve continuously, with each new iteration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the end, you will reduce the risk of having to call into question the entire infrastructure put in place, and by extension, the major and very costly revamps that we are familiar with.&lt;/p&gt;

&lt;p&gt;And you, do you think it is possible to work on Infrastructure topics using an Agile approach? Feel free to contact me to discuss it.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Only 3 types of CTO?</title>
      <link href="https://francois.aichelbaum.com/2020/01/15/only-3-types-of-cto" />
      <updated>2020-01-15T16:17:17+01:00</updated>
      <id>https://francois.aichelbaum.com/2020/01/15/only-3-types-of-cto</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; What?&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#the-hacker&quot; id=&quot;markdown-toc-the-hacker&quot;&gt;The Hacker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-stabilizer&quot; id=&quot;markdown-toc-the-stabilizer&quot;&gt;The Stabilizer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#the-industrializer&quot; id=&quot;markdown-toc-the-industrializer&quot;&gt;The Industrializer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#so&quot; id=&quot;markdown-toc-so&quot;&gt;So?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#vp-engineering&quot; id=&quot;markdown-toc-vp-engineering&quot;&gt;VP Engineering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#cio&quot; id=&quot;markdown-toc-cio&quot;&gt;CIO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#cto&quot; id=&quot;markdown-toc-cto&quot;&gt;CTO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;
&lt;p&gt;For a few months now, there have been a lot of articles explaining that there are 3 types of CTO: the hacker, the stabilizer, and the industrializer. Although accurate in substance, these articles are incomplete when we go into practice. But why is that?&lt;/p&gt;

&lt;p&gt;Let’s start by going over these three types again.&lt;/p&gt;

&lt;h2 id=&quot;the-hacker&quot;&gt;The Hacker&lt;/h2&gt;

&lt;p&gt;You have just created your startup and you are looking to deliver your product as soon as possible with your famous MVP that will allow you to make yourself known and really launch your business. To do so, your company relies on a very limited number of people, whose role boundaries are relatively fluid. This allows you to gain flexibility and to do as much as possible with as little as possible. This schema also applies to your technical referent: once architect, one “hands-on”, he will go through phases to tackle technical related matters. Your referent finds himself having to touch everything, but never 100%, since you can’t know everything, or do everything alone. Doesn’t the saying go “to go fast, go alone; to go far, go together”?
This profile is therefore all-rounder, passionate more than experienced: it will allow you to go fast, even to take shortcuts, but it will work … for the MVP.
The risk for this type of profile is to persist too long in this type of role. Indeed, he will certainly gain experience, but his expertise will be to always want to do everything, alone, and quickly. It will then become difficult for him to delegate or even manage.
To the extreme, he will develop an aura of saviour/messiah within your company, and will monopolise speaking time (and reflection time) with your tacit and silent agreement.&lt;/p&gt;

&lt;h2 id=&quot;the-stabilizer&quot;&gt;The Stabilizer&lt;/h2&gt;

&lt;p&gt;Your MVP was launched a few months ago now, your business model is being refined, after a few turnarounds, and your situation is motivating the company and the product to grow. So it’s time to hire and to assess the situation. This step is often perceived as painful or risky, because it involves questioning everything that has been done so far. Why painful? Because no one is “wired” in the same way and, because of the personal commitment required to create an MVP, some will take these questions as a challenge to themselves. However, in order to stabilize the product, and to prepare its scalability, i.e. your ability to accelerate your business development and attack new markets, it is essential to know your strong points, on which you will rely, and your weak points, which you will correct. It is therefore necessary to treat everything in the same way and manage to motivate and structure your teams accordingly.
On technical subjects, this will naturally be the role of the CTO. Structuring the team, from a human and managerial point of view, implementing adapted processes and methodologies, he will gradually nose up to become the orchestrator of the technique. Where the hacker was managing alone, the stabilizer will have to orchestrate to make sure to find the right balance between new features, patches, and stabilizations, these last two subjects having strong impacts on the morale of the teams, and thus the quality of their rendering.
The risk of this type of profile is linked to the ambivalence between the technical aspect, since the team remains relatively small, and the time needed to structure the whole. In case of imbalance, he would then fall into one of the other two profiles, which would not be in adequacy with your company, and thus your need.&lt;/p&gt;

&lt;h2 id=&quot;the-industrializer&quot;&gt;The Industrializer&lt;/h2&gt;

&lt;p&gt;Now that your company has made a place for itself on the market and is well known, your work continues: it is time to become the absolute reference and to project yourself to several versions/iterations of your product in advance, the famous long term vision. This is the moment when your company sets up its ComEx, when the teams are counted in several dozen and you want/need to add a 0 to the number of employees to realize your plan. Your CTO must then let go, officially at least, of the technique to focus on the strategy and how to get there. You are entering an era where the long-term technical orientation will merge with the vision of future technological developments mixed with the evolution of your market. Everything has to be formalized; the roadmap is then done over several years, where it was defined over a few months; the teams become specialized, needing to improve exchanges between teams and individuals, through human management, processes, … any useful tool for these purposes. Your CTO is therefore at work on strategy, competitive analysis, an in-depth work of your company to find the levers necessary for your commercial success.
The risk of this profile is to be too disconnected from technology, to lose touch with technological advances and to be drowned in hypes. The direct consequence would be that the technical teams would no longer have faith in him, with all that this can have as an impact on their productivity but also on the pure realization of his strategy.&lt;/p&gt;

&lt;h2 id=&quot;so&quot;&gt;So?&lt;/h2&gt;

&lt;p&gt;Since these definitions are relatively fair, clear and, on paper, non-exclusive, where is the lack? These various articles have been written for “pure players”, i.e. editors of solutions that will be exclusively usable on the web, and where the role of CTO is relatively unique, and that it will be the same person who will manage your internal and external issues. This is a simple echo of a growing trend where some companies are no longer able to distinguish the roles and missions of each, with the direct consequence of having several CTOs in the same structure. I have had the opportunity to note this point several times recently with, for example, an agency that recruits a CTO for one of its clients, and who will have to work in pairs with the CTO in place, each sharing specific but related subjects. But then, what are these missions that require different titles?&lt;/p&gt;

&lt;p&gt;The list is long but we could mention the management of your IS, especially if your company starts to develop on several different locations, the management of your R&amp;amp;D, especially with the diversification of technologies, the operational with the support of the customer, the product and its roadmap definition, … Of course, the boundaries are not watertight between these topics, especially depending on the size of your company, but for all that, titles exist to clearly mark the distinction: CTO, CIO, VP Engineering, VP Operations, VP Products, … At some point, your CTO will assume all these roles (the Hacker in this case), but the more you move towards a stabilizer, even an ndustrializer profile, the more he will need support. Depending on his profile, he will refer you to one or the other of these roles as a complement. So who has to do what in this story? Let’s focus on the 3 most technical roles: CTO, CIO and VP Engineering. As much as the difference may seem obvious between the last two, their proximity to the first one adds a significant blur. So let’s dig into their missions&lt;/p&gt;

&lt;h2 id=&quot;vp-engineering&quot;&gt;VP Engineering&lt;/h2&gt;

&lt;p&gt;Simply put, he’s your R&amp;amp;D boss. As a former engineer who rose through the ranks, passing through lead developer and architect roles, he has also developed an ability to manage people. As an internal technical referent in your R&amp;amp;D, he is the person your company relies on to transform the defined strategy into a real product.&lt;/p&gt;

&lt;h2 id=&quot;cio&quot;&gt;CIO&lt;/h2&gt;

&lt;p&gt;Do you have an internal IT or infrastructure to manage? The IOC is your boss on these matters. He is the face that everyone in your company knows when it comes to IT and related topics: security, cloud, automation, … At the crossroads of all the other professions in your company, even the non-technical ones, he will make sure that your IT teams guarantee the quality of service necessary for the proper functioning of your product and your company itself. Because of its positioning, it will often have a strong impact on your processes and methodology.&lt;/p&gt;

&lt;h2 id=&quot;cto&quot;&gt;CTO&lt;/h2&gt;

&lt;p&gt;This is the technical face of your company. As a technical referent for the whole company, with priority given to business issues, it must stay up to date technically, so that it can respond to your customers and your board, while guiding product development.
How is he not your VP Engineering? Because he has to be able to keep his hacker and hacking side to test and therefore stay up to date, where your VP Engineering has to move forward in accordance with your roadmap and little opportunity to play.
How is he not your CIO? I will repeat the discussion I had with the CEO of a large transport group: what is your job and therefore on which technique will your CTO intervene?&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Are you struggling with Nginx rewrite rules and $ ?</title>
      <link href="https://francois.aichelbaum.com/2018/05/18/struggling-with" />
      <updated>2018-05-18T15:37:57+02:00</updated>
      <id>https://francois.aichelbaum.com/2018/05/18/struggling-with</id>
      <content type="html">
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-nginx&quot; data-lang=&quot;nginx&quot;&gt;&lt;span class=&quot;k&quot;&gt;rewrite&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;^/that-s-my-original-uri/(with-my-folder)/(.*)&lt;/span&gt;$ &lt;span class=&quot;n&quot;&gt;/that-s-my-destination&lt;/span&gt;$&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$2&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;last&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;See the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$$1&lt;/code&gt; ?&lt;/p&gt;

&lt;p&gt;Are you trying to use a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$&lt;/code&gt; in the destination of your rewrite rule ? Then you may have try escaping it, and found out you can only do it via some LUA scripting you might not want or a third party plugin that you can’t use for X or Y reason. The constant result of this situation ?&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;nginx: [emerg] invalid variable name in /etc/nginx/sites-enabled/XXXXXXXX:YYY&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Ok so what’s next ? The idea would be to host the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$&lt;/code&gt; inside a variable. Sadly, the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;set&lt;/code&gt; argument does not allow this and will reject you with the same error. The solution would be to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;geo&lt;/code&gt; in your nginx.conf and replace use the key:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-nginx&quot; data-lang=&quot;nginx&quot;&gt;&lt;span class=&quot;k&quot;&gt;geo&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$dollar&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;kn&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;$&lt;span class=&quot;s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;and then&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-nginx&quot; data-lang=&quot;nginx&quot;&gt;&lt;span class=&quot;k&quot;&gt;rewrite&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;^/that-s-my-original-uri/(with-my-folder)/(.*)&lt;/span&gt;$ &lt;span class=&quot;n&quot;&gt;/that-s-my-destination&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$dollar$1&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$2&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;last&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;And, &lt;em&gt;voila&lt;/em&gt; !&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Chrome, Aw Snap and HTTP2</title>
      <link href="https://francois.aichelbaum.com/2016/06/15/chrome-snap-and-http2" />
      <updated>2016-06-15T09:47:57+02:00</updated>
      <id>https://francois.aichelbaum.com/2016/06/15/chrome-snap-and-http2</id>
      <content type="html">&lt;p&gt;On a global purpose of optimisation of my website, I lately added some features and enhanced the HTTP2 delivery of the website. The performance restults are instantaneous. But, as there is always a but, it generated some random issues … with Google Chrome (and it’s opensource pendant, Chromium).&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/screenshot-aw-snap-error-chrome.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/screenshot-aw-snap-error-chrome.jpg 480w, /assets/screenshot-aw-snap-error-chrome.jpg 729w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The consequence of the bug was a almost random “Aw, Snap !” page : every time I clicked on an internal link or upon one load out of two. And only with Chrome and Chromium. First asumption as it only occurs with a specific browser, it was a code issue : either HTML or, more probably, JS. I started debugging the code with no luck about this one. I decided to create two very simple HTML page with just a basic HTML link towards each other. Again, no luck.&lt;/p&gt;

&lt;p&gt;Then, I guessed : when I get the “Aw, Snap” page, the DevTools in Chrome report just nothing besides the SSL details. No URI called. No JS console. Nothing else. So, I decided to debug the SSL part. A review thanks to &lt;a href=&quot;https://www.ssllabs.com/ssltest/analyze.html&quot;&gt;Qualys&lt;/a&gt; reported no issue and even granted an A score to the website (via the CDN and via the origin also). As the late changes were about HTTP2, I decided to test the HTTP2. First, I disabled it from the CDN side. But as the page was in cache, no change resulted from this. Then I debugged the HTTP2 using several tools as &lt;a href=&quot;https://github.com/bradfitz/http2/tree/master/h2i&quot;&gt;h2i&lt;/a&gt; or &lt;a href=&quot;https://github.com/fstab/h2c&quot;&gt;h2c&lt;/a&gt;. Again, every thing when fine.&lt;/p&gt;

&lt;p&gt;So, I decided to go through the web (GI&lt;em&gt;M&lt;/em&gt;F). I found pages about the NPN not being supported any more &lt;a href=&quot;https://ma.ttias.be/chrome-drops-npn-support-for-http2-alpn-only/&quot;&gt;by Google&lt;/a&gt;, so I decided to update my nginx, by recompiling it against openssl 1.0.2 instead of the basic openssl 1.0.0 branch as it is from the various defaut packages ; this enabled the ALPN but did not solve my case.
Then, I review my whole nginx config, to check about all the HTTP2 settings. Testing one by one. And … I found it :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;Link&lt;/span&gt;: &amp;lt;/&lt;span class=&quot;n&quot;&gt;images&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;banner&lt;/span&gt;-&lt;span class=&quot;m&quot;&gt;1024&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x240&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;jpg&lt;/span&gt;&amp;gt;; &lt;span class=&quot;n&quot;&gt;rel&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;preload&lt;/span&gt;; &lt;span class=&quot;n&quot;&gt;as&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;image&lt;/span&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;And there we are : removing this HTTP header from the delivery of HTML pages solved it all. Now this header might not seems harmful. This is one of the new Headers from HTTP2 : it enables the Server Push, meaning, once the HTTP2 connection is opened, the server will push this connect, to preload the image at the same time it push the HTML code. Great for performance optimisations. But, it has a but …&lt;/p&gt;

&lt;p&gt;Even if HTTP2 is a new standard, it still relies on a bunch of draft for the different features and headers. The one for the preload of content thanks to Server Push, is still &lt;a href=&quot;https://www.w3.org/TR/preload/&quot;&gt;in an early stage&lt;/a&gt;. Also, in nginx, this requires to be &lt;a href=&quot;https://www.nginx.com/blog/http2-r7/&quot;&gt;set by the upstream&lt;/a&gt;, meaning your application server behing nginx. And this was my error: as I publish HTML only (thanks to &lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt;), I don’t have any upstream to nginx. So when I was working on the HTTP2 optimisations, I set the Server Push header directly in the nginx configuration, thanks to add_header. For sure, the header was present and reported no error on the debug tools and most of the browsers. But this leveraged a race condition in Chrome.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The Tower of Joy [scene] - Game of Thrones - Ennio Morricone cover</title>
      <link href="https://francois.aichelbaum.com/2016/05/20/tower-of-joy" />
      <updated>2016-05-20T08:47:57+02:00</updated>
      <id>https://francois.aichelbaum.com/2016/05/20/tower-of-joy</id>
      <content type="html">&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;(Just splendid …)&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The lie we live</title>
      <link href="https://francois.aichelbaum.com/2016/05/06/the-lie-we-live" />
      <updated>2016-05-06T12:37:57+02:00</updated>
      <id>https://francois.aichelbaum.com/2016/05/06/the-lie-we-live</id>
      <content type="html">&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Liquid error - was not properly terminated with regexp</title>
      <link href="https://francois.aichelbaum.com/2016/04/28/liquid-error-was-not-properly-terminated-with-regexp" />
      <updated>2016-04-28T22:37:57+02:00</updated>
      <id>https://francois.aichelbaum.com/2016/04/28/liquid-error-was-not-properly-terminated-with-regexp</id>
      <content type="html">&lt;p&gt;A few weeks ago, I decided to move from Wordpress to a more flat blog engine. After some test, I chose to use Jekyll. I may write a blogpost about this and the related motivation but this is not the actual topic.&lt;/p&gt;

&lt;p&gt;During the setup, I needed to implement a search engine. As Jekyll is a flat blog engine, I can’t really implement any dynamic solution. My solution was to implement a lunr.js on the website. For it to operate, it requires a big json file with all the text to search.&lt;/p&gt;

&lt;p&gt;The json file is generated during the build stage. Due to this, it will parse the other md files to generate the content. This means that the template file of the json will remplace the Liquid variables with some other Markdown but more especially Liquid variables and statements.&lt;/p&gt;

&lt;p&gt;This lead to a classic error :&lt;/p&gt;

&lt;p&gt;{% highlight console %}
was not properly terminated with regexp: /}}/ in search_data.json
{% endhighlight %}&lt;/p&gt;

&lt;p&gt;I skip the first part of the error as it’s not relevant. I longly googled on this. But, most of the page foscused on a variable containing Liquid statement that would have be published as this. This is not valid in my case as I want to parse the embedded content and use some other Liquid filters as I would do with :&lt;/p&gt;

&lt;p&gt;{% endhighlight %}
{{ content | replace: ‘{foo}’, ‘bar’ }}
{% endhighlight %}&lt;/p&gt;

&lt;p&gt;So, it returned the error. Logic as Liquid will parse this statement, replace ‘content’ with it’s value, another Liquid statement, also finishing with }}. I tried several solutions to escape this with no luck.&lt;/p&gt;

&lt;p&gt;I ended with a magical and even more obvious solution : ‘markdownify’&lt;/p&gt;

&lt;p&gt;{% endhighlight %}
{{ content | markdownify | replace: ‘{foo}’, ‘bar’ }}
{% endhighlight %}&lt;/p&gt;

&lt;p&gt;This solved the case at once !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Lenovo T450 Wireless AC 7265 not working on Linux</title>
      <link href="https://francois.aichelbaum.com/2016/03/16/lenovo-t450-wireless-ac-7265-not-working-linux" />
      <updated>2016-03-16T10:37:57+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/03/16/lenovo-t450-wireless-ac-7265-not-working-linux</id>
      <content type="html">&lt;p&gt;Lately I discovered an issue with my WiFi adapter on my professional laptop (a Lenovo T450) : it was not working. Pretty inconvenient. After some digging, I tested and had to adapt part of things I found on Google.
So, to begging with, the symptoms :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;no more wireless adapter in my NetworkManager or any other tools, including ifconfig&lt;/li&gt;
  &lt;li&gt;dmesg reports issues loading the iwlwifi firmware&amp;lt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The dmesg output looks like :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;[ 4.237444] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-12.ucode failed with error -2
[ 4.237466] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-11.ucode failed with error -2
[ 4.237479] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-10.ucode failed with error -2
[ 4.237482] iwlwifi 0000:03:00.0: request for firmware file &apos;iwlwifi-7265D-10.ucode&apos; failed.
[ 4.237493] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-9.ucode failed with error -2
[ 4.237495] iwlwifi 0000:03:00.0: request for firmware file &apos;iwlwifi-7265D-9.ucode&apos; failed.
[ 4.237497] iwlwifi 0000:03:00.0: no suitable firmware found!&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;I tried to download the official firmware from Intel, namely iwlwifi-7265-ucode-25.30.14.0, with no luck. Though, I decided to keep the ucode files from this archive in my /lib/firmware/.
Note that, depending on your distro, this previous step might be enough. To check :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;update-initramfs -u
reboot&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Then, further dig pointed some issues with the iwlwifi package not handling properly this version of the AC 7265. From lspci :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;m&quot;&gt;03&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;00&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Network&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;controller&lt;/span&gt; [&lt;span class=&quot;m&quot;&gt;0280&lt;/span&gt;]: &lt;span class=&quot;n&quot;&gt;Intel&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Corporation&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Wireless&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;7265&lt;/span&gt; [&lt;span class=&quot;m&quot;&gt;8086&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;095&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;] (&lt;span class=&quot;n&quot;&gt;rev&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;59&lt;/span&gt;)
 &lt;span class=&quot;n&quot;&gt;Subsystem&lt;/span&gt;: &lt;span class=&quot;n&quot;&gt;Intel&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Corporation&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Dual&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Band&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Wireless&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;AC&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;7265&lt;/span&gt; [&lt;span class=&quot;m&quot;&gt;8086&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;5210&lt;/span&gt;]&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Here, the main points are the main ID 095b and the Subsystem ID 5210.
To solve this, let’s recompile the backport package of iwlwifi with a tiny difference (the &lt;em&gt;sed&lt;/em&gt; line is to adapt with your IDs) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;gp&quot;&gt;sudo apt-get install build-essential linux-headers-$&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;uname&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;go&quot;&gt;wget https://www.dropbox.com/s/gyuvdlhzx5ho277/backports-20150731.tar.gz
tar -zxvf backports-20150731.tar.gz
cd backports-20150731/
sed -i &apos;s/IWL_PCI_DEVICE(0x095B, 0x9200, iwl7265_2ac_cfg)/IWL_PCI_DEVICE(0x095B, 0x5212, iwl7265_2ac_cfg)/&apos; drivers/net/wireless/iwlwifi/pcie/drv.c 
make defconfig-iwlwifi
make
sudo make install
update-initramfs -u
reboot&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Now, if you check your dmesg, you’ll see :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;[ 3.950804] iwlwifi 0000:03:00.0: Direct firmware load for iwlwifi-7265D-15.ucode failed with error -2
[ 3.952513] audit: type=1400 audit(1458119598.627:5): apparmor=&quot;STATUS&quot; operation=&quot;profile_load&quot; profile=&quot;unconfined&quot; name=&quot;/sbin/dhclient&quot; pid=657 comm=&quot;apparmor_parser&quot;
[ 3.952521] audit: type=1400 audit(1458119598.627:6): apparmor=&quot;STATUS&quot; operation=&quot;profile_load&quot; profile=&quot;unconfined&quot; name=&quot;/usr/lib/NetworkManager/nm-dhcp-client.action&quot; pid=657 comm=&quot;apparmor_parser&quot;
[ 3.952525] audit: type=1400 audit(1458119598.627:7): apparmor=&quot;STATUS&quot; operation=&quot;profile_load&quot; profile=&quot;unconfined&quot; name=&quot;/usr/lib/connman/scripts/dhclient-script&quot; pid=657 comm=&quot;apparmor_parser&quot;
[ 3.953091] audit: type=1400 audit(1458119598.627:8): apparmor=&quot;STATUS&quot; operation=&quot;profile_replace&quot; profile=&quot;unconfined&quot; name=&quot;/usr/lib/NetworkManager/nm-dhcp-client.action&quot; pid=657 comm=&quot;apparmor_parser&quot;
[ 3.953100] audit: type=1400 audit(1458119598.627:9): apparmor=&quot;STATUS&quot; operation=&quot;profile_replace&quot; profile=&quot;unconfined&quot; name=&quot;/usr/lib/connman/scripts/dhclient-script&quot; pid=657 comm=&quot;apparmor_parser&quot;
[ 3.953362] audit: type=1400 audit(1458119598.627:10): apparmor=&quot;STATUS&quot; operation=&quot;profile_replace&quot; profile=&quot;unconfined&quot; name=&quot;/usr/lib/connman/scripts/dhclient-script&quot; pid=657 comm=&quot;apparmor_parser&quot;
[ 3.955605] iwlwifi 0000:03:00.0: loaded firmware version 25.30.14.0 op_mode iwlmvm
[ 3.975336] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input7
[ 4.001495] iwlwifi 0000:03:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x210
[ 4.001843] iwlwifi 0000:03:00.0: L1 Enabled - LTR Enabled
[ 4.002290] iwlwifi 0000:03:00.0: L1 Enabled - LTR Enabled&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;And, &lt;em&gt;voilà&lt;/em&gt;, your wireless adapter is back online !
&lt;strong&gt;**NB**&lt;/strong&gt;: you’ll have to redo these steps after every kernel update, except if the iwlwifi module got fixed.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Share a multifunctional printer (with your Synology)</title>
      <link href="https://francois.aichelbaum.com/2016/03/10/share-multifunctional-printer-synology" />
      <updated>2016-03-10T10:00:50+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/03/10/share-multifunctional-printer-synology</id>
      <content type="html">&lt;p&gt;So, lately, we decided to truly use several different computers at home. The fun part is that we want to share the same peripherals (as the multi-functional printer (here, as an HP PhotoSmart B109a), with different OS (for now, Linux and Windows). Let’s see how our Synology saved the day.&lt;/p&gt;

&lt;p&gt;The Synology NAS embed a Linux system so basically, we should be able to run most of the applications, as far as we can deploy/compile it. But, because the Synology guys wants to ease our life, they did a great thing : they offer &lt;a href=&quot;https://www.synology.com/en-global/knowledgebase/DSM/tutorial/Printer/How_to_set_up_and_use_a_multifunctional_printer_shared_by_Synology_NAS&quot;&gt;the possibility&lt;/a&gt; to add a multi-functional printer and manage it. As far as they did great, the system only embed some drivers (and software - i.e. only cups) and for me, even if the printer is fully discovered, only the print services will be shared over network.
So I had to complete the setup. First, I need to be able to extend the system with new package. As we have a pretty recent DS1515+, we don’t have any &lt;a href=&quot;https://fr.wikipedia.org/wiki/IPKG&quot;&gt;ipkg&lt;/a&gt; system out of the box. But now, this is pretty well documented over internet (in &lt;a href=&quot;https://forum.synology.com/wiki/index.php/Overview_on_modifying_the_Synology_Server,_bootstrap,_ipkg_etc#How_to_install_ipkg&quot;&gt;english&lt;/a&gt; or in &lt;a href=&quot;http://www.cachem.fr/synology-installer-ipkg/&quot;&gt;french&lt;/a&gt;, for instance).
Now that we can install third party software easily on the CLI, let’s setup &lt;a href=&quot;https://en.wikipedia.org/wiki/Scanner_Access_Now_Easy&quot;&gt;SANE&lt;/a&gt;. So, as a root on the Synology :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;ipkg install hplip libusb libieee1284 sane-backends xinetd
&lt;/span&gt;&lt;span class=&quot;gp&quot;&gt;echo &quot;hpaio&quot; &amp;gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; /opt/etc/sane.d/dll.conf
&lt;span class=&quot;gp&quot;&gt;echo &quot;hpaio&quot; &amp;gt;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;/opt/etc/sane.d/dll.d/hplip&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Let’s see if the Synology see the scanner :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;sane-find-scanner&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Which should reply something like :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;found USB scanner (vendor=0x03f0 [HP], product=0x7a11 [Photosmart B109a-m]) at libusb:002:003&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Since the NAS sees the scan, let’s test it with SANE via :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;scanimage -L
found USB scanner (vendor=0x03f0 [HP], product=0x7a11 [Photosmart B109a-m]) at libusb:002:003&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;It will reply something as :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;device `hpaio:/usb/Photosmart_B109a-m?serial=CN999750CB05C7&apos; is a Hewlett-Packard Photosmart_B109a-m all-in-one
found USB scanner (vendor=0x03f0 [HP], product=0x7a11 [Photosmart B109a-m]) at libusb:002:003&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Now, let’s ensure that the service is visible from the rest of the network. To do so, we need to edit /opt/etc/xinetd.conf where we check the line “only_from” : it should match the IP range of the local network. Then we edit /opt/etc/sane.d/saned.conf with the same purpose. We can now edit xinetd to start the sane service properly with the right port, editing /opt/etc/xinetd.d/sane-port :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;service&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sane&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;port&lt;/span&gt;
{
    &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;6566&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;socket_type&lt;/span&gt; = &lt;span class=&quot;n&quot;&gt;stream&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;wait&lt;/span&gt; = &lt;span class=&quot;n&quot;&gt;no&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;user&lt;/span&gt; = &lt;span class=&quot;n&quot;&gt;root&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;group&lt;/span&gt; = &lt;span class=&quot;n&quot;&gt;root&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;server&lt;/span&gt; = /&lt;span class=&quot;n&quot;&gt;opt&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;sbin&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;saned&lt;/span&gt;
}
&lt;span class=&quot;n&quot;&gt;found&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;USB&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;scanner&lt;/span&gt; (&lt;span class=&quot;n&quot;&gt;vendor&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x03f0&lt;/span&gt; [&lt;span class=&quot;n&quot;&gt;HP&lt;/span&gt;], &lt;span class=&quot;n&quot;&gt;product&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;x7a11&lt;/span&gt; [&lt;span class=&quot;n&quot;&gt;Photosmart&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;B109a&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;m&lt;/span&gt;]) &lt;span class=&quot;n&quot;&gt;at&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;libusb&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;002&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;003&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Let’s start it (it will be automatically started on the next reboot :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;/opt/etc/init.d/S10xinetd
found USB scanner (vendor=0x03f0 [HP], product=0x7a11 [Photosmart B109a-m]) at libusb:002:003&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;As we’re good on the server side, let’s focus on the client side. We’ll start with the Linux client as it’s the simpliest. I assume you already installed &lt;a href=&quot;http://www.xsane.org&quot;&gt;xsane&lt;/a&gt;.  Now, we just need to tell Xsane where it can find the scan. So, we edit /etc/sane.d/net.conf to replace “# localhost” with the IP of the Synology. The printer is just a few click away when you go through the regular GUI to add a network printer. We’re good to go.
On the Windows side (Windows 10 here), it’s a bit more tricky. First, we’ll focus on the printer service. For this, we’ll have to follow the &lt;a href=&quot;https://www.synology.com/en-global/knowledgebase/DSM/tutorial/Printer/How_to_set_up_and_use_a_multifunctional_printer_shared_by_Synology_NAS&quot;&gt;directives&lt;/a&gt; from Synology. This will enable a printer. Windows might complain about missing drivers for some mass storage USB device and an unknown device but you can just ignore as those are the scan and the multi card reader.
For the scan service, we’ll have to install some other tools. Indeed, Windows use a specific protocol which is not compatible with sane (it can be TWAIN, ISIS or WIA).  But , as we exposed the scan via sane, we need … sane … Absolute logical logic. Thanks to our opensource community friends, port exists. Not so much up2date or maintained, but it’s enough ok to be used. The solution here will be &lt;a href=&quot;https://sourceforge.net/projects/sanewinds/&quot;&gt;SaneWinDS&lt;/a&gt;. Just download the installer, follow the instruction of the GUI and here you go. Reboot your Windows (after all, it remains as a Windows), and now you have a Sane application on your Windows that you can use. The UI is pretty archaic but it should do the trick.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Home</title>
      <link href="https://francois.aichelbaum.com/2016/03/09/home" />
      <updated>2016-03-09T10:35:59+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/03/09/home</id>
      <content type="html">&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>La Nature Parle: Sophie Marceau est Mère Nature</title>
      <link href="https://francois.aichelbaum.com/2016/03/08/la-nature-parle-sophie-marceau-est-mere-nature" />
      <updated>2016-03-08T10:31:38+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/03/08/la-nature-parle-sophie-marceau-est-mere-nature</id>
      <content type="html">&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>She&amp;#039;s Alive... Beautiful... Finite... Hurting... Worth Dying for</title>
      <link href="https://francois.aichelbaum.com/2016/03/07/shes-alive-beautiful-finite-hurting-worth-dying" />
      <updated>2016-03-07T10:29:57+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/03/07/shes-alive-beautiful-finite-hurting-worth-dying</id>
      <content type="html">&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Super Bowl 2016 - Trailers &amp;amp; TV Spots</title>
      <link href="https://francois.aichelbaum.com/2016/03/05/super-bowl-2016-trailers-tv-spots" />
      <updated>2016-03-05T11:42:23+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/03/05/super-bowl-2016-trailers-tv-spots</id>
      <content type="html">&lt;p&gt;It’s Saturday morning. Some might just have a hangover. Others running all around. And a few, just do nothing (as me …. nah just kidding). So the Super Bowl was a month ago so let’s enjoy a compilation of all the Trailers and TV Spots to boost this weekend. Cheers up !&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>My desktop replacement setup</title>
      <link href="https://francois.aichelbaum.com/2016/03/04/desktop-replacement-setup" />
      <updated>2016-03-04T19:00:45+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/03/04/desktop-replacement-setup</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://francois.aichelbaum.com/wp-content/uploads/2016/03/bd1.jpg&quot; rel=&quot;attachment wp-att-9123&quot;&gt;&lt;img class=&quot;alignleft wp-image-9123 size-thumbnail&quot; src=&quot;/assets/bd1-150x150.jpg&quot; alt=&quot;You&apos;re next desktop ?&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Recently, I decided to move from a decent desktop setup to a desktop replacement setup. Here’s the why and the how of this move.&amp;lt;/p&amp;gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;For years, I had a barebone on my desktop with a huge screen :&lt;/p&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Xeon CPU with 4 core, but low voltage&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;8 GB Ram&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Nvidia Geforce .....&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;128 GB SSD&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Dell 30&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As I stopped playing on my computer for at least the last 4 years, I noted several disadvantages of such setup :&lt;/p&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;It consumes a lot of power (the power supply of the barebone and the screen consume a tremendous amount of power)&lt;/li&gt;
&lt;li&gt;It takes a lot of space just to surf&lt;/li&gt;
&lt;li&gt;If I want to go to another place with my &quot;desktop&quot; to continue my work it was not so easy (ok I could use some remote desktop thing on a tablet but yet, more devices to use ...)&lt;/li&gt;
&lt;li&gt;30&quot; display on a desktop, if you&apos;re not doing graphics is just so useless ...&lt;/li&gt;
&lt;li&gt;Having a powerful computer just to surf over the web, or admin my servers, is just as driving a McLaren during rush hours, in the streets of Paris&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;So, at the end of last year, I decided to review all my equipment and optimize my usage, my habits, but also my power consumption. From this, my desk was one of the key elements to work on.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Which desktop ?&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;At about the same time, I received, graciously, a dead &lt;a href=&quot;https://www.google.fr/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0ahUKEwis3qPk6KbLAhUMCpoKHQ5GAAMQFggcMAA&amp;amp;url=http%3A%2F%2Fsupport.lenovo.com%2Fus%2Fen%2Fdocuments%2Fpd015812&amp;amp;usg=AFQjCNEbod5fFkqxh9Xw6EUPBcFCKZA33A&amp;amp;bvm=bv.115339255,d.bGs&amp;amp;cad=rja&quot;&gt;Lenovo X220&lt;/a&gt;. It didn&apos;t boot any more (Fan error at starting time, forbidding any access to the Bios setup), case had severe knocks all over, the battery was out, ... I love challenges and seeing this dead laptop, I saw the answer to my desk revamp : I&apos;ll revive it ! Ok I may loose some MIPS and MFLOPS, but frankly, who cares when surfing and ssh-ing ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ok, I&apos;ll skip the disassemble time where I got it partly back. Partly because it survived to 10 days during my Chinese trip. Then, the fatal Fan error message came back. Luckily, I was in China. I brought the &lt;em&gt;corpse&lt;/em&gt; to a local computer mall and go the welded fan totally replaced ... for 5€ (the guys spent almost his day on it ... !).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Back in France, I was able to go through the next steps :&lt;/p&gt;
&lt;ol style=&quot;text-align: justify;&quot;&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;upgrade the memory from the 6 GB (2+4) it had : Lenovo specs announces that we can go up to 8 GB on this little guy but as it&apos;s a Sandy Bridge powered laptop, I decided to give a try up to 16 GB (2x8 GB PC10600 CL9 from G.Skill)&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;upgrade the harddrive from the 300 GB classical drive to an SSD : first, I assumed I would recycle the SSD from my barebone ; but it was to thick so I decided to get a Scandisk SSD Plus 240 GB which is only 7mm, and therefore can fit perfectly&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;avoid to damage the bunch of connectors on the laptop : as I would use the laptop as desktop replacement but still as a laptop, having to plug all the USB cable, power, display, ... quite often, would damage them ; getting a dock was the solution and I found one (&lt;a href=&quot;http://www.thinkwiki.org/wiki/ThinkPad_UltraBase_Series_3&quot;&gt;UltraBase 3 station&lt;/a&gt;) on E-bay for just a few bucks ...&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Replace my huge 30&quot; Dell screen with something that fit more to my usage but will also consume a hell less : I moved to a &lt;a href=&quot;http://www.samsung.com/us/business/displays/monitors/LS24E65KPLH/GO&quot;&gt;Samsung SE650PL&lt;/a&gt;, as it has a DisplayPort (as the x220), incorporated speakers (even if not very powerful - but don&apos;t care, it&apos;s not my multimedia center), low blue light, and is not high energy.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Now, I have all my components, next step was to move forward to setup the box. I&apos;m getting old (I swear it, I have two grey hairs now !), and therefore, I&apos;m getting Lazy. In my old days, I would have install a very light Linux and compile everything from scratch, fine tuning every component. Now I just want to use my computer. Based on that, I decided to use &lt;a href=&quot;http://www.linuxmint.com&quot;&gt;Linux Mint&lt;/a&gt; as my distro. The following is not totally exhaustive as I&apos;ll skip the secure part that you should apply to any system.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Graphics&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The default setup is almost perfect. Almost, because I still had to fix some little glitches. First, Configure the display properly. This starts with the login screen. The MDM, which handle the login screen, does not care about your Cinnamon config. It will still try to push the display toward the internal display and duplicate it, as it, on the DisplayPort. As my lid is closed, seeing the login screen just on a quarter if my screen is not fun ... I had to edit my /etc/mdm/Init/Default file to add the following lines by the end (just before the &quot;exit 0&quot;) :&lt;/p&gt;
&lt;pre id=&quot;crayon-56d96a1376b50583050831-3&quot; class=&quot;crayon-line&quot;&gt;&lt;span class=&quot;crayon-v&quot;&gt;mode&lt;/span&gt;&lt;span class=&quot;crayon-o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-s&quot;&gt;&quot;$(xrandr -q|grep -A1 &quot;DP2&lt;/span&gt; &lt;span class=&quot;crayon-i&quot;&gt;connected&lt;/span&gt;&lt;span class=&quot;crayon-s&quot;&gt;&quot;| tail -1 |awk &apos;{ print $1 }&apos;)&quot;
&lt;/span&gt;&lt;span class=&quot;crayon-st&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;crayon-sy&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;crayon-o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;crayon-s&quot;&gt;&quot;$mode&quot;&lt;/span&gt; &lt;span class=&quot;crayon-sy&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;crayon-st&quot;&gt;then
&lt;/span&gt;&lt;span class=&quot;crayon-h&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;xrandr&lt;/span&gt; &lt;span class=&quot;crayon-o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;output &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;LVDS1&lt;/span&gt; &lt;span class=&quot;crayon-o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;off
&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;xrandr&lt;/span&gt; &lt;span class=&quot;crayon-o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;crayon-e&quot;&gt;output &lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;DP2&lt;/span&gt; &lt;span class=&quot;crayon-o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;crayon-v&quot;&gt;primary&lt;/span&gt; &lt;span class=&quot;crayon-o&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;crayon-i&quot;&gt;mode&lt;/span&gt; &lt;span class=&quot;crayon-cn&quot;&gt;1920x1080
&lt;/span&gt;&lt;span class=&quot;crayon-st&quot;&gt;fi&lt;/span&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Then, I would focus on the video card and how it&apos;s used. It&apos;s an internal HD Graphic card from the Sandy Bridge. This would require the proper drive and proper configuration from the kernel.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot; class=&quot;&quot;&gt;sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install  libva-intel-vaapi-driver
sudo add-apt-repository ppa:tigerite/mint-xorg-update
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install xorg-update&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Next to this, we&apos;ll have to edit our boot parameters for the kernel. Edit /etc/default/grub and update  GRUB_CMDLINE_LINUX_DEFAULT, for instance :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot; class=&quot;&quot;&gt;GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash i915.i915_enable_rc6=1 i915.semaphores=1 i915.i915_enable_fbc=1 pcie_aspm=force&quot;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Then, reload the grub configuration :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot; class=&quot;&quot;&gt;sudo update-grub&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Now, thanks to this, the display will work as intended. Let&apos;s enhance the rest. For this, let&apos;s remove the Visual Effects. As usual, it&apos;s fancy but not very useful and also quite performance killer. This is quite simply as you can do it via the System Settings : &quot;Appearance&quot; &amp;gt; &quot;Visual Effects&quot; &amp;gt; &quot;None&quot;. Easy, isn&apos;t it ?&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;System&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Lots of small stuff in the system will enhance the usage. First, lets focus on the /etc/sysctl.conf file :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.tcp_syncookies=1
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
vm.swappiness=1
vm.vfs_cache_pressure=50
vm.dirty_background_bytes = 536870912
vm.dirty_bytes = 1073741824
vm.dirty_expire_centisecs = 250
vm.dirty_writeback_centisecs = 500&lt;/span&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;Why all these ? First to secure, second to enhance. Indeed, we&apos;re not a router nor we&apos;ll inspect everything on the network from this computer : I&apos;ll do it from the router if needed. The second part is how we&apos;ll use the swap (with 16 GB Ram, as few as possible) and the different network shares we&apos;ll connect to (at least in CIFS for now).&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;We can also improve part of the SSD usage by updating the options in /etc/fstab :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;UUID=04f97099-2f75-4599-92fa-9e455ba38925 / ext4 errors=remount-ro,noatime,discard 0 1&lt;/span&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;line-height: 1.5;&quot;&gt;Then we&apos;ll change the relative scheduler by providing the info in the /etc/rc.local :&lt;/span&gt;&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot; class=&quot;&quot;&gt;echo noop &amp;gt; /sys/block/sda/queue/scheduler&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;We&apos;ll replicate this choice for the global kernel options, in /etc/default/grub, by updating GRUB_CMDLINE_LINUX_DEFAULT :&lt;/p&gt;
&lt;pre class=&quot;&quot; style=&quot;text-align: justify;&quot;&gt;GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash i915.i915_enable_rc6=1 i915.semaphores=1 i915.i915_enable_fbc=1 pcie_aspm=force elevator=noop profile&quot;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;You&apos;ll need to update grub, next to this. As you noticed, I added also the word &quot;profile&quot;. This will slow down the very next reboot but will progressively speed up all your boot time : it will tell the kernel to profile your system to adapt its own boot. Very useful.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;You should also mind about updating the BIOS : it might be a very stock version, and several updates went out through the years.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Next, you&apos;ll need to ensure about the CPU usage, temperature, ... Anything related to the fact you rely on a laptop. Tools can do this for you :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot; class=&quot;&quot;&gt;aptitude install thermald laptop-mode-tools&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;You may have this kind of errors during setup :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot; class=&quot;&quot;&gt;SETTING OF KERNEL PARAMETER FAILED: echo ondemand &lt;pre wp-pre-tag-9=&quot;&quot;&gt;&lt;/pre&gt;gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;This is normal as the &quot;ondemand&quot; governor does not exists for your x220 : only &quot;performance&quot; and &quot;powersave&quot;. To fix this, just edit /etc/laptop-mode/conf.d/cpufreq.conf and replace all the &quot;ondemand&quot; by &quot;powersave&quot;. It should do the trick.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Thanks to all these, you&apos;re now ready to use your x220 as your desktop replacement. Feel free to amend this text based on your specific needs, especially regarding the budget and therefore, the components, or any software you&apos;d like to use.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>How to update an ATT / Samsung Galaxy S6 Active ?</title>
      <link href="https://francois.aichelbaum.com/2016/02/21/how-to-update-an-att-samsung-galaxy-s6-active" />
      <updated>2016-02-21T17:53:02+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/02/21/how-to-update-an-att-samsung-galaxy-s6-active</id>
      <content type="html">&lt;p&gt;If, as me, you own a Galaxy S6 Active (SM-G890A) from AT&amp;amp;T, and you can’t update to Android 5.1.1, here is your solution.&lt;/p&gt;

&lt;p&gt;Over the last year, I busted two mobiles :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I missed my pocked when trying to fit my phone in : the floor didn’t missed it, especally the screen&lt;/li&gt;
  &lt;li&gt;The other one tried to swim without protection, whereas I put it into an airtight bag, in an airtight box, to prevent any issue … long but funny story&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whatever … Next to these issues, I decided to get a rugged phone to ensure that I won’t bust another one or at least, not that fast. I googled for some time, avoiding the regular Chinese models you can find all over the place. Two models came out this digging : the one from CAT &lt;a href=&quot;http://www.catphones.com/fr-fr/phones/s30-smartphone&quot;&gt;S30&lt;/a&gt; (the &lt;a href=&quot;http://www.catphones.com/fr-fr/phones/s40-smartphone&quot;&gt;S40&lt;/a&gt; was not yet available) and one from Samsung (the S6 Active). I decided not to go with the CAT one, based on several reviews I got from both.
Unfortunately, the &lt;a href=&quot;http://www.samsung.com/us/mobile/cell-phones/SM-G890AZAAATT&quot;&gt;Samsung Galaxy S6 Active&lt;/a&gt; was only release in some countries (as in the US) and only through some carrier contracts (as &lt;a href=&quot;https://www.att.com/cellphones/samsung/galaxy-s6-active.html&quot;&gt;AT&amp;amp;T&lt;/a&gt; in the US). Luckily, I had to do a quick work trip in the US. Thanks to some colleagues, I was able to buy a brand new S6 Active.
I won’t got through a full review of the phone, as you can find a ton of them online. I bought the phone on early July 2015. On August, AT&amp;amp;T released a branded update based on Android 5.0.2. The update was available to all the owner, even not in the US nor on AT&amp;amp;T. The update was fine for lots of thing but there were some glitches as some slowness or some random micro-freezes. One solution, due to Android 5.0, was to move to Android 5.1 as it solved most of the issues. But, as there is no way to root the phone yet, and as it’s not a stock version of Android, there was no way to update it as-is. Waiting was my new friend. On the root side, there is even a bounty on the &lt;a href=&quot;http://forum.xda-developers.com/galaxy-s6/galaxy-s6-active/bounty-att-s6-active-root-t3301145&quot;&gt;XDA forum&lt;/a&gt;, if you want to take care of it.
On November, AT&amp;amp;T released an update based on the 5.1.1. But, and here is our common issue, this update is available only if you’re in the US and if you’re using AT&amp;amp;T : it’s an OTA update (Over The Air). I can’t go to the US as I go to my local bakery nor I can’t ask my employer to pay for a new trip in the US just to get my update. I was struggling for months with this.
But, some days ago, I found out about some Samsung tools that could be useful : &lt;a href=&quot;http://www.samsung.com/us/smart-switch/&quot;&gt;Samsung Smart-Switch&lt;/a&gt;. Here, I won’t focus on the mobile version of the tool as it’s not useful for us. But the computer version (available on Windows and Mac OS X) is our Grail. So, install it on your computer.
If, as me, you’re on Linux and can’t find someone with a Windows close to you, visualization is your savior.  Install Virtualbox, install a VM with Windows and then, Samsung Smart Switch. Note that you better have at least 2 cores and 2 GB Ram enabled on your VM. Another trick regards the USB :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;add your current user to vboxusers&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;usermod -a -G vboxusers francois&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ul&gt;
  &lt;li&gt;logout/login your session&lt;/li&gt;
  &lt;li&gt;edit  the VM settings to ad a permanent USB filter for your phone (it has to be plugged in prior to this)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now that you can use Smart Switch, plug your phone, go to the upper right corner on “Plus”, then “Emergency recovery and re-initialization”. Wait for a couple of second, the phone will get detected and recognized. If it’s legit (not declared as stolen), the system will detect the version and propose an update from Android 5.0.2 to Android 5.1.1.
You can also for the update via the re-initialization process, thanks to your serial number (on your phone, Settings / About the phone / State), but this will wipe out all the data so do not forget to backup your phone first.
If you’re using a virtualized Windows, when the phone reboots the first time, Smart Switch will continue to ask you to connect the phone so it can detect it : just right click on the USB settings of the VM, and change the USB filter from Remote “No” to Remote “Any”. At the end, you may have to do it the other way but this is optional.
Now, you have a fully functional Galaxy S6 Active from AT&amp;amp;T, working on an up-to-date and official branded Android 5.1.1 without bothering with AT&amp;amp;T.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Petit scarabée : troisième !</title>
      <link href="https://francois.aichelbaum.com/2016/01/19/petit-scarabee-troisieme" />
      <updated>2016-01-19T13:40:53+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/01/19/petit-scarabee-troisieme</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Une quinzaine de jours est passée depuis mon dernier billet. Pas tant parce qu&apos;il n&apos;y avait rien a raconté, mais plutôt qu&apos;il faut du temps et de l’énergie pour le faire. On continue donc la découverte du Kung-Fu traditionnel, mixé à la découverte de Chengdu.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Comme introduit dans le premier billet, le kung-fu n&apos;est pas juste un art martial mais est un art de vivre. Celui-ci s&apos;accompagne donc de règles.  Elles se scindent en deux familles : les règles de moralités et les règles de comportement. Pendant que nous les revoyons continuellement, tout est prétexte à l&apos;entrainement et aux démonstrations.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9054,9053,9047&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les premières règles sont donc définies ainsi :&lt;/p&gt;
&lt;ol style=&quot;text-align: justify;&quot;&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Restez humble&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Faites bénéficier les autres&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Restez stable dans votre cœur et vos actes&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Faites face aux difficultés avec grandes volonté et fierté&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Votre relation avec les autres est plus importante que l&apos;argent&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Soyez gentleman&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Apprenez à pardonner&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Finissez ce que vous avez commencé&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Concernant les règles de comportement, elles se résument ainsi :&lt;/p&gt;
&lt;ol style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;N&apos;abandonnez jamais&lt;/li&gt;
&lt;li&gt;Ne vous vantez pas&lt;/li&gt;
&lt;li&gt;Ne vous fermez pas face à la critique&lt;/li&gt;
&lt;li&gt;Ne jouez pas les prétentieux&lt;/li&gt;
&lt;li&gt;Ne faites pas étalage de votre kung-fu&lt;/li&gt;
&lt;li&gt;Ne colportez pas&lt;/li&gt;
&lt;li&gt;N&apos;enseignez pas si vous n&apos;avez pas la compétence&lt;/li&gt;
&lt;li&gt;N&apos;arnaquez personne&lt;/li&gt;
&lt;li&gt;Ne soyez pas fermer à autrui&lt;/li&gt;
&lt;li&gt;Ne désobéissez pas aux règles&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On se rend vite compte que tout ceci s&apos;applique à la vie de tous les jours. Ainsi, outre les 6h de sport quotidiennes, nous passons beaucoup de temps à parfaire notre connaissance de l&apos;ancienne culture chinoise, mais aussi observer ce qui se passe autour de nous.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9052,9051,9050&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Forts de cette instruction, nous partons à la découverte du parc Wang Jiang, parc de bamboo en l&apos;honneur d&apos;une poète célèbre de Chengdu. Le parc se présente donc en deux parties. La plus grande, publique, recouvre deux tiers de la zone. Il s&apos;agit principalement d&apos;une réserve de diverses espèces de bamboo. La seconde, plus petite, est dédiée à la poète avec différents pavillons et une imposante statue en marbre.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9072,9071,9070,9069,9068,9067,9066,9065,9063,9062,9061,9060,9059,9058,9057,9056&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Époustouflés par cet écrin de verdure, conservé au beau milieu de la modernité des buildings, nous avons bien profité de l&apos;ambiance terriblement apaisante du lieu. A ce moment, nous sommes choqués par la contradiction perpétuelle de la Chine. Tout est dans l&apos;opposition. L&apos;ancien au modernisme. La richesse à la pauvreté. Le complique au simple. Le respect de la connaissance à l&apos;ignorance totale du passé.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour autant, certaines choses perdurent ou reviennent. Les pandas sont donc partout. Les anciennes font du sport de rue : gym toniques pour mesdames à la tombée de la nuit ou encore danse de salon sur les places publiques en journée, ... A noter également que leur style en anglais fait fureur parfois.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9080,9049,9073,9074,9066,9064&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ceci m’amène à mon 6e projet de tatouage.  Ce nouveau projet est une portion en fait un fragment d&apos;un plus gros tatouage que j&apos;ai décidé de segmenter afin de le réaliser au cours de mes divers voyages. La précédente pièce avait donc été faite a New York. Le tatoueur a été trouvé et j&apos;ai pu lui transmettre les matériaux de base pour son travail. Par contre, je garde secret le résultat jusqu&apos;au retour de Chine.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9085,9084,9083,9082,9081&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Au cours des diverses explorations de Chengdu, nous sommes également tombes sur le quartier des bars. Celui-ci est caractéristique du style de restauration à la chinoise : l&apos;emballage fait le produit. On se retrouve donc avec des bus Victoriens, un bar de dinosaures, ...&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9079,9078,9077,9076,9075&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nous finirons la semaine dernière avec le départ de l&apos;un de nos Kung-Fu brothers. Celui-ci repart donc dans sa province natale, au nord-est de la Chine. Soirée hotpot autant épicée qu&apos;arrosée, suivie d&apos;une séance de cinéma privée, dans la salle d&apos;entrainement avec la projection de &lt;a href=&quot;https://www.youtube.com/watch?v=VSfJZ6B4P6Y&quot;&gt;Crazy Kungfu&lt;/a&gt;, en chinois, bien entendu !&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9048&quot;]&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Petit scarabée : deuxième !</title>
      <link href="https://francois.aichelbaum.com/2016/01/05/petit-scarabee-deuxieme" />
      <updated>2016-01-05T14:34:14+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/01/05/petit-scarabee-deuxieme</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Les jours s&apos;enchainent sans vraiment se ressembler. Nous continuons de consommer notre lot quotidien de sport, culture kungfu-iste, de piments, le tout enrobé de zénitude et de plaisirs.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Peu de jours se sont écoulés depuis mon billet du nouvel an. Pourtant, tellement de choses ont été vécues. Ainsi, la fin de semaine a continué de s&apos;écouler avec du sport avant de nous offrir une fin de samedi reposante. Mais avant toute chose, le vendredi sera marqué par un &quot;afterwork&quot; digne de ce nom, entre occidentaux. Nous finissons donc non loin de l&apos;école, dans un bar, aux allures de Central Perk. Je note au passage qu&apos;il a fallu que je vienne en Chine pour qu&apos;on me serve par défaut une bière du Laos. D&apos;ailleurs, la serveuse s&apos;excusera en ramenant une bouteille ... car elle est froide (les chinois boivent leurs bières tièdes).&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9005,9004,9003,9002&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Bien courbatures, nous partons samedi après-midi à l&apos;attaque de l&apos;équivalent des boulevards maréchaux de Chengdu, facilement et rapidement accessible en tuk-tuk depuis l&apos;école. Là, nous déambulons dans les magasins pour y découvrir les marques à la mode, les produits, ou même les petites variantes agréables dans les grandes surfaces.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9006&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Fatigués, nous avançons vers un petite boutique de massage qui nous a été recommandée. Une heure de massage à 5 euros, ca ne se refuse pas. On n’était loin d&apos;imaginer le supplice que nous allions vivre. Pourtant habitué à l&apos;aiguille du tatoueur, mon endorphine n&apos;a bien voulu se libérer qu&apos;après que la vieille masseuse ait fini son boulot : il faut croire qu&apos;elle arrive sans problème à faire ses pompes sur les bouts des doigts. Bref, massage fini, plus aucune courbature, douleur ou autre ... le pied total !&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9007&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Revigorés, nos estomacs nous signale que l&apos;heure du diner approche à grands pas. On n&apos;avait repéré une grande place avec plein de restaurants plus bas et décidons d&apos;y aller. A part un bar dédié aux bières étrangères, tous les restos font dans le &quot;hot pot&quot; : une fondue, épicée ou non, dont le contenu change d&apos;un restaurant à l&apos;autre. Sur le conseil de notre Maître, nous allons dans le restaurant le moins rempli. Bizarrement, ce sera le plus propre de la place et celui offrant les tables les plus garnies. Nous sortons le guide, montrons la phrase magique du &quot;Faites nous plaisir&quot; et là, la farandole de mets à cuire débarque à table. Un régal pour les yeux. Un régal pour le nez. Un régal pour les papilles.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9009,9010,9008&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Repus, nous rentrons enfin à l&apos;école. Alors que nous pensions pouvoir aller voir les pandas, tot le dimanche, on nous informe que nous partirons en montagne, chez un ami de notre Maître, qui vit parmi les moines. Appareil photo chargé, les vêtements chauds préparés, nous partons donc pour une excursion en voiture. Le trajet se fait long, on sent que le Maître sort peu et surtout, conduit peu. Pour autant, avec la meme dextérité que pour ses formes, il manœuvre la voiture dans les passages étroits à flan de montagne.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nous arrivons alors, à 1300 m d&apos;altitude, sur le versant est du Qingcheng Mount. Ce nom signifie &quot;la cité verte&quot; du fait de l&apos;abondance de plantes et arbres. Cette montagne est extrêmement connue en Chine et à l&apos;extérieur pour sa luxuriance et la presence de nombreux sites religieux Bouddhistes et Taoïstes : temples, monastères, mausolées, ...&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nous sommes donc sur un plateau à 1300 m d&apos;altitude avec un imposant bâtiment, surmonté par deux temples. Le Maître des lieux vient d&apos;y ouvrir une école de méditation dans le bâtiment qu&apos;il a restauré et reverse une partie des revenus aux moines. Ainsi, ces derniers peuvent vivre mais surtout régler les impôts importants qu&apos;exige l&apos;état chinois.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9012,9013,9014,9019,9020,9018&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nous apprenons que nous allons y rester deux jours/une nuit afin de participer légèrement à la vie du temple mais surtout apprendre différentes bases de la méditation. Nous visitons donc le site et partageons les repas avec les moines.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9015&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Coté culture, nous échangeons avec le Maître des lieux pendant plusieurs heures, réparties sur les deux jours, autour d&apos;une très longue cérémonie du thé. L&apos;après-diner sera aussi l&apos;occasion de me demander, à moi, français, expert ès-vin, de goûter un vin chinois. Celui-ci avait tout d&apos;un Beaujolais nouveau (et comme je ne suis pas fan...). Ainsi, nous explorons les origines du site, les bases de la méditation, la présence de cette nouvelle école, et surtout, nous revenons sur le Bagua (le Yin-Yang). Ce dernier s&apos;avère plus complexe que nous ne le pensions. Celui étudié précédemment est dit &quot;naturel&quot;. Un autre Bagua important est celui &quot;du peuple&quot;. Celui-ci définit ses orientations par rapport a la géographie et l&apos;histoire de la Chine. Plus complexe, il permet cependant de mieux appréhender le naturel.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9023,9016,9011&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nous découvrons alors divers usages du Bagua. Par exemple, l&apos;art de la divination, grace à 3 pieces de monnaie. Nous découvrons également le Kung-fu Bagua, sorte de mélange de Taichi, Kung-fu mais également méditation. Ce sera d&apos;ailleurs l&apos;important cours du lendemain matin.&lt;/p&gt;
&lt;p&gt;https://www.youtube.com/watch?v=3NHEOU88TaY&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nous avons encore bien des choses à apprendre et à parfaire. Ce sera la conclusion du jour mais surtout de ce mardi où nous revoyons toutes nos bases encore et encore. &quot;Aie&quot; crient nos muscles.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;9021&quot;]&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Petit scarabée: première !</title>
      <link href="https://francois.aichelbaum.com/2016/01/01/petit-scarabee-premiere" />
      <updated>2016-01-01T10:18:23+01:00</updated>
      <id>https://francois.aichelbaum.com/2016/01/01/petit-scarabee-premiere</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Pour beaucoup, ce n&apos;est pas une surprise : je suis en Chine pour quelques semaines. La précision importante ici est qu&apos;il s&apos;agit d&apos;une immersion dans la campagne chinoise avec un entrainement intensif au Wu Shu.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Cela fait donc quelques jours que je suis arrivé. Etonnamment, un énorme brouillard recouvrait la ville de Chengdu, dans le Sichuan. Bon, je dis étonnamment car ce n&apos;est quasiment pas du à la pollution chinoise mais plus au climat local. Le Sichuan est une province entourée de montagne. Une cuvette quoi... Le résultat est qu&apos;il y pleut très peu mais l&apos;humidité ambiante est permanente, ce qui donne ce brouillard si épais et humide. Ce matin, surprise pour le nouvel an, le brouillard se lève enfin et le soleil parvient à illuminer la cour de l&apos;école. Ca ne réchauffe pas encore le corps, mais au moins ca sèche un peu les affaires.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Revenons-en à cette immersion. C&apos;est donc la Kung Fu Family de Maître Li Quan (Shifu pour les intimes) qui accueille les quatres apprentis que nous sommes, issus de différents pays. Shifu est un Maître (re)connu qui accueille régulièrement des gens de tous horizons et des différentes provinces chinoises, pour leur transmettre ses connaissances et son amour pour le Kung Fu traditionnel, le Wu Shu. Dans la hiérarchie des Maîtres, seul un rang lui demande respect, celui des (rares) Grands Maîtres qui viennent parfois entrainer ses apprentis.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Petits scarabées que nous sommes, les premiers pas sont importants :&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle; text-align: justify;&quot;&gt;
&lt;li&gt;savoir quelle est notre place dans la hiérarchie pour ne pas marquer de faux pas par manque de respect&lt;/li&gt;
&lt;li&gt;avoir une excellente moralité&lt;/li&gt;
&lt;li&gt;comprendre pourquoi nous sommes là&lt;/li&gt;
&lt;li&gt;apprendre que tout est lié et que tout vit en harmonie, c&apos;est-à-dire en mouvement et relation permanente avec son opposé&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ce qui caractérise le mieux ces règles de base est entre autres, le Yin-Yang que nous connaissons deja.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;8989&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ce symbole, surtout une fois complété des éléments, est très important et sa connaissance assure une bonne base pour commencer notre entrainement. Il s&apos;agit donc d&apos;une philosophie qui englobe toute chose : chaque objet, chaque pensée, chaque action, ... Son chiffre clé est le 8 : huit symboles, 8 cercles, un 8 dessinée dedans, ... Le Yin représente la force, le masculin, l&apos;attaque. Le Yang représente la douceur, le féminin, la défense. Ils ne peuvent fonctionner l&apos;un sans l&apos;autre. Il y a d&apos;ailleurs du Yin dans le Yang et inversement. De meme, quand le Yin est au maximum, le Yang qui est au minimum va pourvoir se développer et prendre du terrain, lancant la dynamique. Ce sont des opposés qui se complètent.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Après avoir compris ce point, on avance sur les huit règles de base du Kung Fu, toutes se développant sur les thèmes de respect et de bonne moralité. Oublions les conflits, la compétition. Ici, on se focalise sur l&apos;entraide, sur le complément, sur l&apos;adaptation. On va donc apprendre, tranquillement un mélange d&apos;art de vivre issu de l&apos;ancien temps, très posé, à celui de la Chine moderne, très festif. Tout cela, en soutenant le respect envers les Ainés. On verra tour à tour divers membres anciens de la fraternité de la Kung Fu Family défiler à table pour partager des repas copieux et de la boisson forte.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;8986&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Et là, cela peut devenir complètement folklorique pour nos petits yeux d&apos;occidentaux. Ces hommes, pourtant éduqués dans la science et la culture Shaolin, sont devenus totalement bling-bling, parfois aussi customisés que leurs voitures tres Jacky. On verra les gens trinquer, surtout, un par un, en gardant le verre à une hauteur précise pour signifier leur position dans la hiérarchie, puis porter le verre aux lèvres pour à peine les tremper dans le liquide : il ne faudrait pas perdre la face. Il faut que l&apos;autre soit saoul bien avant, pour montrer qu&apos;il est un bon ami. Le pire dans ce cirque de courbettes, à mon sens, est l&apos;alcool. Ici, la belle bouteille fait le bon alcool dans les esprtis. Il en résulte que la premiere soirée se fera sur une bouteille magnifique, mais au contenu écoeurant : un alcool fort (52%) avec un arrière gout de bonbon à la cerise proche de celui des cerises des forêts noires. Erk ... !&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reste que certains Maîtres ont voyagés ou ont rencontrés d&apos;autres cultures. Ceux-là nous ferons profiter d&apos;un vin espagnol de très bon goût pour accompagner les plats pimentés du diner.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La nourriture, c&apos;est bien bon, mais ce n&apos;est pas le but premier de ce séjour. Ici, on pratique et on vit le Kung Fu ! On vit à la dure (pas de chauffage, eau chaude limitée, ...) mais pas trop (petit déj vers 9/10h en gros). Par contre, 6h de cours tous les jours. Apres une première petite semaine, les courbatures sont là et on (re)découvre des muscles depuis longtemps oubliés. Pour autant, le plaisir est total car Shifu aime partage son art et sa culture et tout ce que vous ferez pour montrer que vous etes là pour apprendre sera récompensé.&lt;/p&gt;
&lt;p&gt;[gallery show_title=&quot;0&quot; ids=&quot;8987&quot;]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le sacre de ces premiers jours : être jugé par les autres membres de la Kung Fu Family, tous au rang de Maître, qui acquiescent fièrement un &quot;Fast learner&quot; sur votre démonstration de la première forme apprise en deux jours seulement.&lt;/p&gt;
&lt;/p&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The Ultimate Christmas Movie - Supercut</title>
      <link href="https://francois.aichelbaum.com/2015/12/22/the-ultimate-christmas-movie-supercut" />
      <updated>2015-12-22T07:27:15+01:00</updated>
      <id>https://francois.aichelbaum.com/2015/12/22/the-ultimate-christmas-movie-supercut</id>
      <content type="html">&lt;p&gt;https://youtu.be/mKrlkMnAVJE&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Best of Web 8 - HD - Zapatou</title>
      <link href="https://francois.aichelbaum.com/2015/12/17/best-of-web-8-hd-zapatou" />
      <updated>2015-12-17T10:54:00+01:00</updated>
      <id>https://francois.aichelbaum.com/2015/12/17/best-of-web-8-hd-zapatou</id>
      <content type="html">&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/yHVrGUeTFbo&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Parce que TGIF, et qu&amp;#039;ils commencent à être mérités ces vendredis !</title>
      <link href="https://francois.aichelbaum.com/2015/10/30/parce-que-tgif-et-quils-commencent-a-etre-merites-ces-vendredis" />
      <updated>2015-10-30T15:48:02+01:00</updated>
      <id>https://francois.aichelbaum.com/2015/10/30/parce-que-tgif-et-quils-commencent-a-etre-merites-ces-vendredis</id>
      <content type="html">&lt;p&gt;https://youtu.be/EmnSm_d2ll4&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Movie phone super call</title>
      <link href="https://francois.aichelbaum.com/2015/09/17/movie-phone-super-call" />
      <updated>2015-09-17T07:58:41+02:00</updated>
      <id>https://francois.aichelbaum.com/2015/09/17/movie-phone-super-call</id>
      <content type="html">&lt;p&gt;https://youtu.be/zXnC2DlEOdE&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Diagnostic</title>
      <link href="https://francois.aichelbaum.com/2015/09/16/diagnostic" />
      <updated>2015-09-16T18:36:36+02:00</updated>
      <id>https://francois.aichelbaum.com/2015/09/16/diagnostic</id>
      <content type="html">&lt;p&gt;https://youtu.be/AM4c9ckSy9M&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Hell&amp;#039;s Club</title>
      <link href="https://francois.aichelbaum.com/2015/09/08/hells-club" />
      <updated>2015-09-08T09:57:09+02:00</updated>
      <id>https://francois.aichelbaum.com/2015/09/08/hells-club</id>
      <content type="html">&lt;p&gt;https://youtu.be/QajyNRnyPMs&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Marrakech</title>
      <link href="https://francois.aichelbaum.com/2015/06/19/marrakech" />
      <updated>2015-06-19T16:55:02+02:00</updated>
      <id>https://francois.aichelbaum.com/2015/06/19/marrakech</id>
      <content type="html">&lt;p&gt;[gallery ids=&quot;9491,9490,9489,9487,9486,9485,9484,9483,9482,9481,9480,9479,9478,9477,9476,9475,9474,9473,9472,9471,9470,9469,9468,9467,9466,9465,9464,9463,9462,9461,9459,9460,9458,9457,9456,9455,9454,9453,9452,9451,9450,9449,9448,9447,9446,9445,9444,9443,9442,9441,9440,9439,9438,9437,9436,9435,9434,9433,9432,9421,9420,9419,9418,9417,9416,9415,9414,9413,9412,9411,9410,9409,9408,9407,9406,9405,9404,9403,9402,9401,9400,9399,9398,9397,9396,9395,9394,9393,9392,9391,9390,9389,9388,9387,9386,9385,9384,9383,9382,9381,9380,9379,9378,9377,9376,9375,9374,9373,9372,9371,9370,9369,9368,9367,9366,9365,9364,9363,9362,9361,9360,9359,9358,9357,9356,9355,9354,9353,9352,9351,9350,9349,9348,9347,9346,9345,9344,9343,9342,9341,9340,9339,9338,9337,9336,9335,9334,9333,9332,9331,9330,9329,9328,9327,9326,9325,9324,9323,9322,9321,9320,9319,9318,9317,9316,9315,9314,9313,9312,9311,9310,9309,9308,9307,9306,9305,9304,9303,9302,9301,9300,9299,9298,9297,9293,9291,9290,9289,9288,9287,9286,9285,9284,9283,9282,9281,9280,9279,9278,9277,9276,9275,9274,9273,9272,9271,9270,9269,9268,9267,9266,9265,9264,9263,9262,9261,9260,9259,9258,9257,9256,9255,9254,9253,9252,9251,9250,9249,9248,9247,9246,9245,9244,9243,9242,9241,9240,9239,9238,9237,9236,9235,9234,9233,9232,9231,9230,9229,9228,9227,9226,9225,9224,9223,9222,9221,9220,9219,9218,9217,9216,9215,9214,9213,9212,9211,9210,9209,9208,9207,9206,9205,9204,9203,9202,9201,9196,9195,9194,9193,9192,9191,9190,9189,9188,9187,9180,9176,9175,9174,9169,9168,9167,9166,9165,9164,9163,9162,9161,9160,9159,9156,9542,9541,9540,9539,9538,9537,9536,9535,9534,9533,9532,9531,9530,9529,9528,9527,9526,9525,9524,9523,9522,9521,9520,9519,9518,9517,9516,9515,9514,9513,9512,9511,9510,9488,9296,9292&quot;]&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>An XMAS Movie Mashup</title>
      <link href="https://francois.aichelbaum.com/2014/12/24/xmas-movie-mashup" />
      <updated>2014-12-24T08:35:34+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/12/24/xmas-movie-mashup</id>
      <content type="html">&lt;p&gt;https://www.youtube.com/watch?v=fKjoJKW2C34&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Final Cut 2014 - Movie Mashup</title>
      <link href="https://francois.aichelbaum.com/2014/12/23/final-cut-2014-movie-mashup" />
      <updated>2014-12-23T12:59:30+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/12/23/final-cut-2014-movie-mashup</id>
      <content type="html">&lt;p&gt;https://www.youtube.com/watch?v=MV9MCLS1Ji8&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Best of Web 7 - HD - Zapatou</title>
      <link href="https://francois.aichelbaum.com/2014/12/22/best-web-7-hd-zapatou" />
      <updated>2014-12-22T08:23:43+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/12/22/best-web-7-hd-zapatou</id>
      <content type="html">&lt;p&gt;https://www.youtube.com/watch?v=axgDgH6f7Pw&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The Dark Game of Hobbit Knight Thrones Musical Mashup</title>
      <link href="https://francois.aichelbaum.com/2014/05/26/dark-game-hobbit-knight-thrones-musical-mashup" />
      <updated>2014-05-26T19:11:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2014/05/26/dark-game-hobbit-knight-thrones-musical-mashup</id>
      <content type="html">&lt;p&gt;http://www.youtube.com/watch?v=wUKjN5hi7UM&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Job le plus dur du monde</title>
      <link href="https://francois.aichelbaum.com/2014/05/25/job-le-plus-dur-du-monde" />
      <updated>2014-05-25T10:40:10+02:00</updated>
      <id>https://francois.aichelbaum.com/2014/05/25/job-le-plus-dur-du-monde</id>
      <content type="html">&lt;p&gt;https://www.youtube.com/watch?v=beCYTVk-AYU&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Mashup La communauté de l&amp;#039;anneau / Kaamelott</title>
      <link href="https://francois.aichelbaum.com/2014/05/16/mashup-la-communaute-de-lanneau-kaamelott" />
      <updated>2014-05-16T12:14:44+02:00</updated>
      <id>https://francois.aichelbaum.com/2014/05/16/mashup-la-communaute-de-lanneau-kaamelott</id>
      <content type="html">&lt;p&gt;http://www.youtube.com/watch?v=krrZoYm7FvA&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Mashup Titanic / Les Bronzés</title>
      <link href="https://francois.aichelbaum.com/2014/04/18/mashup-titanic-les-bronzes" />
      <updated>2014-04-18T11:00:19+02:00</updated>
      <id>https://francois.aichelbaum.com/2014/04/18/mashup-titanic-les-bronzes</id>
      <content type="html">&lt;p&gt;https://www.youtube.com/watch?v=hLEEHWFn308&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Monitoring des services de streaming live audio/video</title>
      <link href="https://francois.aichelbaum.com/2014/03/06/monitoring-des-services-de-streaming-live-audiovideo" />
      <updated>2014-03-06T11:00:35+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/03/06/monitoring-des-services-de-streaming-live-audiovideo</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Dans le cadre d&apos;une de mes vies précédentes, chez Yacast Media (depuis racheté par &lt;a title=&quot;SmartJog&quot; href=&quot;http://www.smartjog.com/&quot; target=&quot;_blank&quot;&gt;SmartJog&lt;/a&gt; et devenu &lt;a title=&quot;Arkena&quot; href=&quot;http://www.arkena.com/&quot; target=&quot;_blank&quot;&gt;Arkena&lt;/a&gt;) en l&apos;occurrence, se posait la problématique de comment s&apos;assurer de la qualité de service envoyée au client pour tout ce qui était flux live. A chaque problème, sa solution, et ici, elle se prénomme &lt;a title=&quot;Bobonne @github&quot; href=&quot;https://github.com/faichelbaum/bobonne&quot; target=&quot;_blank&quot;&gt;Bobone&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Certains d&apos;entre vous connaissent les CDN : les Content Delivery Networks, des diffuseurs de contenu. La majorité suppose qu&apos;ils ne font que de la mise en cache du contenu. C&apos;est en effet une bonne part de leur métier mais pas l&apos;unique. Parmi les autres, il y a aussi, dans ce qui nous intéresse ici, des fonctions de captation (récupérer un signal hertzien, satellite, câble, ou autre), de transcodage (transformer ce flux capté en flux informatique) et de diffusion (le coeur du métier du CDN donc). Ceci représente le streaming. Pour vous, en tant qu&apos;utilisateur, il s&apos;agit de ce que vous pouvez consulter sur votre boîter TV fourni par votre FAI, ou via votre tablette ou smartphone.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour se faire, les infrastructures sont toujours plus importantes, toujours plus complexes. Dans le cas de la mise en cache de contenu, il est relativement aisé de détecter automatiquement une défaillance ou un dysfonctionnement. Pour autant bien trop peu de CDN mettent ces routines en place ... Dans le cas de la diffusion de contenu en direct, le streaming, il n&apos;y avait pas à l&apos;époque d&apos;outil disponible pour faire ce contrôle automatique. Il incombait donc à des humains de tester les flux.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ceci représente un coût non négligeable pour la société et le temps qu&apos;un humain teste tous les flux sur tous les serveurs, l&apos;ensemble de la plateforme pouvait s&apos;écrouler ou diffuser le contenu avec une qualité déplorable. Parti de ce constat, c&apos;est posé la question de comment le résoudre. M&apos;est alors venue l&apos;idée d&apos;utiliser &lt;a title=&quot;VLC&quot; href=&quot;http://www.videolan.org/&quot; target=&quot;_blank&quot;&gt;VLC&lt;/a&gt; pour se faire.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;VLC est un outil permettant de regarder des vidéos mais aussi des flux audio/vidéo directement sur internet. Il fonctionne sur de nombreux systèmes dont Linux, ce qui m&apos;arrange pour pouvoir faire ma programmation. Au moins dans sa version Linux, il propose de fonctionner entièrement en ligne de commande, publiant un nombre mirobolant d&apos;informations à chaque instant, mais également l&apos;image transformée en ASCII, grâce à la &lt;a title=&quot;libcaca&quot; href=&quot;http://caca.zoy.org/wiki/libcaca&quot; target=&quot;_blank&quot;&gt;libcaca&lt;/a&gt; (ne rier pas trop, faut qu&apos;on continue à bosser).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il me restait donc à définir du code permettant de recueillir la liste des points de diffusions de chaque plateforme, la liste des serveurs et tester l&apos;ensemble. C&apos;est le but du code alors rédigé en PHP qui fonctionnera en ligne de commande. Ce programme multi-process consultera plus d&apos;une centaine à chaque instant et analysera une centaine de points sur les flux pour en déterminer la qualité de service. Le résultat sont stockés pour l&apos;heure dans une base &lt;a title=&quot;SQLite&quot; href=&quot;http://www.sqlite.org/&quot; target=&quot;_blank&quot;&gt;SQLite&lt;/a&gt; embarquée. L&apos;application est donc mobile. A l&apos;époque, cette base était consultée par l&apos;intranet qui permettait de lister les problèmes et relancer les flux sur les différents équipements via un simple clic.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les opérateurs y gagnaient en charge de travail, la société en €€ et le client en assurance sur la qualité du service fourni. Des évolutions étaient préves mais n&apos;ont pas vu le jour. Je le ressors aujourd&apos;hui car je vais en avoir besoin et donc vais le faire revivre. Je viens donc d&apos;importer la dernière version du code (qui date de début 2010) sur &lt;a title=&quot;Bobonne @github&quot; href=&quot;https://github.com/faichelbaum/bobonne&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tiens une question du fond, la personne qui se pouffe de rire toute seule : pourquoi Bobonne ? Tout simplement, le programme devait &quot;regarder des chaînes de TV et écouter la radio&quot; en continue. La parfaite ménagère de moins de 50 ans (copyright de nos chères chaînes de TV). En argo, Bobonne.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>SupInfoCom - A la francaise</title>
      <link href="https://francois.aichelbaum.com/2014/02/27/supinfocom-la-francaise" />
      <updated>2014-02-27T10:46:57+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/02/27/supinfocom-la-francaise</id>
      <content type="html">&lt;p&gt;http://vimeo.com/86295452&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>2CELLOS - Thunderstruck</title>
      <link href="https://francois.aichelbaum.com/2014/02/25/2cellos-thunderstruck" />
      <updated>2014-02-25T07:31:35+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/02/25/2cellos-thunderstruck</id>
      <content type="html">&lt;p&gt;http://www.youtube.com/watch?v=uT3SBzmDxGk&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>1984 Movies supercut - golem13</title>
      <link href="https://francois.aichelbaum.com/2014/02/17/1984-movies-supercut-golem13" />
      <updated>2014-02-17T11:01:15+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/02/17/1984-movies-supercut-golem13</id>
      <content type="html">&lt;p&gt;http://vimeo.com/86617721&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Love Means Never Having to Say You&amp;#039;re Sorry</title>
      <link href="https://francois.aichelbaum.com/2014/02/14/love-means-never-say-youre-sorry" />
      <updated>2014-02-14T11:01:24+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/02/14/love-means-never-say-youre-sorry</id>
      <content type="html">&lt;p&gt;http://vimeo.com/groups/montagecreators/videos/86725484&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Make love. Not War - Axe ads without Axe</title>
      <link href="https://francois.aichelbaum.com/2014/01/27/make-love-war-axe-ads-without-axe" />
      <updated>2014-01-27T07:50:06+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/01/27/make-love-war-axe-ads-without-axe</id>
      <content type="html">&lt;p&gt;http://youtu.be/Gz07w2XaxBc&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Dis 33 ! (Pub Peugeot 806 pour les incultes)</title>
      <link href="https://francois.aichelbaum.com/2014/01/21/dis-33-pub-peugeot-806-pour-les-incultes" />
      <updated>2014-01-21T06:48:56+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/01/21/dis-33-pub-peugeot-806-pour-les-incultes</id>
      <content type="html">&lt;p&gt;http://www.youtube.com/watch?v=16AHysRb3B0&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Sophie Maurin &amp;amp; Jamie Cullum - Far Away</title>
      <link href="https://francois.aichelbaum.com/2014/01/20/sophie-maurin-jamie-cullum-far-away" />
      <updated>2014-01-20T08:04:53+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/01/20/sophie-maurin-jamie-cullum-far-away</id>
      <content type="html">&lt;p&gt;http://www.dailymotion.com/video/x1a0i3o_jamie-cullum-et-sophie-maurin-le-duo-de-charme_music&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Les Frenchies vus par le cinéma US - Hervé De Wilde</title>
      <link href="https://francois.aichelbaum.com/2014/01/08/les-frenchies-vus-par-le-cinema-us-herve-de-wilde" />
      <updated>2014-01-08T20:14:14+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/01/08/les-frenchies-vus-par-le-cinema-us-herve-de-wilde</id>
      <content type="html">&lt;p&gt;&lt;iframe src=&quot;//player.vimeo.com/video/82750579&quot; width=&quot;500&quot; height=&quot;281&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Oslo - Fireworks - Happy new year 2014 - ABBA medley</title>
      <link href="https://francois.aichelbaum.com/2014/01/02/oslo-happy-new-year-2014" />
      <updated>2014-01-02T15:55:15+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/01/02/oslo-happy-new-year-2014</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/files/o/oslo_2013.mp4&quot;&gt;&lt;video width=&quot;320&quot; height=&quot;240&quot; src=&quot;http://francois.aichelbaum.com/files/o/oslo_2013.mp4&quot; preload=&quot;none&quot; controls=&quot;controls&quot;&gt;&lt;object width=&quot;320&quot; height=&quot;240&quot; classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;src&quot; value=&quot;https://francois.aichelbaum.com/wp-includes/js/tinymce/plugins/media/moxieplayer.swf&quot; /&gt;&lt;param name=&quot;flashvars&quot; value=&quot;url=/files/o/oslo_2013.mp4&amp;amp;poster=/wp-admin/&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;true&quot; /&gt;&lt;embed width=&quot;320&quot; height=&quot;240&quot; type=&quot;application/x-shockwave-flash&quot; src=&quot;https://francois.aichelbaum.com/wp-includes/js/tinymce/plugins/media/moxieplayer.swf&quot; flashvars=&quot;url=/files/o/oslo_2013.mp4&amp;amp;poster=/wp-admin/&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;true&quot; /&gt;&lt;/object&gt;&lt;/video&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>New Year&amp;#039;s Eve Countdown - Movie Mashup</title>
      <link href="https://francois.aichelbaum.com/2014/01/01/new-years-eve-countdown-movie-mashup" />
      <updated>2014-01-01T01:04:46+01:00</updated>
      <id>https://francois.aichelbaum.com/2014/01/01/new-years-eve-countdown-movie-mashup</id>
      <content type="html">&lt;p&gt;http://www.youtube.com/watch?v=et73p86--ls&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Darlene Love - All Alone on Christmas (A Very Merry Movie Mash-up)</title>
      <link href="https://francois.aichelbaum.com/2013/12/25/darlene-love-alone-christmas-merry-movie-mash" />
      <updated>2013-12-25T10:51:58+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/12/25/darlene-love-alone-christmas-merry-movie-mash</id>
      <content type="html">&lt;p&gt;http://www.youtube.com/watch?v=wemjvUbBgz0&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Best of web #6 - 2014</title>
      <link href="https://francois.aichelbaum.com/2013/12/24/best-web-6-2014" />
      <updated>2013-12-24T12:08:04+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/12/24/best-web-6-2014</id>
      <content type="html">&lt;p&gt;http://www.youtube.com/watch?v=1-8isxa5B_Y&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Best of web #5 - mid 2013</title>
      <link href="https://francois.aichelbaum.com/2013/12/24/best-web-5-mid-2013" />
      <updated>2013-12-24T12:06:58+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/12/24/best-web-5-mid-2013</id>
      <content type="html">&lt;p&gt;http://www.youtube.com/watch?v=iDkrSD8fOBo&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>James Bond est un alcoolique notoire</title>
      <link href="https://francois.aichelbaum.com/2013/12/13/james-bond-est-un-alcoolique-notoire" />
      <updated>2013-12-13T16:11:53+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/12/13/james-bond-est-un-alcoolique-notoire</id>
      <content type="html">&lt;p&gt;Ca se passe sur un des blogs du Monde :&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;James Bond aime encore plus la bouteille que les femmes&quot; href=&quot;http://bigbrowser.blog.lemonde.fr/2013/12/13/alcoolique-anonyme-james-bond-aime-encore-plus-la-bouteille-que-les-femmes/&quot;&gt;http://bigbrowser.blog.lemonde.fr/2013/12/13/alcoolique-anonyme-james-bond-aime-encore-plus-la-bouteille-que-les-femmes/&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Skip the use - Nameless world</title>
      <link href="https://francois.aichelbaum.com/2013/12/13/skip-use-nameless-world" />
      <updated>2013-12-13T15:24:23+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/12/13/skip-use-nameless-world</id>
      <content type="html">&lt;p&gt;&lt;iframe width=&quot;425&quot; height=&quot;350&quot; src=&quot;https://www.youtube.com/embed/m-h-tK1yspQ&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>2013 - Movie trailer mashup</title>
      <link href="https://francois.aichelbaum.com/2013/12/03/2013-movie-trailer-mashup" />
      <updated>2013-12-03T15:33:43+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/12/03/2013-movie-trailer-mashup</id>
      <content type="html">&lt;p&gt;&lt;iframe width=&quot;425&quot; height=&quot;350&quot; src=&quot;https://www.youtube.com/embed/YU8CvjIwAlY&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Côte : manger français à Londres</title>
      <link href="https://francois.aichelbaum.com/2013/11/14/cote-manger-francais-londres" />
      <updated>2013-11-14T01:10:13+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/11/14/cote-manger-francais-londres</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/cote-brasserie-1.png&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8275&quot; alt=&quot;cote-brasserie (1)&quot; src=&quot;/assets/cote-brasserie-1-150x150.png&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;En déplacement professionnel chez nos voisins d&apos;outre-Manche, j&apos;ai passé ma journée à manger/boire français : viennoiseries, bières (Stella &amp;amp; Météor), ... et le dîner. Bah oui, pourquoi s&apos;embêter à trouver quelque chose d&apos;anglais chez les Rosbifs ? Mes souvenirs de voyages linguistiques ? De la semelle, de trucs sans goûts, ... Alors quand en cherchant une table pour le dîner, on a vu un restaurant se présenter comme &quot;Brasserie &lt;a href=&quot;http://www.cote-restaurants.co.uk/&quot;&gt;Côte&lt;/a&gt;, la brasserie de laquelle les parisiennes devrait prendre des leçons&quot;, on s&apos;est dit : challenge accepted ! C&apos;est &lt;a href=&quot;https://maps.google.fr/maps?ie=UTF8&amp;amp;fb=1&amp;amp;gl=fr&amp;amp;hq=c%C3%B4te+%2B+brasserie+%2B&amp;amp;hnear=Londres,+Royaume-Uni&amp;amp;ll=51.489507,-0.168915&amp;amp;spn=0.319375,0.727158&amp;amp;t=m&amp;amp;z=11&amp;amp;vpsrc=0&amp;amp;iwloc=A&amp;amp;cid=13765580569693963349&quot;&gt;ici&lt;/a&gt; que ca se passe.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour l&apos;ambiance Brasserie, je dirais qu&apos;il y a un petit loupé : on est à mi chemin entre un restaurant à l&apos;Américaine (type le Walt pour ceux qui connaissent), le pub et la brasserie. Pas très cliché mais bon, c&apos;est propre.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La carte, assez pauvre en noms à consonance française est assez bien pourvue, tant sur les entrées que sur les plats. Mon dévolu se jette sur le tartare de boeuf en entrée (??), un demi poulet (breton - ils insistent), accompagné d&apos;une Météor.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/cote-banner-image3-300.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-8278&quot; alt=&quot;cote-banner-image3-300&quot; src=&quot;/assets/cote-banner-image3-300-300x96.jpg&quot; width=&quot;300&quot; height=&quot;96&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Que dire de l&apos;entrée. J&apos;étais assez dubitatif de proposer un tartare en entrée (préparé avec les câpres, le cognac, l&apos;oeuf, ...). Je rajoute mes sauces (Worcester &amp;amp; Tabasco), je porte la fourchette en bouche et là, c&apos;est le drame : c&apos;est l&apos;un de meilleur tartare que j&apos;ai jamais mangé ! Je n&apos;en connais qu&apos;un seul autre (à Paris d&apos;ailleurs) qui fut meilleur ! Je crois rêver ... Je me dit qu&apos;il y a erreur, que j&apos;ai du reprendre le train dans l&apos;autre sens ou que je me suis assoupi à une de mes conférences. Je m&apos;agite, j&apos;en gobe le reste du tartare et non, tout est bien réel.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Très bonne introduction pour me préparer au demi poulet, plat &quot;par défaut&quot; que je prend souvent dans les brasseries parisiennes. Le poulet est cuit sur le grill. Goûtu, il reste néanmoins un peu trop rosé à mon goût (je l&apos;aime bien blanc). mais la cuisson est homogène et propre, l&apos;assaisonnement fin. La sauce au champignons qui l&apos;agrémente est fine et n&apos;étouffe pas le palais. Les frites présente en accompagnement son juste bonne. Le plat est donc bon, mais à mon goût mériterait une cuisson plus longue. Mais rien de choquant et également bien habituelle, même dans les bonnes brasseries parisiennes.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/getlstd-property-photo.jpg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-8281 alignnone&quot; alt=&quot;getlstd-property-photo&quot; src=&quot;/assets/getlstd-property-photo-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/caramel.jpg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-8284 alignnone&quot; alt=&quot;caramel&quot; src=&quot;/assets/caramel-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Bien mis en bouche, ayant toujours le régal de l&apos;entrée en bouche, je me jette sur ce qu&apos;on m&apos;annonce la spécialité de la maison, pour mon dessert : la crème caramel. Et bien je dois dire qu&apos;ils peuvent s&apos;en vanter. Généreuse, onctueuse, légère, elle fond délicatement en bouche. La parfaite définition de la crème caramel.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Même si je suis chiant sur la cuisson de mon poulet, le dîner fut parfait du début à la fin avec un service plus qu&apos;agréable. Avec deux bières, le repas m&apos;aura coûté 35,10 livres (soit environ 42€) : honnête. Le pire, c&apos;est que c&apos;est une chaîne ...&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Quai d&amp;#039;Orsay : satyre de la politique française</title>
      <link href="https://francois.aichelbaum.com/2013/11/13/quai-dorsay-satyre-de-la-politique-francaise" />
      <updated>2013-11-13T10:57:55+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/11/13/quai-dorsay-satyre-de-la-politique-francaise</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/visuel-de-la-bande-dessinee-quai-d-orsay-10769693bkdgf_1713.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8248&quot; alt=&quot;visuel-de-la-bande-dessinee-quai-d-orsay-10769693bkdgf_1713&quot; src=&quot;/assets/visuel-de-la-bande-dessinee-quai-d-orsay-10769693bkdgf_1713-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;A croire que c&apos;est la période des adaptations ciné de bandes dessinées françaises, aussi bien dans le Nouveau Monde que sur ce bon Vieux Continent. Cette fois-ci, on adapte une satyre des méandres de la politique française. Le cadre choisi est le ministère des Affaires Etrangères sous le Président Chirac. La méthode choisie pour découvrir ce monde est d&apos;accompagner les premiers pas d&apos;un jeune diplomate dans l&apos;ombre du ministre. Action.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A croire que le cinéma n&apos;a plus d&apos;idée ... adaptations de bouquins, adaptations de BD, bientôt adaptations de prospectus publicitaires, ... Que dire à part qu&apos;on en mange à toutes les sauces. Pour autant, du franco-français, en comédie, c&apos;est alléchant, surtout avec &lt;em&gt;Popaye&lt;/em&gt; comme beau gosse (âgé) de service.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[video]http://www.youtube.com/watch?v=jmwE8aSojrs[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Arthur est un jeune bobo de gauche qui rêve d&apos;un poste prestigieux dans le monde politique française. Heureusement, il est recommandé par bon nombre de ses connaissances auprès du ministre des Affaires Etrangères, Alexandre. Premier hic ? le gouvernement est de droite. Passé ce premier frein, il faut faire ses preuves et trouver ses marques. C&apos;est ainsi que la hiérarchie fort simple (ahem...) de l&apos;administration française s&apos;ouvre à lui et lui permet de découvrir un nouveau monde où les coups bas sont des signes d&apos;amour et les félicitations, des coups en traitres.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/quai-d-orsay.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-8263&quot; alt=&quot;quai-d-orsay&quot; src=&quot;/assets/quai-d-orsay-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/b00889f2-5a50-11e2-922f-0c1a40f503f3-493x328.jpg&quot;&gt;&lt;img alt=&quot;b00889f2-5a50-11e2-922f-0c1a40f503f3-493x328&quot; src=&quot;/assets/b00889f2-5a50-11e2-922f-0c1a40f503f3-493x328-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/Quai-d-Orsay-4_reference.jpg&quot;&gt;&lt;img alt=&quot;Quai-d-Orsay-4_reference&quot; src=&quot;/assets/Quai-d-Orsay-4_reference-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/quai-d-orsay-13-11-2013-3-g.jpg&quot;&gt;&lt;img alt=&quot;quai-d-orsay-13-11-2013-3-g&quot; src=&quot;/assets/quai-d-orsay-13-11-2013-3-g-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/quai-d-orsay-13-11-2013-4-g.jpg&quot;&gt;&lt;img alt=&quot;quai-d-orsay-13-11-2013-4-g&quot; src=&quot;/assets/quai-d-orsay-13-11-2013-4-g-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Place à une succession de grandes phrases et citations qui n&apos;ont ni queue ni tête mais où tout à chacun trouvera un sens unique : des qui pro quo en chaîne, des interprétations comiques, ... Le film ne s&apos;arrête jamais et garde un rythme soutenu mais non étouffant. On suit et on se délecte de l&apos;ambiance bonne enfant du film. On trouve toujours une allusion à une expérience passée ou présente qui nous permet de nous identifier à Arthur.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Cependant, trois points font perdre au film sa perfection :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la compagne d&apos;Arthur est totalement effacée&lt;/li&gt;
&lt;li&gt;parler des expulsions de famille et écoliers est trop dans l&apos;actualité pour en rire dans un film et du coup, la petite anecdote portée à l&apos;écran est mal placée&lt;/li&gt;
&lt;li&gt;la fin est catapultée : on est dans le rythme, on s&apos;attend à ce que le film se poursuivre et au final, le générique apparaît à l&apos;écran&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour autant, le film est un régal qu&apos;on savourera à n&apos;importe quelle heure.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Snowpiercer ne fend pas un cheveux en quatre</title>
      <link href="https://francois.aichelbaum.com/2013/11/13/snowpiercer-ne-fend-pas-un-cheveux-en-quatre" />
      <updated>2013-11-13T09:35:34+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/11/13/snowpiercer-ne-fend-pas-un-cheveux-en-quatre</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/snowpiercer-le-transperceneige-10988678kixgd_1713.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8215&quot; alt=&quot;snowpiercer-le-transperceneige-10988678kixgd_1713&quot; src=&quot;/assets/snowpiercer-le-transperceneige-10988678kixgd_1713-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Snowpiercer est basé sur une bande dessinée française du début des années 80. L&apos;idée original est de nous plonger avec les rares survivants de l&apos;espèce humaine dans un train en perpétuel mouvement. Le monde a gelé lors de l&apos;apocalypse déclenchée pour contrer le réchauffement climatique. Très hiérarchisé, ce train segmente son monde en wagons, chacun ayant leur niveau social (les riches en tête, les pauvres en queue) ou leur utilité (école, aquarium, serre, ...). Mais comment vivent ces classes ? Telle est la base de l&apos;oeuvre française et le but annoncé de la transposition ciné.&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Avant d&apos;aller voir ce film je me suis refusé à lire les critiques, me cantonnant à la bande annonce et les infos que j&apos;ai pu glaner sur la BD (à défaut de la lire pour le moment). Assez motivé ma peur d&apos;un nanard d&apos;action se mélengeait à l&apos;envie de découvrir une psychanalyse sur l&apos;enfermement humain.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[video]http://www.youtube.com/watch?v=DgLCvNbtcFE[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le film commence en nous décrivant la bétise humaine (une nouveauté tiens) : il y a le &lt;a href=&quot;http://francois.aichelbaum.com/le-jour-dapres-hier/&quot;&gt;réchauffement climatique&lt;/a&gt;, on ne fait que de la pseudo-science de bas étage et on se prend pour des cadors capables de changer le monde. Du coup, tout le monde meurt, sauf une poignée de chanceux, sauver de l&apos;apocalypse par le visionnaire Wilford qui a penser à se préparer une porte de sortie (construction d&apos;un immense réseau ferroviaire parcourant le monde sans fin et d&apos;un train pour s&apos;y promener à grande vitesse).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/snowpiercer-trailer-2.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-8230&quot; alt=&quot;snowpiercer-trailer-2&quot; src=&quot;/assets/snowpiercer-trailer-2-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/snowpiercer_pill.jpg&quot;&gt;&lt;img alt=&quot;snowpiercer_pill&quot; src=&quot;/assets/snowpiercer_pill-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/snowpiercer.jpg&quot;&gt;&lt;img alt=&quot;snowpiercer&quot; src=&quot;/assets/snowpiercer-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/snowpiercer.jpg&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/Ewen-Bremner-in-Snowpiercer-2013-Movie-Image.jpg&quot;&gt;&lt;img alt=&quot;Ewen-Bremner-in-Snowpiercer-2013-Movie-Image&quot; src=&quot;/assets/Ewen-Bremner-in-Snowpiercer-2013-Movie-Image-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/Critique-Snowpiercer-Le-Transperceneige-illu4.jpg&quot;&gt;&lt;img alt=&quot;Critique-Snowpiercer-Le-Transperceneige-illu4&quot; src=&quot;/assets/Critique-Snowpiercer-Le-Transperceneige-illu4-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Jusque là, tout va bien. Là où la bande dessinée se focalisait sur le vécu et le questionnement des gens de queue, le film lui se focalise sur leur volonté de rebellion. Cette différence notable va faire virer le film pourtant bien parti vers l&apos;action volontaire. Et là est le drame. De l&apos;action, on va en avoir. Bien trop. Le point d&apos;orgue de cette action est l&apos;ouverture du wagon des bouchers : longs impers, haches aiguisées, on sait à l&apos;avance que cela va être un bain de sain. Mais quelle est l&apos;utilité de nous montrer ce bain de sang, de le rallonger pendant de longues minutes au point de le faire devenir écoeurant ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tout dans ce film devient dès lors &quot;trop&quot;. Trop de violence. Trop de n&apos;importe quoi. Trop d&apos;action. Trop de discours dans le vent. Trop de jeux d&apos;acteur à la petite semelle (Chris Evans est aussi perdu que son personnage). Seule Tida arrive à sortir son épingle du jeu avec un rôle à sa mesure. Mais ce n&apos;est point suffisant pour remonter le niveau du film. Le train se prend pour Titanic et s&apos;enfonce dans les goufres sans fin du nanard d&apos;action que l&apos;on veut vite oublier.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/snowpiercer-affiche.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-8236&quot; alt=&quot;snowpiercer-affiche&quot; src=&quot;/assets/snowpiercer-affiche-221x300.jpg&quot; width=&quot;221&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Le China : le temps d&amp;#039;une soirée à Macao</title>
      <link href="https://francois.aichelbaum.com/2013/11/07/le-china-le-temps-dune-soiree-macao" />
      <updated>2013-11-07T09:37:28+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/11/07/le-china-le-temps-dune-soiree-macao</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/68348691le-china.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8191&quot; alt=&quot;68348691le-china&quot; src=&quot;/assets/68348691le-china-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Mon petit plaisir est de découvrir des lieux plus ou moins insolites. A force de parler de partenaires et clients chinois au bureau, le nom du China est sortie. Qu&apos;est-ce ? Simplement un immense bar-lounge/restaurant, ambiance Macao, &lt;a href=&quot;https://maps.google.fr/maps?ie=UTF-8&amp;amp;gl=fr&amp;amp;daddr=50+Rue+de+Charenton,+75012+Paris&amp;amp;panel=1&amp;amp;f=d&amp;amp;fb=1&amp;amp;dirflg=d&amp;amp;geocode=0,48.849917,2.373834&amp;amp;cid=0,0,4114491717528617127&amp;amp;hq=le+china&amp;amp;hnear=0x47e66e1f06e2b70f:0x40b82c3688c9460,Paris&quot;&gt;caché&lt;/a&gt; entre Bastille et Ledru-Rollin. Petit retour sur un lieu à partager.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quand on me parle de Macao et de ses bars, je me souviens de l&apos;ambiance des vieux films dans les restaurants occidentaux de Macao, esprit feutré, luxe, calme ; toujours un crooner ou une chanteuse pour mettre l&apos;ambiance et motiver la clientèle à consommer ; un nuage de fumée dégagé par les cigares de ces messieurs et les cigarettes de ces dames. Ici, loi française oblige, on oublie la fumée, mais on conserve tout le reste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/20070120_le-china-club-paris-lili_015.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-8194&quot; alt=&quot;20070120_le-china-club-paris-lili_015&quot; src=&quot;/assets/20070120_le-china-club-paris-lili_015-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/dsc_0333.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-8197&quot; alt=&quot;dsc_0333&quot; src=&quot;/assets/dsc_0333-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/Restaurant-Le-China.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-8200&quot; alt=&quot;Restaurant-Le-China&quot; src=&quot;/assets/Restaurant-Le-China-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De l&apos;extérieur, cela ne paie pas de mine et on s&apos;attend à un restaurant Chinois un peu luxe mais quelconque. Pénétrez et vous découvrirez trois salles immenses et magnifiques, celle du bas étant dédié aux concerts privés. De la pop, du jazz, des musiques diverses, le plaisir auditif sera là (juste pu entendre les répétitions question de temps).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Cela reste un bar et un restaurant. Le lieu est dédié aux cocktails, alcoolisés ou non. Vautré dans les canapés en cuir, on appréciera les mélanges généreux en tout servis par les charmantes hôtesses. La nourriture est bonne, sans être exceptionnelle et conviendra parfaitement à l&apos;accompagnement des boissons. Installés pour dîner, la carte des vins prendra la place de celles des cocktails pour le plaisir de vos papilles.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Une courte soirée m&apos;a permis de découvrir ce mieux totalement dépaysant. Un plaisir à tous les niveaux qui se renouvellera sûrement, mais avec modération, les tarifs étant un peu élevés.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Malavita : tu ne toucheras pas à la Famille</title>
      <link href="https://francois.aichelbaum.com/2013/10/23/malavita-tu-ne-toucheras-pas-la-famille" />
      <updated>2013-10-23T16:08:03+02:00</updated>
      <id>https://francois.aichelbaum.com/2013/10/23/malavita-tu-ne-toucheras-pas-la-famille</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/malavita_600C.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8110&quot; alt=&quot;malavita_600C&quot; src=&quot;/assets/malavita_600C-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Qui ne se souvient pas d&apos;une des règles sacrés imposées par tout Parrain, &lt;a href=&quot;http://www.youtube.com/watch?v=FaUq4h818E8&quot;&gt;Don Corleone&lt;/a&gt; en tête : on ne doit pas toucher à la Famille. Bien qu&apos;ayant endossé le rôle du Parrain en devenir, joue aujourd&apos;hui avec le feu en violant cette règle. Malavita signifie &lt;em&gt;pègre&lt;/em&gt; en italien. C&apos;est aussi le nom du fichier des &lt;em&gt;Blakes&lt;/em&gt; dans ce film. C&apos;est surtout le nom donné à ceux qui pourchassent De Niro et sa famille.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Produit par Scorsese, réalisé par Besson, ce film ne fait pas dans la demi-mesure sans pour autant jouer d&apos;un spectale &quot;trop&quot; en tout.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[video]http://www.youtube.com/watch?v=jeXQjWnSWEk[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il faut dire qu&apos;on fait dans l&apos;évidence des rôles :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Robert De Niro en mafieux&lt;/li&gt;
&lt;li&gt;Tommy Lee Jones en agent gouvernemental&lt;/li&gt;
&lt;li&gt;Michelle Pfeiffer en femme pas très net mais présentant très bien&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors que nous raconte Malavita ? Déjà que le chien Malavita est trop absent de l&apos;écran. Dommage. On nous présente une famille qui est parfaitement en harmonie au niveau des dérapages, pour autant, le chien ... ne nous apporte rien. Dommage, vu son nom. Par contre le film Malavita nous raconte beaucoup de chose sur le repenti De Niro et sa famille qui ont du mal à perdre leurs (mauvaises) habitudes. Après tout, il ne faut jamais manquer de rester à la Famille.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;En près de deux heures de séance, le film n&apos;a que peu de réels temps d&apos;arrêt. A la rigueur, il s&apos;agit plus de moment pour nous laisser reprendre notre souffle, tel le torturé que l&apos;on plonge dans la baignoire pour faire avouer ses crimes. Pour le coup, j&apos;ai envie d&apos;avouer mon crime du jour : avoir aimé ce film.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/undefined_66c786bee3c46f7aacde1b41f9961762.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-8113&quot; alt=&quot;undefined_66c786bee3c46f7aacde1b41f9961762&quot; src=&quot;/assets/undefined_66c786bee3c46f7aacde1b41f9961762-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/malavita-cinema-deniro-besson-mafia-2059335-jpg_1816226.jpg&quot;&gt;&lt;img alt=&quot;malavita-cinema-deniro-besson-mafia-2059335-jpg_1816226&quot; src=&quot;/assets/malavita-cinema-deniro-besson-mafia-2059335-jpg_1816226-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/malavita-photo-51aee86c0bba9.jpg&quot;&gt;&lt;img alt=&quot;malavita-photo-51aee86c0bba9&quot; src=&quot;/assets/malavita-photo-51aee86c0bba9-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/Malavita-Photo-Dianna-Agron-John-D-Leo-Michelle-Pfeiffer-01.jpg&quot;&gt;&lt;img alt=&quot;Malavita-Photo-Dianna-Agron-John-D-Leo-Michelle-Pfeiffer-01&quot; src=&quot;/assets/Malavita-Photo-Dianna-Agron-John-D-Leo-Michelle-Pfeiffer-01-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/malavita-luc-besson-critique-film-robert-de-niro-tommy-lee-jones-europacorp.jpg&quot;&gt;&lt;img alt=&quot;Film Title:  The Family&quot; src=&quot;/assets/malavita-luc-besson-critique-film-robert-de-niro-tommy-lee-jones-europacorp-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Loin du gros spectacle Hollywoodien, ce film, planté dans un décors de Normandie, respire la vie à la campagne, loin de la folie de la ville, mais surtout de la folie mafieuse. Puis l&apos;on se rappelle qu&apos;une famille, c&apos;est avant tout une réunion de membres, et que dire sur ceux de la famille Blakes !&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Certes, le film ne rentrera jamais au panthéon du 7e art comme son aïeul Le Parrain. Pour autant, il est rafraichissant, plus encore que le fût Mafia Blues que l&apos;on sentait poussif et forcé. Là tout semble si naturel pour cette famille. Allez voir cette famille et surtout, souvenez-vous : respectez la Famille !&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/Malavita-movie-Poster-malaysia-large.jpg&quot;&gt;&lt;img class=&quot;size-medium wp-image-8107 aligncenter&quot; alt=&quot;Malavita movie Poster malaysia large&quot; src=&quot;/assets/Malavita-movie-Poster-malaysia-large-207x300.jpg&quot; width=&quot;207&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Neuf mois ferme : allez tout droit en prison ... ou pas</title>
      <link href="https://francois.aichelbaum.com/2013/10/18/neuf-mois-ferme-allez-tout-droit-en-prison-ou-pas" />
      <updated>2013-10-18T16:48:37+02:00</updated>
      <id>https://francois.aichelbaum.com/2013/10/18/neuf-mois-ferme-allez-tout-droit-en-prison-ou-pas</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/neuf-mois-ferme.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8137&quot; alt=&quot;neuf-mois-ferme&quot; src=&quot;/assets/neuf-mois-ferme-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Quand on pense à Dupontel, on pense à un personnage déjanté. Quand on pense à Dupontel en tant que réalisateur, on pense à la première grosse claque reçue : Bernie. Prenez Bernie, rendez-le presque intelligent, dans un univers plus propret et vous obtenez neuf mois ferme. En tout cas, c&apos;est ainsi que j&apos;ai pressenti ce film avant de pénétrer dans une salle obscure.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ariane, juge bobo, coincée, persuadée que les hommes ne servent à rien, ne vit que pour et par son boulot. Elle en fait trop. Ses collègues le savent et la retrouve logiquement à son bureau alors que tout le monde fête la St Sylvestre dans le Grand Hall. Traînée sur les lieux de la débauche, elle est contrainte de rentrer dans le moule et de boire plus que raison. Voilà son crime : avoir céder et voulu faire comme les autres.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[video]http://www.youtube.com/watch?v=YFJ1XAZh2OI[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Six mois plus tard, malade, elle se rend compte qu&apos;elle est enceinte. Et voici que notre juge décide de détourner les moyens légaux mis à sa disposition pour son propre bénéfice : mener une petite enquête pour trouver le père de sa progéniture. Malheureusement pour elle, le père est &lt;del&gt;Bernie&lt;/del&gt;, pardon, Bob Nolan. Ce tôlard multi-récidiviste, soucieux de prouver son innocence dans une autre histoire abracadabrantesque, propose un échange de bon procéder à notre juge.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/9+MOIS+FERME+PHOTO5.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-8143&quot; alt=&quot;9+MOIS+FERME+PHOTO5&quot; src=&quot;/assets/9+MOIS+FERME+PHOTO5-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/hqdefault.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-8146&quot; alt=&quot;hqdefault&quot; src=&quot;/assets/hqdefault-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/160x120-nIw.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-8149&quot; alt=&quot;160x120-nIw&quot; src=&quot;/assets/160x120-nIw-150x120.jpg&quot; width=&quot;150&quot; height=&quot;120&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Et c&apos;est alors parti pour 1h20 de délire à la Dupontel. Impossible de garder son sérieux plus de 30 secondes. Les rares fois où l&apos;on croit pouvoir, c&apos;est simplement pour rire de plus belle. Je ne saurais dire que ceci : &quot;Merci Albert pour la séance d&apos;abdos, ca fait du bien avec le popcorn&quot;. Un film rafraichissant où même la plus fervente supporter du &quot;pas besoin des hommes&quot; ne restera pas indifférente à notre cher Albert.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Par contre, petite question, Albert : vous en avez déjà parler à un psy de votre soucis avec votre mère ? Parce qu&apos;entre le vide-ordure et le four, les mères que vous dépeigner ont de gros soucis avec leur progéniture.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/9-mois-ferme-affiche.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-8152&quot; alt=&quot;9-mois-ferme-affiche&quot; src=&quot;/assets/9-mois-ferme-affiche-211x300.jpg&quot; width=&quot;211&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>River Café : un repas à la mer !</title>
      <link href="https://francois.aichelbaum.com/2013/10/18/river-cafe-un-repas-la-mer" />
      <updated>2013-10-18T11:15:11+02:00</updated>
      <id>https://francois.aichelbaum.com/2013/10/18/river-cafe-un-repas-la-mer</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/logorouge2012.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8071&quot; alt=&quot;River CAfé&quot; src=&quot;/assets/logorouge2012-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Enfin pas à la mer, mais sur la Seine en tout cas. Pour ceux qui ne connaissent pas, le River Café est un restaurant installé sur une péniche sur les quais d&apos;Issy-les-Moulineaux. Cadre luxe, service élégant, une partie de la péniche beigne dans une musique jazzy live. Tout les ingrédients semblent réunis pour passer une excellente soirée. Retour sur un repas d&apos;affaire au &lt;a href=&quot;https://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=146,+quai+de+la+Bataille+Stalingrad+92130+Issy-les-Moulineaux&amp;amp;aq=&amp;amp;sll=49.369262,0.934342&amp;amp;sspn=3.01207,5.817261&amp;amp;vpsrc=0&amp;amp;ie=UTF8&amp;amp;hq=146,+quai+de+la+Bataille+Stalingrad+92130+Issy-les-Moulineaux&amp;amp;hnear=&amp;amp;radius=15000&amp;amp;t=m&amp;amp;z=13&amp;amp;iwloc=A&amp;amp;cid=13642224695209874177&quot;&gt;River Café&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On débute avec une mauvaise surprise à l&apos;arrivée alors que nous avions réservé via le site de La Fourchette pour un dîner le vendredi soir. On nous annonce que les réservations via La Fourchette donnent droit à une promotion (traduire : une salle sans concert) et qu&apos;il faut les appeler pour réserver une table avec concert. J&apos;ai beau lire et relire &lt;a href=&quot;http://www.lafourchette.com/restaurant/river-cafe/4376#restaurant_reservation&quot;&gt;la page sur le site de réservation&lt;/a&gt;, il est bien possible de réserver directement en ligne pour une table avec concert. Peu honnête et le &quot;on va vous prévenir dès qu&apos;une table se libèrera&quot; alors que la salle n&apos;est pas remplie passe moyennement  (et cet engagement ne sera jamais respecté). Bref, on démarre sur une note malhonnête de la part du maître d&apos;hôtel.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On est donc quatre pour un repas d&apos;affaire mais je vais me focaliser sur ma part du diner. En entrée, des ravioles au foie gras accompagné de cèpes poêlés. Pour avoir pu manger cette entrée dans bons nombres de restaurant, la critique et la comparaison est aisée. De même, il est clairement définit que les champignons ont un goût prononcé qui noie facilement celui du foie gras. Malheureusement, ici on nous rappellent très vite cette règle : les ravioles n&apos;ont que des miettes de foie gras (donc aucun goût à sentir) et le tout baigne dans une soupe aux champignons (je croyais que c&apos;était l&apos;accompagnement). On est loin de la qualité énoncé. Petite aparté, un collègue a pris une terrine des champignons ... et a eu une bonne indigestion pour tout le WE. De là à dire que certains produits sont peu frais et qu&apos;il faut s&apos;en débarrasser au plus vite en augmentant les quantités par rapport au reste, il n&apos;y a qu&apos;un pas.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/01843809_PVI_0001_HOME.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8074&quot; alt=&quot;01843809_PVI_0001_HOME&quot; src=&quot;/assets/01843809_PVI_0001_HOME-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/image.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8077&quot; alt=&quot;image&quot; src=&quot;/assets/image-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/photo-restaurant-River-Cafe-199-163-2.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8080&quot; alt=&quot;photo-restaurant-River-Cafe-199-163-2&quot; src=&quot;/assets/photo-restaurant-River-Cafe-199-163-2-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le plat, est plus simple ne se rappelle à mon bon souvenir que par les frites maison qui l&apos;accompagnait. La tartare choisi était déjà préparé, peu épicé, sans oeuf. Certes la viande était fraiche (encore heureux sur un tartare) mais le goût était relativement absent.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La fin du repas a été marquée par le choix quasi unanime d&apos;un Paris-Brest au Nutella. Ce dessert riche sait rester léger. On l&apos;apprécie d&apos;autant plus en tout fin de soirée avant de devoir reprendre la route. Un vrai régal qui relève le niveau global de cette péniche.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quand je lis les commentaires sur les différentes sites pour ce restaurant, je me dis que beaucoup se laisse éblouir par les artifices mis en oeuvres à travers la décoration (luxe), le service (pro) et les plats (bien présentés). Sûrement que la musique Jazz réhausse également le cadre. Cependant, la qualité n&apos;est vraiment pas au rendez-vous, la vue est absente, et bien des brasserie parisienne font bien mieux à tous les niveaux et à un prix bien moindre. Ce n&apos;est pas une péniche que je recommanderais.&lt;/p&gt;
&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>T.S. Spivet : un oisillon prend son envol</title>
      <link href="https://francois.aichelbaum.com/2013/10/16/t-s-spivet-un-oisillon-prend-son-envol" />
      <updated>2013-10-16T11:39:33+02:00</updated>
      <id>https://francois.aichelbaum.com/2013/10/16/t-s-spivet-un-oisillon-prend-son-envol</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/t.s-pivet-jeunet-bonham-carter.gif&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8095&quot; alt=&quot;t.s-pivet-jeunet-bonham-carter&quot; src=&quot;/assets/t.s-pivet-jeunet-bonham-carter-150x150.gif&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Avec son titre français à rallonge (bien que l&apos;original ne soit pas si court), &lt;em&gt;L&apos;extravagant voyage du jeune et prodigieux T.S. Spivet&lt;/em&gt; annonce un voyage initiatique intéressant. On hésite à avoir un voyage fantastique mais la bande annonce nous rappelle que le voyage est extravagant et que la force du film est dans son jeune acteur.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le jeune T.S. Spivet, petit garçon de 12 ans perdu dans sa famille, entre des parents trop pris par leurs activités à la ferme, et une soeur superficielle qui le dénigre en permanence, décide de fuguer à l&apos;occasion d&apos;un quiproquo qui le mènera à Washington, D.C. pour une remise de prix scientifique.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[video]http://www.youtube.com/watch?v=aZe7i1Ty5f4[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quand je lis Jean-Pierre Jeunet, je pense à du très bon (&lt;a href=&quot;http://www.youtube.com/watch?v=H5GxLFdUC6g&quot;&gt;La cité des enfants perdus&lt;/a&gt;) et à du très mauvais (&lt;a href=&quot;http://www.youtube.com/watch?v=aip3836VtZ0&quot;&gt;Le fabuleux destin d&apos;Amélie Poulin&lt;/a&gt; - bah oui). Du coup, je ne sais trop à quoi m&apos;attendre. Mais bon, le synopsis m&apos;intrigue tout autant que la bande annonce alors j&apos;y vais.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Démarre alors le voyage initiatique et poétique du jeune T.S.. Et c&apos;est avec plaisir qu&apos;on l&apos;accompagne dans son périple à travers l&apos;Amérique, tel le vagabond caché dans son train de marchandise. T.S., c&apos;est ce genre de petit garçon qui ne se sent pas à sa place dans son Montana natal et qui passe son temps à analyser son monde, le comprendre, et l&apos;imaginer pour pouvoir fuir son quotidien.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Touchant dans le jeu du petit, l&apos;histoire l&apos;est tout autant et on vibre pour lui quand il nous raconte son quotidien et le passé de son frère jumeau, très différent de lui. On s&apos;imagine l&apos;accompagnant durant son périple, asseyant de l&apos;aider dans l&apos;adversité. Des personnages hauts en couleurs parsèment également la route du jeune T.S..&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Malheureusement, le film se veut léger et finit de manière trop catapultée. L&apos;envie de Jeunet d&apos;en finir pour ne pas avoir un film trop long se fait sentir. Les derniers évènements se précipitent à une vitesse où le film en devient presque indigeste alors que jusque là on se délectait du récit. La poésie jusque lors enivrante laisse sa place à un mélange entre plaisir et stupeur. Un travail bâclé sur une histoire et une mise en scène magnifique.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/carte-postale-spivet-1.jpg&quot;&gt;&lt;img class=&quot;size-large wp-image-8092 aligncenter&quot; alt=&quot;carte postale spivet-1&quot; src=&quot;/assets/carte-postale-spivet-1-1024x687.jpg&quot; width=&quot;584&quot; height=&quot;391&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Judgement Day - Ash of Sound</title>
      <link href="https://francois.aichelbaum.com/2013/09/30/judgement-day-ash-sound" />
      <updated>2013-09-30T17:10:25+02:00</updated>
      <id>https://francois.aichelbaum.com/2013/09/30/judgement-day-ash-sound</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/11/a27c573829ec10ac82497cfbb9c8c872.jpeg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8161&quot; alt=&quot;a27c573829ec10ac82497cfbb9c8c872&quot; src=&quot;/assets/a27c573829ec10ac82497cfbb9c8c872-150x150.jpeg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Pour ceux qui connaissent ce blog depuis assez longtemps, vous savez que je suis quelques artistes autant que je le peux. Les &lt;a href=&quot;http://www.ashofsound.fr/&quot;&gt;Ash of Sound&lt;/a&gt; font parti de ces groupes que je prend plaisir à écouter régulièrement. Ils sont également à l&apos;origine de la &lt;a href=&quot;http://francois.aichelbaum.com/artistes-de-la-webradio-2/rock/ash-of-sound/&quot;&gt;webradio&lt;/a&gt; que j&apos;avais mis en place ici (désactivée pour le moment). A l&apos;occasion de l&apos;ouverture de leur site, ils avaient profité pour mettre en ligne leur nouveau single : Judgement Day.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Jour du jugement donc à travers ce billet de la nouvelle affiche que tiennent les Ash. Ok j&apos;ai un peu traîné (comme pour mes autres billets dont je rattrape le retard aujourd&apos;hui), mais toute bonne chose sait se faire attendre, comme ce clip sur fond d&apos;Hitman :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[video]http://www.youtube.com/watch?feature=player_embedded&amp;amp;v=5Gi3NNZuSpc[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quand j&apos;ai découvert le nouveau clip, j&apos;ai écouté... plus d&apos;une fois... et mes réactions furent assez claires et directes (dans l&apos;ordre) :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tiens un peu d&apos;électro ?&lt;/li&gt;
&lt;li&gt;tiens le clip a des airs de Money for Nothing ?&lt;/li&gt;
&lt;li&gt;hmmm en fait non, c&apos;est plus dans le style (sonorité/voix) d&apos;un U2 de la fin des années 90&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Puis je me suis laissé porter par le son, sans les images ... puis par le son avec les images... J&apos;accroche vraiment au nouveau style que l&apos;électro leur apporte, grâce à l&apos;intégration de Lionel dans le groupe. Vraiment un plaisir d&apos;écouter ce groupe en boucle.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Bon, par contre les gars, le logo à la Avenger, ca le fait moyen. J&apos;ai beau être fan, là non. Mais bon, je suis un râleur-né !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>L&amp;#039;Oga : voyage gustatif dans le 11e</title>
      <link href="https://francois.aichelbaum.com/2013/09/07/loga-voyage-gustatif-dans-le-11e" />
      <updated>2013-09-07T09:33:20+02:00</updated>
      <id>https://francois.aichelbaum.com/2013/09/07/loga-voyage-gustatif-dans-le-11e</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/09/restaurant-paris-l-oga-235_1.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-8026&quot; alt=&quot;restaurant-paris-l-oga-235_1&quot; src=&quot;/assets/restaurant-paris-l-oga-235_1-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Ce vendredi, plusieurs choses à fêter. Du coup, on cherche un restaurant totalement atypique pour le cadre et pour la nourriture. Nous jettons notre dévolu sur &lt;a href=&quot;https://maps.google.fr/maps?ie=UTF-8&amp;amp;gl=fr&amp;amp;daddr=82+Rue+Jean-Pierre+Timbaud,+75011+Paris&amp;amp;panel=1&amp;amp;f=d&amp;amp;fb=1&amp;amp;dirflg=d&amp;amp;geocode=0,48.867437,2.376660&amp;amp;cid=0,0,11808670744540967106&amp;amp;hq=L&apos;oga&quot;&gt;L&apos;Oga&lt;/a&gt;, un restaurant dans le 11&lt;sup&gt;e&lt;/sup&gt;. Le restaurant semble spécialisé dans les brunch (assez honéreux pour le quartier) mais propose également une carte pour le soir assez surprenante. En effet, on y parle de viande de crocodile, de zèbre, ...&lt;/p&gt;
&lt;p&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Réservation faite, il s&apos;avère, en arrivant bien plus tôt qu&apos;il y avait de la place. On demande pour pouvoir déjeuner plus tôt, grand sourire du serveur qui nous place directement. Et là, nous découvrons le cadre. Un mélange entre du Rainforest et du baroque. On ne sait pas trop où on est. L&apos;éclairage faible est propice aux diners aux chandelles ... déjà allumées sur les tables. Pile ce qu&apos;il nous fallait comme cadre.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On peut alors s&apos;attaquer à la carte. Là, un rouleau façon vieille carte au trésor nous est apporté. On le déroule pour découvrir une carte pas très longue sur le choix, mais qui en dit long sur le type de nourriture. Ici, on cherche réellement le dépaysement dans la nourriture. Cependant, il faut contenter toute le monde et les moins téméraires trouveront aussi de quoi manger. Les plats sont choisis :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entrées
&lt;ul&gt;
&lt;li&gt;Poisson tropical : un carpaccio de poisson exotique (rupture pour l&apos;occasion donc remplacé par du thon) avec du lait de coco, des épices, ...&lt;/li&gt;
&lt;li&gt;Des gambas : le secret réside dans la préparation donc ... à découvrir&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Plats
&lt;ul&gt;
&lt;li&gt;Un mi-cru de thon&lt;/li&gt;
&lt;li&gt;De la viande de crocodile à la vanille accompangée de frittes de patates douces&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les plats se dégustent sans fin et les portions sont vraiment généreuses. Mais, tout bon repas qui se respecte s&apos;accompagne d&apos;un bon vin. La carte des vins du monde est longue et on décide de choisir un rouge d&apos;Afrique du Sud : Le Fort Simon. La carte annonce beaucoup de choses le concernant ... toutes sont validées : vanillé, fumé, fort en bouche. Au final, il accomode parfaitement le repas jusqu&apos;à l&apos;arrivée des desserts.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Une nouvelle carte, assez simple, nous est présentée. Notre choix se porte sur un trio de glaces (miel/lavande, gingembre, ...) et un cheesecake au chocolat blanc. On se disait avant le dessert que la cuisine était bonne mais là ... Tout se termine parfaitement. Un petit café de mon côté. De l&apos;autre, une tisaine d&apos;herbes fraîches (il est possible de les mélanger).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Une véritable découverte. Un véritable dépaysement. Si vous cherchez de l&apos;atypique pour un dîner romantique c&apos;est l&apos;adresse idéale. Cependant, il ne fait que frôler la perfection. Alors que le repas et le cadre sont complétés par un service irréprochable, le réveil se révélera brutale avec l&apos;arrivée de la douloureuse. 126 € pour deux. Le souvenir reste cependant plus que positif.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/09/15787.jpg&quot;&gt;&lt;img alt=&quot;15787&quot; src=&quot;/assets/15787-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/09/images-loga6.jpg&quot;&gt;&lt;img alt=&quot;images-loga6&quot; src=&quot;/assets/images-loga6-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/09/41400061.jpg&quot;&gt;&lt;img alt=&quot;41400061&quot; src=&quot;/assets/41400061-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/09/15787.jpg&quot;&gt; &lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Pacific Rim : quand Godzilla rencontre Evangelion</title>
      <link href="https://francois.aichelbaum.com/2013/07/12/pacific-rim-quand-godzilla-rencontre-evangelion" />
      <updated>2013-07-12T10:45:29+02:00</updated>
      <id>https://francois.aichelbaum.com/2013/07/12/pacific-rim-quand-godzilla-rencontre-evangelion</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/Pacific-Rim-02.jpg&quot;&gt;&lt;img class=&quot;alignleft  wp-image-7972&quot; alt=&quot;Pacific Rim&quot; src=&quot;/assets/Pacific-Rim-02-300x300.jpg&quot; width=&quot;180&quot; height=&quot;180&quot; /&gt;&lt;/a&gt;Il y a de ces blockbusters que l&apos;on attend car la bande-annonce fait résonner plein de souvenirs dans notre petite tête et du coup, titille notre curiosité et notre impatience. C&apos;est le cas de Pacific Rim. Pour autant certains points de la promotion me choquent. Par exemple, pourquoi diable avoir deux pilotes ? Jeudi soir, Julien de &lt;a href=&quot;http://www.golem13.fr&quot; target=&quot;_blank&quot;&gt;Golem13&lt;/a&gt; m&apos;a refilé des invit&apos; pour l&apos;avant-première au Normandie. Retour sur plus de 2h de transpiration dans la salle obscure.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=dY9wTJYLLcs[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour commencer, merci Julien, j&apos;ai pris de l&apos;avance pour une fois sur mon programme ciné ! De plus, merci UGC de ne pas avoir allumé la climatisation de la salle vu la température extérieure : on aurait pu s&apos;enrhumer bêtement.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quand j&apos;ai vu les premières images de promotion, je me suis dit : tiens, ils font une version &lt;em&gt;Live Action&lt;/em&gt; d&apos;&lt;a href=&quot;http://www.youtube.com/watch?v=0kFhPVAhV_o&quot;&gt;Evangelion&lt;/a&gt;. Puis j&apos;ai vu les monstres : tiens, ils font un nouveau &lt;a href=&quot;http://www.youtube.com/watch?v=j0ortFzKzyo&quot;&gt;Godzilla&lt;/a&gt;. Puis la date est annoncé : été 2013. Après &lt;a href=&quot;http://francois.aichelbaum.com/la-croisiere-samuse/&quot;&gt;Battleship&lt;/a&gt; en 2012 qui fut mémorable (ou pas), ce sera donc Pacific Rim le blockbuster pour griller les neurones cet été. Il faut aussi rajouter qu&apos;avec la promotion en parallèle du nanard de chez The Asylum, &lt;a href=&quot;http://www.youtube.com/watch?v=TVpQmZmKNmo&quot;&gt;Atlantic Rim&lt;/a&gt;, il faut bien voir l&apos;original pour pouvoir d&apos;autant plus rire sur l&apos;autre.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour avoir pu apprécier le travail de Guillermo del Toro sur les &lt;a href=&quot;http://www.youtube.com/watch?v=zphI_LLGWdM&quot;&gt;Hellboy&lt;/a&gt; ou encore le &lt;a href=&quot;http://www.youtube.com/watch?v=GqHW3CyI7co&quot;&gt;Labyrinthe de Pan&lt;/a&gt;, j&apos;espère encore un travail dans le détail et la qualité avant d&apos;y aller. Et pour cela, on est servi. Un véritable feu d&apos;artifice d&apos;animations et de couleurs. C&apos;est propre. C&apos;est fluide. C&apos;est beau. Les yeux pétillent. Par contre, la 3D est à bannir car elle &lt;em&gt;floute&lt;/em&gt; l&apos;action (en retirant les lunettes, plus de flou). D&apos;ailleurs, sur ce dernier point, il ne faut pas que Guillermo del Toro ne voulait pas de la 3D avant qu&apos;un gros chèque ne lui soit présenté.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/pacific-rim-jaegers.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7984&quot; alt=&quot;pacific-rim-jaegers&quot; src=&quot;/assets/pacific-rim-jaegers-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/pacificrim_movie_trailer2_cap8.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7990&quot; alt=&quot;pacificrim_movie_trailer2_cap8&quot; src=&quot;/assets/pacificrim_movie_trailer2_cap8-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/Pacific_Rim_Main_Trailer_32.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7987&quot; alt=&quot;Pacific_Rim_Main_Trailer_32&quot; src=&quot;/assets/Pacific_Rim_Main_Trailer_32-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/pacific-rim-infographic.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7981&quot; alt=&quot;pacific-rim-infographic&quot; src=&quot;/assets/pacific-rim-infographic-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/Pacific-Rim-final-trailer-bande-annonce-finale-image-Guillermo-Del-Toro-Warner.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7978&quot; alt=&quot;Pacific-Rim-final-trailer-bande-annonce-finale-image-Guillermo-Del-Toro-Warner&quot; src=&quot;/assets/Pacific-Rim-final-trailer-bande-annonce-finale-image-Guillermo-Del-Toro-Warner-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/1229446_pacific-rim.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7963&quot; alt=&quot;1229446_pacific-rim&quot; src=&quot;/assets/1229446_pacific-rim-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/Jaeger_sketches_pacific_rim.jpeg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7966&quot; alt=&quot;Jaeger_sketches_pacific_rim&quot; src=&quot;/assets/Jaeger_sketches_pacific_rim-150x150.jpeg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/pacific-rim-17-07-2013-10-g.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7969&quot; alt=&quot;pacific-rim-17-07-2013-10-g&quot; src=&quot;/assets/pacific-rim-17-07-2013-10-g-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le scénario est à la limite d&apos;un film de série Z mais Guillermo a su le rendre suffisamment sexy pour nous garder accroché. Pour autant, tout reste excessivement téléscopé. Un peu dommage. Le point le plus intrigant et qui reste le plus comique est le pilotage des Jaeger (les robots). Pourquoi diable avoir mis deux pilotes qui doivent se connecter (on dit &quot;dériver&quot;) mentalement pour pouvoir piloter ? La seule raison valable que je vois, c&apos;est le clin d&apos;oeil aux bons vieux &lt;a href=&quot;http://www.youtube.com/watch?v=JoMuo-Om0sQ&quot;&gt;Sentai&lt;/a&gt;. Quelques autres scènes risibles font que le film fleurte dangereusement avec les nanards. Attention, M. del Toro !&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Des moments d&apos;anthologie remonte un peu le niveau et font appel à l&apos;inconscient Geek du public. C&apos;est le cas de l&apos;arrivée d&apos;Hannibal Chow (joué par Ron Perlman) qui t&apos;explique que tout en lui est faux : du nom au costume. Pour autant, il ne faut pas se moquer de lui car il tient à son image ... et à ses chaussures !&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le film tient au final son engagement : nous en mettre plein la vue, narguer les nanards sans en être un, et nous griller les quelques neurones qui auraient survécus à la chaleur. Pour autant, toujours pas le film de SF de la décennie.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/07/pacific_rim_affiche_03.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-7996&quot; alt=&quot;Pacific Rim&quot; src=&quot;/assets/pacific_rim_affiche_03-202x300.jpg&quot; width=&quot;202&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Copenhague</title>
      <link href="https://francois.aichelbaum.com/2013/05/12/copenhague" />
      <updated>2013-05-12T10:00:36+02:00</updated>
      <id>https://francois.aichelbaum.com/2013/05/12/copenhague</id>
      <content type="html">&lt;p&gt;[gallery ids=&quot;10362,10361,10360,10359,10358,10357,10356,10355,10354,10353,10352,10351,10350,10349,10348,10347,10346,10345,10344,10343,10342,10341,10340,10339,10338,10337,10336,10335,10334&quot;]&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Fjords norvégiens</title>
      <link href="https://francois.aichelbaum.com/2013/05/04/fjords-norvegiens" />
      <updated>2013-05-04T10:54:30+02:00</updated>
      <id>https://francois.aichelbaum.com/2013/05/04/fjords-norvegiens</id>
      <content type="html">&lt;p&gt;[gallery ids=&quot;9545,9546,9547,9548,9549,9550,9551,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9581,9582,9583,9584,9585,9586,9587,9588,9589,9590,9591,9592,9593,9594,9595,9596,9597,9598,9599,9600,9601,9602,9603,9604,9605,9606,9607,9608,9609,9610,9611,9612,9613,9614,9615,9616,9617,9618,9619,9620,9621,9622,9623,9624,9625,9626,9627,9628,9629,9630,9631,9632,9633,9634,9635,9636,9637,9638,9639,9640,9641,9642,9643,9644,9645,9646,9647,9648,9649,9650,9651,9652,9653,9654,9655,9656,9657,9658,9659,9660,9661,9662,9663,9664,9665,9666,9667,9668,9669,9670,9671,9672,9673,9674,9675,9676,9677,9678,9679,9680,9681,9682,9683,9684,9685,9688,9691,9694,9696,9698,9702,9705,9708,9711,9715,9718,9721,9725,9729,9733,9736,9739,9742,9745,9749,9753,9755,9759,9762,9765,9769,9773,9776,9779,9781,9784,9788,9791,9793,9796,9798,9800,9802,9804,9806,9808,9810,9811,9813,9815,9817,9819,9820,9822,9824,9827,9829,9831,9833,9835,9837,9840,9842,9845,9847,9849,9851,9853,9855,9857,9859,9861,9864,9866,9868,9870,9872,9874,9876,9877,9879,9881,9883,9885,9887,9889,9891,9893,9895,9896,9898,9900,9901,9903,9904,9906,9907,9909,9910,9912,9913,9915,9917,9918,9919,9921,9922,9924,9926,9927,9929,9930,9932,9933,9935,9937,9938,9940,9942,9944,9946,9948,9950,9951,9954,9955,9957,9958,9960,9961,9963,9964,9966,9968,9969,9971,9972,9974,9976,9978,9981,9982,9984,9985,9987,9989,9990,9993,9995,9997,9999,10001,10003,10005,10007,10009,10011,10013,10015,10017,10019,10020,10022,10024,10026,10028,10030,10033,10035,10037,10039,10042,10044,10047,10049,10052,10054,10056,10058,10061,10063,10065,10067,10069,10071,10073,10075,10077,10080,10082,10085,10087,10089,10091,10093,10095,10097,10099,10101,10103,10105,10107,10109,10111,10114,10115,10118,10120,10122,10125,10127,10129,10131,10134,10137,10140,10142,10145,10147,10149,10151,10153,10156,10159,10162,10164,10167,10169,10171,10173,10176,10179,10182,10183,10186,10189,10191,10193,10195,10196,10198,10201,10203,10205,10207,10209,10210,10212,10215,10217,10219,10221,10223,10226,10228,10231,10233,10235&quot;]&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Warm bodies : Roméo et Juliette dans Zombieland</title>
      <link href="https://francois.aichelbaum.com/2013/03/28/warm-bodies-romeo-et-juliette-dans-zombieland" />
      <updated>2013-03-28T10:00:27+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/03/28/warm-bodies-romeo-et-juliette-dans-zombieland</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/Warm-Bodies_portrait_w858.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-7894&quot; alt=&quot;Warm Bodies&quot; src=&quot;/assets/Warm-Bodies_portrait_w858-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Alors que la mode hollywoodienne est au mauvais remake, certains films donnent dans la création ou l&apos;adaptation de livres. C&apos;est le cas de Warm Bodies qui reprend la nouvelle d&apos;Isaac Marion. On reprend donc l&apos;éternel fin du monde qui déclenche le réveil des morts et on le vit autrement. Entamée du point de vue des zombies, l&apos;histoire se transforme vite en Roméo et Juliette version horreur comique. Dressez-vous. Soyez raides. Jouer-la ... zombie !&lt;!--more--&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Un zombie peut en cacher un autre&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quand on parle zombie, on pense d&apos;abord aux oeuvres du Maître (&lt;a href=&quot;http://www.allocine.fr/personne/fichepersonne_gen_cpersonne=5409.html&quot;&gt;Georges A. Romero&lt;/a&gt;) puis aux petites perles (&lt;a href=&quot;http://www.youtube.com/watch?v=NPbsp_nFj7M&quot;&gt;Zombieland&lt;/a&gt; ou &lt;a href=&quot;http://www.youtube.com/watch?v=5I6M_C9XUE0&quot;&gt;Shawn of the Dead&lt;/a&gt;). Bien que ces derniers soient volontairement comiques, pour se démarquer de la forte vague de films zombifiés, le point de vue est toujours le même. Le zombie est mort. Le zombie est con. Le zombie est inutile. Le zombie a faim. Mais si ce n&apos;était pas le cas ?&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=CUDdGX78_6E[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors pour toute justification sur la présence des zombies, vous n&apos;aurez le droit qu&apos;à un simple zapping express avec des séquences non sans rappeler d&apos;autres film. R(omeo) est donc un zombie. Il est conscient mais n&apos;a plus de souvenir. Il cherche à survivre dans ce que la vie lui a imposé : être un mangeur de chair. Il nous présente alors ses habitudes, ses balades entre potes zombifiés, ... leur quête à la nourriture. On notera rapidement le titre Québécois du film : &lt;em&gt;Zombie malgré lui&lt;/em&gt;. Mais que se passerait-il si le destin mettait sur sa route une jeune petite blonde charmante ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Julie(tte) est une humaine tout ce qu&apos;il y a de plus vivante. Elle vit dans la dernière colonie humaine, protégée par une immense enceinte entourant un centre ville américain. Elle fait partie d&apos;une équipe expéditionnaire, chargée de trouver des ravitaillements (nourriture, médicaments, ...). Perdue dans sa relation avec son petit ami, que se passerait-il si le destin la mettait sur la route d&apos;un jeune zombie en mal de vie ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/130203-warm-bodies-600-1359923802.jpg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-7903 alignnone&quot; alt=&quot;Warm Bodies&quot; src=&quot;/assets/130203-warm-bodies-600-1359923802-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/20476531.jpg-r_640_600-b_1_D6D6D6-f_jpg-q_x-xxyxx.jpg&quot;&gt;&lt;img class=&quot;alignnone&quot; alt=&quot;Warm Bodies&quot; src=&quot;/assets/20476531.jpg-r_640_600-b_1_D6D6D6-f_jpg-q_x-xxyxx-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/nicholas-hoult-warm-bodies.jpg&quot;&gt;&lt;img class=&quot;alignnone&quot; alt=&quot;Warm Bodies&quot; src=&quot;/assets/nicholas-hoult-warm-bodies-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/WarmBodies201312_zpsfdf9206e.jpg&quot;&gt;&lt;img class=&quot;alignnone&quot; alt=&quot;Warm Bodies&quot; src=&quot;/assets/WarmBodies201312_zpsfdf9206e-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/Warm-Bodies-121213-02.jpg&quot;&gt;&lt;img class=&quot;alignnone&quot; alt=&quot;Warm Bodies&quot; src=&quot;/assets/Warm-Bodies-121213-02-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/Warm-Bodies-image-3.jpg&quot;&gt;&lt;img class=&quot;alignnone&quot; alt=&quot;Warm Bodies&quot; src=&quot;/assets/Warm-Bodies-image-3-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/warm-bodies-poster.jpg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-7921 alignnone&quot; alt=&quot;Warm Bodies&quot; src=&quot;/assets/warm-bodies-poster-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le destin fait son travail. Les chemins se croisent. Les regards se croisent. R mange le petit copain de Julie et apprécie particulièrement son cerveau. C&apos;est un met tellement délicat qui en plus, permet de s&apos;approprier les souvenirs de la victime. Tout est fait pour que les deux puissent tomber amoureux. Là, le cadavre peut alors se réchauffer. Malheureusement, la famille de Julie est vivante et celle de R n&apos;est que zombie. Nos Roméo &amp;amp; Juliette vont donc apprendre à se connaître, à s&apos;aimer ... et à se sauver.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le film est très léger et alterne petites erreurs du scénario et travail fin sur les détails. Par exemple, on appréciera le travail des nuances de couleur de peau de R qui évoluent tout au long du film. Ce n&apos;est pas sans rappeler le travail de nuance des tenues de Rose Da Silva dans le &lt;a href=&quot;http://www.youtube.com/watch?v=8xw434qnAyg&quot;&gt;Silent Hill&lt;/a&gt; de Christophe Gans.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Véritable hymne à la vie et à l&apos;amour, on ressort de ce film &lt;em&gt;exhumé&lt;/em&gt;. On cherche alors à communiquer, à échanger, à exprimer nos sentiments (référence à la bande annonce). J&apos;hésite à le classer à côté de &lt;a href=&quot;http://www.youtube.com/watch?v=GrMHK-bo9qM&quot;&gt;Romeo+Juliette &lt;/a&gt;ou avec les chefs d&apos;oeuvre zombifiés. En tout cas, à ranger loin des nanards.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/zombie_parade_Warm-Bodies.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-7933&quot; alt=&quot;Warm Bodies&quot; src=&quot;/assets/zombie_parade_Warm-Bodies-300x224.jpg&quot; width=&quot;300&quot; height=&quot;224&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Création d&amp;#039;un cluster MySQL haute disponibilité</title>
      <link href="https://francois.aichelbaum.com/2013/03/13/creation-dun-cluster-mysql-haute-disponibilite" />
      <updated>2013-03-13T19:54:26+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/03/13/creation-dun-cluster-mysql-haute-disponibilite</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/mysql1.png&quot;&gt;&lt;img class=&quot;alignleft&quot; alt=&quot;MySQL&quot; src=&quot;/assets/mysql1-150x150.png&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;L&apos;un des problèmes récurrents des architectures mutualisés (ou non) utilisant du MySQL est la disponibilité mais aussi la performance de ce dernier. Quelques habitudes existent, chacun avec leurs lots d&apos;avantages et inconvénients. Je vais tenter de vous proposer une mise en oeuvre qui me semble être un bon compromis entre les différents points à prendre en compte : haute disponibilité, performance, type de table MySQL géré, compétences en interne, coût, facilité de déploiement.&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/mysql1.png&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;MySQL en haute disponibilité&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;MySQL, beaucoup le critique à tord ou à raison. Le premier à le faire ? Michael Widenius, fondateur de MySQL qui s&apos;affirme avec &lt;a href=&quot;http://fr.wikipedia.org/wiki/MariaDB&quot;&gt;MariaDB&lt;/a&gt;. De manière générale, on notera certaines fonctionnalités (voire performances) en retrait par rapport à d&apos;autres moteurs, que cela soit PostgreSQL, Oracle ou MSSQL. Reste que ces derniers sont cher à mettre en oeuvre et que PostgreSQL nécessite une compétence qui est bien trop rare dans nos contrées. De fait, MySQL reste quelque part une valeur sûre si l&apos;on prend le temps de travailler correctement avec : définir une bonne architecture, le superviser et l&apos;optimiser au fil du temps.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quand on parle de haute disponibilité, je balaie d&apos;office le fonctionnement basique maître-esclave disponible nativement. En effet, il n&apos;apporte aucune haute disponibilité et le bricolage nécessaire pour inverser les rôles n&apos;est tout bonnement pas industrialisable et encore moins réaliste. Que reste-t-il alors comme solution ?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 15px;&quot;&gt;MySQL Cluster&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 15px;&quot;&gt;solution opensource mais un support de la part d&apos;Oracle est conseillé&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;avantage(s) : supporté par l&apos;éditeur (Oracle) ; performance&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;inconvénient(s) : un seul type de moteur de table (&lt;a href=&quot;http://dev.mysql.com/doc/mysql-cluster-excerpt/5.5/en/mysql-cluster-ndb-innodb-engines.html&quot;&gt;NDB&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Percona XtraDB
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;solution opensource qui dispose d&apos;un support mais où l&apos;on peut se débrouiller ; il s&apos;agit d&apos;une version lourdement mise à jour de MySQL (utilise la librairie Galera)&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;avantage(s) : support de l&apos;éditeur (Percona) ; extension du moteur InnoDB (renommé XtraDB) ; synchro temps réel&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;inconvénients : principalement au niveau des LOCK (mais il y a une solution embarquée pour cela) ; que InnoDB pour le moment ; les statements DDL sont encore problématiques (mais en cours de correction)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Multi Master Replication
&lt;ul&gt;
&lt;li&gt;solution opensource qui repose sur un abus d&apos;utilisation d&apos;une fonction de mysql (une instance peut être à la fois maître et esclave)&lt;/li&gt;
&lt;li&gt;avantage(s) : natif à MySQL ; tous les formats de table de MySQL (MyISAM, InnoDB, ...)&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;inconvénients : peu stable sur le long terme - lié au fonctionnement en boucle, nécessite du bricolage et l&apos;implémentation d&apos;outils tiers (par ex, &lt;a href=&quot;http://mysql-mmm.org&quot;&gt;MMM&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;InnoDB étant plutôt conseillé et apprécié par rapport à MyISAM, j&apos;ai choisi la solution de Perconna. En effet, elle me semble sur le papier très industrialisable avec des inconvénients que l&apos;on peut facilement contourner ou qui vont venir à disparaître.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Percona XtraDB Cluster en pratique&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;environnement utilisé est un environnement de type Prod + PRA. Le principe s&apos;applique facilement dans les autres environnements (Prod + PCA, Prod seule, ...). Il faut juste noter un impératif de PXC : il faut minimum trois noeuds.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/Cluster-MySQL.png&quot;&gt;&lt;img class=&quot;size-medium wp-image-7852 aligncenter&quot; alt=&quot;Cluster MySQL&quot; src=&quot;/assets/Cluster-MySQL-300x206.png&quot; width=&quot;300&quot; height=&quot;206&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;intérêt dans l&apos;architecture est multiple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;line-height: 15px;&quot;&gt;tous les noeuds communiquent ensemble&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;on voudra séparer les flux &quot;lecture/écriture&quot; des flux &quot;lecture seule&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dans ce mode, on va dispatcher des VIP par site :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PRDVIPRO - lecture seule PRD : 192.168.2.5&lt;/li&gt;
&lt;li&gt;PRDVIPRW - lecture/écriture PRD : 192.168.2.6&lt;/li&gt;
&lt;li&gt;PRAVIPRO - lecture seule PRA : 192.168.12.5&lt;/li&gt;
&lt;li&gt;PRAVIPRW - lecture/écriture PRA : 192.168.12.6&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ainsi, on va isoler les utilisateurs sur les différentes VIP. On pourra définir des super-alias qui pointent sur un site ou l&apos;autre en fonction des besoins et disponibilités. Pour répondre à ces VIP, on supposera les machines suivantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PRDMYSQL01 : 192.168.1.1/24 (management) + 192.168.2.1/24 (métier)&lt;/li&gt;
&lt;li&gt;PRDMYSQL02 : 192.168.1.2/24 (management) + 192.168.2.1/24 (métier)&lt;/li&gt;
&lt;li&gt;PRAMYSQL01 : 192.168.11.1/24 (management) + 192.168.12.1/24 (métier)&lt;/li&gt;
&lt;li&gt;PRAMYSQL02 : 192.168.11.2/24 (management) + 192.168.12.2/24 (métier)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La séparation des droits (RO/RW) ne se fera pas au niveau des rôles des noeuds (côté MySQL) mais au niveau de l&apos;assignation des VIP et définitions des comptes utilisateurs. Il faut donc être attentif de ce côté.&lt;/p&gt;
&lt;h1&gt;Installation de Percona XtraDB Cluster&lt;/h1&gt;
&lt;p&gt;On commence par déployer tous les packages nécessaires&lt;/p&gt;
&lt;pre&gt;gpg --keyserver  hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
gpg -a --export CD2EFD2A | sudo apt-key add -
echo &amp;lt;&amp;lt; EOF &amp;gt;&amp;gt; /etc/apt/sources.list
deb http://repo.percona.com/apt squeeze main
deb-src http://repo.percona.com/apt squeeze main
EOF
apt-get update
apt-get install libnet-daemon-perl libplrpc-perl libdbi-perl libaio1 libmysqlclient18 percona-xtradb-cluster-server-5.5 percona-xtradb-cluster-client-5.5 percona-xtradb-cluster-common-5.5 percona-xtrabackup xtrabackup netcat-openbsd rsync&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On continue par la configuration du mysql. La configuration est une base pour un serveur avec 8 Go Ram et 4 coeurs. A faire évoluer donc.&lt;/p&gt;
&lt;pre&gt;echo &amp;lt;&amp;lt; EOF &amp;gt; /etc/mysql/my.cnf
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
&lt;strong&gt;server_id=1&lt;/strong&gt;
&lt;strong&gt;wsrep_node_name=prdmysql01&lt;/strong&gt;
auto_increment_offset = 4
auto_increment_increment = 4
wsrep_provider=/usr/lib64/libgalera_smm.so
&lt;strong&gt;wsrep_cluster_address=gcomm://192.168.2.2,192.168.12.1,192.168.12.2&lt;/strong&gt;
#wsrep_cluster_address=gcomm://
wsrep_slave_threads=16
wsrep_sst_method=xtrabackup
wsrep_cluster_name=pxc
&lt;strong&gt;wsrep_sst_auth=root:secret&lt;/strong&gt;
&lt;strong&gt;wsrep_sst_receive_address=192.168.2.1:4444&lt;/strong&gt;
&lt;strong&gt;wsrep_provider_options =&quot;gmcast.listen_addr=tcp://192.168.2.1:4567; ist.recv_addr=192.168.2.1:4568;&quot;&lt;/strong&gt;
binlog_format=ROW
log_bin=mysql-bin
log_slave_updates
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
innodb_buffer_pool_size=400M
innodb_log_file_size=64M
innodb_data_file_path = ibdata1:10M:autoextend:max:128M
performance_schema
key_buffer = 1M
max_allowed_packet = 4M
table_cache = 64K
query_cache_limit = 64M
sort_buffer_size = 2M
net_buffer_length = 64K
read_buffer_size = 4M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
low_priority_updates = 1
old_passwords = 0
max_connections = 200
max_user_connections = 100
join_buffer_size = 256K
long_query_time = 2
slow-query_log_file = /var/log/mysql/mysql.slow.log
thread_cache_size = 5
query_cache_size = 0
query_cache_type = 1
tmp_table_size = 128M
max_heap_table_size = 128M
concurrent_insert = 2
delay_key_write = all
wait_timeout = 30
interactive_timeout = 30
key_buffer_size = 2G 
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address = 0.0.0.0
myisam-recover = BACKUP
expire_logs_days = 10
max_binlog_size = 100M
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
[isamchk]
key_buffer = 16M
!includedir /etc/mysql/conf.d/
EOF
chmod 600 /etc/mysql/my.cnf&lt;/pre&gt;
&lt;p&gt;Les lignes en gras sont à adapter pour chaque serveur :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un server-id unique à chaque fois&lt;/li&gt;
&lt;li&gt;l&apos;IP métier du serveur abstente du cluster-adress&lt;/li&gt;
&lt;li&gt;le mot de passe root mysql&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;ATTENTION&lt;/strong&gt;&lt;/span&gt; : ne pas utiliser le même mot de passe root en mysql et sur le système&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Une fois le premier serveur mis en place, on arrête le mysql (via service ou init) sur TOUS les serveurs. Ensuite, on duplique le fichier /etc/mysql/debian.cnf et tout le contenu de /var/lib/mysql du premier vers les trois autres.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Une petite subtilité existe sur la version Debian/Ubuntu du package Percona. Au démarrage du premier node d&apos;un cluster (au sens que tout le cluster est arrêté), il faut éditer le fichier my.cnf pour commenter la ligne&lt;/p&gt;
&lt;pre&gt;wsrep_cluster_address=gcomm://IP,IP,IP&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;et décommenter la ligne&lt;/p&gt;
&lt;pre&gt;wsrep_cluster_address=gcomm://&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ensuite, on peut démarrer simplement le service sur la machine puis remodifier le fichier my.cnf. C&apos;est rébarbatif, mais il faut le savoir. Après, on n&apos;aura à le refaire qu&apos;en cas de relance complète depuis zéro du cluster.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ensuite, on va déployer quelques modifications sur les droits MySQL :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;mysql&amp;gt; GRANT ALL PRIVILEGES ON *.* TO &apos;root&apos;@&apos;192.168.2.%&apos; IDENTIFIED BY &apos;secret&apos;;
mysql&amp;gt; CREATE USER &apos;perconha&apos;@&apos;localhost&apos; IDENTIFIED BY &apos;secret&apos;;
mysql&amp;gt; FLUSH PRIVILEGES;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ceci permettra aux différents nodes de communiquer pour la synchro et de disposer d&apos;un user perconha qui n&apos;a accès qu&apos;en consultation aux variables applicatives de MySQL.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Nous n&apos;avons plus qu&apos;à démarrer les différents noeuds MySQL. Sur les versions Debian/Ubuntu, le premier démarrage pourra se faire en erreur. En effet, le script d&apos;init considère que le serveur ne démarre pas car le binaire lui renvoie une erreur. En fait d&apos;erreur, il s&apos;agit juste d&apos;un retour qui signale que le serveur est désynchro. On lui laisse le temps de bien démarrer (on peut consulter syslog pour cela) puis, à volonté, redémarrer le service une dernière fois.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le cluster est maintenant installé.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;VIP &amp;amp; Monitoring&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour répondre au besoin de la gestion d&apos;une VIP sans outil tiers ou de load balancer, ainsi qu&apos;au monitoring complémentaire de PXC, j&apos;ai mis à disposition des scripts sur mon &lt;a href=&quot;https://github.com/faichelbaum/percona-xtradb-cluster&quot;&gt;github&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le script pour Nagios est relativement simple à utiliser :&lt;/p&gt;
&lt;pre&gt;usage: ./check_percona -H $HOSTADDRESS$ -p $PORT$ -w $ARG1$ -c $ARG2$ -t $ARG3$ \(-U $ARG4$ \(-P $ARG5$\)\)
-H hostname or IP
-p service port
-w warning in seconds for replication delay
-c critical in seconds for replication delay
-t timeout for command input
-U user if needed
-P password if needed&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il ne nécessite que la création d&apos;un compte (comme le compte perconha) pour permettre à Nagios de s&apos;y connecter. Attention, il vient en complément du check_mysql disponible de base.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Concernant la VIP, le script va vérifier l&apos;état d&apos;un noeud dans le cluster (mysql disponible, intégré au cluster, synchro avec le cluster) pour assigner les VIP à la machine. Les VIP sont séparés niveau logique entre une pour l&apos;écriture et l&apos;autre pour la lecture. Pour définir le &quot;rôle&quot; d&apos;un noeud, il suffit de créer des fichiers vide &quot;RO&quot; (lecture seule) ou &quot;RW&quot; (lecture/écriture) dans le dossier /etc/perconHa/. une fois placé en cron, le script fera le reste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il vérifie bien évidemment qu&apos;une IP n&apos;est pas déjà utilisée avant de l&apos;assigner. Notez qu&apos;il faut éditer le fichier pour y définir les informations relatives à la connexion à MySQL, les VIP ainsi que l&apos;interface métier.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Conclusion&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On a donc pu créer rapidement un cluster MySQL autonome, avec une haute disponibilité, une performance certaine mais liée au &lt;em&gt;fine tuning&lt;/em&gt; du MySQL (qui se fait tout au long de la vie du cluster) et souple. La base présentée est simple, viable mais reste une base. La partie VIP par exemple serait mieux gérer via un load balancer qui serait plus réactif que la cron. Mais on peut réutiliser le script pour se faire. De la même manière, on pourrait superviser de manière plus fine la consommation en ressource du cluster.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>11.6 : j&amp;#039;aurais dit 2 de tension</title>
      <link href="https://francois.aichelbaum.com/2013/03/12/11-6-jaurais-dit-2-de-tension" />
      <updated>2013-03-12T15:38:58+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/03/12/11-6-jaurais-dit-2-de-tension</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/article_000_Par2879110.jpg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-7807 alignleft&quot; alt=&quot;Toni Musulin&quot; src=&quot;/assets/article_000_Par2879110-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Il y a de ces faits divers qui nous interpellent quand on les lit. C&apos;est le cas du vol de Toni Musulin. Pour rappel, il a délesté son employer (un convoyeur de fonds) de près de 11,6 millions d&apos;euros le 5 novembre 2009. Après une chasse à l&apos;homme, il s&apos;est naturellement rendu à la police et a été inculpé ... pour tentative d&apos;escroquerie à l&apos;assurance dans une autre affaire. Récit cinématographique du plus grand hold-up de l&apos;histoire, n&apos;ayant nécessité ni arme, ni blessé, ni otage. D&apos;office, ne vous attendez pas à une tension insupportablement forte, ce n&apos;est pas le nouvel Olivier Marchal.&lt;!--more--&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Toni a trop de tensions&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A l&apos;occasion d&apos;un Label du spectateur UGC, j&apos;ai pu découvrir avec un peu d&apos;avance le film &lt;em&gt;11.6&lt;/em&gt; adaptant sur grand écran les aventures de Toni.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=8Pwqv7jHv8E[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le fait divers était intéressant. Bien préparé, c&apos;est comme à l&apos;habitude le côté humain qui a failli. Toni avait préparé le fait de ne pas pouvoir récupérer tout l&apos;argent stocké dans le garage et en a planqué une partie (2,5 millions) ailleurs. Pour le moment, ce reste d&apos;argent reste introuvé. L&apos;affaire avait eu pas mal d&apos;écho du fait de la méthode mais aussi des conséquences, principalement pour son ex-employeur. Un vrai pieds de nez à une direction qui se croyait protégée. Cependant, à tord, beaucoup lui ont donné une pseudo renommée de &lt;a href=&quot;http://www.youtube.com/watch?v=344nPl_RlIc&quot;&gt;Robin des Bois&lt;/a&gt;. Vraiment mal venu.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/20484319.jpg-r_640_600-b_1_D6D6D6-f_jpg-q_x-xxyxx.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7822&quot; alt=&quot;20484319.jpg-r_640_600-b_1_D6D6D6-f_jpg-q_x-xxyxx&quot; src=&quot;/assets/20484319.jpg-r_640_600-b_1_D6D6D6-f_jpg-q_x-xxyxx-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/11-6-frana-ois-cluzet-2611.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7819&quot; alt=&quot;11-6-frana-ois-cluzet-2611&quot; src=&quot;/assets/11-6-frana-ois-cluzet-2611-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/11-6.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7816&quot; alt=&quot;11-6&quot; src=&quot;/assets/11-6-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Du coup, quand la com&apos; a commencé pour ce film, je me suis dit qu&apos;ils allaient s&apos;appuyer sur ce point humain, limite comique, pour présenter l&apos;affaire sous un angle différent. Après tout, pas de feu d&apos;artifice, pas de sang, pas de sexe ... Il faut bien trouver un moyen pour faire le spectacle.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Et là est le drame : on nous présente le film comme n&apos;importe quel film policier français, nettoyé de tout spectacle. Le film en devient d&apos;une platitude qui n&apos;a d&apos;égale que la mer baltique un matin d&apos;été un peu frais. On enchaîne l&apos;histoire telle que nous la raconterait Toni. Simple. Ennuyante. Plate. Dur de se lier à lui et de générer un lien affectif. Dur d&apos;accepter la justification pour ses actes. Au final, le calme des montages dont il rêve ... On finit par nous l&apos;imposer avec le peu de tension que le film apporte. Le seul point qui permet de sauver le film du naufrage ? Le jeu d&apos;acteur, François Cluzet en tête, toujours aussi parfait.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ce film aurait eu plus sa place un soir de semaine, en seconde partie de soirée, sur ARTE qu&apos;au cinéma. Inutile de financer Toni Musulin via le billet de cinéma.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/116.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-7813&quot; alt=&quot;11,6&quot; src=&quot;/assets/116-220x300.jpg&quot; width=&quot;220&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Restaurant Zagros : du méditerrannéen au Père Lachaise</title>
      <link href="https://francois.aichelbaum.com/2013/03/04/restaurant-zagros-du-mediterranneen-au-pere-lachaise" />
      <updated>2013-03-04T23:46:02+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/03/04/restaurant-zagros-du-mediterranneen-au-pere-lachaise</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Après une petite marche au Père Lachaise, le ventre de l&apos;orgre réclame son dû. Je descend Ménilmontant en misant sur une salade. Le restaurant visé est fermé. Un autre attire le regard : un gréco-kurde. Sûrement par méconnaissance, lorsqu&apos;on me parle de cuisines grec et kurde, je suis très basique. Le &lt;em&gt;vrai&lt;/em&gt; grec, des salades, de la fraîcheur. Le kurde, des grillades. &lt;a href=&quot;https://plus.google.com/102191029956768509417/about?gl=fr&amp;amp;hl=fr&quot;&gt;Zagros&lt;/a&gt;, ton heure est venue ! Et comme on est deux pour le coup, on va d&apos;autant pouvoir &lt;em&gt;t&apos;essayer.&lt;/em&gt;&lt;br /&gt;
&lt;!--more--&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Pas Zagros sur la patate&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La terrasse est alléchante avec le soleil de ce dimanche. Mais la fraîcheur de l&apos;hiver se rappelle rapidement à notre bon souvenir et nous pousse à l&apos;intérieur. Là, un première salle de restaurant s&apos;offre à nouveau. C&apos;est clair. C&apos;est propre. Des tapis a priori ancien tapissent les murs. Les tables chaleureuses. L&apos;accueil tout autant. On s&apos;installe, on prend la carte en main. On veut rester sage, donc une seule entrée qu&apos;on se partagera suivi d&apos;un plat par tête. Bon pas si sage, on commande un vin grec rosé pour accompagner.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/zagros.jpg&quot;&gt;&lt;img class=&quot;aligncenter&quot; alt=&quot;Restaurant Zagros&quot; src=&quot;/assets/zagros-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Et là, un ballet de saveurs s&apos;engage. Entre un vin jeune mais non pétillant, à la couleur cuivrée et au goût vert et fruité, l&apos;assortiment de salades diverses et fraîches (et la féta, ...), ou encore les plats ... Le régal n&apos;a d&apos;égal que le coup de fourchette qui se fait presque délicat pour profiter de la dégustation de chaque bouchée. Les viandes grillées sont fondantes. Pas un assaisonnement de trop. Les légumes en papillottes enchantent les papilles. Mon seul bémol ? Je me forcerais à dire que la pomme de terre au four aurait pu être un poil plus cuite/grillée. Mais cette remarque est vraiment là pour chipotter. Les quantités sont parfaites, équilibrés. Ce n&apos;est pas trop. Ce n&apos;est pas trop peu. C&apos;est juste ce qu&apos;il fallait, même pour un orgre comme moi.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Repus et heureux du repas proposé, on ne peut refuser l&apos;appel gourmand d&apos;un dessert. Là, on se dit qu&apos;on a vraiment été gourmand en voyant la générosité du dessert. Ca change des restaurants où l&apos;on se mort les doigts au dessert. L&apos;addition arrive alors, c&apos;est dans la moyenne parisienne. Mais vu le repars, cela le vaut amplement. Rien que d&apos;écrire ces quelques lignes et me souvenir de ce repas, je salive comme un chien devant un os tout frais. Et la qualité du service renforce l&apos;envie de se rassoir à l&apos;un de leurs tables.&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/zagros.jpg&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le 20e, que cela soit côté Belleville ou Père Lachaise, dispose vraiment de nombreuses perles culinaires à des tarifs abordables et c&apos;est toujours un plaisir de pousser la porte de nouvelles tables à découvrir.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Die Hard 5 : yippie kay yay pauv&amp;#039; con</title>
      <link href="https://francois.aichelbaum.com/2013/03/04/die-hard-5-yippie-kay-yay-pauv-con" />
      <updated>2013-03-04T21:00:45+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/03/04/die-hard-5-yippie-kay-yay-pauv-con</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/die-hard-5.jpg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-7753 alignleft&quot; alt=&quot;Die Hard 5&quot; src=&quot;/assets/die-hard-5-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Il y a de ces sagas, qui ont fait l&apos;Histoire du cinéma. C&apos;est le cas des aventures de John MacClane dans les différents Die Hard. Enfin ... Les trois premiers opus ont en tout cas marqués monumentalement le cinéma d&apos;action avant de nous accablé d&apos;un pittoyable quatrième Opus qui a blessé bien des amateurs mais surtout des geeks. Qui d&apos;un cinquième opus ? Episode de trop ? Renouveau de la Saga ? John nous dit tout ...&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Die Hard 5 : déception ou illusion&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Avant d&apos;aller voir ce film la semaine dernière, j&apos;avais lu pas mal de critique, tellement la bande annonce me faisait peur. A chaque fois, même retour : très gros/bon spectacle la première moitié du film, dans le pure style Die Hard puis une seconde partie baclée. Je me dis alors que ca sera toujours mieux qu&apos;aucune minute dans le pure style Die Hard.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[video]http://www.youtube.com/watch?v=gZR-DqSSGG0[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Je pars, je m&apos;arme du nécessaire pour ce genre film (dont des provisions), je m&apos;installe, le film commence et là, c&apos;est le drame. Mais où vous avez vu le pure style Die Hard ? Oui on prend les quatre précédents films (et malheureusement, le quatrième est trop présent), on mixe le tout au shaker, pas à la cuillère, et on obtient un film tout entier aberrant et qui ne respecte en rien la saga Die Hard.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Juste pour rappel, notre ami John est le genre de flic qui se retrouve au mauvais endroit au mauvais moment. Plus il fuit les emmerdes, plus il les trouve. Souvenez-vous les conduits de ventilations du Nakatomi Plaza ! Puis une fois dans la merde jusqu&apos;au coup, il ne pouvait plus faire marche arrière. Même le quatrième film respectait au moins cette règle. Mais là, non ! Dès le début, John se montre volontaire : d&apos;un pas bien assuré, il fonce tête bessée dans les emmerdes, quite à en générer sans réfléchir. Un vrai cowboy. On dit que la vieillesse rend sage ... Pour John, c&apos;est le contraire.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/23057-die-hard-5.jpg&quot;&gt;&lt;img alt=&quot;23057-die-hard-5&quot; src=&quot;/assets/23057-die-hard-5-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;img alt=&quot;1058064-bande-annonce-officielle-de-die-hard-5-620x0-1&quot; src=&quot;/assets/1058064-bande-annonce-officielle-de-die-hard-5-620x0-1-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/dh5-trailer.jpg&quot;&gt;&lt;img alt=&quot;dh5-trailer&quot; src=&quot;/assets/dh5-trailer-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/die-hard-5-extrait-2-600x280.jpg&quot;&gt;&lt;img alt=&quot;die-hard-5-extrait-2-600x280&quot; src=&quot;/assets/die-hard-5-extrait-2-600x280-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/Die-Hard-5.jpg&quot;&gt;&lt;img alt=&quot;Die Hard 5&quot; src=&quot;/assets/Die-Hard-5-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/Julia-Snigir-Die-Hard-5.jpg&quot;&gt;&lt;img alt=&quot;Julia-Snigir-Die-Hard-5&quot; src=&quot;/assets/Julia-Snigir-Die-Hard-5-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/Julia-Snigir-Die-Hard-5.jpg&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors où, on bouffe pendant de la première moitié de film de l&apos;action dont le scénario tient sur le fil du rasoir. Par contre, la réalisation, les faux raccords ... on est en pleine série Z. Rien que la course poursuite en voiture qui occupe une bonne partie de cette partie est hallucinante. On roule à contre sens sur les quais de la Moskva. On dégomme des voitures. Puis la seconde d&apos;après, on est dans une artère qui déboule sur le même quai, en sens opposé du précédent passage, mais pour autant toujours à contre sens avec les mêmes voitures accidentées sur le bas côté. On remarque la même chose pour un semi qu&apos;on croise une première fois au début, puis deux fois entre temps, pour finir la course encrée dedans. On a peu tourné selon la vidéo, mais le trafic automobile lui s&apos;est téléporté d&apos;un sens de la route à l&apos;autre comme par magie. Voire à changer d&apos;orientation sur la même voie. Bref ... Et le reste de la première moitié est du même accabit.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Puis, passé le coup de théatre à mi parcours, même le scénario devient baclé. Vu qu&apos;on a déjà ruiné la moitié de Moscou (le palais de justice, les quais, les artères principales, un hôtel de luxe, et j&apos;en passe, sans compter le tank, un superbe MI-24 et tout le feu d&apos;artifice qui va avec ... Bah il fallait bien trouvé mieux à faire. Quoi de mieux de faire un second grand n&apos;importe quoi directement à Tchernobyl ! En fait, je viens de tilter, mais le scénariste a du y aller pendant ses dernières vacances. Cela explique l&apos;état de ses neurones.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;J&apos;ai honte pour John. Et même le passage de flambeau à Junior se fait dans notre douleur. Un supplice. Une honte à payer. Deux heures de ma vie irrémédiablement gâcher. Je crois que, mis à part &lt;a href=&quot;http://www.youtube.com/watch?v=nLEUrhWBYoY&quot;&gt;Immortel&lt;/a&gt; où je m&apos;étais endormi, je n&apos;avais jamais ressenti ce tel sentiment de gâchi et de tristesse en sortant du cinéma. John (Moore) m&apos;a &lt;em&gt;tuer&lt;/em&gt;. John a &lt;em&gt;pulvériser&lt;/em&gt; tous mes neurones. J&apos;irais me réconforter seul devant les trois premiers. &lt;a href=&quot;http://www.youtube.com/watch?v=BplBW1qNM4w&quot;&gt;Yippie Kay Yay, pauv&apos; con&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/03/affiche-die-hard-5-908x1210.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-large wp-image-7756&quot; alt=&quot;Die Hard 5&quot; src=&quot;/assets/affiche-die-hard-5-908x1210-768x1024.jpg&quot; width=&quot;584&quot; height=&quot;778&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Les Misérables se font épiques</title>
      <link href="https://francois.aichelbaum.com/2013/02/08/les-miserables-se-font-epiques" />
      <updated>2013-02-08T12:05:37+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/02/08/les-miserables-se-font-epiques</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/les-miserables.jpeg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-7705 alignleft&quot; alt=&quot;Les Misérables&quot; src=&quot;/assets/les-miserables-150x150.jpeg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Une petite avant-première intimiste chez Universal pour voir la nouvelle version des Misérables une semaine avant. C&apos;est sympa. La prochaine fois, prévoyez le pot ou le popcorn, ca sera parfait. Trève de plaisanterie, nous voici avec une énième adaptation de l&apos;oeuvre de Victor Hugo au cinéma. Nombre de versions sont trop lourdes car l&apos;équipe voulait coller au livre. Quid de cette version remaniée en film musical ?&lt;!--more--&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Les Misérables savent chanter&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors oui, on parle de film musical et non de comédie musicale car, jusqu&apos;à preuve du contraire, on ne rira pas puisque le sujet ne s&apos;y prête pas. Tom Hooper reprend ici la version comédie musicale éponyme de 1980 et non pas directement le roman français.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=IuEFm84s4oI[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;introduction, très théatrale, très épique, nous le rappelle d&apos;ailleurs très bien. Dans cet opéra moderne, pas une personne ne s&apos;exprimera sans chanter. D&apos;ailleurs, point intéressant et à contre-pied de la quasi intégralité des films musicaux, les enregistrements des chants se sont fait durant le jeu d&apos;acteur sur le plateau et non en décallé et en studio. Et là, on se rend vite compte que la les acteurs présents, même si peu son rompu au chant (&lt;a href=&quot;http://www.youtube.com/watch?v=37DWM2z1x5g&quot;&gt;Hugh Jackman&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=Mj06SgTgWWs&quot;&gt;Amanda Seyfried&lt;/a&gt; par ex), ont un sacré talent à exprimer.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/Les-Mis-Jackman.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7735&quot; alt=&quot;Les-Mis-Jackman&quot; src=&quot;/assets/Les-Mis-Jackman-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/Les-Miserables-2012-Movie-Poster2.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7732&quot; alt=&quot;Les-Miserables-2012-Movie-Poster2&quot; src=&quot;/assets/Les-Miserables-2012-Movie-Poster2-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/Les-Miserables-2012-Movie-Poster1-600x888.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7729&quot; alt=&quot;Les-Miserables-2012-Movie-Poster1-600x888&quot; src=&quot;/assets/Les-Miserables-2012-Movie-Poster1-600x888-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/LesMiserables20121_zpsba0f7dfd.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7726&quot; alt=&quot;LesMiserables20121_zpsba0f7dfd&quot; src=&quot;/assets/LesMiserables20121_zpsba0f7dfd-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/les_miserables_2012-6.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7723&quot; alt=&quot;les_miserables_2012-6&quot; src=&quot;/assets/les_miserables_2012-6-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/Cast-of-Les-Miserables-in-Vogue-magazine-2012-les-miserables-2012-movie-32738447-1765-1200.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7720&quot; alt=&quot;Cast-of-Les-Miserables-in-Vogue-magazine-2012-les-miserables-2012-movie-32738447-1765-1200&quot; src=&quot;/assets/Cast-of-Les-Miserables-in-Vogue-magazine-2012-les-miserables-2012-movie-32738447-1765-1200-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/Cast-of-Les-Miserables-in-Vogue-magazine-2012-les-miserables-2012-movie-32738435-1765-1200.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7717&quot; alt=&quot;Cast-of-Les-Miserables-in-Vogue-magazine-2012-les-miserables-2012-movie-32738435-1765-1200&quot; src=&quot;/assets/Cast-of-Les-Miserables-in-Vogue-magazine-2012-les-miserables-2012-movie-32738435-1765-1200-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/anne-hathaway-new-les-miserables-posters-02.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7714&quot; alt=&quot;anne-hathaway-new-les-miserables-posters-02&quot; src=&quot;/assets/anne-hathaway-new-les-miserables-posters-02-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/Anne-Hathaway-in-Les-Miserables-2012-Movie-Image1-600x401.jpg&quot;&gt;&lt;img alt=&quot;Anne-Hathaway-in-Les-Miserables-2012-Movie-Image1-600x401&quot; src=&quot;/assets/Anne-Hathaway-in-Les-Miserables-2012-Movie-Image1-600x401-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/02/Anne-Hathaway-in-Les-Miserables-2012-Movie-Image1-600x401.jpg&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Chaque protagoniste, ou couple dans le cas des Thénardier, aura au moins un moment à lui pour exprimer ce talent. Entre chaque, les joutes chantées, les osmoses amoureuses virvoltantes et autres chorales révolutionnaires vont s&apos;alterner au rythme de ce film de près de 3h.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Et là, on se rend d&apos;autant plus compte du travail de toute l&apos;équipe autour des acteurs : maquilleurs, musiciens, décors, ... tout vous fait oublier la durée et la lourdeur habituelle des adaptations du roman de Victor Hugo. Impossible de ne pas se refaire toutes les chansons à longueur d&apos;heures, une fois sorti de la salle obscur. On en redemanderait presque. Presque car bon, pleurer, c&apos;est pour les faibles. D&apos;ailleurs, Kleenex est-il partenaire du film ? Si ce n&apos;est pas le cas, ils ont loupé une belle opération de promotion.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Que dire, pas de louper notable. Juste des libertés prises liés au format (film musical, durée restreinte). Mais rien de choquant. Au final, cette adaptation se place avec la version de Lelouch de 95 avec Belmondo dans mes adaptations de coeur et que je revois avec plaisir.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Intégration d&amp;#039;un parc de machines Linux à un domaine Active Directory</title>
      <link href="https://francois.aichelbaum.com/2013/01/15/integration-dun-parc-de-machines-linux-a-un-domaine-active-directory" />
      <updated>2013-01-15T18:21:05+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/01/15/integration-dun-parc-de-machines-linux-a-un-domaine-active-directory</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/01/tux.gif&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-7672 alignleft&quot; alt=&quot;Linux sur Windows&quot; src=&quot;/assets/tux-150x150.gif&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Dans un monde professionnel où les environnements informatiques sont de plus en plus hétérogènes, il est nécessaire de pouvoir centraliser les informations la gestion des comptes ainsi que les droits associés. Alors que la documentation d&apos;intégration des Linux (ou Mac) à un annuaire LDAP est très documentée sur internet, les guides pour l&apos;intégration à un Active Directory est quasi absente. Elle est pourtant de plus en plus requise ... et facile ! Des comptes unifiés pour tous les OS. Une gestion des comptes fines et centralisés est alors en place. Un sudo centralisé sur l&apos;Active Directory implique un fichier &lt;em&gt;/etc/sudoers&lt;/em&gt; obsolète.&lt;!--more--&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Avant propos&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour la suite différents points sont supposés acquis ou en place. Vous disposez d&apos;un domaine Active Directory Windows 2008 R2 en place. Ici, nous l&apos;appellerons &lt;em&gt;integration.infra&lt;/em&gt;. Notez que les manipulations peuvent se faire à partir des versions Windows 2003 sans problème.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les Linux sont des debian. Encore une fois, les packages sont disponibles pour toutes les grosses distributions, donc je vous laisse adapter.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Côté résolution DNS, les machines Linux doivent pouvoir déjà résoudre le domaine integration.infra :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;dig +short integration.infra
192.168.101.1&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Si ce n&apos;est pas le cas, une petite modification du /etc/resolv.conf est à faire en rajoutant l&apos;Active Directory :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;echo nameserver 192.168.101.1 &amp;gt;&amp;gt; /etc/resolv.conf&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;intégration à l&apos;Active Directory est simplfiée depuis l&apos;arrivée de Likewise Open (maintenant appelé PowerBroker Identity Services). On supposera nos Linux comme étant en 64 bits.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dernier point, on suppose avoir un compte ADMIN côté Windows avec les droits de rajout de machines.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Côté Active Directory&lt;/h1&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Pré-requis&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Avant Windows 2008, il est nécessaire de rajouter les attributs Unix à l&apos;Active Directory. Pour cela, il suffit d&apos;installer le package Identity Management for UNIX.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ensuite, nous devons rajouter un compte ldapquery : en effet, nous voulons centralisé la gestion des droits sudo et ceci ne peut se fait que via le protocole LDAP nativement embarqué dans l&apos;AD. Pour cela, on ouvre &lt;em&gt;Active Directory Users and Computers&lt;/em&gt; puis on clique droit sur &lt;em&gt;Users&lt;/em&gt; puis &lt;em&gt;New&lt;/em&gt; et &lt;em&gt;User&lt;/em&gt;. On note le mot de passe.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;NB : Il peut être intéressant de travailler en LDAPS plutôt qu&apos;en LDAP. Je vous renvoie aux nombreuses documentations disponibles sur internet (ou à votre administrateur Windows) pour son activation.&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Modification de l&apos;Active Directory&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Arrive alors la partie &lt;em&gt;tricky&lt;/em&gt; : étendre le schéma Active Directory pour y intégrer le sudo. Le fichier de schéma est disponible sur vos Linux dans &lt;em&gt;/usr/share/doc/sudo-ldap/schema.ActiveDirectory.gz&lt;/em&gt; mais également &lt;a title=&quot;Schema Active Directory pour sudo&quot; href=&quot;http://cdn.aichelbaum.com/files/s/schema.ActiveDirectory.txt&quot; target=&quot;_blank&quot;&gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pensez à l&apos;éditer pour remplacer le &lt;em&gt;dc=X&lt;/em&gt; par votre domaine (ici, &lt;em&gt;dc=integration,dc.infra&lt;/em&gt;).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;En ligne de commande, il ne reste alors qu&apos;à taper :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;ldifde -i -e schema.ActiveDirectory.txt -c &quot;CN=Schema,CN=Configuration,DC=integration,DC=infra&quot; #schemaNamingContext&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ceci va vous rajouter tous les attributs &lt;em&gt;sudo&lt;/em&gt; (&lt;em&gt;sudoHost&lt;/em&gt;, &lt;em&gt;sudoUser&lt;/em&gt;, ...) ainsi que la classe &lt;em&gt;sudoRole&lt;/em&gt;.&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Création des groupes&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Concernant sudo, une dernière manipulation est à faire : créer une OU &lt;em&gt;sudoers&lt;/em&gt;&quot;(via l&apos;&lt;em&gt;ADSI&lt;/em&gt;) puis la &quot;peupler&quot; avec des sudoRole comme vous le feriez avec le fichiers &lt;em&gt;/etc/sudoers &lt;/em&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;une ligne revient à un rôle&lt;/li&gt;
&lt;li&gt;un rôle contient un ou plusieurs &lt;em&gt;sudoHost&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;un rôle contient un ou plusieurs &lt;em&gt;sudoUser &lt;/em&gt;en corrélation avec les groupes utilisateurs que nous souhaiterions&lt;/li&gt;
&lt;li&gt;un rôle contient un ou plusieurs &lt;em&gt;sudoOptions&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;un rôle contient un ou plusieurs &lt;em&gt;sudoCommand&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;un rôle contient un ou plusieurs &lt;em&gt;sudoRunAs&lt;/em&gt; (ALL à mettre par défault)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On peut alors créer les utilisateurs et groupes dont on aura besoin pour l&apos;usage normal.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Côté Linux&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;ensemble des commandes s&apos;enchaîne rapidement :&lt;/p&gt;
&lt;pre class=&quot;crayon-selected&quot;&gt;wget http://download.beyondtrust.com/PBISO/7.0.4/918/pbis-open-7.0.4.918.linux.x86_64.deb.sh
chmod +x pbis-open-7.0.4.918.linux.x86_64.deb.sh
./pbis-open-7.0.4.918.linux.x86_64.deb.sh
cd /opt/pbis/bin
./domainjoin-cli join integration.infra ADMIN
./domainjoin-cli configure --enable nsswitch
./domainjoin-cli configure --enable pam
./domainjoin-cli configure --enable ssh
./config HomeDirTemplate %H/%D/%U
./config AssumeDefaultDomain true
./config LoginShellTemplate /bin/bash
aptitude install nslcd sudo-ldap
grep bind /etc/nslcd.conf &amp;gt;&amp;gt; /etc/ldap/ldap.conf
echo &quot;sudoers_base ou=sudoers,dc=integration,dc=infra&quot; &amp;gt;&amp;gt; /etc/ldap/ldap.conf
ln -s /etc/ldap/ldap.conf /etc/sudo-ldap.conf&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour l&apos;installation de nslcd, préciser la bonne URI mais surtout le compte ldapquery.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour ceux qui voudrait automatiser l&apos;installation (via &lt;em&gt;Fabric&lt;/em&gt; par exemple), le déroulement du script de PBIS requiert l&apos;utilisation d&apos;expect :&lt;/p&gt;
&lt;pre&gt;aptitude install expect tcl8.5
echo &amp;lt; EOF &amp;gt; /opt/install_pbis.sh
#!/bin/bash
VAR=$(expect -c &quot;
spawn sh pbis-open-7.0.4.918.linux.x86_64.deb.sh --confirm
expect {
Y/n { send \&quot;y\r\&quot;; exp_continue }
Y/n { send \&quot;y\r\&quot;; exp_continue }
yes/no { send \&quot;yes\r\&quot;; exp_continue }
yes/no { send \&quot;yes\r\&quot;; exp_continue }
}
exit
&quot;)
EOF
chmod +x /opt/install_pbis.sh&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;installation et le déploiement s&apos;en trouvera grandement faciliter. Petite subtilité à prévoir : l&apos;obligation de reboot les Linux pour une intégration propre de l&apos;authentification Active Directory en local à la machine.&lt;/p&gt;
&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>2013 - New Year&amp;#039;s Party Mix</title>
      <link href="https://francois.aichelbaum.com/2013/01/10/2013-new-years-party-mix" />
      <updated>2013-01-10T15:35:15+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/01/10/2013-new-years-party-mix</id>
      <content type="html">&lt;p&gt;&lt;iframe width=&quot;425&quot; height=&quot;350&quot; src=&quot;https://www.youtube.com/embed/XiBSPEVjLOk&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The American Dream, mon cauchemar culinaire</title>
      <link href="https://francois.aichelbaum.com/2013/01/09/the-american-dream-mon-cauchemar-culinaire" />
      <updated>2013-01-09T10:18:45+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/01/09/the-american-dream-mon-cauchemar-culinaire</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Hier soir, c&apos;était repas de début d&apos;année avec deux anciens collègues. Pour faire léger, on a choisi un restaurant que je n&apos;avais jamais osé testé vu ce qui j&apos;ai vu voir et surtout ce que l&apos;extérieur me laissait penser. Bienvenu dans mon cauchemard culinaire à l&apos;&lt;a href=&quot;http://www.american-dream.fr/&quot;&gt;American Dream&lt;/a&gt; (&lt;a href=&quot;21 Rue Daunou  75002 Paris&quot;&gt;21 rue Daunou, Paris 2e&lt;/a&gt;).&lt;!--more--&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;American look&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Je dirais plutôt American Museum. De l&apos;extérieur, les murs ont l&apos;apparence d&apos;une vierge auberge repeinte avec une tripotée de statue d&apos;acteur en situation, façon Planet Hollywood. L&apos;intérieur, est un mix entre un pub anglais, une brasserie parisienne et un restaurant &quot;à l&apos;américaine&quot;. La carte, pardon, le livre du menu devrais-je dire, vu son nombre de page, alterne pages de menu et photo-montages pour nous faire croire que le restaurant est sponsorisé par les stars d&apos;Hollywood. Mais bon, autant le patron de Planet Hollywood a pu sortir le carnet de chèques pour les faire venir, autant là, ce n&apos;est pas le cas. Bref, l&apos;ambiance appelle clairement au piège à touriste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/01/Restaurant-Paris-06.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7645&quot; alt=&quot;Restaurant-Paris-06&quot; src=&quot;/assets/Restaurant-Paris-06-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/01/img-0059679.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7642&quot; alt=&quot;img-0059679&quot; src=&quot;/assets/img-0059679-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/01/image.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7639&quot; alt=&quot;image&quot; src=&quot;/assets/image-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/01/american-dream-paris-1328651766.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7636&quot; alt=&quot;american-dream-paris-1328651766&quot; src=&quot;/assets/american-dream-paris-1328651766-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/01/1107140163.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7633&quot; alt=&quot;1107140163&quot; src=&quot;/assets/1107140163-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;American beurk&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Passons l&apos;accueil qui nous fait penser qu&apos;on pourrait être bien servi, le service en lui-même laisse à désirer. On nous bazarde la carte sur la table à peine dressée. Aucune carafe d&apos;eau disponible, on pourrait rouiller. Surtout vu le prix de la conso (4,5€ le petit verre de Coca, 12€ minimum la pinte de bière - et quelle bière ... - ),  on se souvient que le manque d&apos;hydratation a le même résultat que l&apos;alcool sur le cerveau.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On prend alors le temps de lire le roman qui sert de menu. Des burgers. Des bagels. Des omelettes. Des pizzas. Des sushis. De tout pour tous. Mais comme on dit &quot;trop de choix, tue le choix&quot;. Notre côté macho se rappelle à nous lorsque nous voyons le plat &quot;Cheeseburger Tower&quot; avec 6 steaks, accompagné de frites et oignons rings. Laissons nous tenter. Pour faire court, on n&apos;aurait pas dû !&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Première désillusion au service, sur les six steaks, quatres sont réellement présents, les deux autres remplacés par du pain. La garniture, moyenne. Les sauces absentes (normale : la sauce supplémentaire est facturée 5,50 € ! ). La seconde vient au fur et à mesure de l&apos;ingurgitation. Plus on descend dans les couches plus le burger se transforme. De haut en bas, la viande devient toujours moins cuite alors que le pain devient plus grillé. Un cauchemar gustatif.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;accompagnement n&apos;est pas tellement mieux. Les frites allumettes sont des éponges à huiles. Même le McDo n&apos;arrive pas à les imbiber autant. Les oignons rings ont perdu une bonne parti de la chapelure (à moins que ca aussi ca soit un supplément sur taxé ? ). Et grand mal vous prendrait de vouloir changer un des accompagnement : 4€ par changement ! Nul question de rajout par contre ...&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ecoeurés, nous ne tentons pas les desserts qui laissent présager le pire. D&apos;ailleurs, à 8 ou 9 € le café gourmand ... D&apos;ailleurs il n&apos;a de gourmand que le tarif, le café n&apos;étant accompagné que d&apos;un pauvre petit muffin ou donut ...&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;J&apos;en suis sorti en louant mes regretés tickets restos lâchés sur la table pour payer cette addition honteuse. A la limite du racket. Ce matin, mon estomac vient à me rappeler que mes tickets auraient été plus que mieux utilisés ailleurs. Il n&apos;y a pas de mot. Adresse à fuir. Information à faire connaître. Guide touristique à prévenir. L&apos;American Dream de Paris est LE lieu où l&apos;on mange le plus mal à Paris avec un tarif exhorbitant. Mais que fait le Président ? L&apos;a-t-on prévenu ?&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Création d&amp;#039;une plateforme anti-ddos modulaire</title>
      <link href="https://francois.aichelbaum.com/2013/01/04/creation-dune-plateforme-anti-ddos-modulaire" />
      <updated>2013-01-04T14:00:25+01:00</updated>
      <id>https://francois.aichelbaum.com/2013/01/04/creation-dune-plateforme-anti-ddos-modulaire</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Q&apos;est-ce qu&apos;un DDoS ? Que faire en cas de DDoS ? Comment se protéger ? Ce sont là des questions récurrentes ces temps-ci sur internet. Je vais exposer dans le présent article une solution pour se prémunir un minimum avec une architecture modulaire. L&apos;exemple se focalisera sur les services HTTP.&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Avant-propos&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Un DDoS, pour faire simple, se rapporte à une attaque de type déni de service distribué. En gros, l&apos;attaquant cherche à rendre votre service (site web, serveur mail, platefome complète...) indisponible grâce à plusieurs outils déployés sur PC zombies lancés à vos dépends en parallèle. Plus il y a d&apos;&lt;em&gt;armes&lt;/em&gt; (PC zombies), plus l&apos;attaque prend de l&apos;ampleur. De base, pour déjouer ces attaques, c&apos;est un peu le jeu de &lt;em&gt;qui a la plus grosse&lt;/em&gt;. Reste qu&apos;on peut se prémunir de pas mal de chose, sans passer pour autant par des solutions (trop) honéreuses de type &lt;a href=&quot;http://www.arbornetworks.com/fr/&quot;&gt;Arbor Networks&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/01/webbie_lg_cleanpipes_FR.gif&quot;&gt;&lt;img class=&quot;aligncenter  wp-image-7567&quot; alt=&quot;Plateforme Arbor Networks Clean Pipes 2.0&quot; src=&quot;/assets/webbie_lg_cleanpipes_FR-300x171.gif&quot; width=&quot;300&quot; height=&quot;171&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On n&apos;est pas tous milliardaires (ou du moins, pas encore). On ne peut pas tous investir dans ces solutions ni payer le tuyaux nécessaire pour jouer à &lt;em&gt;qui a la plus grosse&lt;/em&gt;. Mais on doit se protéger. L&apos;idée principale de cet article, réside donc dans la différence entre les notions de DoS et de DDoS, à savoir, le &lt;em&gt;distributed&lt;/em&gt;. On cherche donc à se rapprocher autant que possible d&apos;un DoS en segmentant l&apos;attaque puis on travaille sur ces réductions en fonction du protocole.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dans la suite, nous discutons de flux HTTP. Donc on filtre au niveau réseau avec du firewall puis on analyse la partie HTTP avec un WAF et on réduit les connexions au serveur client (le &lt;em&gt;backend&lt;/em&gt;) avec une plateforme de Caching. Chaque fonction est isolée sur une brique indépendante des autres qu&apos;on peut remplacer ou supprimer en fonction de l&apos;usage qu&apos;on veut avoir.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Je resterais assez succint sur la mise en place de certaines fonctionnalités avancées, sur l&apos;évolutivité ou encore sur la centralisation des informations, ayant livré un produit un peu plus complet il y a peu.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/01/antiddos.png&quot;&gt;&lt;img class=&quot;aligncenter  wp-image-7573&quot; alt=&quot;Plateforme anti-DDoS modulaire&quot; src=&quot;/assets/antiddos-300x129.png&quot; width=&quot;300&quot; height=&quot;129&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;L&apos;architecture est dans le Cloud : pourquoi ? parce que la virtualisation offre la souplesse nécessaire à ce type d&apos;architecture et qu&apos;on pourra voir dans de potentielles évolutions, à définir des règles au niveau DNS pour isoler des régions géographiques sur tel ou tel fournisseur sans impacter les autres datacenter virtuel.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Spécificités de la plateforme&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La plateforme est découpée en &quot;colonne&quot;. Toutes les colonnes sont équivalentes à la base. On essaie d&apos;isoler une colonne par opérateur. A l&apos;intérieur de chaque colonne, on aura une &quot;ligne&quot; de fonction composée d&apos;autant de serveur de chaque type appelé &quot;brique&quot;. Dans le cas de l&apos;article, une colonne HTTP contient trois lignes d&apos;un seul serveur à chaque fois :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;firewall&lt;/li&gt;
&lt;li&gt;WAF (Web Application Firewall)&lt;/li&gt;
&lt;li&gt;Caching&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;J&apos;ai rédigé cet article et les scripts liés de manière spécifique au serveur OVH. Des adaptations sont à prévoir pour d&apos;autres mais dans l&apos;absolu, tout devrait être fonctionnel tel quel. Chaque brique est en soit une machine virtuelle (dans le cas présent, une Debian Squeeze) avec des ressources affectées en fonction de vos besoins et moyens. Ici, 2 core et 8 Go de Ram à chaque fois. On y copie importe l&apos;arborescence de deploiement qui va bien, on lance le script, et rouler jeunesse.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Au niveau réseau, on sépare la partie management de la partie service.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le serveur VMware ESXi 5.0 n&apos;a de base qu&apos;une IP de management. On restreint ces services de management aux seules IP qui s&apos;y connecteront : votre bureau.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ensuite, vient le cas des différentes VIP qu&apos;on demande à OVH :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 pour les services publiques (dont la première servira aussi pour le VPN&lt;/li&gt;
&lt;li&gt;1 pour le &lt;em&gt;honeypot&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;1 pour la communication du caching avec le backend&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Entre eux, chaque niveau communique sur un VLAN spécifique.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Enfin, chaque serveur a une patte de management sur un réseau privé, utilisable exclusivement via le serveur de VPN.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le comportement est simple : lorsqu&apos;un &lt;em&gt;client&lt;/em&gt; se veut se connecter à la plateforme protégée, il le fait via une requête HTTP sur un &lt;em&gt;fqdn&lt;/em&gt; précis. Ce &lt;em&gt;fqdn&lt;/em&gt; est un alias vers un catch-all DNS de notre service de protection. Ce catch-all correspond à un gros Round Robin DNS vers les différentes VIP. C&apos;est le point qui génère la segmentation. Plus de VIP seront disponible, plus la segmentation sera importante. L&apos;attaquant visera soir le &lt;em&gt;fqdn&lt;/em&gt; et donc toutes les VIP, se qui va répartir ses PC zombies, soit les différentes VIP, mais lui même devra avoir assez de PC zombies sous la main.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le firewall entame alors son petit travail : analyser les paquets. Ici on reste basique avec un lot de règles iptables. On pourrait y greffer à la limite un IPS pour compléter la brique. Les règles sont de deux types :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;basique : pré enregistrées au démarrage du service&lt;/li&gt;
&lt;li&gt;dynamique : générée par les outils de bannissement&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les règles basiques correspondent à des règles de &quot;bonne usage&quot; contre les DoS classiques. Les règles dynamiques sont produites soit à la main, soit par l&apos;ensemble du service : détection des scans de port, fail2ban, ... Peu importe quelle brique détecte une IP à bannir, celle-ci le sera au niveau du firewall. De plus, le bannissement se fait via un &lt;a href=&quot;http://en.wikipedia.org/wiki/Tarpit_(networking)&quot;&gt;TARPIT &lt;/a&gt;pour la partie TCP et un DROP pour le reste.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les scripts qui suivront sont issues de la première version du PoC. Certains points sont à faire évoluer mais la base est présente.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Le firewall&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Au début je pensais utiliser une BSD avec du &lt;em&gt;pf&lt;/em&gt;. Mais je me suis ravisé : pf ne permet pas la partie TARPIT qui est tout de même bien sympathique. Qu&apos;est-ce que TARPIT ? C&apos;est un redimensionnement de la fenêtre TCP à 0. Ou de manière plus imagée, c&apos;est le pendant d&apos;un SYN Flood côté défense. On ne renvoie pas l&apos;ACK à un client mais on tue sa requête. Le résultat est d&apos;engorger progressivement sa pile TCP. Le tout proportionnellement à l&apos;ampleur de l&apos;attaque.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le firewall portent donc trois VIP de service. Chaque voit son port 80 poussé vers le WAF. La première voit en plus un port poussé vers le VPN. Ici, le 3006/tcp.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A côté de cela, pour garder une certaine dynamique dans les règles &lt;em&gt;iptables&lt;/em&gt;, on ne bloque pas tout. Juste quelques attaques de type DoS standard. Le reste, on fera du préventif ou cas par cas.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Du coup, &lt;em&gt;portsentry&lt;/em&gt; est utilisé pour détecter les scans de ports et déclencher le bamnissement.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On y installe aussi un honeypot qui simule un serveur Windows bien ouvert sur la 4e VIP. Toute tentative de connexion dessus sera détectée dans les logs par un fail2ban qui déclenchera le bannissement.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Enfin, quelques paramétrages fins sont à faire spécifiquement sur le firewall :&lt;/p&gt;
&lt;pre&gt;# Tuning automatique de la fenêtre TCP
net.ipv4.tcp_moderate_rcvbuf=1
# Communication entre les différents noeuds pour notifier d&apos;un engorgement (&lt;a href=&quot;http://tools.ietf.org/html/rfc3168&quot;&gt;RFC 3168&lt;/a&gt;)
net.ipv4.tcp_ecn=0
# Désactive le discover automatique du MTU
net.ipv4.ip_no_pmtu_disc=0
# On désactive le démarrage lent d&apos;une nouvelle connexion qui a déjà ouvert une session HTTP
net.ipv4.tcp_slow_start_after_idle=0
# On bloque les requêtes de type ICMP echo en broadcast
net.ipv4.icmp_echo_ignore_broadcasts=1
# On préfère traiter toutes les requêtes TCP afin de peupler les règles iptables
net.ipv4.tcp_abort_on_overflow = 1
# C&apos;est l&apos;arme contre les SYN FLOOD : une connexion n&apos;est gardée en mémoire que si le serveur a reçu l&apos;ACK
net.ipv4.tcp_syncookies = 1
# On ne laisse pas retenter un paquet TCP
net.ipv4.tcp_orphan_retries = 0
# Simple réduction de taille du paquet TCP en y mettant pas le champ time - moins de charge CPU
net.ipv4.tcp_timestamps = 0
# Active les acknoledge selectif : on ne répond pas à tous - pour de la perf, pour pourrait le mettre à 0
net.ipv4.tcp_sack = 1
# Tuning de la fenêtre TCP - on est restrictif
net.ipv4.tcp_window_scaling = 1&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;D&apos;autres paramètres plus globaux sont initialisés également.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Le WAF&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le WAF est donc le firewall applicatif. En gros, c&apos;est une brique HTTP permettant d&apos;analyser les requêtes et générer un comportement sécuritaire spécifique. On peut utiliser du &lt;a href=&quot;http://www.modsecurity.org/&quot;&gt;mod_security&lt;/a&gt; (qui existe aussi pour nginx maintenant) ou du &lt;a href=&quot;http://code.google.com/p/naxsi/&quot;&gt;naxsi&lt;/a&gt;. La grosse différence, le premier fonctionne à coup de blacklist statiques, le second fonctionne à coup de whitelist et de blacklist générée lors d&apos;un mode d&apos;apprentissage.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Lorsqu&apos;un client HTTP est connecté et a un comportement suspicieux, on aura la joie d&apos;avoir une ligne dans les logs correspondants. En interfaçant avec fail2ban et le script qui va bien, on pourra déclarer l&apos;IP de ce client au firewall qui la bannira.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;N&apos;oubliez pas de déclarer les VIP sur la loopback.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Le caching&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;J&apos;ai déjà eu l&apos;occasion de rédiger différents articles sur le caching (&lt;a href=&quot;http://francois.aichelbaum.com/wp-admin/post.php?post=6881&amp;amp;action=edit&quot;&gt;création&lt;/a&gt; et &lt;a href=&quot;http://francois.aichelbaum.com/comparatif-caching-nginxvarnishsquidapache/&quot;&gt;comparaison&lt;/a&gt;). Ici le but est juste de mettre une brique rapidement en place pour démontrer le fonctionnement.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On reprend donc un nginx configuré pour le caching. La spécificité de cette brique est qu&apos;elle sort directement sur internet via son IP publique (donc sans repasser par le firewall, contrairement aux autres briques).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Au niveau sécurité de la patte publique, on bloque tout à coup de TARPIT/DROP par défaut sur celle-ci.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;ensemble des scripts est disponible sur mon &lt;a href=&quot;https://github.com/faichelbaum/anti-ddos&quot;&gt;github&lt;/a&gt;. La commande magique &lt;em&gt;deploy&lt;/em&gt; se charge d&apos;installer et configurer les différents points pour un rôle donné.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La commande de management &lt;em&gt;ddos&lt;/em&gt; permet déjà quelques outils. Elle est à lancer avec un compte nommé &lt;em&gt;sysadmin&lt;/em&gt; à qui on réduira les possibilité via &lt;em&gt;sudo&lt;/em&gt;. Le compte &lt;em&gt;root&lt;/em&gt; est bloqué pour le SSH.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;N&apos;oubliez pas que ceci est un PoC et doit donc servir de base. Il est utilisable quasiment tel quel mais il serait mieux d&apos;avoir un niveau suffisant pour l&apos;adapter et l&apos;améliorer.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Imaginez une centralisation des informations, un back office, une mutualisation des firewall pour différents protocoles, des tunnels GRE entre vous et les plateformes cibles, un TARPIT directement intégré au SMTP (cf BSD), ...&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dans tous les cas, voici une idée du résultat au niveau filtrage :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2013/01/rrd.png&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-7618&quot; alt=&quot;Graphique statistique sur le filtrage anti DDoS&quot; src=&quot;/assets/rrd-300x100.png&quot; width=&quot;300&quot; height=&quot;100&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Complément Redis en haute disponibilité</title>
      <link href="https://francois.aichelbaum.com/2012/12/28/complement-redis-en-haute-disponibilite" />
      <updated>2012-12-28T13:58:43+01:00</updated>
      <id>https://francois.aichelbaum.com/2012/12/28/complement-redis-en-haute-disponibilite</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Pour ceux qui seraient intéressés, j&apos;ai mis en place un repository &lt;a href=&quot;https://github.com/faichelbaum/redis-addons&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt; concernant le déploiement de &lt;a href=&quot;http://francois.aichelbaum.com/complement-redis-en-haute-disponibilite/&quot;&gt;Redis 2.6 en haute disponibilité&lt;/a&gt;. Vous y trouverez :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;configuration Redis Server&lt;/li&gt;
&lt;li&gt;configuration Redis Sentinel&lt;/li&gt;
&lt;li&gt;script d&apos;init (Debian/Ubuntu) Redis Server&lt;/li&gt;
&lt;li&gt;script d&apos;init (Debian/Ubuntu) Redis Sentinel&lt;/li&gt;
&lt;li&gt;plugin Nagios (check_redis) qui gère l&apos;usage d&apos;un mot de passe&lt;/li&gt;
&lt;/ul&gt;
</content>
    </entry>
  
    <entry>
      <title>Infrastructure Redis en haute disponibilité</title>
      <link href="https://francois.aichelbaum.com/2012/12/14/infrastructure-redis-en-haute-disponibilite" />
      <updated>2012-12-14T16:33:29+01:00</updated>
      <id>https://francois.aichelbaum.com/2012/12/14/infrastructure-redis-en-haute-disponibilite</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;A l&apos;heure où tout devient &quot;connecté&quot;, &quot;disponible en ligne&quot;, les échanges par l&apos;internet se multiplient. Pour accompagner la démocratisation des liens rapides mais également pour améliorer l&apos;expérience cliente, il est nécessaire que les fournisseurs de service en ligne optimisent leurs applications et la manière dont ils les livrent. Bien sûr, on peut toujours augmenter les ressources matériels, mais le coût n&apos;est pas négligeable. Parfois, les développeurs peuvent travailler main dans la main avec les administrateurs. C&apos;est le cas de l&apos;utilisation des caches applicatifs (Memcached,Couchbase, Redis...).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Avant-propos&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Redis, dans la version stable actuelle (2.6) n&apos;offre aucune fonctionnalité de mise en cluster comme Couchbase. Je ne parle pas non plus de l&apos;absence totale d&apos;organes de sécurité. Le but est clairement énoncé : la PER-FOR-MANCE.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Du coup, peu de solution pour la haute disponibilité si ce n&apos;est mettre en place une architecture type maître/esclave avec une promotion automatique de l&apos;esclave en tant que maître en cas de défaillance du premier. Nous allons voir cette mise en place puis tant qu&apos;à faire, sa supervision.&lt;/p&gt;
&lt;h1&gt;Installation de l&apos;infrastructure Redis&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On suppose pré-installés deux serveurs Debian Squeeze 64 bit. Notez que la version disponible de Redis dans les repositories officiels est une vieille 1.2.6 et que seule la branche 2.4 est disponible dans les backports. Traduction : nous allons être obligés de tout compiler à la main.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour cela, quelques pré-requis à installer :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;aptitude install build-essential tcl8.5 pwgen&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le package tcl8.5 est là pour vous permettre d&apos;effectuer quelques tests au besoin lors de la séance de compilation. Nous pouvons alors nous attaquer à Redis :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;cd /usr/src
wget http://redis.googlecode.com/files/redis-2.6.7.tar.gz
tar -xzf redis-2.6.7.tar.gz
rm redis-2.6.7.tar.gz
cd redis-2.6.7
make
make install
useradd redis
mkdir /opt/redis
chown redis:redis /opt/redis
chmod 770 /opt/redis&lt;/pre&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Configuration Redis&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Je vous met à disposition un fichier un peu préparer, &lt;a href=&quot;http://cdn.aichelbaum.com/files/r/redis.conf&quot;&gt;ici&lt;/a&gt;. Cependant, quelques modifications sont à prévoir.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;wget http://cdn.aichelbaum.com/files/r/redis.conf -O /etc/redis.conf&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dans le cas que je présente ici, je bind l&apos;application sur toutes les interfaces car les serveurs Redis sont sur un VLAN précis et isolé. Au besoin, on peut simplement l&apos;isoler sur une IP en rajoutant dans la configuration un :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;bind X.X.X.X&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il s&apos;agit également de traitement en temps réel mais donc j&apos;ai besoin d&apos;avoir un maximum de garanties sur la pérennité des informations stockées, je sauvegarde toutes les 60 secondes s&apos;il y a eu au moins une modification en base.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Redis a (trop) peu de sécurité. Cependant, autant mettre au moins un mot de passe pour la réplication. Pour se faire, on va en générer un propre avec pwgen :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;pwgen -s -y 16&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il est à renseigner à la ligne commençant par &lt;strong&gt;masterauth&lt;/strong&gt;. On réutilise le même mot dfe passe pour le champ &lt;strong&gt;requirepass&lt;/strong&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Autre point important à modifier dans la configuration : la taille de la mémoire allouée à Redis. Dans mon exemple :&lt;/p&gt;
&lt;pre&gt;maxmemory 512mb&lt;/pre&gt;
&lt;p&gt;On peut aussi la passer à 8 Go par exemple :&lt;/p&gt;
&lt;pre&gt;maxmemory 8gb&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Penser également à rajouter la ligne suivante dans votre /etc/security/limits.conf :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;redis - nofile 20000&lt;/pre&gt;
&lt;p&gt;Redis nécessite un rajout à sysctl :&lt;/p&gt;
&lt;pre class=&quot;crayon-selected&quot;&gt;cat &amp;lt; EOF &amp;gt;&amp;gt; /etc/sysctl.conf 
vm.overcommit_memory=1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth1.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.eth1.arp_announce = 2
EOF
sysctl -p&lt;/pre&gt;
&lt;h1&gt;Mise en place de la réplication&lt;/h1&gt;
&lt;p&gt;On a donc installé deux serveurs. On suppose leurs noms et IP :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;redis01 - 192.168.1.1&lt;/li&gt;
&lt;li&gt;redis02 - 192.168.1.2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On veut que &lt;strong&gt;redis02&lt;/strong&gt; soit esclave de &lt;strong&gt;redis01&lt;/strong&gt; :&lt;/p&gt;
&lt;pre&gt;sed -i &quot;s/# slaveof &amp;lt;masterip&amp;gt; &amp;lt;masterport&amp;gt;/# slaveof &amp;lt;masterip&amp;gt; &amp;lt;masterport&amp;gt;\n#slaveof 192.168.1.1 6379/&quot; /etc/redis.conf&lt;/pre&gt;
&lt;p&gt;Mais aussi l&apos;inverse pour que redis01 devienne automatiquement esclave de redis01 en cas de failover :&lt;/p&gt;
&lt;pre&gt;sed -i &quot;s/# slaveof &amp;lt;masterip&amp;gt; &amp;lt;masterport&amp;gt;/# slaveof &amp;lt;masterip&amp;gt; &amp;lt;masterport&amp;gt;\n#slaveof 192.168.1.2 6379/&quot; /etc/redis.conf&lt;/pre&gt;
&lt;h1&gt;Mise en place du failover Redis&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On va entre s&apos;appuyer sur&lt;strong&gt; redis-sentinel&lt;/strong&gt; qui est une solution permettant de gérer &lt;em&gt;facilement&lt;/em&gt; le failover entre les serveurs.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;cp /usr/src/redis-2.6.7/src/redis-sentinel /usr/local/bin/redis-sentinel&lt;/pre&gt;
&lt;p&gt;Plus qu&apos;à importer la &lt;a href=&quot;http://cdn.aichelbaum.com/files/s/sentinel.conf&quot;&gt;configuration&lt;/a&gt; (et l&apos;adapter avec vos IP et mots de passe) :&lt;/p&gt;
&lt;pre&gt;wget http://cdn.aichelbaum.com/files/s/sentinel.conf -O /etc/sentinel.conf&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Petite précision : &lt;strong&gt;sentinel&lt;/strong&gt; gère le failover, pas le fallback automatique. Il faut donc que l&apos;ancien maître (&lt;strong&gt;redis01&lt;/strong&gt;) devienne un esclave du nouvellement promu (&lt;strong&gt;redis02&lt;/strong&gt;).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pensez à installer un 3e sentinel sur le serveur de supervision avec les mêmes informations. Il vous permettra d&apos;avoir un quorum de 2 sur les 3 sentinels possibles, très utile en cas de &lt;em&gt;split-brain&lt;/em&gt; (chaque serveur est &lt;em&gt;UP &amp;amp; Running&lt;/em&gt; mais ne voit plus son voisin).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On n&apos;avait pas encore les fichiers d&apos;init donc on va les mettre en place avec l&apos;intelligence. J&apos;ai préparé deux scripts d&apos;init pour le coup&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;wget http://cdn.aichelbaum.com/files/r/redis-server.init -O /etc/init.d/redis-server
wget http://cdn.aichelbaum.com/files/r/redis-sentinel.init -O /etc/init.d/redis-sentinel
chmod +x /etc/init.d/redis-se*
update-rc.d redis-sentinel defaults
update-rc.d redis-server defaults
insserv redis-sentinel
insserv redis-server&lt;/pre&gt;
&lt;h1&gt;Load balancing&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On va gérer l&apos;IP flottante permettant de n&apos;accéder qu&apos;au maître (pour fonctionner en actif/passif) avec un bête script. Pourquoi bête ? parce que le mode de fonctionnement ne requière pas l&apos;installation d&apos;une usine à gaz et qu&apos;on a un simple cron qui peut faire le boulot. Pensez juste à éditer l&apos;IP mise pour la VIP.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;wget http://cdn.aichelbaum.com/files/r/redis-vip.sh -O /usr/local/bin/redis-vip.sh
chmod +x /usr/local/bin/redis-vip.sh
echo &quot;* * * * * /usr/local/bin/redis-vip.sh &amp;amp;&amp;gt; /dev/null&quot; &amp;gt; /etc/cron.d/redis-vip&lt;/pre&gt;
&lt;h1&gt;Supervision Nagios pour Redis&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On va s&apos;appuyer sur un plugin existant : &lt;a href=&quot;https://github.com/faichelbaum/redis-addons/blob/master/check/check_redis&quot;&gt;check_redis&lt;/a&gt;. Il permet aussi bien de superviser l&apos;instance Redis en elle-même, que la réplication. Pour cela, il demande au serveur son rôle dans la réplication et dans le cas d&apos;un esclave (&lt;em&gt;slave&lt;/em&gt;) son status.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Rien de particulier pour l&apos;installation en soit. Le plugin est vraiment standard :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;Usage: check_redis -H HOSTNAME -p PORT -c CRITICAL -w WARNING -t TIMEOUT (-P PASSWORD)&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Par contre, il faut également superviser les sentinels. Au choix : un check_tcp sur le port 26379 ou vérifier en NRPE ou SNMP le status du service&lt;strong&gt; redis-sentinel&lt;/strong&gt;.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Partager des mots de passe en sécurité</title>
      <link href="https://francois.aichelbaum.com/2012/12/12/partager-des-mots-de-passe-en-securite" />
      <updated>2012-12-12T15:27:42+01:00</updated>
      <id>https://francois.aichelbaum.com/2012/12/12/partager-des-mots-de-passe-en-securite</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Voici un problème récurrent avec les allers et venues dans les sociétés. Comment partager les mots de passe d&apos;une plateforme, la maintenir de tout changement, et éviter les fuites d&apos;informations ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Certains choisissent d&apos;avoir un mot de passe unique ... C&apos;est mal.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;D&apos;autres préconisent d&apos;avoir un mot de passe avec une partie mémotechnique variable (liée par exemple, au nom du serveur). C&apos;est prédictible donc c&apos;est mal.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Certains reposent sur une centralisation des identifiants (avec un LDAP ou un Active Directory) et se partagent les informations via des fichiers type KeePassX. On se rapproche de quelque chose. Cependant, subsiste le problème d&apos;accès à la base et de son maintient.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On va avancer sur cette solution et voir à la fiabiliser.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Avant propos&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Juste quelques rappels avant d&apos;exposer quelques bonnes méthodes à appliquer à cette solution.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A chaque mouvement de personnel, il faut révoquer les accès de l&apos;utilisateur, et modifier les accès administrateurs sur les différents serveurs/services. La centralisation des comptes et le maintient d&apos;une base d&apos;information prend tout son sens.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Chaque modification sur la base nécessite d&apos;être conservé (trace de la modification et conservation d&apos;un historique des mots de passe à la rigueur).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Je ne traiterais pas de la centralisation des comptes. Guillaume Vaillant vous propose &lt;a href=&quot;http://guillaume.vaillant.me/?p=187&quot;&gt;un billet sur le sujet orienté LDAP&lt;/a&gt; et je verrais peut-être à en rédiger un orienté Active Directory sous peu.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Sécuriser la donnée&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On va se baser sur l&apos;outil &lt;a href=&quot;http://keepass.info/download.html&quot;&gt;KeePass 2&lt;/a&gt; (avec le plugin &lt;a href=&quot;http://keepass.info/plugins.html#ioprotocolext&quot;&gt;IOProtocolExt&lt;/a&gt;). Ce logiciel permet de sauvegarder les différents mots de passe dans une base encrypté (en AES256 de base). Le plugin quant à lui permet de centraliser la base sur un serveur SFTP.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Installer une distribution Linux ne doit pas être top un problème, donc on passe. Installer un serveur SSH, aussi.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On modifie les utilisateurs concernés par l&apos;accès à la base en les affectant à un groupe dédié :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;groupadd keepass
gpasswd -a francois keepass&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ensuite, on crée un dossier, et on le prépare au niveau des droits et ACL (on pense à installer le package &lt;strong&gt;acl&lt;/strong&gt;) :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;mkdir /home/keepass
chgrp keepass /home/keepass
chmod 070 /home/keepass
chmod g+s /home/keepass
setfacl -Rmd g:keepass:rwx /home/keepass&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On rajoute le logging des actions en SFTP en éditant le fichier &lt;em&gt;/etc/ssh/sshd_config&lt;/em&gt; puis en relançant le service &lt;strong&gt;ssh&lt;/strong&gt; :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;sed -i &apos;^Subsystem sftp /usr/lib/openssh/sftp-server^Subsystem sftp /usr/lib/openssh/sftp-server -l INFO^&apos; /etc/ssh/sshd_config
/etc/init.d/ssh reload&lt;/pre&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Installer KeePass 2&lt;/h1&gt;
&lt;h3&gt;Sur Windows&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour une fois, au grand dam des &lt;em&gt;trolleurs&lt;/em&gt; du vendredi, ce sont aux amis de Windows qui s&apos;en sortent le plus facilement. Une simple installation en &lt;em&gt;clic-next&lt;/em&gt; fait son affaire. Concernant le plugin, on copie les fichiers dans le dossier d&apos;installation de KeePass et on relance l&apos;application.&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Sur Linux&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Bien que des packages soient disponibles pour les distributions majeurs, le plugin pour le SFTP utilisent des classes .NET non disponibles sur Mono. Obligé de passer par Wine. On part d&apos;un préfixe wine vierge :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;cd ~
winetricks dotnet40
wine Downloads//KeePass-2.20.1-Setup.exe&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On copiera là encore les fichiers de plugin dans le dossier qui va bien.&lt;/p&gt;
&lt;h3&gt;SUR MAC OS X&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Même problème que sur Linux. Même solution : wine. Il faut donc installer &lt;a href=&quot;http://www.macports.org/&quot;&gt;MacPorts&lt;/a&gt; puis wine :&lt;/p&gt;
&lt;pre&gt;sudo port install wine
cd ~
winetricks dotnet40
wine KeePass-2.20.1-Setup.exe&lt;/pre&gt;
&lt;p&gt;On copiera là encore les fichiers de plugin dans le dossier qui va bien.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Générer la donnée&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il faut bien initialiser la base. On a donc installé KeePass 2. On crée une nouvelle base. On la sauvegarde. On la transfert en scp sur le serveur dans le bon dossier (avec WinSCP, FileZilla, ssh, ...). Pour sécuriser la base, on va utiliser un master key sous la forme d&apos;un fichier générer par l&apos;entropie de la souris. On garde le fichier dans un coin.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On supposera que la base s&apos;appelle &lt;strong&gt;base.kdbx&lt;/strong&gt; et la clé &lt;strong&gt;base.key&lt;/strong&gt;.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Accéder à la donnée&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La partie simplissime : &lt;em&gt;File &amp;gt; Open &amp;gt; Open URL&lt;/em&gt;. On renseigne les informations :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URL : sftp://ip/home/keepass/base.kbdx&lt;/li&gt;
&lt;li&gt;user name : votre identifiant&lt;/li&gt;
&lt;li&gt;password : votre mot de passe (il n&apos;y a pas de gestion par clé pour le moment)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le fichier sera chargé automatiquement.&lt;/p&gt;
&lt;h1&gt;Mise à jour de la donnée&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La modification des informations se fait simplement en sauvegardant (&lt;em&gt;File &amp;gt; Save&lt;/em&gt; – et non &lt;em&gt;File &amp;gt; Save As&lt;/em&gt;).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il est intéressant de sauvegarder une copie locale pour des raisons de mobilité par exemple ou d&apos;indispo du serveur. Pour se faire : &lt;em&gt;File &amp;gt; Save As &amp;gt; Save copy to file&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La gestion des mises à jour par plusieurs utilisateurs et des risques de conflit se fait de la manière suivante :&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Les mises à jours se font seulement sur les entrées modifiées ; KeePass 2 se base principalement sur la date de modification&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Quand l’utilisateur A sauvegarde ses modifications sur le serveur, il récupère au même moment les mises à jour des autres utilisateurs&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;S’il y a un conflit (A et B mettent à jours la même entrée en base), l’entrée la plus récente sera conservée (date de modification prise en compte)&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Le serveur prévient et demande une confirmation de l’action à mener au moment de la sauvegarde&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Derniers points&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pensez à transmettre le master key aux bons utilisateurs.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pensez à mettre à jour régulièrement la master key surtout lors des départs d&apos;utilisateurs.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ne déposez pas la base sur des partages publiques, même si elle est encryptée (GDrive, DropBox, ...).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ne transmettez pas la master key par email (surtout jointe avec les informations &quot;vitales&quot;).&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Optimiser les images de son site</title>
      <link href="https://francois.aichelbaum.com/2012/11/27/optimiser-les-images-de-son-site" />
      <updated>2012-11-27T12:36:42+01:00</updated>
      <id>https://francois.aichelbaum.com/2012/11/27/optimiser-les-images-de-son-site</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Pourquoi optimiser les images de son site ? Tout simplement, parce que cela a son importance pour le référencement mais aussi et surtout pour l&apos;expérience utilisateur. Après tout, un site web est fait pour être consulté donc autant que l&apos;expérience utilisateur soit la meilleure possible.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;La bonne taille de l&apos;image&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Première erreur fréquemment rencontrée, la taille de l&apos;image inadaptée. Régulièrement, on peut tomber soit sur une image agrandie (et donc pixélisée), soit sur une image réduite.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dans le premier cas, l&apos;image est moche, l&apos;expérience utilisateur dégradée car l&apos;internaute reste critique dans l&apos;âme et ne reviendra pas si le site n&apos;est pas un minimum agréable. Seule solution : trouver la même image dans le bon format ou &lt;em&gt;a fortiori &lt;/em&gt;dans un format bien supérieur (cf ci-dessous).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dans le second cas, on garde ce format &quot;géant&quot; sur notre PC et on prépare des versions adaptée grâce à notre logiciel d&apos;image favori (&lt;a title=&quot;The Gimp&quot; href=&quot;www.gimp.org&quot; target=&quot;_blank&quot;&gt;The Gimp&lt;/a&gt; par exemple). Ainsi, transférer le fichier image au bon format et à la bonne résolution aura plusieurs impacts :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;réduire la quantité de données à envoyer au navigateur de votre visiteur (donc le site s&apos;affiche plus vite)&lt;/li&gt;
&lt;li&gt;moins de travail pour le navigateur de votre visiteur (le site s&apos;affiche plus vite et consomme moins de ressources)&lt;/li&gt;
&lt;li&gt;l&apos;image sera agréable à regarder&lt;/li&gt;
&lt;li&gt;la variété des formats pour une image sur le site augmente indirectement le contenu à référencer sur le site et donc améliore le référencement du site&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dans tous les cas, l&apos;expérience utilisateur s&apos;améliore nettement.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Combiner les images via des CSS Sprites&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Parfois, vous aller avoir tout un semble de petits logos/icônes sur une même page et qui reviennent régulièrement sur votre site. Il est alors intéressant de combiner toutes ces images dans un seul fichier, qui sera importé et &quot;découpé&quot; par CSS.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour combiner les images, si vous ne travailler par directement sur le format unifié, vous pouvez le faire via ImageMagick.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;aptitude -y install imagemagick&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ensuite, pour combiner des images au format JPEG par ex :&lt;/p&gt;
&lt;pre&gt;convert image1.jpg image2.jpg image3.jpg +append -quality 75 combine.jpg&quot;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il est possible de le faire pour d&apos;autres formats image. ImageMagick est vraiment une belle boite à outil pour le traitement image.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On peut alors intégré dans le CSS ainsi (extrait du CSS de mon blog) :&lt;/p&gt;
&lt;pre&gt;#wp-social-login-connect-options a.Tumblr {
 display:block;
 float:left;
 height:32px;
 width:32px;
 margin:0px;
 text-indent:-9999px;
 background-image:url(&apos;https://cdn.aichelbaum.com/images/S/sprites.png&apos;);
 background-position:-256px 0px;
}&lt;/pre&gt;
&lt;pre&gt;#wp-social-login-connect-options a.Mixi {
 display:block;
 float:left;
 height:32px;
 width:32px;
 margin:0px;
 text-indent:-9999px;
 background-image:url(&apos;https://cdn.aichelbaum.com/images/S/sprites.png&apos;);
 background-position:-288px 0px;
}&lt;/pre&gt;
&lt;pre&gt;#wp-social-login-connect-options a.Steam {
 display:block;
 float:left;
 height:32px;
 width:32px;
 margin:0px;
 text-indent:-9999px;
 background-image:url(&apos;https://cdn.aichelbaum.com/images/S/sprites.png&apos;);
 background-position:-320px 0px;
}&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On ne transfert donc plus qu&apos;une seule image, plutôt petite, et on repositionne et redimensionne l&apos;affichage de la cellule au style demandé. Encore une fois, on réduit la quantité de données à envoyer au navigateur de votre visiteur. Son expérience s&apos;améliore encore.&lt;/p&gt;
&lt;h1 style=&quot;text-align: justify;&quot;&gt;Optimiser les images&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Aujourd&apos;hui, les images, que cela soit en JPEG ou en PNG, embarque énormément d&apos;infomations. Limite de la pollution dans certains cas. Des outils existent et permettent de nettoyer tout cela automatiquement : optipng et jpegoptim :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;aptitude -y install optipng jpegoptim&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour les utiliser d&apos;un coup et simplement (voire les mettre dans une cron), un petit script :&lt;/p&gt;
&lt;pre&gt;cat &amp;gt; /usr/local/bin/optimage.sh &amp;lt;&amp;lt; EOF
#!/bin/bash
find $1 -name &quot;*.jpg&quot; -exec jpegoptim --strip-all {} \; | grep -v skipped
find $1 -name &quot;*.png&quot; -exec optipng -o 7 {} \; 2&amp;gt; /dev/null
exit 0
EOF&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Du coup à l&apos;usage, il suffit d&apos;appeler le script avec en paramètre le dossier parent à traiter récursivement puis le tour est joué.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les fichiers gagnent encore en taille etc etc.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le site est toujours plus performant. L&apos;utilisateur apprécit et revient. Le référencement s&apos;amliore&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Skyfall : le paradoxe du grand père façon James Bond</title>
      <link href="https://francois.aichelbaum.com/2012/10/29/skyfall-le-paradoxe-du-grand-pere-facon-james-bond" />
      <updated>2012-10-29T12:24:23+01:00</updated>
      <id>https://francois.aichelbaum.com/2012/10/29/skyfall-le-paradoxe-du-grand-pere-facon-james-bond</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/Skyfall_wallpaper1.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-7385&quot; title=&quot;Skyfall&quot; src=&quot;/assets/Skyfall_wallpaper1-150x150.jpg&quot; alt=&quot;Skyfall&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;James Bond est l&apos;une des sagas qui m&apos;a le plus bercé depuis mes débuts de spectateurs. Ces longues soirées d&apos;hiver à regarde le flegme britannique donner une leçon à ces vils espions russes ou ces escrocs en col blanc. Malheureusement, ce flegme britannique a pris un gros coup à deux reprises. Une touche trop américaine avec le style de Timothy Dalton. Une touche trop russe avec le style de Daniel Craig. Dès que je le vois, je repense à l&apos;espion soviétique de &lt;a href=&quot;http://www.youtube.com/watch?v=gwfgIOmHpLA&quot;&gt;Bon baiser de Russie&lt;/a&gt;. Bref, Skyfall est sorti vendredi donc obligation de le voir ... puis de le critiquer&lt;/p&gt;
&lt;p&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Le paradoxe de James Bond&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les épisodes 21 et 22 marquait un retour dans en arrière compliqué pour l&apos;espion anglais. Il fallait revenir aux origines du personnes, tout en avançant dans le temps pour coller à la modernité de l&apos;actualité. Compliqué mais pas impossible, jusqu&apos;au moment où le lien devait être fait avec le reste de la saga. C&apos;est le but de Skyfall.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=6kw1UVovByw[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Comment revenir sur l&apos;origine de l&apos;espion, de son univers, et continuer d&apos;avancer ? Tout simplement en programmant une destruction globale de l&apos;existant (MI6, M, ...) pour repartir sur de nouvelles bases. Le film se charge donc de détruire le magnifique QG (réel) du MI6 pour le remplacer par les sous terrains de Churchill. &quot;M&quot; est mise sur le pilori pour annoncer son futur remplacement dès le début du film. Et Moneypenny fait enfin son apparition, justifiant au passage le petit jeu de séduction entre elle et Bond. Peu de gadget dans cet opus si ce n&apos;est une petite balise radio old-school mais miniature de la part du nouveau Q.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/Skyfall-le-nouveau-James-Bond-est-le-plus-cool-de-la-saga-un-futur-classique_portrait_w532.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7391&quot; title=&quot;Skyfall&quot; src=&quot;/assets/Skyfall-le-nouveau-James-Bond-est-le-plus-cool-de-la-saga-un-futur-classique_portrait_w532-150x150.jpg&quot; alt=&quot;Skyfall&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/o-SKYFALL-570.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7394&quot; title=&quot;Skyfall&quot; src=&quot;/assets/o-SKYFALL-570-150x150.jpg&quot; alt=&quot;Skyfall&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/953216-nouveau-spot-tv-pour-le-film-skyfall-620x0-2.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7397&quot; title=&quot;Skyfall&quot; src=&quot;/assets/953216-nouveau-spot-tv-pour-le-film-skyfall-620x0-2-150x150.jpg&quot; alt=&quot;Skyfall&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/472047_daniel-craig-g-et-l-actrice-francaise-berenice-marlohe-d-pour-l-avant-premiere-mondiale-du-nouveau-james-bond-skyfall-le-23-octobre-2012-a-londres.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7400&quot; title=&quot;Skyfall&quot; src=&quot;/assets/472047_daniel-craig-g-et-l-actrice-francaise-berenice-marlohe-d-pour-l-avant-premiere-mondiale-du-nouveau-james-bond-skyfall-le-23-octobre-2012-a-londres-150x150.jpg&quot; alt=&quot;Skyfall&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/20-berenice-marlohe-skyfall-james-bond.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7403&quot; title=&quot;Skyfall&quot; src=&quot;/assets/20-berenice-marlohe-skyfall-james-bond-150x150.jpg&quot; alt=&quot;Skyfall&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Là où ce James Bond échoue lamentablement ? L&apos;ennemi. Ce n&apos;est plus la mode aux magnats de la finance (bah oui, c&apos;est l&apos;heure de la crise donc on ne va pas taper sur la production). Et alors qu&apos;un retour aux luttes contre l&apos;armée rouge aurait été bienvenu, on ne nous annonce un ennemi bien pire : un renegat anglais ... qui n&apos;a rien d&apos;anglais. Après tout, on n&apos;a bien un espion soviet pour camper le rôle du plus anglais des espions. Alors on n&apos;est plus à ca près. Et encore, je ne vous dit pas les crises de fous rires qui s&apos;annoncent en regardant le jeu d&apos;acteur de Javier Bardem.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Par contre, comme bien souvent, la bande originale est magnifique. Signée Adèle, s&apos;il vous plaît (et il vous plaira).&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=7HKoqNJtMTQ[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Cette douceur ne suffira malheureusement pas à masquer la violence et le côté américain du film. On frappe. On tue. Et s&apos;il y a des survivants on se pose des questions. Les James Bond girls sont là, mais au final, bien trop transparentes. Où sont donc passées les bases des bons vieux James Bond ? Réponse, espérons-le, au prochain opus. Pour le coup, j&apos;ai bien failli m&apos;endormir.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/james-bond-007-skyfall.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-7406&quot; title=&quot;Skyfall&quot; src=&quot;/assets/james-bond-007-skyfall-300x225.jpg&quot; alt=&quot;Skyfall&quot; width=&quot;300&quot; height=&quot;225&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Astérix et Obélix : Au service de Sa Majesté</title>
      <link href="https://francois.aichelbaum.com/2012/10/29/asterix-et-obelix-au-service-de-sa-majeste" />
      <updated>2012-10-29T11:48:49+01:00</updated>
      <id>https://francois.aichelbaum.com/2012/10/29/asterix-et-obelix-au-service-de-sa-majeste</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/background-new-affiche.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-7355&quot; title=&quot;Astérix et Obélix : Au service de Sa Majesté&quot; src=&quot;/assets/background-new-affiche-150x150.jpg&quot; alt=&quot;Astérix et Obélix : Au service de Sa Majesté&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Ah, les aventures d&apos;Astérix et Obélix. Toujours un grand moment de lecture que l&apos;on soit jeune ou moins jeune. Par contre, pour ce qui est des adaptions cinémas &quot;live&quot;, c&apos;est une autre histoire. Sur trois films, un seul tire son épingle du jeu (&lt;a href=&quot;http://www.youtube.com/watch?v=kCFrvuPpAoQ&quot;&gt;Mission Cléopatre&lt;/a&gt;) et mérite d&apos;être vu : il faut dire que la bande à Chabat est une arme de rire massive. Quid de la nouvelle adaptation au cinéma ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Astérix en voyage&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Cette fois-ci, notre blond ami décolle pour voir les bretons cousins. Les normands cousins seront également de la partie. Un voyage haut en couleur en perspective annonce-t-il un niveau de qualité élevé ?&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=eLr8aU-sTb8[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Quatrième film, et encore un nouvel Astérix : Edouard Baer. Je dois dire que j&apos;aime la symbiose du duo Depardieu-Clavier depuis de nombreux films. Cornillac est un bon acteur mais le rôle ne lui allait pas du tout. Edouard Baer est tout simplement PAR-FAIT !&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De même, un nouveau César entre en scène : Fabrice Luchini. C&apos;est sûr, il n&apos;a pas le nombrilisme que dégage Alain Delon et qui était fort sympatique pour le rôle. Pour autant, sa prose et sa verbale font de lui un grand et agréable César.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Par contre, premier point qui m&apos;attriste ? Les bretons sont tous joués par des Français. C&apos;est sûr que l&apos;ouverture à l&apos;international est impossible pour un produit tel qu&apos;Astérix : il ne s&apos;est vendu qu&apos;à 325 millions de part le monde et traduit exclusivement dans 107 langues. Du coup, ces français bretons nous sur-jouent du début à la fin l&apos;anglais accent. Ce qui est comique les premières minutes du film devient vite ennuyeux voire fatigant.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/dany_boon.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7361&quot; title=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; src=&quot;/assets/dany_boon-150x150.jpg&quot; alt=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/asterix-et-obelix_reference.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7364&quot; title=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; src=&quot;/assets/asterix-et-obelix_reference-150x150.jpg&quot; alt=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/Astérix-et-Obélix-Au-service-de-sa-Majesté-Télérama-04.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7367&quot; title=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; src=&quot;/assets/Ast&amp;#233;rix-et-Ob&amp;#233;lix-Au-service-de-sa-Majest&amp;#233;-T&amp;#233;l&amp;#233;rama-04-150x150.jpg&quot; alt=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/Astérix-et-Obélix-Au-service-de-sa-Majesté-Télérama-03-500x341.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7370&quot; title=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; src=&quot;/assets/Ast&amp;#233;rix-et-Ob&amp;#233;lix-Au-service-de-sa-Majest&amp;#233;-T&amp;#233;l&amp;#233;rama-03-500x341-150x150.jpg&quot; alt=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/1775478_7_9734_valerie-lemercier-et-charlotte-le-bon-dans-le_4bd1cdafd8ed2bdade64e7f0dde44a4a.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7373&quot; title=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; src=&quot;/assets/1775478_7_9734_valerie-lemercier-et-charlotte-le-bon-dans-le_4bd1cdafd8ed2bdade64e7f0dde44a4a-150x150.jpg&quot; alt=&quot;Astérix et Obélix : Au service de Sa Majesté &quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De plus, alors que l&apos;anachronisme de la BD est connu mais léger, celui de ce film est lourd : des huttes celtes renferment des habitations aux décorations victorienne. Usant. Ces deux points sont bien fatigant et gâche le potentiel du film.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Par contre, les normands, avec un Dany Boon en principal représentant, s&apos;en sortent très bien. J&apos;ai beau ne pas aimé l&apos;acteur en général, ici, il se laisse regarder et assume très bien son rôle de géant du nord.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Au final, le film se révèle en demi teinte : les acteurs sont à leur place (ou presque ...) mais une ouverture à l&apos;internationale et une liberté moins grande sur les anachronismes aurait rendu le film parfait. N°2 en qualité dans la saga.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/10/asterix_et_obelix_au_service_de_sa_majeste.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-7352&quot; title=&quot;Astérix et Obélix : Au service de Sa Majesté&quot; src=&quot;/assets/asterix_et_obelix_au_service_de_sa_majeste-224x300.jpg&quot; alt=&quot;Astérix et Obélix : Au service de Sa Majesté&quot; width=&quot;224&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Code Club - Talking code</title>
      <link href="https://francois.aichelbaum.com/2012/10/07/code-club-talking-code" />
      <updated>2012-10-07T15:39:42+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/10/07/code-club-talking-code</id>
      <content type="html">&lt;p&gt;&lt;iframe width=&quot;425&quot; height=&quot;350&quot; src=&quot;https://www.youtube.com/embed/Ci3hY83rUwU&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Création d&amp;#039;une plateforme (S) FTP (S) sécurisée avec authentification centralisée et utilisant divers stockages</title>
      <link href="https://francois.aichelbaum.com/2012/09/26/creation-dune-plateforme-sftps-securisee-avec-authentification-centralisee-et-utilisant-divers-stockages" />
      <updated>2012-09-26T17:02:49+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/09/26/creation-dune-plateforme-sftps-securisee-avec-authentification-centralisee-et-utilisant-divers-stockages</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/FTP-logo.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-7250&quot; title=&quot;FTP&quot; src=&quot;/assets/FTP-logo-150x150.jpg&quot; alt=&quot;FTP&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Il y a quelques années, pour l&apos;un de mes employeurs (un gros CDN français pour ne pas le citer), une problématique s&apos;est posée suite à une utilisation abusive des plateformes FTP. En l&apos;occurrence, il y avait plusieurs serveurs FTP :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sous Windows :IIS, Filezilla Server et CoreFTP (SFTP)&lt;/li&gt;
&lt;li&gt;sous Linux, plusieurs proftpd différents&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Suite à l&apos;utilisation abusive de la plateforme (historique) et l&apos;impossibilité de remonter les traces, il a été demandé de sécuriser l&apos;ensemble. J&apos;en ai profité pour faire pas mal de modifications :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;avoir un seul point d&apos;entrée (un même pool de &lt;em&gt;VIP&lt;/em&gt;) peu importe le service&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;avoir une authentification centralisée que ca soit en FTP, FTP avec SSL ou SFTP (à l&apos;époque avec un Active Directory)&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;avoir une seule et même arborescence pour tous les NAS utilisés, peu importe l&apos;origine et réduire le nombre de comptes clients&lt;/li&gt;
&lt;li&gt;enregistrer toute l&apos;activité des serveurs (accès, commandes exécutées)&lt;/li&gt;
&lt;li&gt;bannir les comportements anormaux&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;J&apos;avais nommé ce genre de plate-forme &lt;em&gt;FTPx&lt;/em&gt;. Je cherchais un nouveau sujet de billet. Je me suis dis que j&apos;allais dépoussiérer cette plateforme (la refaire pour le billet donc) en lui rajoutant une petite couche complémentaire (portsentry, honeypot, ...).&lt;/p&gt;
&lt;p&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2&gt;Avant propos sur la plateforme FTP&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;architecture va se baser exclusivement sur du gratuit. Du coup, je remplace l&apos;Active Directory par un plus basique MySQL. La plateforme montée rapidement se base sur les machines suivantes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;fw&lt;/span&gt; : firewalling et loadbalancing&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx01&lt;/span&gt; &amp;amp; &lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx02&lt;/span&gt; : serveurs SFTP + FTP(S)&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;mysql&lt;/span&gt; : serveur MySQL&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Bien sûr, on pourrait redondé la partie fw ou mysql mais ce n&apos;est pas le sujet de ce billet (je pourrais toujours rédiger un billet dédié s&apos;il y a de la demande pour). Au niveau accès, de l&apos;extérieur, un utilisateur qui fait du SFTP ne pourra pas faire de SSH. De plus, il sera restreint à son arborescence et ne pourra remonté ailleurs.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/ftpx.png&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-7256 aligncenter&quot; title=&quot;Schéma architecture FTPX&quot; src=&quot;/assets/ftpx-300x188.png&quot; alt=&quot;Schéma architecture FTPX&quot; width=&quot;300&quot; height=&quot;188&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Au niveau NAS, je ne ferais que la partie cliente, de manière rapide pour montrer la logique. Donc un serveur NFS et un serveur CIFS sont supposés exister.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On suppose à chaque fois partir d&apos;une Debian légère et plutôt vierge. On ignore l&apos;installation du serveur MySQL qui n&apos;a rien de bien particulier.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Au niveau réseau, on notera les réseaux ainsi :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;x.x.x.y : IP publique se finissant en y (on suppose une /24 de manière abusive)&lt;/li&gt;
&lt;li&gt;z.z.a.y : IP pour le routage vers &lt;span style=&quot;color: #3366ff;&quot;&gt;fw&lt;/span&gt; (on travaille sur une /24 encore)&lt;/li&gt;
&lt;li&gt;z.z.b.y : IP de service entre les serveurs FTP et MySQL&lt;/li&gt;
&lt;li&gt;z.z.c.y : IP de service entre les serveurs FTP et les NAS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Du coup, on se retrouve avec le plan d&apos;adressage suivant :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;fw&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;public : x.x.x.1/24&lt;/li&gt;
&lt;li&gt;honeypot : x.x.x.2/24&lt;/li&gt;
&lt;li&gt;vip : x.x.x.3/24&lt;/li&gt;
&lt;li&gt;vers &lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx01&lt;/span&gt; &amp;amp; &lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx02&lt;/span&gt; : z.z.a.1/24&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx01&lt;/span&gt; &amp;amp; &lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx02&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;vers &lt;span style=&quot;color: #3366ff;&quot;&gt;fw&lt;/span&gt; : z.z.a.11/24 et z.z.a.12/24&lt;/li&gt;
&lt;li&gt;vers &lt;span style=&quot;color: #3366ff;&quot;&gt;mysql&lt;/span&gt; : z.z.b.11/24 et z.z.b.12/24&lt;/li&gt;
&lt;li&gt;vers les &lt;span style=&quot;color: #3366ff;&quot;&gt;nas&lt;/span&gt; : z.z.c.11/24 et z.z.c.12/24&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;mysql&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;vers &lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx01&lt;/span&gt; &amp;amp; &lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx02&lt;/span&gt; : z.z.b.21/24&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;nfs&lt;/span&gt; &amp;amp; &lt;span style=&quot;color: #3366ff;&quot;&gt;cifs&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;vers &lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx01&lt;/span&gt; &amp;amp; &lt;span style=&quot;color: #3366ff;&quot;&gt;ftpx02&lt;/span&gt; : z.z.c.31/24 &amp;amp; z.z.c.32/24&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Création de fw&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On commence par installer les premiers packages.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;apt-get -y install bind9 libnetfilter-conntrack3 ldirectord apticron ntp iptables module-assistant xtables-addons-common honeyd fail2ban portsentry&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On implémente le module complémentaire d&apos;iptables.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;module-assistant --verbose --text-mode auto-install xtables-addons&lt;/pre&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Serveur DNS récursif&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On s&apos;installe un serveur DNS récursif en local pour diverses raisons (dont des histoires de performance).&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/bind/named.conf.options
options {
 directory &quot;/var/cache/bind&quot;;
 query-source address * port *;
 forwarders { 208.67.222.222; 208.67.220.220; };
 auth-nxdomain no; # conform to RFC1035
 listen-on-v6 { none; };
 listen-on { 127.0.0.1; };
 allow-transfer { none; };
 allow-query { any; };
 allow-recursion { any; };
 version none;
};
EOF
/etc/init.d/bind9 restart
echo &quot;nameserver 127.0.0.1&quot; &amp;gt; /etc/resolv.conf&lt;/pre&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Optimisations système&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On s&apos;applique à faire quelques optimisations qui seront bien pratique pour la suite.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/security/limits.conf
* - nofile 65536
EOF
cat &amp;lt;&amp;lt; EOF &amp;gt;&amp;gt; /etc/profile
ulimit -n 65536
EOF
cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/sysctl.conf
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.arp_filter = 1
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 4194304
net.core.wmem_max = 4194304
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 65536 4194304
net.ipv4.tcp_mem = 4096 65536 4194304
net.ipv4.tcp_low_latency = 0
net.core.netdev_max_backlog = 30000
fs.file-max = 65536
kernel.shmmax = 8000000000
kernel.shmall = 8000000000
net.ipv4.tcp_abort_on_overflow = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65535
vm.min_free_kbytes = 65536
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth1.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.eth1.arp_announce = 2
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_timestamps = 0 
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_keepalive_intvl = 1
net.ipv4.tcp_keepalive_probes = 1 
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 1
net.ipv4.conf.all.proxy_arp = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 1
kernel.core_uses_pid=1
kernel.core_pattern=1
vm.dirty_background_ratio = 20
vm.dirty_ratio = 40
vm.swappiness = 1
vm.dirty_writeback_centisecs = 1500
net.ipv4.tcp_max_syn_backlog = 65536
net.core.optmem_max = 40960
net.ipv4.tcp_max_tw_buckets = 360000
net.ipv4.tcp_reordering = 5
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_rfc1337 = 0
net.core.somaxconn=65536
net.ipv4.tcp_moderate_rcvbuf=1
net.ipv4.tcp_ecn=0
net.ipv4.ip_no_pmtu_disc=0
net.ipv4.tcp_slow_start_after_idle=0
net.netfilter.nf_conntrack_acct=1
net.ipv4.icmp_echo_ignore_broadcasts=1
EOF
sysctl -p&lt;/pre&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Fail2ban &amp;amp; honeypot&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;idée est d&apos;utiliser le honeypot pour bannir les mauvaises personnes. Pour se faire, vu qu&apos;on doit appliquer les règles au niveau de &lt;span style=&quot;color: #3366ff;&quot;&gt;fw&lt;/span&gt;, aussi bien pour du INPUT que du FORWARD et sur plusieurs IP, on va le faire via fail2ban.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/rc.local
farpd x.x.x.2 -i eth0
/usr/local/bin/rules.sh start 
exit 0
EOF&lt;/pre&gt;
&lt;pre&gt;farpd x.x.x.2 -i eth0
wget http://www.alunos.di.uminho.pt/~a43175/code/perl/customPie.pm -O /etc/honeypot/customPie.pm
wget http://www.alunos.di.uminho.pt/~a43175/code/perl/buildPie.pl -O /etc/honeypot/buildPie.pl
cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/default/honeyd
RUN=&quot;yes&quot;
INTERFACE=&quot;eth0&quot;
NETWORK=x.x.x.2
OPTIONS=&quot;--disable-webserver&quot;
EOF&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/honeypot/honeyd.conf
create win2k
set win2k personality &quot;Microsoft Windows 2000 SP2&quot;
set win2k default tcp action block
set win2k default udp action block
set win2k default icmp action block
set win2k uptime 3567
set win2k droprate in 13
add win2k tcp port 23 &quot;sh /usr/share/honeyd/scripts/unix/linux/suse8.0/telnetd.sh $ipsrc $sport $ipdst $dport&quot;
add win2k tcp port 21 &quot;sh /usr/share/honeyd/scripts/win32/win2k/msftp.sh $ipsrc $sport $ipdst $dport&quot;
add win2k tcp port 25 &quot;sh /usr/share/honeyd/scripts/win32/win2k/exchange-smtp.sh $ipsrc $sport $ipdst $dport&quot;
#add win2k tcp port 80 &quot;sh /usr/share/honeyd/scripts/win32/win2k/iis.sh $ipsrc $sport $ipdst $dport&quot;
add win2k tcp port 110 &quot;sh /usr/share/honeyd/scripts/win32/win2k/exchange-pop3.sh $ipsrc $sport $ipdst $dport&quot;
add win2k tcp port 143 &quot;sh /usr/share/honeyd/scripts/win32/win2k/exchange-imap.sh $ipsrc $sport $ipdst $dport&quot;
add win2k tcp port 389 &quot;sh /usr/share/honeyd/scripts/win32/win2k/ldap.sh $ipsrc $sport $ipdst $dport&quot;
add win2k tcp port 5901 &quot;sh /usr/share/honeyd/scripts/win32/win2k/vnc.sh $ipsrc $sport $ipdst $dport&quot;
add win2k udp port 161 &quot;perl /usr/share/honeyd/scripts/unix/general/snmp/fake-snmp.pl public private --config=/usr/share/honeyd/scripts/unix/general/snmp&quot;
# This will redirect incomming windows-filesharing back to the source
add win2k udp port 137 proxy $ipsrc:137
add win2k udp port 138 proxy $ipsrc:138
add win2k udp port 445 proxy $ipsrc:445
add win2k tcp port 137 proxy $ipsrc:137
add win2k tcp port 138 proxy $ipsrc:138
add win2k tcp port 139 proxy $ipsrc:139
add win2k tcp port 445 proxy $ipsrc:445
bind x.x.x.2 win2k
EOF&lt;/pre&gt;
&lt;pre&gt;/etc/init.d/honeyd restart&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/fail2ban/filter.d/honeyd.conf
[Definition]
failregex = .* S &amp;lt;HOST&amp;gt; .*$
ignoreregex = 
EOF&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/fail2ban/action.d/banhost.conf
[Definition]
actionstart = 
actionstop = 
actioncheck = 
actionban = /usr/local/bin/banip.sh &amp;lt;ip&amp;gt;
actionunban = /usr/local/bin/unbanip.sh &amp;lt;ip&amp;gt;
EOF&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/fail2ban/jail.conf
[DEFAULT]
ignoreip = 127.0.0.1 x.x.x.1
bantime = 86400
maxretry = 3
backend = polling
destemail = root@localhost
banaction = iptables-multiport
mta = sendmail
protocol = tcp
action_ = %(banaction)s[name=%(__name__)s, port=&quot;%(port)s&quot;, protocol=&quot;%(protocol)s]
action_mw = %(banaction)s[name=%(__name__)s, port=&quot;%(port)s&quot;, protocol=&quot;%(protocol)s]
 %(mta)s-whois[name=%(__name__)s, dest=&quot;%(destemail)s&quot;, protocol=&quot;%(protocol)s]
action_mwl = %(banaction)s[name=%(__name__)s, port=&quot;%(port)s&quot;, protocol=&quot;%(protocol)s]
 %(mta)s-whois-lines[name=%(__name__)s, dest=&quot;%(destemail)s&quot;, logpath=%(logpath)s]

action = %(action_)s
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
[honeyd]
enabled = trueinitctl list
filter = honeyd
port = all
logpath = /var/log/honeypot/honeyd.log
maxretry = 1
banaction = banhost
EOF&lt;/pre&gt;
&lt;pre&gt;/etc/init.d/fail2ban restart&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Toute personne tentant d&apos;ouvrir un port sur l&apos;honeypot sera automatiquement banni de la plateforme à coup de TARPIT pour la partie TCP et de DROP pour tout le reste.&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Portsentry&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Comment lutter contre un scan de port ? Grâce à portsentry bien sûr !&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/default/portsentry
TCP_MODE=&quot;atcp&quot;
UDP_MODE=&quot;audp&quot;
EOF&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/portsentry/portsentry.conf
TCP_PORTS=&quot;1,7,9,11,15,20,21,2370,79,109,110,111,119,138,139,143,512,513,514,515,540,635,1080,1524,2000,2001,4000,4001,5742,6000,6001,6667,12345,12346,20034,27665,30303,32771,32772,32773,32774,31337,40421,40425,49724,54320&quot;
UDP_PORTS=&quot;1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,518,635,640,641,666,700,2049,31335,27444,34555,32770,32771,32772,32773,32774,31337,54321&quot;
ADVANCED_PORTS_TCP=&quot;65536&quot;
ADVANCED_PORTS_UDP=&quot;65536&quot;
ADVANCED_EXCLUDE_TCP=&quot;80&quot;
ADVANCED_EXCLUDE_UDP=&quot;&quot;
IGNORE_FILE=&quot;/etc/portsentry/portsentry.ignore&quot;
HISTORY_FILE=&quot;/var/lib/portsentry/portsentry.history&quot;
BLOCKED_FILE=&quot;/var/lib/portsentry/portsentry.blocked&quot;
RESOLVE_HOST = &quot;0&quot;
BLOCK_UDP=&quot;2&quot;
BLOCK_TCP=&quot;2&quot;
KILL_ROUTE=&quot;/sbin/route add -host $TARGET$ reject&quot;
KILL_HOSTS_DENY=&quot;ALL: $TARGET$ : DENY&quot;
KILL_RUN_CMD_FIRST = &quot;0&quot;
KILL_RUN_CMD=&quot;/usr/local/bin/banip.sh $TARGET$&quot;
SCAN_TRIGGER=&quot;0&quot;
EOF&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/portsentry/portsentry.ignore.static
208.67.222.222
208.67.220.220
x.x.x.254
EOF&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Encore une fois, on va utiliser un script qui va nous bannir correctement l&apos;IP sur l&apos;ensemble de la plateforme.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Toute personne tentant un scan de port sera automatiquement banni de la plateforme à coup de TARPIT pour la partie TCP et de DROP pour tout le reste.&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Scripting&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On va utiliser quelques scripts selon la tâche à exécuter :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rules.sh va définir les règles par défaut&lt;/li&gt;
&lt;li&gt;banip.sh va bannir une IP donnée&lt;/li&gt;
&lt;li&gt;unbanip.sh va débannir une IP donnée&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /usr/local/bin/rules.sh
#!/bin/bash&lt;/pre&gt;
&lt;pre&gt;start() {
 echo &quot;Routing&quot;
 iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
 iptables -t nat -A PREROUTING -d x.x.x.3 -m tcp -p tcp --dport 21 -j DNAT --to-destination z.z.a.11
 iptables -t nat -A PREROUTING -d x.x.x.3 -m tcp -p tcp --dport 22 -j DNAT --to-destination z.z.a.11
 iptables -t mangle -A PREROUTING -i eth0 -p tcp -s 0.0.0.0/0 -d x.x.x.3/32 --dport ftp -j MARK --set-mark 1
 iptables -t mangle -A PREROUTING -i eth0 -p tcp -s 0.0.0.0/0 -d x.x.x.3/32 --dport 55000: -j MARK --set-mark 1
 for chain in INPUT FORWARD; do
  echo &quot;Block DOS - $chain - Ping of Death&quot;
  iptables -A $chain -p ICMP --icmp-type echo-request -m length --length 60:65535 -j ACCEPT;
  echo &quot;Block DOS - $chain - Teardrop&quot;
  iptables -A $chain -p UDP -f -j DROP;
  echo &quot;Block DDOS - $chain - SYN-flood&quot;
  iptables -A $chain -p TCP ! --syn -m state --state NEW -j TARPIT;
  iptables -A $chain -p TCP ! --syn -m state --state NEW -j DROP;
  echo &quot;Block DDOS - $chain - Smurf&quot;
  iptables -A $chain -m pkttype --pkt-type broadcast -j DROP;
  iptables -A $chain -p ICMP --icmp-type echo-request -m pkttype --pkt-type broadcast -j DROP;
  iptables -A $chain -p ICMP --icmp-type echo-request -m limit --limit 3/s -j ACCEPT;
  echo &quot;Block DDOS - $chain - UDP-flood (Pepsi)&quot;
  iptables -A $chain -p UDP --dport 7 -j DROP;
  iptables -A $chain -p UDP --dport 19 -j DROP;
  echo &quot;Block DDOS - $chain - SMBnuke&quot;
  iptables -A $chain -p UDP --dport 135:139 -j DROP;
  iptables -A $chain -p TCP --dport 135:139 -j TARPIT;
  iptables -A $chain -p TCP --dport 135:139 -j DROP;
  echo &quot;Block DDOS - $chain - Connection-flood&quot;
  iptables -A $chain -p TCP --syn -m connlimit --connlimit-above 3 -j TARPIT;
  iptables -A $chain -p TCP --syn -m connlimit --connlimit-above 3 -j DROP;
  echo &quot;Block DDOS - $chain - Fraggle&quot;
  iptables -A $chain -p UDP -m pkttype --pkt-type broadcast -j DROP;
  iptables -A $chain -p UDP -m limit --limit 3/s -j ACCEPT;
  echo &quot;Block DDOS - $chain - Jolt&quot;
  iptables -A $chain -p ICMP -f -j DROP; 
 done
 /etc/init.d/portsentry start
}
stop() {
 /etc/init.d/portsentry stop
 iptables -F
 iptables -X 
 iptables -F -t nat
 iptables -X -t nat
 iptables -F -t mangle
 iptables -X -t mangle
}
case &quot;$1&quot; in
 start)
  start
  ;;
 stop)
  stop
  ;;
 restart|reload)
  stop
  start
  ;;
 *)
  echo &quot;$0 &amp;lt;start|stop|restart|reload&amp;gt;&quot;
  exit 1
  ;;
esac
exit 0
EOF&lt;/pre&gt;
&lt;pre&gt;chmod +x /usr/local/bin/rules.sh&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /usr/local/bin/banip.sh
#!/bin/bash
if [ $# -ne 1 ]; then
 echo &quot;usage: $0 IP&quot;;
 exit 1;
fi&lt;/pre&gt;
&lt;pre&gt;/sbin/iptables -I INPUT -s $1 -m tcp -p tcp -j TARPIT 
/sbin/iptables -I INPUT -s $1 -j DROP 
/sbin/iptables -I FORWARD -s $1 -m tcp -p tcp -j TARPIT 
/sbin/iptables -I FORWARD -s $1 -j DROP 
/sbin/iptables -I INPUT -s $1 -m limit --limit 1/minute --limit-burst 3 -j LOG --log-level debug --log-prefix &apos;Portsentry: tarpiting: &apos;
exit 0
EOF&lt;/pre&gt;
&lt;pre&gt;chmod +x /usr/local/bin/banip.sh&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /usr/local/bin/unbanip.sh
#!/bin/bash
if [ $# -ne 1 ]; then
 echo &quot;usage: $0 IP&quot;;
 exit 1;
fi
for chain in INPUT FORWARD; do
 for id in `iptables -L $chain -n --line-numbers | grep $1 | awk &apos;{ print $1 }&apos;`; do
  iptables -D $chain $id;
 done
done
exit 0
EOF&lt;/pre&gt;
&lt;pre&gt;chmod +x /usr/local/bin/unbanip.sh&lt;/pre&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Load balancing&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On enchaine avec le load balancing. On déclare l&apos;IP de la VIP en alias.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt;&amp;gt; /etc/network/interfaces
auto eth0:0
iface eth0:0 inet static
 address x.x.x.3
 netmask 255.255.255.255
EOF&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Puis on configure le load balancing en lui-même. Attention, le serveur FTP va fonctionner en mode passif, donc on prévoir l&apos;ouverture des ports dynamiques et non prévisibles au niveau du load balancing.&lt;/p&gt;
&lt;pre&gt;echo CONFIG_FILE=/etc/ldirectord.cf &amp;gt;&amp;gt; /etc/default/ldirectord&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/ldirectord.cf
 checktimeout=1
 negotiatetimeout=1
 checkinterval=5
 autoreload=yes
 logfile=&quot;l0&quot;
 quiescent=yes
 virtual=1
 real=z.z.a.11 gate
 real=z.z.a.12:21 gate
 service=ftp
 scheduler=lc
 protocol=fwm
 persistent=5
 checktype=negotiate
 virtual=x.x.x.3:22
 real=z.z.a.11:22 gate
 real=z.z.a.12:22 gate
 service=ftp
 scheduler=lc
 protocol=tcp
 persistent=5
 checktype=negotiate
 EOF&lt;/pre&gt;
&lt;pre&gt;/etc/init.d/ldirectord restart&lt;/pre&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Création d&apos;un serveur ftpx&lt;/h2&gt;
&lt;p&gt;On commence par installer les premiers packages.&lt;/p&gt;
&lt;pre&gt;apt-get -y install bind9 iptables fail2ban libpam-mysql mysql-client libnss-mysql-bg nscd pure-ftpd&lt;/pre&gt;
&lt;h3&gt;SERVEUR DNS RÉCURSIF&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On s&apos;installe un serveur DNS récursif en local pour diverses raisons (dont des histoires de performance).&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/bind/named.conf.options
options {
 directory &quot;/var/cache/bind&quot;;
 query-source address * port *;
 forwarders { 208.67.222.222; 208.67.220.220; };
 auth-nxdomain no; # conform to RFC1035
 listen-on-v6 { none; };
 listen-on { 127.0.0.1; };
 allow-transfer { none; };
 allow-query { any; };
 allow-recursion { any; };
 version none;
};
EOF
/etc/init.d/bind9 restart
echo &quot;nameserver 127.0.0.1&quot; &amp;gt; /etc/resolv.conf&lt;/pre&gt;
&lt;h3&gt;OPTIMISATIONS SYSTÈME&lt;/h3&gt;
&lt;p&gt;On s&apos;applique à faire quelques optimisations qui seront bien pratique pour la suite.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/security/limits.conf
* - nofile 65536
EOF
cat &amp;lt;&amp;lt; EOF &amp;gt;&amp;gt; /etc/profile
ulimit -n 65536
EOF
cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/sysctl.conf
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.arp_filter = 1
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 4194304
net.core.wmem_max = 4194304
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 65536 4194304
net.ipv4.tcp_mem = 4096 65536 4194304
net.ipv4.tcp_low_latency = 0
net.core.netdev_max_backlog = 30000
fs.file-max = 65536
kernel.shmmax = 8000000000
kernel.shmall = 8000000000
net.ipv4.tcp_abort_on_overflow = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65535
vm.min_free_kbytes = 65536
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth1.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.eth1.arp_announce = 2
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_timestamps = 0 
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_keepalive_intvl = 1
net.ipv4.tcp_keepalive_probes = 1 
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 1
net.ipv4.conf.all.proxy_arp = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 1
kernel.core_uses_pid=1
kernel.core_pattern=1
vm.dirty_background_ratio = 20
vm.dirty_ratio = 40
vm.swappiness = 1
vm.dirty_writeback_centisecs = 1500
net.ipv4.tcp_max_syn_backlog = 65536
net.core.optmem_max = 40960
net.ipv4.tcp_max_tw_buckets = 360000
net.ipv4.tcp_reordering = 5
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_rfc1337 = 0
net.core.somaxconn=65536
net.ipv4.tcp_moderate_rcvbuf=1
net.ipv4.tcp_ecn=0
net.ipv4.ip_no_pmtu_disc=0
net.ipv4.tcp_slow_start_after_idle=0
net.netfilter.nf_conntrack_acct=1
net.ipv4.icmp_echo_ignore_broadcasts=1
EOF
sysctl -p&lt;/pre&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Rajout d&apos;un point d&apos;entrée pour syslog-ng&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pensez simplement à rajouter la ligne suivante dans less sources de syslog-ng (/etc/syslog-ng/syslog-ng.conf) pour logguer tout ce que font vos utilisateurs).&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;unix-stream(&quot;/chroot/log&quot; max-connections(2048));&lt;/pre&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Configuration de PAM &amp;amp; NSS pour utiliser MySQL&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On suppose le serveur MySQL pré-installé. On y configure un compte pour PAM et la table d&apos;utilisateurs qui va bien.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF | mysql -u root -h z.z.b.21 -p
CREATE DATABASE pam;
GRANT SELECT ON pam.* TO &apos;pam&apos;@&apos;%&apos; IDENTIFIED BY &apos;pampass&apos;;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pam.* TO &apos;pamadm&apos;@&apos;%&apos; IDENTIFIED BY &apos;pamadmpass&apos;;
FLUSH PRIVILEGES;
USE pam;
CREATE TABLE `accounts` (
`id` INT NOT NULL auto_increment primary key,
`username` VARCHAR( 30 ) NOT NULL ,
`login` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (`username`)
) ENGINE = MYISAM ;
quit;
EOF&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On poursuit avec la modification de nsswitch.conf. Pour cela on remplace les lignes passwd et shadow (mais pas group) :&lt;/p&gt;
&lt;pre&gt;passwd:  compat files  mysql 
shadow:  compat files  mysql&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Puis on prépare l&apos;accès MySQL de nsswitch.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/libnss-mysql.cfg
getpwnam SELECT login,&apos;x&apos;,id+&apos;2000&apos;,&apos;2000&apos;,username,CONCAT(&apos;/opt/ftpx/&apos;,login,login),&apos;/bin/false&apos; \ 
 FROM accounts \ 
 WHERE login=&apos;%1$s&apos; \ 
 LIMIT 1 
getpwuid SELECT login,&apos;x&apos;,id+&apos;2000&apos;,&apos;2000&apos;,username,CONCAT(&apos;/opt/ftpx/&apos;,login,login),&apos;/bin/false&apos; \ 
 FROM accounts \ 
 WHERE id=&apos;%1$u&apos;-2000 \ 
 LIMIT 1 
getspnam SELECT login,pass,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos; \ 
 FROM accounts \ 
 WHERE login=&apos;%1$s&apos; \ 
 LIMIT 1 
getpwent SELECT login,&apos;x&apos;,id+&apos;2000&apos;,&apos;2000&apos;,username,CONCAT(&apos;/opt/ftpx/&apos;,login,login),&apos;/bin/false&apos; \ 
 FROM accounts 
getspent SELECT login,pass,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos;,&apos;&apos; \ 
 FROM accounts 
getgrnam SELECT name,password,gid \ 
 FROM groups \ 
 WHERE name=&apos;%1$s&apos; \ 
 LIMIT 1 
getgrgid SELECT name,password,gid \ 
 FROM groups \
 WHERE gid=&apos;%1$u&apos; \ 
 LIMIT 1 
getgrent SELECT name,password,gid \ 
 FROM groups 
memsbygid SELECT username \ 
 FROM grouplist \ 
 WHERE gid=&apos;%1$u&apos; 
gidsbymem SELECT gid \ 
 FROM grouplist \ 
 WHERE username=&apos;%1$s&apos; 
host z.z.b.21
database pam 
username pam 
password pampass
port 3306
EOF&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/libnss-mysql-root.cfg
host        z.z.b.21 
database    accounts 
username    pamadm
password    pamadmpass
port        3306
EOF&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On ne définit en soit que les utilisateurs à qui on n&apos;impose un groupe bien précis &apos;sftponly&apos;.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;groupadd -g 2000 sftponly&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reste à finir la configuration de PAM.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/pam_mysql.conf
users.host=z.z.b.21
users.db_user=pamadm
users.db_passwd=pamadmpass
users.database=pam
users.table=accounts 
users.user_column=login 
users.password_column=pass 
users.password_crypt=2
verbose=1
EOF&lt;/pre&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;echo auth   required     pam_mysql.so    config_file=/etc/pam_mysql.conf &amp;gt;&amp;gt; /etc/pam.d/common-auth
echo account required pam_mysql.so config_file=/etc/pam_mysql.conf &amp;gt;&amp;gt; /etc/pam.d/common-account
echo session required pam_mysql.so config_file=/etc/pam_mysql.conf &amp;gt;&amp;gt; /etc/pam.d/common-session 
echo password required pam_mysql.so config_file=/etc/pam_mysql.conf &amp;gt;&amp;gt; /etc/pam.d/common-password&lt;/pre&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Restrictions pour SSH&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Maintenant que l&apos;on peut s&apos;authentifier avec des données en base, il faut restreindre la partie SSH. Le chroot de base ne me convient pas. En effet, il nécessite que le groupe d&apos;utilisateurs ait accès en lecture au dossier parent. Or, je souhaite leur restreindre un maximum la visibilité sur leurs petits voisins. Pour cela, il faut patcher openssh en conséquence.&lt;/p&gt;
&lt;pre&gt;apt-get source openssh-server
apt-get build-dep openssh-server
cd openssh-5.9p1
cat &amp;lt;&amp;lt; EOF &amp;gt; patch.diff
--- session.c.orig 2012-09-26 15:34:02.119243513 +0200
+++ session.c 2012-09-26 15:34:24.951244387 +0200
@@ -1457,7 +1457,7 @@
 if (stat(component, &amp;amp;st) != 0)
 fatal(&quot;%s: stat(\&quot;%s\&quot;): %s&quot;, __func__,
 component, strerror(errno));
- if (st.st_uid != 0 || (st.st_mode &amp;amp; 022) != 0)
+ if (st.st_uid != 0 || (st.st_mode &amp;amp; 077) != 0)
 fatal(&quot;bad ownership or modes for chroot &quot;
 &quot;directory %s\&quot;%s\&quot;&quot;, 
 cp == NULL ? &quot;&quot; : &quot;component &quot;, component);
EOF 
patch &amp;lt; patch.diff 
dpkg-buildpackage -rfakeroot -sa -b
cd ..
dpkg -i openssh-server*deb
rm -fR openssh*&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On peut maintenant finaliser la configuration d&apos;openssh.&lt;/p&gt;
&lt;pre&gt;sed &quot;s^Subsystem sftp /usr/lib/openssh/sftp-server^^&quot; /etc/ssh/sshd_config
mkdir /opt/sftpd
chmod 700 /opt/sftpd
cat &amp;lt;&amp;lt; EOF &amp;gt;&amp;gt; /etc/ssh/sshd_config
Subsystem sftp internal-sftp -f AUTH -l VERBOSE
Match Group sftponly
        ChrootDirectory /opt/sftp/%u/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        GatewayPorts no
        X11Forwarding no
EOF
/etc/init.d/ssh restart&lt;/pre&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Mise en place de la partie FTP&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On va utiliser pure-ftpd. Pourquoi ? Pour une raison parfaitement objective indépendante de toute pollution extérieure : juste &quot;j&apos;aime bien&quot;. Au delà de ce point, il reste un très bon produit.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/default/pure-ftpd-common
STANDALONE_OR_INETD=standalone
VIRTUALCHROOT=true
UPLOADUID=
UPLOADGID=
EOF&lt;/pre&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;echo yes &amp;gt; /etc/pure-ftpd/auth/65unix
echo yes &amp;gt; /etc/pure-ftpd/auth/70pam&lt;/pre&gt;
&lt;pre&gt;echo 1 &amp;gt; AllowUserFXP
echo stats:/var/log/pure-ftpd/transfer.log &amp;gt; AltLog
echo 21 &amp;gt; Bind
echo yes &amp;gt; ChrootEveryone
echo 1 &amp;gt; CustomerProof
echo 1 &amp;gt; DisplayDotFiles
echo 1 &amp;gt; DontResolve
echo UTF-8 &amp;gt; FSCharset
echo 100 &amp;gt; MaxClientsNumber
echo 10 &amp;gt; MaxClientsPerIP
echo 99 &amp;gt; MaxDiskUsage
echo 5 &amp;gt; MaxIdleTime
echo 2000 &amp;gt; MinUID
echo yes &amp;gt; NoAnonymous
echo 1 &amp;gt; NoTruncate
echo yes &amp;gt; PAMAuthentication
echo 55000 56000 &amp;gt; PassivePortRange
echo /etc/pure-ftpd/pureftpd.pdb &amp;gt; PureDB
echo ftp &amp;gt; SyslogFacility
echo 1 &amp;gt; TLS
echo 117 007 &amp;gt; Umask
echo yes &amp;gt; UnixAuthentication
echo 1 &amp;gt; VerboseLog&lt;/pre&gt;
&lt;pre&gt;mkdir -p /etc/ssl/private
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem&lt;/pre&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;/etc/init.d/pure-ftpd restart&lt;/pre&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Montage des arborescences réelles et virtuelles&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Comme à l&apos;habitude, vous monter vos différents points d&apos;accès NFS et CIFS. On suppose qu&apos;il s&apos;agit de sous dossier de /mnt.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/init.d/masquerade
#!/bin/sh
case &quot;$1&quot; in
start)
 echo &quot;Start &apos;masquarade&apos;...&quot;
 echo &quot; mount remote fs&quot;
 mount -t cifs -a
 mount -t nfs -a
 echo &quot; enslave remote fs&quot;
 mount --make-slave /mnt/cifs01
 mount --make-slave /mnt/cifs02
 mount --make-slave /mnt/cifs03
 mount --make-slave /mnt/nfs01
 mount --make-slave /mnt/nfs02
 mount --make-slave /mnt/nfs03
 echo &quot; bind user mounts/chroot&quot;
 /usr/local/bin/masquarade.sh add &amp;gt; /var/log/masquarade.log 2&amp;gt; /var/log/masquarade.err
 [ $? -ne 0 ] &amp;amp;&amp;amp; echo &quot; failed to bind all users mounts/chroots.&quot;
 ;;
stop)
 echo &quot;Stop &apos;masquarade&apos;...&quot;
 echo &quot; unbind users mounts/chroot&quot; 
 /usr/local/bin/masquarade.sh del &amp;gt; /var/log/masquarade.log 2&amp;gt; /var/log/masquarade.err
 [ $? -ne 0 ] &amp;amp;&amp;amp; echo &quot; failed to unbind all users mounts/chroots.&quot;
 echo &quot; free remote fs&quot;
 umount /mnt/cifs01
 umount /mnt/cifs02
 umount /mnt/cifs03
 umount /mnt/nfs01
 umount /mnt/nfs02
 umount /mnt/nfs03
 ;;
restart)
 $0 stop
 sleep 5
 $0 start
 ;;
reload)
 $0 restart
 ;;
force-reload)
 $0 restart
 ;;
*)
 echo &quot;Usage: $0 {start|stop|restart|force-reload}&quot; &amp;gt;&amp;amp;2
 exit 3
 ;;
esac
exit 0
EOF
chmod +x /etc/init.d/masquerade
update-rc.d masquerade defaults&lt;/pre&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; /usr/local/bin/masquarade.sh
#!/bin/bash
CONF=&quot;/usr/local/etc/mounts&quot;
DATE=`date +%s`
# USAGE
function usage()
{
 echo &quot;Usage: $0 &amp;lt;help&amp;gt; &amp;lt;add|del&amp;gt; [[&amp;lt;mount&amp;gt;] ...]&quot;;
 echo &quot; add - to add one or several mount&quot;;
 echo &quot; del - to remove one or several mount&quot;;
 echo &quot; mount - mount name from config file&quot;;
 echo &quot; help - this usage&quot;;
 echo &quot;&quot;;
 echo &quot;If no mount point is provided, all mount points from config file will be treated&quot;;
 echo &quot;Configuration: $CONF&quot;;
 echo &quot;&quot;;
}
# ADD A PMOUNT POINT
function addMount()
{
 touch /tmp/masquarade.$DATE
 if [ $# -ne 0 ]
 then
 echo &quot;[ Traitement de points particuliers ]&quot;
 echo &quot; Preparation du listing: &quot;
 for point in $*
 do
 if [ `grep -ve &apos;^#&apos; $CONF | grep -ve &apos;^\s*$&apos; | grep -F $point | wc -l` -eq 0 ]
 then
 echo &quot; Aucun point $PBIND existant dans la configuration&quot;
 continue
 fi
 grep -ve &apos;^#&apos; $CONF | grep -ve &apos;^\s*$&apos; | grep -F $point &amp;gt;&amp;gt; /tmp/masquarade.$DATE
 done
 else
 echo &quot;[ Utilisation du fichier complet ]&quot;
 echo &quot; Preparation du listing: &quot;
 grep -ve &apos;^#&apos; $CONF | grep -ve &apos;^\s*$&apos; &amp;gt;&amp;gt; /tmp/masquarade.$DATE
 fi
 cat /tmp/masquarade.$DATE | while read line
 do
 # extract data for mount point
 PTYPE=`echo $line | awk -F&apos;;&apos; &apos;{ print $1 }&apos;` # NOT USED
 PMOUNT=`echo $line | awk -F&apos;;&apos; &apos;{ print $3 }&apos;`
 PBIND=`echo $line | awk -F&apos;;&apos; &apos;{ print $2 }&apos;`
 PRIGHTS=`echo $line | awk -F&apos;;&apos; &apos;{ print $4 }&apos;`
 echo -n &quot;( + ) $PBIND: &quot;
 # check the source
 if [ ! -d $PMOUNT ]
 then
 echo &quot;$PMOUNT n&apos;existe pas&quot;;
 continue
 fi
 # create the binding
 mkdir -p $PBIND
 #echo &quot;mount -vvv -o bind $PMOUNT $PBIND&quot; &amp;amp;&amp;gt; /tmp/pouet.log; 
 #mount -vvv -o bind $PMOUNT $PBIND &amp;amp;&amp;gt;&amp;gt; /tmp/pouet.log; 
 mount -o bind $PMOUNT $PBIND 2&amp;gt; /dev/null;
 if [ $? -ne 0 ]
 then
 echo &quot; impossible de monter $PBIND&quot;
 continue
 fi
 if [ $PRIGHTS == &quot;ro&quot; ]
 then
 mount -o remount,ro $PBIND 2&amp;gt; /dev/null
 if [ $? -ne 0 ]
 then
 echo &quot; impossible de passer $PBIND en lecture seule&quot;
 continue
 fi
 fi
 echo -n &quot;$PBIND mounted ($PRIGHTS) &quot;
 echo &quot;ok&quot;
 done
 if [ $# -ne 0 ]
 then
 for point in $*
 do
 account=${point#/opt/sftp/}
 account=${account%/*}
 echo -n &quot;* $account: &quot;
 if [ `mount | grep -F /opt/sftp/$account/dev | wc -l` -gt 0 ]
 then
 echo &quot;already exists&quot;
 else
 mkdir -p /opt/sftp/$account/$account/dev/ 2&amp;gt; /dev/null
 mount -o bind /chroot/ /opt/sftp/$account/$account/dev/ 2&amp;gt; /dev/null
 chmod 700 /opt/sftp/$account 2&amp;gt; /dev/null
 chown root:root /opt/sftp/$account 2&amp;gt; /dev/null
 chmod 500 /opt/sftp/$account/$account/dev 2&amp;gt; /dev/null
 fi
 echo &quot;ok&quot;
 done
 else
 for account in `ls /opt/sftp`; do
 echo -n &quot;* $account: &quot;
 if [ `mount | grep -F /opt/sftp/$account/$account/dev | wc -l` -gt 0 ]
 then
 echo &quot;already exists&quot;
 else
 mkdir -p /opt/sftp/$account/$account/dev/ 2&amp;gt; /dev/null
 mount -o bind /chroot/ /opt/sftp/$account/$account/dev/ 2&amp;gt; /dev/null
 chmod 700 /opt/sftp/$account 2&amp;gt; /dev/null
 chown root:root /opt/sftp/$account 2&amp;gt; /dev/null
 chmod 500 /opt/sftp/$account/$account/dev 2&amp;gt; /dev/null
 fi
 echo &quot;ok&quot;
 done
 fi
 rm -f /tmp/masquarade.$DATE
 return
}
# DELETE A PMOUNT POINT
function delMount()
{
 if [ $# -ne 0 ]
 then
 echo &quot;[ Traitement de points particuliers ]&quot;
 echo &quot; Preparation du listing: &quot;
 for point in $*
 do
 if [ `grep -ve &apos;^#&apos; $CONF | grep -ve &apos;^\s*$&apos; | grep -F $point | wc -l` -eq 0 ]
 then
 echo &quot; Aucun point $PBIND existant dans la configuration&quot;
 continue
 fi
 grep -ve &apos;^#&apos; $CONF | grep -ve &apos;^\s*$&apos; | grep -F $point &amp;gt;&amp;gt; /tmp/masquarade.$DATE
 done
 else
 echo &quot;[ Utilisation du fichier complet ]&quot;
 echo &quot; Preparation du listing: &quot; 
 grep -ve &apos;^#&apos; $CONF | grep -ve &apos;^\s*$&apos; &amp;gt;&amp;gt; /tmp/masquarade.$DATE
 echo &quot; Retrait des logs&quot;
 for account in `ls /opt/sftp`
 do
 umount -f /opt/sftp/$account/$account/dev/ 2&amp;gt; /dev/null
 #rmdir /opt/sftp/$account/$account/dev/ 2&amp;gt; /dev/null
 done
 fi
 tac /tmp/masquarade.$DATE | while read line
 do
 PBIND=`echo $line | awk -F&apos;;&apos; &apos;{ print $2 }&apos;`
 PRIGHTS=`echo $line | awk -F&apos;;&apos; &apos;{ print $4 }&apos;`
 echo -n &quot;( - ) $PBIND: &quot;
 if [ `grep $PBIND /proc/mounts | grep -v grep | wc -l` -eq 0 ]
 then
 echo &quot;$PBIND n&apos;est pas/plus monte&quot;
 else
 umount -f $PBIND 2&amp;gt; /dev/null
 if [ $? -ne 0 ]
 then
 echo &quot;Impossible de demonter $PBIND&quot;
 continue
 fi
 fi
 echo &quot;ok&quot;
 done
 rm /tmp/masquarade.$DATE
}
if [ $# -eq 0 ]
then
 usage
 exit 0
fi
if [ ! -f $CONF ]
then
 echo &quot;Fichier $CONF manquant !&quot;
 echo &quot;Syntaxe du fichier: PTYPE;PMOUNT;PBIND;PRIGHTS&quot;
 exit 1
fi
action=0;
pos=0;
points=&quot;&quot;;
for arg in `echo $*`; do
 ((pos++))
 case &quot;$arg&quot; in
 help)
 usage;
 exit 0;
 ;;
 add)
 action=1;
 if [ $# -eq 1 ]; then
 addMount;
 fi
 ;;
 del)
 action=-1;
 if [ $# -eq 1 ]; then
 delMount;
 fi
 ;;
 *)
 points=&quot;${points} $arg&quot;;
 if [ $pos -eq $# ]; then
 if [ $action -eq 0 ]; then
 usage;
 exit 0;
 else if [ $action -gt 0 ]; then
 addMount $points;
 else 
 delMount $points;
 fi
 fi
 exit 0;
 fi
 ;;
 esac
done
exit 0
EOF 
chmod +x /usr/local/bin/masquarade.sh&lt;/pre&gt;
&lt;pre&gt;/etc/init.d/masquerade start&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;idée est que chaque utilisateur est isolé et chrooté dans son coin. Il ne remonte pas l&apos;arborescence et n&apos;a même pas les droits en lecture chez ses voisins. De plus, chaque action peut être loguée puisque transmise à syslog-ng.&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;VIP&lt;/h3&gt;
&lt;p&gt;Pour que le load balancing fonctionne avec la bonne IP dans le paquet réseau, on pense à définir un alias.&lt;/p&gt;
&lt;pre&gt;cat &amp;lt;&amp;lt; EOF &amp;gt;&amp;gt; /etc/network/interfaces
auto lo:0
iface lo:0 inet static
 address x.x.x.3
 netmask 255.255.255.255
EOF&lt;/pre&gt;
&lt;div&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Création d&apos;un utilisateur&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Avec votre client MySQL préféré (CLI, phpMyAdmin, autre...), il vous suffit alors de rajouter une entrée en respectant les points suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;username correspond au nom de l&apos;utilisateur (par ex, &quot;Nom Prénom&quot;)&lt;/li&gt;
&lt;li&gt;login correspond à son identifiant&lt;/li&gt;
&lt;li&gt;pass est le mot de passe encrypté via la fonction PASSWORD() de MySQL&lt;/li&gt;
&lt;li&gt;id est laissé vide pour être automatiquement incrémenté.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Avec cette base de plateforme, vous avez de quoi avoir un dépôt de fichiers multi utilisateur en FTP (avec ou sans SSL) et en SFTP avec un seule et unique point d&apos;authentification, et pas mal de sécurisation au niveau des accès et remontées d&apos;arborescence. Si vous avez des questions ou remarque, comme à l&apos;habitude, n&apos;hésitez pas.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Merci à Guillaume Vaillant qui m&apos;a ressorti mes archives.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Jason Bourne : l&amp;#039;héritage ... en maison de retraite</title>
      <link href="https://francois.aichelbaum.com/2012/09/20/jason-bourne-lheritage-en-maison-de-retraite" />
      <updated>2012-09-20T10:57:27+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/09/20/jason-bourne-lheritage-en-maison-de-retraite</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/2012_the_bourne_legacy_movie-wide.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-7208&quot; title=&quot;The Bourne Legacy&quot; src=&quot;/assets/2012_the_bourne_legacy_movie-wide-150x150.jpg&quot; alt=&quot;The Bourne Legacy&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Au niveau des films d&apos;action, la trilogie des Jason Bourne était mon petit plaisir de la dernière décennie. Quand un quatrième film, sorte de spin-off/suite avec un autre agent, a été annoncé, j&apos;ai oscillé entre peur (de l&apos;épisode de trop) et plaisir. Héritage lourd d&apos;une trilogie puissante. Héritage pesant d&apos;un agent campé par un Matt Damon ultra performant. Quid de ce nouvel opus ? Aaron Cross sera-t-il plus fort que Jason Bourne ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;L&apos;héritage peut avoir du bon mais aussi du mauvais&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le premier Jason Bourne avait créé une petite surprise en soit, avec un rythme effreiné et quelques pauses pour permettre au spectateur de reprendre son souffle. Les deux opus suivants, en respectant le schéma, permettait de découvrir un peu plus de l&apos;univers Bourne. Ce quatrième opus nous propulse donc à la poursuite de Cross, agent à éliminer suite aux révélations de Bourne.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=jMzs8Hew770[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors que la première trilogique se basait sur les livres de &lt;a href=&quot;http://fr.wikipedia.org/wiki/Robert_Ludlum&quot;&gt;Robert Ludlum&lt;/a&gt;, ce nouvel opus s&apos;inspire de l&apos;oeuvre d&apos;&lt;a href=&quot;http://fr.wikipedia.org/wiki/Eric_Van_Lustbader&quot;&gt;Eric Van Lustbader&lt;/a&gt; qui prend la suite de Ludlum (décédé en 2001). Du coup, on essaie de prendre la même base, dans une aventure en parallèle avec les déboires de Bourne. A défaut d&apos;un vrai rythme effreiné, une caméra trop nerveuse et régulièrement floutée. Du close combat moins bien orchestré et visuel que précédemment. Un agent 10 ans &lt;del&gt;trop&lt;/del&gt; plus vieux par rapport à Bourne. Une intrigue qui se cherche et passe son temps à se raccrocher via des flashs d&apos;infos aux aventures de Bourne. L&apos;héritage se sent. L&apos;incapacité à s&apos;en défaire aussi. A croire que justement, cet héritage est trop lourd à porter. Problème de l&apos;auteur ? Problème du réal ? Problème de la prod ? Tout en même temps, &lt;em&gt;mon Colonel&lt;/em&gt;. Tous se sont fourvoyé. Bien dommage.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/the-bourne-legacy-03-470-75.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7211&quot; title=&quot;The Bourne Legacy&quot; src=&quot;/assets/the-bourne-legacy-03-470-75-150x150.jpg&quot; alt=&quot;The Bourne Legacy&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/the_bourne_legacy_630.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7214&quot; title=&quot;The Bourne Legacy&quot; src=&quot;/assets/the_bourne_legacy_630-150x150.jpg&quot; alt=&quot;The Bourne Legacy&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/rachel-weisz-jeremy-renner-the-bourne-legacy.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7217&quot; title=&quot;The Bourne Legacy&quot; src=&quot;/assets/rachel-weisz-jeremy-renner-the-bourne-legacy-150x150.jpg&quot; alt=&quot;The Bourne Legacy&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/bourne-legacy-rachel-weisz.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7220&quot; title=&quot;The Bourne Legacy&quot; src=&quot;/assets/bourne-legacy-rachel-weisz-150x150.jpg&quot; alt=&quot;The Bourne Legacy&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/bourne-legacy-pic2.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7223&quot; title=&quot;The Bourne Legacy&quot; src=&quot;/assets/bourne-legacy-pic2-150x150.jpg&quot; alt=&quot;The Bourne Legacy&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Je me suis ennuyé mortellement pendant ces 135 minutes de films. Les acteurs ne sont pas mauvais. Mais le scénario n&apos;est pas là, et l&apos;impression d&apos;ECG quasi plat qui émane du film avec quelques sursaut éparses reflète clairement mon ECG pendant le film.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Donc non, Aaron Cross n&apos;est pas meilleur que Jason Bourne. Cross est déjà un retraité que l&apos;on a repeint façon camion volé pour prétendre à une nouveauté et ainsi voler un jackpot commercial non mérité.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/the-bourne-legacy-0v.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-7229 aligncenter&quot; title=&quot;The Bourne Legacy&quot; src=&quot;/assets/the-bourne-legacy-0v-300x225.jpg&quot; alt=&quot;The Bourne Legacy&quot; width=&quot;300&quot; height=&quot;225&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Comparatif des serveurs pour PHP</title>
      <link href="https://francois.aichelbaum.com/2012/09/11/comparatif-des-serveurs-pour-php" />
      <updated>2012-09-11T11:49:09+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/09/11/comparatif-des-serveurs-pour-php</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Après le comparatif des outils de caching et la création d&apos;un CDN (&lt;em&gt;scalable&lt;/em&gt;), voici un comparatif pour le déploiement de PHP. On s&apos;intéresse donc à PHP 5.4 dans les environnements suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;apache22-php-mod&lt;/em&gt; : apache 2.2 + module PHP 5.4&lt;/li&gt;
&lt;li&gt;&lt;em&gt;apache22-php-fpm&lt;/em&gt; : apache 2.2 + PHP 5.4-FPM&lt;/li&gt;
&lt;li&gt;&lt;em&gt;apache24-php-mod&lt;/em&gt; : apache 2.4 + module PHP 5.4&lt;/li&gt;
&lt;li&gt;&lt;em&gt;apache24-php-cgi&lt;/em&gt; : apache 2.4 + PHP 5.4-FPM&lt;/li&gt;
&lt;li&gt;&lt;em&gt;nginx-php&lt;/em&gt; : nginx + PHP 5.4-FPM&lt;/li&gt;
&lt;li&gt;&lt;em&gt;lighttpd-php&lt;/em&gt; : lighttpd + PHP 5.4-FPM&lt;/li&gt;
&lt;li&gt;&lt;em&gt;cherokee-php&lt;/em&gt; : cherokee + PHP 5.4 FCGI&lt;/li&gt;
&lt;li&gt;&lt;em&gt;standalone-php&lt;/em&gt; : PHP 5.4 webserver&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;!--more--&gt;&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On va faire le test en 2 temps :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;utilisation de phpbench pour le théorique&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;utilisation d&apos;un wordpress non optimisé (reprise de ce Wordpress privé des divers plugins d&apos;optimisations)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On utilise wget pour le test pour simplement afficher le résultat : on ne compare pas la capacité des serveurs web à monter en charge. L&apos;idée étant de voir la performance de rendu dans un milieu équivalent, on reprend des machines virtuelles identiques (2 CPU, 8 Go Ram).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour rester dans une logique assez proche, tous les applicatifs testés seront installés par compilation.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Installation de apache22-php-mod&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On commence par les packages requis pour l&apos;installation :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On suit par apache 2.2 :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://mirror.cc.columbia.edu/pub/software/apache//httpd/httpd-2.2.22.tar.gz&lt;br /&gt;
tar -xzf httpd-2.2.22.tar.gz&lt;br /&gt;
cd httpd-2.2.22&lt;br /&gt;
./configure --enable-mime-magic --enable-http --disable-status --enable-so --enable-rewrite --with-mpm=prefork&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On termine par php :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz&lt;br /&gt;
tar -xzf php-5.4.6.tar.gz&lt;br /&gt;
cd php-5.4.6&lt;br /&gt;
./configure --with-apxs2=/usr/local/apache2/bin/apxs --disable-cgi --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On rajout le module sur apache en rajoutant à la fin de  &lt;em&gt;/usr/local/apache2/conf/httpd.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p&gt;[crayon language=apache]LoadModule php5_module /usr/local/apache2/modules/libphp5.so&lt;br /&gt;
&amp;lt;IfModule mod_php5.c&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &quot;\.ph(p3?|tml)$&quot;&amp;gt;&lt;br /&gt;
SetHandler application/x-httpd-php&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &quot;\.phps$&quot;&amp;gt;&lt;br /&gt;
SetHandler application/x-httpd-php-source&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;[/crayon]&lt;/p&gt;
&lt;p&gt;On relance enfin apache :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/usr/local/apache2/bin/apachectl restart[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reste à mettre en place le blog que j&apos;importe - non traîté ici -) et le fichier de benchmark :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]cd /usr/local/apache2/htdocs/&lt;br /&gt;
wget http://www.php-benchmark-script.com/bench.zip &amp;amp;&amp;amp; unzip bench.zip[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reste plus qu&apos;à benchmarker tout à l&apos;heure.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Installation de apache22-php-fpm&lt;/h2&gt;
&lt;p&gt;On commence par les packages requis pour l&apos;installation :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev[/crayon]&lt;/p&gt;
&lt;p&gt;On suit par apache 2.2 :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://mirror.cc.columbia.edu/pub/software/apache//httpd/httpd-2.2.22.tar.gz&lt;br /&gt;
tar -xzf httpd-2.2.22.tar.gz&lt;br /&gt;
cd httpd-2.2.22&lt;br /&gt;
./configure --enable-mime-magic --enable-http --disable-status --enable-so --enable-rewrite --with-mpm=worker&lt;br /&gt;
make &amp;amp;&amp;amp; make install&lt;br /&gt;
cd /usr/src&lt;br /&gt;
wget http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz&lt;br /&gt;
tar -xzf mod_fastcgi-current.tar.gz&lt;br /&gt;
cd mod_fastcgi-2.4.6&lt;br /&gt;
cp Makefile.AP Makefile&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;On rajout le module sur apache en rajoutant à la fin de  &lt;em&gt;/usr/local/apache2/conf/httpd.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p&gt;[crayon language=apache]LoadModule fastcgi_module modules/mod_fastcgi.so&lt;br /&gt;
&amp;lt;IfModule mod_fastcgi.c&amp;gt;&lt;br /&gt;
ScriptAlias /fcgi-bin/ &quot;/usr/local/bin/&quot;&lt;br /&gt;
FastCGIExternalServer /usr/local/bin/php-cgi -host 127.0.0.1:9000 -pass-header Authorization&lt;br /&gt;
AddHandler php-fastcgi .php&lt;br /&gt;
Action php-fastcgi /fcgi-bin/php-cgi&lt;br /&gt;
&amp;lt;Directory /usr/local/bin&amp;gt;&lt;br /&gt;
Order Deny,Allow&lt;br /&gt;
Deny from All&lt;br /&gt;
Allow from env=REDIRECT_STATUS&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;[/crayon]&lt;/p&gt;
&lt;p&gt;On relance enfin apache :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/usr/local/apache2/bin/apachectl restart[/crayon]&lt;/p&gt;
&lt;p&gt;Reste à mettre en place le blog que j&apos;importe - non traîté ici -) et le fichier de benchmark :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/local/apache2/htdocs/&lt;br /&gt;
wget http://www.php-benchmark-script.com/bench.zip &amp;amp;&amp;amp; unzip bench.zip[/crayon]&lt;/p&gt;
&lt;p&gt;On termine par php :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz&lt;br /&gt;
tar -xzf php-5.4.6.tar.gz&lt;br /&gt;
cd php-5.4.6&lt;br /&gt;
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;On préparer FPM en éditant le fichier &lt;em&gt;/usr/local/etc/php-fpm.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p&gt;[crayon][global]&lt;br /&gt;
[www]&lt;br /&gt;
user = www-data&lt;br /&gt;
group = www-data&lt;br /&gt;
listen = 127.0.0.1:9000&lt;br /&gt;
pm = dynamic&lt;br /&gt;
pm.max_children = 5&lt;br /&gt;
pm.start_servers = 2&lt;br /&gt;
pm.min_spare_servers = 1&lt;br /&gt;
pm.max_spare_servers = 3&lt;br /&gt;
php_admin_value[open_basedir]=/usr/local/apache2/htdocs/[/crayon]&lt;/p&gt;
&lt;p&gt;Bien sûr, on lance PHP-FPM :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/usr/local/bin/php-fpm[/crayon]&lt;/p&gt;
&lt;p&gt;Reste plus qu&apos;à benchmarker tout à l&apos;heure.&lt;/p&gt;
&lt;h2&gt;Installation de apache24-php-mod&lt;/h2&gt;
&lt;p&gt;On commence par les packages requis pour l&apos;installation :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]&lt;/p&gt;
&lt;p&gt;On suit par apache 2.4 :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://wwwftp.ciril.fr/pub/apache//httpd/httpd-2.4.3.tar.gz&lt;br /&gt;
tar -xzf httpd-2.4.3.tar.gz&lt;br /&gt;
wget http://mirrors.ircam.fr/pub/apache//apr/apr-1.4.6.tar.gz&lt;br /&gt;
tar -xzf apr-1.4.6.tar.gz -C httpd-2.4.3/srclib/&lt;br /&gt;
wget http://mirrors.ircam.fr/pub/apache//apr/apr-util-1.4.1.tar.gz&lt;br /&gt;
tar -xzf apr-util-1.4.1.tar.gz -C httpd-2.4.3/srclib/&lt;br /&gt;
cd httpd-2.4.3&lt;br /&gt;
mv srclib/apr-1.4.6 srclib/apr&lt;br /&gt;
mv srclib/apr-util-1.4.1 srclib/apr-util&lt;br /&gt;
./configure --enable-mime-magic --enable-http --disable-status --enable-so --enable-rewrite --with-mpm=prefork&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;On termine par php :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz&lt;br /&gt;
tar -xzf php-5.4.6.tar.gz&lt;br /&gt;
cd php-5.4.6&lt;br /&gt;
./configure --with-apxs2=/usr/local/apache2/bin/apxs --disable-cgi --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;On rajout le module sur apache en rajoutant à la fin de  &lt;em&gt;/usr/local/apache2/conf/httpd.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p&gt;[crayon language=apache]LoadModule php5_module /usr/local/apache2/modules/libphp5.so&lt;br /&gt;
&amp;lt;IfModule mod_php5.c&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &quot;\.ph(p3?|tml)$&quot;&amp;gt;&lt;br /&gt;
SetHandler application/x-httpd-php&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &quot;\.phps$&quot;&amp;gt;&lt;br /&gt;
SetHandler application/x-httpd-php-source&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;[/crayon]&lt;/p&gt;
&lt;p&gt;On relance enfin apache :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/usr/local/apache2/bin/apachectl restart[/crayon]&lt;/p&gt;
&lt;p&gt;Reste à mettre en place le blog que j&apos;importe - non traîté ici -) et le fichier de benchmark :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/local/apache2/htdocs/&lt;br /&gt;
wget http://www.php-benchmark-script.com/bench.zip &amp;amp;&amp;amp; unzip bench.zip[/crayon]&lt;/p&gt;
&lt;p&gt;Reste plus qu&apos;à benchmarker tout à l&apos;heure.&lt;/p&gt;
&lt;h2&gt;Installation de apache24-php-fpm&lt;/h2&gt;
&lt;p&gt;On commence par les packages requis pour l&apos;installation :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]&lt;/p&gt;
&lt;p&gt;On suit par apache 2.4 :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://wwwftp.ciril.fr/pub/apache//httpd/httpd-2.4.3.tar.gz&lt;br /&gt;
tar -xzf httpd-2.4.3.tar.gz&lt;br /&gt;
wget http://mirrors.ircam.fr/pub/apache//apr/apr-1.4.6.tar.gz&lt;br /&gt;
tar -xzf apr-1.4.6.tar.gz -C httpd-2.4.3/srclib/&lt;br /&gt;
wget http://mirrors.ircam.fr/pub/apache//apr/apr-util-1.4.1.tar.gz&lt;br /&gt;
tar -xzf apr-util-1.4.1.tar.gz -C httpd-2.4.3/srclib/&lt;br /&gt;
cd httpd-2.4.3&lt;br /&gt;
mv srclib/apr-1.4.6 srclib/apr&lt;br /&gt;
mv srclib/apr-util-1.4.1 srclib/apr-util&lt;br /&gt;
./configure --enable-mime-magic --enable-http --disable-status --enable-so --enable-rewrite --with-mpm=worker --enable-slotmem-shm&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;On rajout le module sur apache en rajoutant à la fin de  &lt;em&gt;/usr/local/apache2/conf/httpd.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p&gt;[crayon language=apache]ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache2/htdocs/$1[/crayon]&lt;/p&gt;
&lt;p&gt;On relance enfin apache :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/usr/local/apache2/bin/apachectl restart[/crayon]&lt;/p&gt;
&lt;p&gt;Reste à mettre en place le blog que j&apos;importe - non traîté ici -) et le fichier de benchmark :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/local/apache2/htdocs/&lt;br /&gt;
wget http://www.php-benchmark-script.com/bench.zip &amp;amp;&amp;amp; unzip bench.zip[/crayon]&lt;/p&gt;
&lt;p&gt;On termine par php :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz&lt;br /&gt;
tar -xzf php-5.4.6.tar.gz&lt;br /&gt;
cd php-5.4.6&lt;br /&gt;
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;On préparer FPM en éditant le fichier &lt;em&gt;/usr/local/etc/php-fpm.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p&gt;[crayon][global]&lt;br /&gt;
[www]&lt;br /&gt;
user = www-data&lt;br /&gt;
group = www-data&lt;br /&gt;
listen = 127.0.0.1:9000&lt;br /&gt;
pm = dynamic&lt;br /&gt;
pm.max_children = 5&lt;br /&gt;
pm.start_servers = 2&lt;br /&gt;
pm.min_spare_servers = 1&lt;br /&gt;
pm.max_spare_servers = 3&lt;br /&gt;
php_admin_value[open_basedir]=/usr/local/apache2/htdocs/[/crayon]&lt;/p&gt;
&lt;p&gt;Bien sûr, on lance PHP-FPM :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/usr/local/bin/php-fpm[/crayon]&lt;/p&gt;
&lt;p&gt;Reste plus qu&apos;à benchmarker tout à l&apos;heure.&lt;/p&gt;
&lt;h2&gt;Installation de nginx-php&lt;/h2&gt;
&lt;p&gt;On commence par les packages requis pour l&apos;installation :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]&lt;/p&gt;
&lt;p&gt;On suit par nginx 1.2.3 :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://nginx.org/download/nginx-1.2.3.tar.gz&lt;br /&gt;
tar -xzf nginx-1.2.3.tar.gz&lt;br /&gt;
cd nginx-1.2.3&lt;br /&gt;
./configure --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;On configure ensuite nginx /usr/local/nginx/conf/nginx.conf :&lt;/p&gt;
&lt;p&gt;[crayon]worker_processes 4;&lt;br /&gt;
events {&lt;br /&gt;
worker_connections 1024;&lt;br /&gt;
}&lt;br /&gt;
http {&lt;br /&gt;
include mime.types;&lt;br /&gt;
default_type application/octet-stream;&lt;br /&gt;
sendfile on;&lt;br /&gt;
keepalive_timeout 65;&lt;br /&gt;
gzip on;&lt;br /&gt;
server {&lt;br /&gt;
listen 80;&lt;br /&gt;
server_name test;&lt;br /&gt;
location ~ \.php$ {&lt;br /&gt;
fastcgi_pass 127.0.0.1:9000;&lt;br /&gt;
fastcgi_index index.php;&lt;br /&gt;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;&lt;br /&gt;
include fastcgi_params;&lt;br /&gt;
}&lt;br /&gt;
location / {&lt;br /&gt;
root /var/www;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}[/crayon]&lt;/p&gt;
&lt;p&gt;On relance enfin nginx :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf[/crayon]&lt;/p&gt;
&lt;p&gt;Reste à mettre en place le blog que j&apos;importe - non traîté ici -) et le fichier de benchmark :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /var/www/&lt;br /&gt;
wget http://www.php-benchmark-script.com/bench.zip &amp;amp;&amp;amp; unzip bench.zip[/crayon]&lt;/p&gt;
&lt;p&gt;On termine par php :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz&lt;br /&gt;
tar -xzf php-5.4.6.tar.gz&lt;br /&gt;
cd php-5.4.6&lt;br /&gt;
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;On préparer FPM en éditant le fichier &lt;em&gt;/usr/local/etc/php-fpm.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p&gt;[crayon][global]&lt;br /&gt;
[www]&lt;br /&gt;
user = www-data&lt;br /&gt;
group = www-data&lt;br /&gt;
listen = 127.0.0.1:9000&lt;br /&gt;
pm = dynamic&lt;br /&gt;
pm.max_children = 5&lt;br /&gt;
pm.start_servers = 2&lt;br /&gt;
pm.min_spare_servers = 1&lt;br /&gt;
pm.max_spare_servers = 3&lt;br /&gt;
php_admin_value[open_basedir]=/usr/local/apache2/htdocs/[/crayon]&lt;/p&gt;
&lt;p&gt;Bien sûr, on lance PHP-FPM :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/usr/local/bin/php-fpm[/crayon]&lt;/p&gt;
&lt;p&gt;Reste plus qu&apos;à benchmarker tout à l&apos;heure.&lt;/p&gt;
&lt;h2&gt;Installation de lighttpd-php&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On commence par les packages requis pour l&apos;installation :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On suit par lighttpd 1.4.31 :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.31.tar.gz&lt;br /&gt;
tar -xzf lighttpd-1.4.31.tar.gz&lt;br /&gt;
cd lighttpd-1.4.31&lt;br /&gt;
./configure --without-bzip2&lt;br /&gt;
make &amp;amp;&amp;amp; make install&lt;br /&gt;
cp -a doc/config /etc/lighttpd&lt;br /&gt;
mkdir /var/www/htdocs&lt;br /&gt;
mkdir /var/log/lighttpd&lt;br /&gt;
chown -R www-data:www-data /var/log/lighttpd /var/www[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On configure ensuite lighttpd&lt;em&gt; /etc/lighttpd/conf.d/fastcgi.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon]server.modules += ( &quot;mod_fastcgi&quot; )&lt;br /&gt;
fastcgi.server += ( &quot;.php&quot; =&amp;gt;&lt;br /&gt;
((&lt;br /&gt;
&quot;host&quot; =&amp;gt; &quot;127.0.0.1&quot;,&lt;br /&gt;
&quot;port&quot; =&amp;gt; &quot;9000&quot;,&lt;br /&gt;
&quot;broken-scriptfilename&quot; =&amp;gt; &quot;enable&quot;&lt;br /&gt;
))&lt;br /&gt;
)[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On met aussi à jour le &lt;em&gt;/etc/lighttpd/lighttpd.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon]server.username = &quot;www-data&quot;&lt;br /&gt;
server.groupname = &quot;www-data&quot;[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On relance enfin lighttpd :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]lighttpd -f /etc/lighttpd/lighttpd.conf[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reste à mettre en place le blog que j&apos;importe - non traîté ici -) et le fichier de benchmark :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]cd /var/www/htdocs/&lt;br /&gt;
wget http://www.php-benchmark-script.com/bench.zip &amp;amp;&amp;amp; unzip bench.zip[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On termine par php :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz&lt;br /&gt;
tar -xzf php-5.4.6.tar.gz&lt;br /&gt;
cd php-5.4.6&lt;br /&gt;
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On préparer FPM en éditant le fichier &lt;em&gt;/usr/local/etc/php-fpm.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon][global]&lt;br /&gt;
[www]&lt;br /&gt;
user = www-data&lt;br /&gt;
group = www-data&lt;br /&gt;
listen = 127.0.0.1:9000&lt;br /&gt;
pm = dynamic&lt;br /&gt;
pm.max_children = 5&lt;br /&gt;
pm.start_servers = 2&lt;br /&gt;
pm.min_spare_servers = 1&lt;br /&gt;
pm.max_spare_servers = 3&lt;br /&gt;
php_admin_value[open_basedir]=/var/www/htdocs/[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Bien sûr, on lance PHP-FPM :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]/usr/local/bin/php-fpm[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reste plus qu&apos;à benchmarker tout à l&apos;heure.&lt;/p&gt;
&lt;h2&gt;Installation de cherokee-php&lt;/h2&gt;
&lt;p&gt;On commence par les packages requis pour l&apos;installation :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]&lt;/p&gt;
&lt;p&gt;On suit par cheroke 1.2.101 :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://cherokee-project.com/install &amp;amp;&amp;amp; python install[/crayon]&lt;/p&gt;
&lt;p&gt;On relance enfin cherokee :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/etc/init.d/cherokee-opt start[/crayon]&lt;/p&gt;
&lt;p&gt;Reste à mettre en place le blog que j&apos;importe - non traîté ici -) et le fichier de benchmark :&lt;/p&gt;
&lt;p&gt;[crayon]cd /opt/cherokee/var/www&lt;br /&gt;
wget http://www.php-benchmark-script.com/bench.zip &amp;amp;&amp;amp; unzip bench.zip[/crayon]&lt;/p&gt;
&lt;p&gt;On termine par php :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz&lt;br /&gt;
tar -xzf php-5.4.6.tar.gz&lt;br /&gt;
cd php-5.4.6&lt;br /&gt;
./configure --enable-fpm --with-fpm-group=www-data --with-fpm-user=www-data --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;On préparer FPM en éditant le fichier &lt;em&gt;/usr/local/etc/php-fpm.conf&lt;/em&gt; :&lt;/p&gt;
&lt;p&gt;[crayon][global]&lt;br /&gt;
[www]&lt;br /&gt;
user = www-data&lt;br /&gt;
group = www-data&lt;br /&gt;
listen = 127.0.0.1:9000&lt;br /&gt;
pm = dynamic&lt;br /&gt;
pm.max_children = 5&lt;br /&gt;
pm.start_servers = 2&lt;br /&gt;
pm.min_spare_servers = 1&lt;br /&gt;
pm.max_spare_servers = 3&lt;br /&gt;
php_admin_value[open_basedir]=/opt/cherokee/var/www/[/crayon]&lt;/p&gt;
&lt;p&gt;Bien sûr, on lance PHP-FPM :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]/usr/local/bin/php-fpm[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On finit par l&apos;implémentation de PHP dans cherokee :&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;[crayon language=shell]/opt/cherokee/sbin/cherokee-admin[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On se connecte à http://127.0.0.1:9090/ :&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/cherokee-accueil.png&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7088&quot; title=&quot;cherokee-accueil&quot; src=&quot;/assets/cherokee-accueil-150x150.png&quot; alt=&quot;&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/cherokee-vservers.png&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7091&quot; title=&quot;cherokee-vservers&quot; src=&quot;/assets/cherokee-vservers-150x150.png&quot; alt=&quot;&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/cherokee-rules.png&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7094&quot; title=&quot;cherokee-rules&quot; src=&quot;/assets/cherokee-rules-150x150.png&quot; alt=&quot;&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/cherokee-addphp.png&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7097&quot; title=&quot;cherokee-addphp&quot; src=&quot;/assets/cherokee-addphp-150x150.png&quot; alt=&quot;&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/cherokee-addphp2.png&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-7100&quot; title=&quot;cherokee-addphp2&quot; src=&quot;/assets/cherokee-addphp2-150x150.png&quot; alt=&quot;&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pensez ensuite à sauvegarder et faire un &quot;Graceful Restart&quot;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reste plus qu&apos;à benchmarker tout à l&apos;heure.&lt;/p&gt;
&lt;h2&gt;Installation de php en standalone&lt;/h2&gt;
&lt;p&gt;On commence par les packages requis pour l&apos;installation :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]aptitude install build-essential libxml2-dev libz-dev libzip-dev libcurl4-gnutls-dev mysql-server mysql-client libmysqlclient-dev libpcre3-dev[/crayon]&lt;/p&gt;
&lt;p&gt;On suit par php :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /usr/src&lt;br /&gt;
wget http://fr2.php.net/get/php-5.4.6.tar.gz/from/fr.php.net/mirror -O php-5.4.6.tar.gz&lt;br /&gt;
tar -xzf php-5.4.6.tar.gz&lt;br /&gt;
cd php-5.4.6&lt;br /&gt;
./configure --with-zlib --with-pcre-regex --with-zlib --with-curl --with-mysql --with-mysqli --with-pdo-mysql --with-xmlrpc --enable-zip --with-pear --enable-bcmath --enable-cli&lt;br /&gt;
make &amp;amp;&amp;amp; make install[/crayon]&lt;/p&gt;
&lt;p&gt;Plus qu&apos;à lancer le serveur intégré :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]nohup /usr/local/bin/php -S 0.0.0.0:80 -t /var/www/ &amp;amp;&amp;gt; /dev/null &amp;amp;[/crayon]&lt;/p&gt;
&lt;p&gt;Bien sûr, il nous faut aussi le script de benchmark (et le blog à importer)&lt;/p&gt;
&lt;p&gt;[crayon language=shell]cd /var/www&lt;br /&gt;
wget http://www.php-benchmark-script.com/bench.zip &amp;amp;&amp;amp; unzip bench.zip[/crayon]&lt;/p&gt;
&lt;p&gt;Plus qu&apos;à tester.&lt;/p&gt;
&lt;h2&gt;Comparatif&lt;/h2&gt;
&lt;p&gt;On collecte donc l&apos;ensemble des résultats :&lt;/p&gt;
&lt;p&gt;[crayon language=shell]for server in x.x.x.1 x.x.x.2 x.x.x.3 x.x.x.4 x.x.x.5 x.x.x.6 x.x.x.7 x.x.x.8; do wget http://$server/bench.php -O - ; done[/crayon]&lt;/p&gt;
&lt;h3&gt;Résultats pour apache22-php-mod&lt;/h3&gt;
&lt;p&gt;[crayon]--------------------------------------&lt;br /&gt;
| PHP BENCHMARK SCRIPT |&lt;br /&gt;
--------------------------------------&lt;br /&gt;
Start : 2012-09-11 09:25:25&lt;br /&gt;
Server : x.x.x.1@x.x.x.1&lt;br /&gt;
PHP version : 5.4.6&lt;br /&gt;
Platform : Linux&lt;br /&gt;
--------------------------------------&lt;br /&gt;
test_math : 2.374 sec.&lt;br /&gt;
test_stringmanipulation : 2.433 sec.&lt;br /&gt;
test_loops : 1.864 sec.&lt;br /&gt;
test_ifelse : 1.336 sec.&lt;br /&gt;
--------------------------------------[/crayon]&lt;/p&gt;
&lt;h3&gt;Résultats pour apache22-php-fpm&lt;/h3&gt;
&lt;p&gt;[crayon]--------------------------------------&lt;br /&gt;
| PHP BENCHMARK SCRIPT |&lt;br /&gt;
--------------------------------------&lt;br /&gt;
Start : 2012-09-11 09:25:57&lt;br /&gt;
Server : x.x.x.2@x.x.x.2&lt;br /&gt;
PHP version : 5.4.6&lt;br /&gt;
Platform : Linux&lt;br /&gt;
--------------------------------------&lt;br /&gt;
test_math : 2.265 sec.&lt;br /&gt;
test_stringmanipulation : 2.362 sec.&lt;br /&gt;
test_loops : 2.168 sec.&lt;br /&gt;
test_ifelse : 1.224 sec.&lt;br /&gt;
--------------------------------------[/crayon]&lt;/p&gt;
&lt;div&gt;
&lt;h3&gt;Résultats pour apache24-php-mod&lt;/h3&gt;
&lt;p&gt;[crayon]--------------------------------------&lt;br /&gt;
| PHP BENCHMARK SCRIPT |&lt;br /&gt;
--------------------------------------&lt;br /&gt;
Start : 2012-09-11 09:26:03&lt;br /&gt;
Server : x.x.x.3@x.x.x.3&lt;br /&gt;
PHP version : 5.4.6&lt;br /&gt;
Platform : Linux&lt;br /&gt;
--------------------------------------&lt;br /&gt;
test_math : 3.236 sec.&lt;br /&gt;
test_stringmanipulation : 3.274 sec.&lt;br /&gt;
test_loops : 2.113 sec.&lt;br /&gt;
test_ifelse : 1.453 sec.&lt;br /&gt;
--------------------------------------[/crayon]&lt;/p&gt;
&lt;div&gt;
&lt;h3&gt;Résultats pour apache24-php-fpm&lt;/h3&gt;
&lt;p&gt;[crayon]--------------------------------------&lt;br /&gt;
| PHP BENCHMARK SCRIPT |&lt;br /&gt;
--------------------------------------&lt;br /&gt;
Start : 2012-09-11 09:26:12&lt;br /&gt;
Server : x.x.x.4@x.x.x.4&lt;br /&gt;
PHP version : 5.4.6&lt;br /&gt;
Platform : Linux&lt;br /&gt;
--------------------------------------&lt;br /&gt;
test_math : 2.225 sec.&lt;br /&gt;
test_stringmanipulation : 2.361 sec.&lt;br /&gt;
test_loops : 2.094 sec.&lt;br /&gt;
test_ifelse : 1.223 sec.&lt;br /&gt;
--------------------------------------[/crayon]&lt;/p&gt;
&lt;div&gt;
&lt;h3&gt;Résultats pour nginx-php&lt;/h3&gt;
&lt;p&gt;[crayon]--------------------------------------&lt;br /&gt;
| PHP BENCHMARK SCRIPT |&lt;br /&gt;
--------------------------------------&lt;br /&gt;
Start : 2012-09-11 09:26:23&lt;br /&gt;
Server : x.x.x.5@x.x.x.5&lt;br /&gt;
PHP version : 5.4.6&lt;br /&gt;
Platform : Linux&lt;br /&gt;
--------------------------------------&lt;br /&gt;
test_math : 2.310 sec.&lt;br /&gt;
test_stringmanipulation : 2.379 sec.&lt;br /&gt;
test_loops : 2.175 sec.&lt;br /&gt;
test_ifelse : 1.231 sec.&lt;br /&gt;
--------------------------------------[/crayon]&lt;/p&gt;
&lt;div&gt;
&lt;h3&gt;Résultats pour lighttpd-php&lt;/h3&gt;
&lt;p&gt;[crayon]--------------------------------------&lt;br /&gt;
| PHP BENCHMARK SCRIPT |&lt;br /&gt;
--------------------------------------&lt;br /&gt;
Start : 2012-09-11 09:26:38&lt;br /&gt;
Server : x.x.x.6@x.x.x.6&lt;br /&gt;
PHP version : 5.4.6&lt;br /&gt;
Platform : Linux&lt;br /&gt;
--------------------------------------&lt;br /&gt;
test_math : 2.194 sec.&lt;br /&gt;
test_stringmanipulation : 2.314 sec.&lt;br /&gt;
test_loops : 2.194 sec.&lt;br /&gt;
test_ifelse : 1.255 sec.&lt;br /&gt;
--------------------------------------[/crayon]&lt;/p&gt;
&lt;div&gt;
&lt;h3&gt;Résultats pour cherokee-php&lt;/h3&gt;
&lt;p&gt;[crayon]--------------------------------------&lt;br /&gt;
| PHP BENCHMARK SCRIPT |&lt;br /&gt;
--------------------------------------&lt;br /&gt;
Start : 2012-09-11 09:26:53&lt;br /&gt;
Server : x.x.x.7@x.x.x.7&lt;br /&gt;
PHP version : 5.4.6&lt;br /&gt;
Platform : Linux&lt;br /&gt;
--------------------------------------&lt;br /&gt;
test_math : 2.268 sec.&lt;br /&gt;
test_stringmanipulation : 2.381 sec.&lt;br /&gt;
test_loops : 2.076 sec.&lt;br /&gt;
test_ifelse : 1.236 sec.&lt;br /&gt;
--------------------------------------[/crayon]&lt;/p&gt;
&lt;div&gt;
&lt;h3&gt;Résultats pour standalone-php&lt;/h3&gt;
&lt;p&gt;[crayon]--------------------------------------&lt;br /&gt;
| PHP BENCHMARK SCRIPT |&lt;br /&gt;
--------------------------------------&lt;br /&gt;
Start : 2012-09-11 09:26:26:59&lt;br /&gt;
Server : 0.0.0.0@&lt;br /&gt;
PHP version : 5.4.6&lt;br /&gt;
Platform : Linux&lt;br /&gt;
--------------------------------------&lt;br /&gt;
test_math : 2.351 sec.&lt;br /&gt;
test_stringmanipulation : 2.455 sec.&lt;br /&gt;
test_loops : 2.112 sec.&lt;br /&gt;
test_ifelse : 1.250 sec.&lt;br /&gt;
--------------------------------------[/crayon]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reproduire les tests ne fait varier les résultats que de quelques milli secondes, donc rien de significatif. Il en ressort donc, qu&apos;hors optimisation de php (via ses modules entre autres) ou du serveur web, l&apos;implémentation semble plus performante varie selon le calcul effectué. Cependant, sur le traitement global, les résultats avantagent &lt;em&gt;apache24-php-fpm&lt;/em&gt; suivi de près par &lt;em&gt;lighttpd-php&lt;/em&gt; et &lt;em&gt;cherokee-php&lt;/em&gt;. A noter les bons résultats des implémentations en Apache 2.2 (module et FPM) mais les très mauvaises performances en module sur Apache 2.4.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les benchmarks sur le blog renvoient les mêmes résultats.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Comparatif caching : nginx/varnish/squid/apache</title>
      <link href="https://francois.aichelbaum.com/2012/09/07/comparatif-caching-nginxvarnishsquidapache" />
      <updated>2012-09-07T18:48:24+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/09/07/comparatif-caching-nginxvarnishsquidapache</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Suite à la publication de mon précédent billet (&lt;a href=&quot;http://francois.aichelbaum.com/creer-un-caching-http-facon-cdn/&quot;&gt;Créer un caching HTTP façon CDN&lt;/a&gt;), j&apos;ai eu une petite discussion sur twitter avec &lt;a href=&quot;https://twitter.com/nicolargo&quot;&gt;Nicolas Hennion&lt;/a&gt; sur un comparatif des outils de mise en cache HTTP. Je me suis donc proposé de (re)faire un billet sur le sujet. Je m&apos;attaque donc aux outils suivants : nginx, varnish, squid et apache (avec mod_cache/mod_proxy).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Avant propos&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le but n&apos;étant pas de refaire une optimisation système et matérielle, je vais faire au plus simple pour le comparatif. Certains pourront considérer ma démarche simpliste mais bon, c&apos;est la vie.&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Architecture pour le comparatif&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ne voulant pas avoir trop de différences j&apos;ai utilisé des machines virtuelles lancées sur des machines &lt;em&gt;couillues&lt;/em&gt;. Une machine de créée en debian stable 64 bits, 2 vCPU pour 8 Go Ram et 1 Gbps en réseau, pour me faire un template et ensuite je l&apos;ai clonée ainsi :&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;cache-apache&lt;/em&gt; : machine de cache en apache&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;cache-nginx&lt;/em&gt; : machine de cache en nginx&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;cache-squid&lt;/em&gt; : machine de cache en squid&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;cache-varnish&lt;/em&gt; : machine de cache en varnish&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;source-apache&lt;/em&gt; : machine qui distribue les fichiers de tests en http pour le serveur apache&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;source-nginx&lt;/em&gt; : machine qui distribue les fichiers de tests en http pour le serveur nginx&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;source-squid&lt;/em&gt; : machine qui distribue les fichiers de tests en http pour le serveur squid&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;source-varnish&lt;/em&gt; : machine qui distribue les fichiers de tests en http pour le serveur varnish&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;siege&lt;/em&gt; : la machine qui servira à générer les tests&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;em&gt;temoin&lt;/em&gt; : machine qui distribue les fichiers de tests en http sans caching&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Je mets un serveur &quot;origin&quot; (marque &lt;em&gt;source-xxxxx&lt;/em&gt;) par serveur de cache afin qu&apos;un test ne perturbe pas l&apos;autre et ainsi pouvoir faire mes tests en parallèle.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tous les serveurs seront sur le même réseau (pas de routage) afin de ne pas risquer d&apos;avoir des ACL ou des problèmes de performance de routage entre elles.&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Critères et méthodologie de comparaison&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les critères pris en compte sont les suivants&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ergonomie pour un déploiement de masse&lt;/li&gt;
&lt;li&gt;possibilité de configuration fine des vhosts/directory/...&lt;/li&gt;
&lt;li&gt;optimisation de la consommation des ressources fournies&lt;/li&gt;
&lt;li&gt;temps de réponses&lt;/li&gt;
&lt;li&gt;débits&lt;/li&gt;
&lt;li&gt;montée en charge&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Afin de tester l&apos;ensemble de ces critères, et parce que je n&apos;ai pas envie de m&apos;installer d&apos;outils complémentaires (et potentiellement lourds) pour le report de la métrologie, je ferais un simple visuel sur le résultat de top sur chaque serveur (&lt;em&gt;cache-xxxx&lt;/em&gt; et &lt;em&gt;source-xxxx&lt;/em&gt;) pendant le test.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les tests se feront à coup d&apos;&lt;em&gt;ab&lt;/em&gt; et de&lt;em&gt; siege&lt;/em&gt; sur des fichiers de 1 ko, 10 ko, 100 ko, 1 Mo, 10 Mo, 100 Mo et 1 Go. De plus, tous se feront sans keepalive d&apos;activé.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Machine de siege&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On lui installe le nécessaire :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# aptitude install siege apache2-utils&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Afin de me simplifier la vie, les noms des machines sont écrites dans le fichier &lt;em&gt;/etc/hosts&lt;/em&gt;.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Machine source et témoin&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On installe le nécessaire. N&apos;y cherchant pas la performance, on installe un basique &lt;em&gt;apache&lt;/em&gt;.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# aptitude install apache2&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ni on le configure, ni on l&apos;optimise.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On lui prépare ensuite les fichiers de tests dans /var/www :&lt;/p&gt;
&lt;pre&gt;# cd /var/www
# dd if=/dev/urandom of=1k bs=1k count=1
# dd if=/dev/urandom of=10k bs=1k count=10
# dd if=/dev/urandom of=100k bs=1k count=100
# dd if=/dev/urandom of=1m bs=1024k count=1
# dd if=/dev/urandom of=10m bs=1024k count=10
# dd if=/dev/urandom of=100m bs=1024k count=100
# dd if=/dev/urandom of=1g bs=1024k count=1000&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On a donc bien nos fichiers de test :&lt;/p&gt;
&lt;pre&gt;# ls -lh
total 1.1G
-rw-r--r-- 1 root root 100K Sep 7 10:43 100k
-rw-r--r-- 1 root root 100M Sep 7 10:44 100m
-rw-r--r-- 1 root root 10K Sep 7 10:43 10k
-rw-r--r-- 1 root root 10M Sep 7 10:44 10m
-rw-r--r-- 1 root root 1000M Sep 7 10:48 1g
-rw-r--r-- 1 root root 1.0K Sep 7 10:43 1k
-rw-r--r-- 1 root root 1.0M Sep 7 10:44 1m
-rw-r--r-- 1 root root 177 Sep 7 10:41 index.html&lt;/pre&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Caching façon apache&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On lui installe apache:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;# aptitude install apache2&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On jongle avec les modules utiles et non-utiles :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# a2dismod auth_basic authn_file authz_default authz_groupfile hostz_user autoindex cgid dir env reqtimeout status
# a2enmod  disk_cache proxy_http&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On modifie les paramètres prefork dans /etc/apache2/apache2.conf :&lt;/p&gt;
&lt;pre&gt;&amp;lt;IfModule mpm_prefork_module&amp;gt;
 StartServers 16
 MinSpareServers 16
 MaxSpareServers 10
 MaxClients 250
 MaxRequestsPerChild 0
&amp;lt;/IfModule&amp;gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On paramètre ensuite le proxy et le caching. Pour cela on se crée un vhost dédié /etc/apache2/sites-available/crash :&lt;/p&gt;
&lt;pre&gt;&amp;lt;VirtualHost *:80&amp;gt;
 NameServer crash
 CacheRoot /opt
 CacheMaxFileSize 1500000
 ProxyPass / http://crash/
 ProxyPassReverse / http://source-apache/
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On l&apos;active :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# a2ensite crash
# /etc/init.d/apache2 restart&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il y a vraiment peu de paramètres que l&apos;on peut configurer à ce niveau pour améliorer le fonctionnement. Une petite modification côté système est à faire dans &lt;em&gt;/etc/security/limits.conf&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;* - nofile 65535&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Installer une usine à gaz pour une petite fonctionnalité qui est en plus ne dispose d&apos;aucun paramétrage fin.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Caching façon nginx&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On rajoute les mirroirs nginx :&lt;/p&gt;
&lt;pre&gt;deb http://nginx.org/packages/debian/ squeeze nginx
deb-src http://nginx.org/packages/debian/ squeeze nginx&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Puis :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# wget http://nginx.org/packages/keys/nginx_signing.key -O - | apt-key add -
# aptitude update&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On installe le nécessaire :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# aptitude install nginx&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On configure le vhost en créant un fichier &lt;em&gt;/etc/nginx/sites-available/crash&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;server {
 listen 80;
 server_name crash;
 proxy_cache_key $scheme://$host$uri;
 location ~* / {
  proxy_hide_header &quot;Vary&quot;;
  add_header &quot;Vary&quot; &quot;Accept-Encoding&quot;;
  proxy_cache big;
  proxy_pass http://source-nginx;
 }
}&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Puis en l&apos;activant :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# ln -s /etc/nginx/sites-available/crash /etc/nginx/sites-enable/
# /etc/init.d/nginx restart&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ensuite on remplace le fichier &lt;em&gt;/etc/nginx/nginx.conf&lt;/em&gt; par le suivant :&lt;/p&gt;
&lt;pre&gt;user www-data;
worker_processes 4; 
worker_rlimit_nofile 10000;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
timer_resolution 1ms;
events {
 worker_connections 10000;
 multi_accept on;
 use epoll;
 accept_mutex_delay 1ms;
}&lt;/pre&gt;
&lt;pre&gt;http {
 include /etc/nginx/mime.types;
 client_body_temp_path /tmp 1 2;
 client_header_timeout 5s;
 client_body_timeout 5s;
 send_timeout 10m;
 connection_pool_size 128k;
 client_header_buffer_size 16k;
 large_client_header_buffers 1024 128k; 
 request_pool_size 128k; 
 keepalive_requests 1000;
 keepalive_timeout 10;
 client_max_body_size 10g;
 client_body_buffer_size 1m;
 client_body_in_single_buffer on;
 open_file_cache max=10000 inactive=300s; 
 reset_timedout_connection on;
 gzip on;
 gzip_static on;
 gzip_min_length 1100;
 gzip_buffers 16 8k;
 gzip_comp_level 9;
 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 gzip_vary on;
 gzip_proxied any;
 output_buffers 1000 128k;
 postpone_output 1460;
 sendfile on; 
 sendfile_max_chunk 256k;
 tcp_nopush on;
 tcp_nodelay on;
 server_tokens off;
 resolver 127.0.0.1;
 ignore_invalid_headers on;
 index index.html;
 add_header X-CDN &quot;Served by myself&quot;;
 proxy_cache_path /opt/disk/ levels=1:2 keys_zone=big:10m max_size=2G;
 proxy_temp_path /opt/temp/ 1 2;
 proxy_cache_valid 404 10m;
 proxy_cache_valid 400 501 502 503 504 1m;
 proxy_cache_valid any 4320m;
 proxy_cache_use_stale updating invalid_header error timeout http_404 http_500 http_502 http_503 http_504;
 proxy_next_upstream error timeout invalid_header http_404 http_500 http_502 http_503 http_504;
 proxy_redirect off;
 proxy_set_header Host $http_host;
 proxy_set_header Server Apache;
 proxy_set_header Connection Close;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass_header Set-Cookie;
 proxy_pass_header User-Agent;
 proxy_set_header X-Accel-Buffering on;
 proxy_hide_header X-CDN;
 proxy_hide_header X-Server;
 proxy_intercept_errors off;
 proxy_ignore_client_abort on;
 proxy_connect_timeout 60;
 proxy_send_timeout 60;
 proxy_read_timeout 60;
 proxy_buffer_size 128k;
 proxy_buffers 16384 128k;
 proxy_busy_buffers_size 256k;
 proxy_temp_file_write_size 128k;
 proxy_cache_min_uses 0;
 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;
}&lt;/pre&gt;
&lt;p&gt;Une petite modification côté système est à faire dans &lt;em&gt;/etc/security/limits.conf&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;* - nofile 65535&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A mon sens, c&apos;est celui qui offre le plus de possibilités dans le paramétrage fin et aussi dans l&apos;évolutivité. Il ne lui manque que peu (SSI en tête de liste) pour être parfait.&lt;/p&gt;
&lt;h2&gt;Caching façon squid&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On commence par installer l&apos;applicatif :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# aptitude install squid&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vous remarquerez que l&apos;installe une version de la branche 2.x et non 3.x. La raison est simple : squid3 est encore largement en retrait au niveau fonctionnalité (et stabilité) par rapport à la précédente branche, que l&apos;ancienne évolue toujours et qu&apos;on cherche à comparer des produits à mettre en prod.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On a besoin de changer les droits sur le dossier /opt :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# chmod 777 /opt&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On paramètre alors le caching en éditant &lt;em&gt;/etc/squid/squid.conf&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;acl all src all
acl localnet src 192.168.0.0/16
acl Safe_ports port 80
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 80 transparent
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid
cache_peer source-squid parent 80 0 no-query originserver
cache_dir aufs /opt 2000 16 256
tcp_recv_bufsize 131072 bytes
maximum_object_size 1500000000 bytes&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On n&apos;oublie pas de modifier le fichier &lt;em&gt;/etc/default/squid&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;SQUID_MAXFD=10240&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On pense encore à la petite modification côté système à faire dans &lt;em&gt;etc/security/limits.conf &lt;/em&gt;en rajoutant :&lt;/p&gt;
&lt;pre&gt;* - nofile 65535&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Squid est je pense celui qui a la configuration la moins claire. L&apos;optimisation est très restreinte. Son avantage est l&apos;implémentation complète de l&apos;HTCP qui permet à l&apos;architecture de caching de faire communiquer les noeuds entre eux, là où les autres demandes des petites astuces. Mono process, il ne profite pas des possibilités de la machine.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Caching façon varnish&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On commence par l&apos;installation :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# aptitude install varnish&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On suit par la configuration en commencant par modifier les lignes suivantes dans &lt;em&gt;/etc/default/varnish&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;START=yes
DAEMON_OPTS=&quot;-a :80 \
 -f /etc/varnish/default.vcl \
 -S /etc/varnish/secret \
 -p thread_pools=4 \
 -s file,/var/lib/varnish/$INSTANCE/varnish_storage.bin,2G&quot;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On enchaîne avec la configuration de &lt;em&gt;/etc/varnish/default.vcl&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;backend default {
 .host = &quot;source-varnish&quot;;
 .port = &quot;80&quot;;
 .connect_timeout = 1s;
 .first_byte_timeout = 5s;
 .between_bytes_timeout = 2s;
}
sub vcl_recv {
 return(lookup);
}
sub vcl_fetch {
 return(deliver);
}&lt;/pre&gt;
&lt;p&gt;On rajoute la petite modification côté système dans &lt;em&gt;etc/security/limits.conf &lt;/em&gt;:&lt;/p&gt;
&lt;pre&gt;* - nofile 65535&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Varnish n&apos;a pas une syntaxe super claire. De plus, le paramétrage fin s&apos;arrête à définir les durées des objets, les latences et les actions à mener sur les HIT/MISS &amp;amp; co. Le seul intérêt que j&apos;ai trouvé à varnish est l&apos;implémentation complète des SSI (qui n&apos;est que partielle sur nginx par ex).&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Comparatif&lt;/h2&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;siege&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Siege fournit un test sur la durée et la qualité de réponse sur cette durée. Pour chaque fichier de test (remplacer XX par le nom du fichier), on lance les commandes suivantes :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;siege -b -c 1 -t 1M http://crash/XX
siege -b -c 10 -t 1M http://crash/XX
siege -b -c 100 -t 1M http://crash/XX
siege -b -c 1000 -t 1M http://crash/XX 
siege -b -c 10000 -t 1M http://crash/XX&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Siege étant très gourmand en mémoire, on est obligé de restreinte les tests sur la VM utilisée. Le tableau de résultat est disponible directement au format &lt;a href=&quot;http://cdn.aichelbaum.com/files/s/siege.pdf&quot;&gt;PDF&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Notez les points suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les durées sont annoncées en secondes&lt;/li&gt;
&lt;li&gt;les débits sont en Mo/s&lt;/li&gt;
&lt;li&gt;les erreurs sont dûes soit à la partie cliente (siege) soit à la partie serveur et donc sont à mettre entre parenthèses&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Siege présente des résultats assez incohérent selon la relance sur les valeurs mais aussi sur sa consommation locale de ressources. Je ne suis pas sûr de pouvoir l&apos;utiliser pour ma conclusion (variation de plus de 10% à chaque reprise).&lt;/div&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;ab&lt;/h3&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;ab fournit un test instantanné pour définir la qualité de réponse du serveur sur une charge pré définie. Pour chaque fichier de test (remplacer XX par le nom du fichier), on lance les commandes suivantes :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;ab -n 1 -c 1 http://crash/XX
ab -n 10 -c 10 http://crash/XX
ab -n 100 -c 100 http://crash/XX
ab -n 1000 -c 1000 http://crash/XX&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le tableau de résultat est disponible directement au format &lt;a href=&quot;http://cdn.aichelbaum.com/files/a/ab.pdf&quot;&gt;PDF&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Notez les points suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;les durées sont annoncées en secondes&lt;/li&gt;
&lt;li&gt;global est la durée globale du test&lt;/li&gt;
&lt;li&gt;moyenne est le temps moyen rencontré&lt;/li&gt;
&lt;li&gt;max est le temps maximum de chargement de la page&lt;/li&gt;
&lt;li&gt;erreur est le nombre de retour non valide&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;varnish est une très bonne solution en soit mais il s&apos;avère que le potentiel et les performance de nginx n&apos;en ont pas fait l&apos;un des serveurs HTTP de warez N°1 pour rien en son temps. Aujourd&apos;hui, l&apos;utiliser pour du caching a toutes ses raisons et bien plus encore.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;MAJ le 8 septembre 2012 à 16h20&lt;/strong&gt; : Modification de la mise en page des PDF et correction d&apos;un lien&lt;/li&gt;
&lt;/ol&gt;
</content>
    </entry>
  
    <entry>
      <title>Créer un caching HTTP façon CDN</title>
      <link href="https://francois.aichelbaum.com/2012/09/05/creer-un-caching-http-facon-cdn" />
      <updated>2012-09-05T15:17:41+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/09/05/creer-un-caching-http-facon-cdn</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; What?&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#avant-propos-et-plateforme-http&quot; id=&quot;markdown-toc-avant-propos-et-plateforme-http&quot;&gt;Avant propos et plateforme HTTP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#installation-des-serveursorigin&quot; id=&quot;markdown-toc-installation-des-serveursorigin&quot;&gt;Installation des serveurs &lt;em&gt;origin&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#installation-des-serveurs-source&quot; id=&quot;markdown-toc-installation-des-serveurs-source&quot;&gt;Installation des serveurs &lt;em&gt;source&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#installation-des-serveurs-edge&quot; id=&quot;markdown-toc-installation-des-serveurs-edge&quot;&gt;Installation des serveurs &lt;em&gt;edge&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#installation-dun-serveur-stats&quot; id=&quot;markdown-toc-installation-dun-serveur-stats&quot;&gt;Installation d’un serveur &lt;em&gt;stats&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#installation-dun-serveur-master&quot; id=&quot;markdown-toc-installation-dun-serveur-master&quot;&gt;Installation d’un serveur &lt;em&gt;master&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;C’est la mode au tout &lt;em&gt;Cloud&lt;/em&gt;. Je ne m’étalerais pas sur mon avis très critique à cette mode commerciale. Cependant, le fonctionnement des sites en eux-mêmes changent peu et la mode du Cloud n’entache en rien le besoin de performance. C’est le service proposé par de nombreuses société de part de le monde avec des services de livraison de contenu (CDN) qui inclus :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;distribution HTTP de contenus statiques&lt;/li&gt;
  &lt;li&gt;accélération HTTP de contenus statiques&lt;/li&gt;
  &lt;li&gt;streaming audio/vidéo &lt;em&gt;live&lt;/em&gt; ou &lt;em&gt;on-demand&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je vais donc me focaliser sur comment monter une plateforme minimale de livraison HTTP et d’accélération HTTP.&lt;/p&gt;

&lt;h2 id=&quot;avant-propos-et-plateforme-http&quot;&gt;Avant propos et plateforme HTTP&lt;/h2&gt;

&lt;p&gt;L’accélération web consiste en la fourniture d’un service HTTP fiable, perfomant, et allégeant la charge sur la plateforme web du client : tout le contenu statique doit être fournit par la plateforme d’accélération ou au maximum, alors que les pages dynamiques sont services par la plateforme du client. Une plateforme d’accélération est simple à mettre en place. La problèmatique par contre, va résider principalement dans les performances (systèmes et réseaux) et dans les fonctionnalités avancées offertes aux clients. Le service doit être mutualisé avec un maximum de clients mais être également flexible et adapté à chacun.
La distribution HTTP repose sur le même principe à la différence que l’on doit héberger le contenu. Il est important qu’une machine qui fait de la distribution ne fasse pas d’accélération et inversement. Cette restriction est importante car les optimisations divergent quelques peu. Je ne m’attarderais pas sur l’installation des systèmes en eux-même.&lt;/p&gt;

&lt;h3 id=&quot;le-matériel&quot;&gt;Le matériel&lt;/h3&gt;

&lt;p&gt;Les performances dépendent aussi bien des logiciels et de leurs configurations, que du matériel choisi. Selon les moyens, on choisira entre l’aggrégat d’interface en gigabit ou la mise en place de cartes 10 Gbps. Il est à noté que les temps d’accès sont différents entre de l’optique et du cuivre, à l’avantage de l’optique.
De même, des SSD sont à privilégier pour le cache disque lors que des disques en 15k rpm ou 10k rpm peuvent suffire sur la partie distribution.
Pourquoi je me refuse à prendre des appliances ?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;limitées dans les fonctions additionnelles (ou sous licenses trop chères)&lt;/li&gt;
  &lt;li&gt;peu évolutives&lt;/li&gt;
  &lt;li&gt;performances largement en retrait par rapport à du &lt;em&gt;home-made&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;le-logiciel&quot;&gt;Le logiciel&lt;/h3&gt;

&lt;p&gt;Il est intéressant de privilégier pour les noeuds de cache, des machines &lt;em&gt;diskless&lt;/em&gt;, au système démarré en PXE et mis en &lt;em&gt;Ramdisk&lt;/em&gt;. Si vous avez besoin d’un article sur ce point, laissez-moi savoir. L’avantage est de réduire les I/O disques lié au système.
Côté mise en cache des objets, on se penchera sur un gros RAID0 de disques en SSD, le tout avec un formatage en XFS. Pourquoi pas en Ram ? simplement parce qu’il est facile de saturer les accès concurrents en Ram dans le cas d’un CDN et que les performances sont largement suffisantes avec une belle grappe de SSD.
Côté service HTTP, on utilisera nginx, aussi bien pour la distribution que pour le caching.  Pourquoi pas d’autres ?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;varnish en caching : il est moins extensible que nginx, un chouillat plus lourd et je le trouve clairement moins agréable à l’utilisation&lt;/li&gt;
  &lt;li&gt;squid en caching : monolithique et non multithreadé, on y perd en performance et en optimisation ; de plus sa configuration est trop lourde et ses performances sont au final en retrait&lt;/li&gt;
  &lt;li&gt;apache en caching ou en distribution : oui, pourquoi ne pas utiliser une gros usine à gaz polluante, archaïque et peu performante à la place de solution légère et performante ?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On n’écrit rien en local niveau log : on mettra en place un syslog distant et centralisé. L’attrait est double : réduire les I/O locales et pouvoir facilement générer les statistiques HTTP.&lt;/p&gt;

&lt;h3 id=&quot;la-plateforme-http&quot;&gt;La plateforme HTTP&lt;/h3&gt;

&lt;p&gt;Celle-ci regroupe donc à minima (et hors volonté de redondances sur tout) :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;un serveur PXE pour fournir les OS aux machines diskless (non détaillé ici) (&lt;em&gt;pxe&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;un serveur syslog et statistiques (&lt;em&gt;stats&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;un serveur de base de données pour le backoffice offrant aux clients ou à l’équipe les outils pour le déploiement des configurations par vhosts (non détaillé ici) (&lt;em&gt;db&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;les serveurs de monitoring et management (&lt;em&gt;master&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;les serveurs de caching (on parle d’&lt;em&gt;edges&lt;/em&gt;) ; il y aura 2 niveaux, donc on détaillera en &lt;em&gt;edge / source&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;les serveurs &lt;em&gt;origins&lt;/em&gt; HTTP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour des raisons de disponibilité (et de proximité), on sera amené à dupliquer autant de fois qu’il le faut chaque élément sur des sites distants. La plateforme est duplicable à volonté.
L’architecture est une pyramide inversée, à savoir à minima :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;4 serveurs edge qui attaquent&lt;/li&gt;
  &lt;li&gt;2 serveurs source qui attaquent&lt;/li&gt;
  &lt;li&gt;la plateforme du client ou 2 serveurs origin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les autres serveurs sont mis en parallèle de ce déploiement.&lt;/p&gt;

&lt;h3 id=&quot;le-réseau&quot;&gt;Le réseau&lt;/h3&gt;

&lt;p&gt;Les VIP en mode DSR seront gérées par des LVS déployés sur les masters. On peut aussi investir dans des cartes ACE. Sur la partie GSLB (load balancing géolocalisé) je vous conseille de vous référer à votre ingé réseau sur les possibilités de votre infra au niveau déclaration des entêtes &amp;amp; co. En effet, faire du GSLB en DNS pour la plateforme en elle-même est un peu moins efficace :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;à cause des serveurs DNS des FAI qui ne respectent pas les TTL (Free par ex …)&lt;/li&gt;
  &lt;li&gt;à cause des utilisateurs passant par des serveurs DNS tiers (Google, OpenDNS) qui faussent le calcul de géolocalisation&lt;/li&gt;
  &lt;li&gt;du fait que le site mis en cache doit aussi l’appliquer dans sa zone DNS et que c’est parfois compliqué de motiver un client&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La qualité du transit et des peerings est un point important pour assurer d’excellentes performances du CDN.
On note :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;X.X.A.0/24 le range d’IP public du datacenter A&lt;/li&gt;
  &lt;li&gt;X.X.B.0/24 le range d’IP public du datacenter B&lt;/li&gt;
  &lt;li&gt;10.0.A.0/8 le range d’IP privé du datacenter A&lt;/li&gt;
  &lt;li&gt;10.0.B.0/8 le range d’IP privé du datacenter B&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les zones privées communiquent entre elles.&lt;/p&gt;

&lt;h2 id=&quot;installation-des-serveursorigin&quot;&gt;Installation des serveurs &lt;em&gt;origin&lt;/em&gt;&lt;/h2&gt;

&lt;h3 id=&quot;matériel&quot;&gt;Matériel&lt;/h3&gt;

&lt;p&gt;Au niveau matériel il s’agit, dans mon cas, de serveurs Dell R510 avec 12 disques de 2 To (pour le moment), 24 Go Ram, interfaces en 10 Gbps optiques.
On commence par déployer les packages dont on a besoin :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;aptitude -y install nginx-extras bind9 ntp sysfsutils xfsprogs syslog-ng&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Les serveurs origin se duplique automatiquement les fichiers du client grâce à une réplication en GlusterFS :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/5.0.3/glusterfs_3.3.0-1_amd64.deb
dpkg -i glusterfs_3.3.0-1_amd64.deb&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;La partie concernant l’importation des fichiers clients n’est pas exploitées ici. Du simple FTP au serveur SFTP utilisant un backend en LDAP, le choix est large.&lt;/p&gt;

&lt;h3 id=&quot;ntp&quot;&gt;NTP&lt;/h3&gt;

&lt;p&gt;On modifie simplement les lignes &lt;em&gt;server&lt;/em&gt; du fichier &lt;em&gt;/etc/ntp.conf&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;B&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;dns&quot;&gt;DNS&lt;/h3&gt;

&lt;p&gt;Le service ne sera utilisé qu’en local pour la résolution DNS pour les besoins du nginx.
Pour cela, on édite le fichier &lt;em&gt;/etc/bind/named.conf/options&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;options&lt;/span&gt; {
 &lt;span class=&quot;n&quot;&gt;directory&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/var/cache/bind&quot;&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;query&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;address&lt;/span&gt; * &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt; *;
 &lt;span class=&quot;n&quot;&gt;forwarders&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;B&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;auth&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;nxdomain&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;no&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;v6&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;127&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;recursion&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;version&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;max&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;recursive&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10000&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;minimal&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;responses&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;yes&lt;/span&gt; ;
};&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;optimisation-systeme&quot;&gt;OPTIMISATION SYSTEME&lt;/h3&gt;

&lt;p&gt;On s’attaque au scheduler disque en modifiant le fichier &lt;em&gt;/etc/sysfs.conf&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;block&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;sdb&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;queue&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;scheduler&lt;/span&gt; = &lt;span class=&quot;n&quot;&gt;noop&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On pense à adapter la partie en gras en fonction de ses disques. Dans la même idée, on modifier le bootloader &lt;em&gt;grub&lt;/em&gt; en modifiant &lt;em&gt;/etc/default/grub&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;GRUB_CMDLINE_LINUX&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;elevator=noop quiet&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;puis en mettant à jour&lt;em&gt; grub&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;update-grub&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Le filesystem de l’espace de cache a aussi son importance :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;mkfs.xfs -f -l size=128m /dev/sda3&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On adapte aussi le fichier &lt;em&gt;/etc/fstab&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;/&lt;span class=&quot;n&quot;&gt;dev&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;sdb1&lt;/span&gt; /&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;store&lt;/span&gt;/ &lt;span class=&quot;n&quot;&gt;xfs&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rw&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;nobarrier&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;largeio&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;noatime&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;nodiratime&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;logbufs&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;8&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;inode64&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On organise ensuite la réplication entre les serveurs source. La réplication &lt;em&gt;GlusterFS&lt;/em&gt; n’est à configurer que sur l’un des noeuds :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;gluster volume create store replica 2 transport tcp origin1:/data/store origin2:/data/store
gluster volume start store
gluster volume set store performance.write-behind-window-size 1024
gluster volume set store cluster.self-heal-window-size 1024
gluster volume set store cluster.lookup-unhashed off
gluster volume set store performance.flush-behind on
gluster volume set store nfs.disable on
gluster volume set store cluster.self-heal-daemon on
gluster volume set store performance.cache-size 2147483648
gluster volume set store performance.io-thread-count 64
gluster volume set store feature.read-only off&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Notez qu’on peut répliquer autant que l’on désire. On prépare ensuite le montage du volume répliquer pour travailler dessus (/etc/fstab) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;origin1&lt;/span&gt;:/&lt;span class=&quot;n&quot;&gt;store&lt;/span&gt; /&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;tmp&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;glusterfs&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;defaults&lt;/span&gt;,&lt;span class=&quot;err&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;netdev&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On peut laisser le nom du premier serveur partout : le client GlusterFS l’utilise juste pour créer la connexion mais utilise le serveur qu’il considère le meilleur (en temps de réponse) pour les accès lecture/écrite.
La partie sysctl est importante (&lt;em&gt;/etc/sysctl.conf&lt;/em&gt;) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rmem_default&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rmem_max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;wmem_default&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;wmem_max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_rmem&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;4096&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;87380&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_wmem&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;4096&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_mem&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;4096&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_low_latency&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;netdev_max_backlog&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;30000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;file&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;shmmax&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16000000000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;shmall&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16000000000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_abort_on_overflow&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_syncookies&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_fin_timeout&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_tw_reuse&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_tw_recycle&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ip_local_port_range&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1024&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;65535&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;min_free_kbytes&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth1&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth1&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_orphan_retries&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_timestamps&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_sack&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_window_scaling&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_keepalive_intvl&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_keepalive_probes&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ip_forward&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;proxy_arp&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;proxy_arp&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;sysrq&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;send_redirects&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;send_redirects&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core_uses_pid&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core_pattern&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;dirty_background_ratio&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;dirty_ratio&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;swappiness&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;dirty_writeback_centisecs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1500&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfssyncd_centisecs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;360000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfsbufd_centisecs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;3000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_max_syn_backlog&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;optmem_max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;40960&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_max_tw_buckets&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;360000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_reordering&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;icmp_ignore_bogus_error_responses&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_no_metrics_save&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_max_orphans&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_rfc1337&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;somaxconn&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_ecn&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ip_no_pmtu_disc&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_slow_start_after_idle&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_moderate_rcvbuf&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;A adapter selon les interfaces réseaux et la Ram (partie en gras). On l’applique avec un simple :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;sysctl -p&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Il est important d’appliquer les limites correspondantes au système (/etc/security/limits.conf) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;*    &lt;span class=&quot;n&quot;&gt;soft&lt;/span&gt;    &lt;span class=&quot;n&quot;&gt;nofile&lt;/span&gt;    &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
*    &lt;span class=&quot;n&quot;&gt;hard&lt;/span&gt;    &lt;span class=&quot;n&quot;&gt;nofile&lt;/span&gt;    &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Certaines modifications sont à appliquer au démarrage du système (&lt;em&gt;/etc/rc.local&lt;/em&gt;) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;ifconfig eth0 txqueuelen 10000
ifconfig eth1 txqueuelen 10000
ifconfig eth0 mtu 9000
ifconfig eth1 mtu 9000
ethtool -K eth0 rx off tx off
ethtool -K eth1 rx off tx off&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;distribution-http&quot;&gt;Distribution HTTP&lt;/h3&gt;

&lt;p&gt;On s’attaque donc à &lt;em&gt;nginx&lt;/em&gt;. D’abord pour la partie globale :&lt;/p&gt;

&lt;p&gt;{% highlight conf %}
user www-data;
worker_processes 2; 
worker_rlimit_nofile 250000;&lt;/p&gt;

&lt;p&gt;error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;&lt;/p&gt;

&lt;p&gt;timer_resolution 1ms;&lt;/p&gt;

&lt;p&gt;events {
 worker_connections 102400;
 use epoll;
 multi_accept on;
 accept_mutex_delay 1ms;
}&lt;/p&gt;

&lt;p&gt;http {
 include /etc/nginx/mime.types;
 default_type application/octet-stream;&lt;/p&gt;

&lt;p&gt; log_format access ‘[$time_local] $request_time “$request_method $scheme://$host$request_uri $server_protocol” $request_length $status $bytes_sent “$http_referer” $remote_addr “$http_user_agent”’;
 access_log /data/log/access.log access;
 # Client connection
 client_body_temp_path /tmp 1 2;
 client_header_timeout 5s;
 client_body_timeout 5s;
 send_timeout 10m;
 connection_pool_size 256k;
 client_header_buffer_size 16k;
 large_client_header_buffers 1024 128k; 
 request_pool_size 128k; 
 keepalive_requests 1000;
 keepalive_timeout 10;
 client_max_body_size 10g;
 client_body_buffer_size 1m;
 client_body_in_single_buffer on;
 open_file_cache max=250000 inactive=300s; 
 reset_timedout_connection on;&lt;/p&gt;

&lt;p&gt; # Compression
 gzip on;
 gzip_static on;
 gzip_min_length 1100;
 gzip_buffers 16 8k;
 gzip_comp_level 9;
 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 gzip_vary on;
 gzip_proxied any;&lt;/p&gt;

&lt;p&gt; # Network optimizations
 output_buffers 1000 128k;
 postpone_output 1460;
 sendfile on; 
 sendfile_max_chunk 256k;
 tcp_nopush on;
 tcp_nodelay on;
 server_tokens off;&lt;/p&gt;

&lt;p&gt; # DNS
 resolver 127.0.0.1;&lt;/p&gt;

&lt;p&gt; # HTTP Request
 ignore_invalid_headers on;
 index index.html;
 add_header X-CDN “Served by myself”;
 add_header Connection close;&lt;/p&gt;

&lt;p&gt; server_names_hash_max_size 5120;
 server_names_hash_bucket_size 256;&lt;/p&gt;

&lt;p&gt;upstream_fair_shm_size 1024k;&lt;/p&gt;

&lt;p&gt; # Includes
 include /etc/nginx/conf.d/&lt;em&gt;.conf;
 include /etc/nginx/sites-enabled/&lt;/em&gt;;
}
{% endhighlight %}&lt;/p&gt;

&lt;p&gt;Ensuite, voici le template par&lt;em&gt; vhost&lt;/em&gt; (au format &lt;a href=&quot;http://twig.sensiolabs.org/&quot;&gt;twig&lt;/a&gt;) que votre robot déploiera :&lt;/p&gt;

&lt;p&gt;{% highlight conf %}&lt;/p&gt;
&lt;h3 id=&quot;-serial-&quot;&gt;{{ serial }}&lt;/h3&gt;
&lt;p&gt;server {
 listen &lt;em&gt;:80;
 server_name {{ frontends|join(‘ ‘) }};
{ % raw %}
 {% for option in default_options %}
  {{- option.name }} {{ option.value }};
 {% endfor %}
 {% for location in locations %}
  {% for rule_expert in location.rules_expert %}
  # {{ location.name }}
  location ~&lt;/em&gt; {{ rule_expert.pattern }} {
   {% for option in location.options %}
    {{- option.name }} {{ option.value }};
   {% endfor %}
   root /data/tmp/vhosts/{{ vhost }}.nginx_backend/;
  }
  {% endfor %}
 {% endfor %}
{ % endraw %}
 error_page 404 /404.html;
 error_page 500 /500.html;
 error_page 502 /502.html; 
 error_page 503 /503.html;
 error_page 504 /504.html;
 location = /404.html { root /var/www/nginx-default; }
 location = /500.html { root /var/www/nginx-default; }
 location = /502.html { root /var/www/nginx-default; }
 location = /503.html { root /var/www/nginx-default; }
 location = /504.html { root /var/www/nginx-default; }
}
{% endhighlight %}&lt;/p&gt;

&lt;h2 id=&quot;installation-des-serveurs-source&quot;&gt;Installation des serveurs &lt;em&gt;source&lt;/em&gt;&lt;/h2&gt;

&lt;h3 id=&quot;matériel-1&quot;&gt;Matériel&lt;/h3&gt;

&lt;p&gt;Au niveau matériel il s’agit, dans mon cas, de serveurs Dell R510 avec 12 disques de 2 To, 24 Go Ram, interfaces en 10 Gbps optiques.
On commence par déployer les packages dont on a besoin :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;aptitude -y install nginx-extras bind9 ntp sysfsutils xfsprogs syslog-ng&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Les serveurs &lt;em&gt;source&lt;/em&gt; se duplique automatiquement les fichiers mis en cache grâce à une réplication en GlusterFS :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/5.0.3/glusterfs_3.3.0-1_amd64.deb
dpkg -i glusterfs_3.3.0-1_amd64.deb&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;ntp-1&quot;&gt;NTP&lt;/h3&gt;

&lt;p&gt;On modifie simplement les lignes &lt;em&gt;server&lt;/em&gt; du fichier &lt;em&gt;/etc/ntp.conf&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;B&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;dns-1&quot;&gt;DNS&lt;/h3&gt;
&lt;p&gt;Le service ne sera utilisé qu’en local pour la résolution DNS pour les besoins du nginx.
Pour cela, on édite le fichier &lt;em&gt;/etc/bind/named.conf/options&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;options&lt;/span&gt; {
 &lt;span class=&quot;n&quot;&gt;directory&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/var/cache/bind&quot;&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;query&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;address&lt;/span&gt; * &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt; *;
 &lt;span class=&quot;n&quot;&gt;forwarders&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;B&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;auth&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;nxdomain&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;no&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;v6&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;127&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;recursion&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;version&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;max&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;recursive&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10000&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;minimal&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;responses&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;yes&lt;/span&gt; ;
};&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;optimisation-systeme-1&quot;&gt;OPTIMISATION SYSTEME&lt;/h3&gt;

&lt;p&gt;On s’attaque au scheduler disque en modifiant le fichier &lt;em&gt;/etc/sysfs.conf&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;block&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;sdb&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;queue&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;scheduler&lt;/span&gt; = &lt;span class=&quot;n&quot;&gt;noop&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On pense à adapter la partie en gras en fonction de ses disques. Dans la même idée, on modifier le bootloader &lt;em&gt;grub&lt;/em&gt; en modifiant &lt;em&gt;/etc/default/grub&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;GRUB_CMDLINE_LINUX&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;elevator=noop quiet&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;puis en mettant à jour&lt;em&gt; grub&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;update-grub&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Le filesystem de l’espace de cache a aussi son importance :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;mkfs.xfs -f -l size=128m /dev/sda3&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On adapte aussi le fichier &lt;em&gt;/etc/fstab&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;/&lt;span class=&quot;n&quot;&gt;dev&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;sdb1&lt;/span&gt; /&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;cache&lt;/span&gt;/ &lt;span class=&quot;n&quot;&gt;xfs&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rw&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;nobarrier&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;largeio&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;noatime&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;nodiratime&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;logbufs&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;8&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;inode64&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On organise ensuite la réplication entre les serveurs source. La réplication &lt;em&gt;GlusterFS&lt;/em&gt; n’est à configurer que sur l’un des noeuds :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;gluster volume create cache replica 2 transport tcp source1:/data/cache source2:/data/cache
gluster volume start cache
gluster volume set cache performance.write-behind-window-size 131072
gluster volume set cache cluster.self-heal-window-size 1024
gluster volume set cache cluster.lookup-unhashed off
gluster volume set cache performance.flush-behind on
gluster volume set cache nfs.disable on
gluster volume set cache cluster.self-heal-daemon on
gluster volume set cache performance.cache-size 2147483648
gluster volume set cache performance.io-thread-count 64
gluster volume set cache feature.read-only off&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Notez qu’on peut répliquer autant que l’on désire. On prépare ensuite le montage du volume répliquer pour travailler dessus (&lt;em&gt;/etc/fstab&lt;/em&gt;) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;source1&lt;/span&gt;:/&lt;span class=&quot;n&quot;&gt;cache&lt;/span&gt; /&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;tmp&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;glusterfs&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;defaults&lt;/span&gt;,&lt;span class=&quot;err&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;netdev&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On peut laisser le nom du premier serveur partout : le client GlusterFS l’utilise juste pour créer la connexion mais utilise le serveur qu’il considère le meilleur (en temps de réponse) pour les accès lecture/écrite.
La partie sysctl est importante (&lt;em&gt;/etc/sysctl.conf&lt;/em&gt;) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rmem_default&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rmem_max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;wmem_default&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;wmem_max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_rmem&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;4096&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;87380&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_wmem&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;4096&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_mem&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;4096&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_low_latency&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;netdev_max_backlog&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;30000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;file&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;shmmax&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16000000000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;shmall&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16000000000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_abort_on_overflow&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_syncookies&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_fin_timeout&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_tw_reuse&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_tw_recycle&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ip_local_port_range&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1024&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;65535&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;min_free_kbytes&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth1&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth1&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_orphan_retries&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_timestamps&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_sack&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_window_scaling&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_keepalive_intvl&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_keepalive_probes&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ip_forward&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;proxy_arp&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;proxy_arp&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;sysrq&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;send_redirects&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;send_redirects&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core_uses_pid&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core_pattern&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;dirty_background_ratio&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;dirty_ratio&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;swappiness&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;dirty_writeback_centisecs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1500&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfssyncd_centisecs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;360000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfsbufd_centisecs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;3000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_max_syn_backlog&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;optmem_max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;40960&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_max_tw_buckets&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;360000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_reordering&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;icmp_ignore_bogus_error_responses&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_no_metrics_save&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_max_orphans&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_rfc1337&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;somaxconn&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_ecn&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ip_no_pmtu_disc&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_slow_start_after_idle&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_moderate_rcvbuf&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;A adapter selon les interfaces réseaux et la Ram (partie en gras). On l’applique avec un simple :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;sysctl -p&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Il est important d’appliquer les limites correspondantes au système (/etc/security/limits.conf) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;*    &lt;span class=&quot;n&quot;&gt;soft&lt;/span&gt;    &lt;span class=&quot;n&quot;&gt;nofile&lt;/span&gt;    &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
*    &lt;span class=&quot;n&quot;&gt;hard&lt;/span&gt;    &lt;span class=&quot;n&quot;&gt;nofile&lt;/span&gt;    &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Certaines modifications sont à appliquer au démarrage du système (&lt;em&gt;/etc/rc.local&lt;/em&gt;) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;ifconfig eth0 txqueuelen 10000
ifconfig eth1 txqueuelen 10000
ifconfig eth0 mtu 9000
ifconfig eth1 mtu 9000
ethtool -K eth0 rx off tx off
ethtool -K eth1 rx off tx off&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;caching&quot;&gt;CACHING&lt;/h3&gt;

&lt;p&gt;On s’attaque donc à &lt;em&gt;nginx&lt;/em&gt;. D’abord pour la partie globale :&lt;/p&gt;

&lt;p&gt;{% highlight conf %}
user www-data;
worker_processes 2; 
worker_rlimit_nofile 2500004;&lt;/p&gt;

&lt;p&gt;error_log /var/log/nginx/error.log error;
pid /var/run/nginx.pid;&lt;/p&gt;

&lt;p&gt;timer_resolution 1ms;&lt;/p&gt;

&lt;p&gt;events {
 worker_connections 102400;
 use epoll;
 multi_accept on;
 accept_mutex_delay 1ms;
}&lt;/p&gt;

&lt;p&gt;http {
 include /etc/nginx/mime.types;
 default_type application/octet-stream;&lt;/p&gt;

&lt;p&gt; log_format access ‘[$time_local] $request_time “$request_method $scheme://$host$request_uri $server_protocol” $request_length $upstream_cache_status $status $proxy_host $upstream_addr $bytes_sent “$http_referer” $remote_addr “$http_user_agent”’;
 #access_log /data/log/access.log access;
 access_log off;
 # Client connection
 client_body_temp_path /tmp 1 2;
 client_header_timeout 5s;
 client_body_timeout 5s;
 send_timeout 10m;
 connection_pool_size 256k;
 client_header_buffer_size 16k;
 large_client_header_buffers 1024 128k; 
 request_pool_size 128k; 
 keepalive_requests 1000;
 keepalive_timeout 10;
 client_max_body_size 10g;
 client_body_buffer_size 1m;
 client_body_in_single_buffer on;
 open_file_cache max=250000 inactive=300s; 
 reset_timedout_connection on;&lt;/p&gt;

&lt;p&gt; # Compression
 gzip on;
 gzip_static on;
 gzip_min_length 1100;
 gzip_buffers 16 8k;
 gzip_comp_level 9;
 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 gzip_vary on;
 gzip_proxied any;&lt;/p&gt;

&lt;p&gt; # Network optimizations
 output_buffers 1000 128k;
 postpone_output 1460;
 sendfile on; 
 sendfile_max_chunk 256k;
 tcp_nopush on;
 tcp_nodelay on;
 server_tokens off;&lt;/p&gt;

&lt;p&gt; # DNS
 resolver 127.0.0.1;&lt;/p&gt;

&lt;p&gt; # HTTP Request
 ignore_invalid_headers on;
 index index.html;
 add_header X-CDN “Served by myself”;
 add_header Connection close;&lt;/p&gt;

&lt;p&gt; server_names_hash_max_size 5120;
 server_names_hash_bucket_size 256;&lt;/p&gt;

&lt;p&gt;upstream_fair_shm_size 1024k;
 # Proxy
 proxy_cache_path /data/tmp/disk/ levels=1:2 keys_zone=big:1000m max_size=16000G;
 proxy_temp_path /data/tmp/temp/ 1 2;
 proxy_cache_valid 404 10m;
 proxy_cache_valid 400 501 502 503 504 1m;
 proxy_cache_valid any 4320m;
 proxy_cache_use_stale updating invalid_header error timeout http_404 http_500 http_502 http_503 http_504;
 proxy_next_upstream error timeout invalid_header http_404 http_500 http_502 http_503 http_504;
 proxy_redirect off;
 proxy_set_header Host $http_host;
 proxy_set_header Server Apache;
 proxy_set_header Connection Close;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass_header Set-Cookie;
 proxy_pass_header User-Agent;
 proxy_set_header X-Accel-Buffering on;
 proxy_hide_header X-CDN;
 proxy_hide_header X-Server;
 proxy_intercept_errors off;
 proxy_ignore_client_abort on;
 proxy_connect_timeout 60;
 proxy_send_timeout 60;
 proxy_read_timeout 60;
 proxy_buffer_size 128k;
 proxy_buffers 16384 128k;
 proxy_busy_buffers_size 256k;
 proxy_temp_file_write_size 128k;
 proxy_cache_min_uses 0;
 # Includes
 include /etc/nginx/conf.d/&lt;em&gt;.conf;
 include /etc/nginx/sites-enabled/&lt;/em&gt;;
}
{% endhighlight %}&lt;/p&gt;

&lt;p&gt;Ensuite, voici le template par&lt;em&gt; vhost&lt;/em&gt; (au format &lt;a href=&quot;http://twig.sensiolabs.org/&quot;&gt;twig&lt;/a&gt;) que votre robot déploiera :&lt;/p&gt;

&lt;p&gt;{% highlight conf %}&lt;/p&gt;
&lt;h3 id=&quot;-serial--1&quot;&gt;{{ serial }}&lt;/h3&gt;
&lt;p&gt;proxy_cache_path /data/tmp/disk/{{ upstream }} levels=1:2 keys_zone={{ upstream }}:1000m inactive=4320m max_size=16000G;
upstream {{ upstream }}.nginx_backend {
{ % raw %}
 {% for backend in backends %}
 server {{ backend.name }}{% for key, value in backend.options %} {{ key }}={{ value }}{% endfor %};
 {% endfor %}
{ % endraw %}
 fair;
}
server {
 listen &lt;em&gt;:80;
 server_name {{ frontends|join(‘ ‘) }};
{ % raw %}
 {% for option in default_options %}
  {{- option.name }} {{ option.value }};
 {% endfor %}
 proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
 proxy_no_cache $http_pragma $http_authorization;
 {% for location in locations %}
  {% for rule_expert in location.rules_expert %}
  # {{ location.name }}
  location ~&lt;/em&gt; {{ rule_expert.pattern }} {
   {% for option in location.options %}
    {{- option.name }} {{ option.value }};
   {% endfor %}
   {% for header in location.del_headers -%}
    proxy_hide_header “{{ header.name }}”;
   {% endfor %}
   {% for header in location.mod_headers %}
    proxy_hide_header “{{ header.name }}”;
    add_header “{{ header.name }}” “{{ header.value }}”;
   {% endfor %}
   proxy_cache {{ upstream }};
   proxy_pass http://{{ upstream }}.nginx_backend;
  }
  {% endfor %}
 {% endfor %}
{ % endraw %}
 error_page 404 /404.html;
 error_page 500 /500.html;
 error_page 502 /502.html; 
 error_page 503 /503.html;
 error_page 504 /504.html;
 location = /404.html { root /var/www/nginx-default; }
 location = /500.html { root /var/www/nginx-default; }
 location = /502.html { root /var/www/nginx-default; }
 location = /503.html { root /var/www/nginx-default; }
 location = /504.html { root /var/www/nginx-default; }
}
{% endhighlight %}&lt;/p&gt;

&lt;h2 id=&quot;installation-des-serveurs-edge&quot;&gt;Installation des serveurs &lt;em&gt;edge&lt;/em&gt;&lt;/h2&gt;

&lt;h3 id=&quot;matériel-2&quot;&gt;Matériel&lt;/h3&gt;

&lt;p&gt;Au niveau matériel il s’agit, dans mon cas, de serveurs avec les matériels suivants :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;2 CPU Intel E5620 (la plateforme date un peu)&lt;/li&gt;
  &lt;li&gt;96 Go Ram&lt;/li&gt;
  &lt;li&gt;6 x 100 Go en SSD&lt;/li&gt;
  &lt;li&gt;interfaces réseaux optiques 10 Gbps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce qui suit est à faire sur l’image PXE ou sur le système local si vous en avez mis un. On commence par déployer les packages dont on a besoin :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;aptitude -y install nginx-extras bind9 ntp sysfsutils xfsprogs syslog-ng&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;ntp-2&quot;&gt;NTP&lt;/h3&gt;

&lt;p&gt;On modifie simplement les lignes &lt;em&gt;server&lt;/em&gt; du fichier &lt;em&gt;/etc/ntp.conf&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;B&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;dns-2&quot;&gt;DNS&lt;/h3&gt;

&lt;p&gt;Le service ne sera utilisé qu’en local pour la résolution DNS pour les besoins du nginx.
Pour cela, on édite le fichier &lt;em&gt;/etc/bind/named.conf/options&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;options&lt;/span&gt; {
 &lt;span class=&quot;n&quot;&gt;directory&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/var/cache/bind&quot;&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;query&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;address&lt;/span&gt; * &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt; *;
 &lt;span class=&quot;n&quot;&gt;forwarders&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;B&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;auth&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;nxdomain&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;no&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;v6&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;127&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;recursion&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;version&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;max&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;recursive&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10000&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;minimal&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;responses&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;yes&lt;/span&gt; ;
};&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;optimisation-systeme-2&quot;&gt;OPTIMISATION SYSTEME&lt;/h3&gt;

&lt;p&gt;On s’attaque au scheduler disque en modifiant le fichier &lt;em&gt;/etc/sysfs.conf&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;block&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;sda&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;queue&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;scheduler&lt;/span&gt; = &lt;span class=&quot;n&quot;&gt;noop&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On pense à adapter la partie en gras en fonction de ses disques. Dans la même idée, on modifier le bootloader &lt;em&gt;grub&lt;/em&gt; en modifiant &lt;em&gt;/etc/default/grub&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;GRUB_CMDLINE_LINUX&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;elevator=noop quiet&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;puis en mettant à jour* grub* :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;update-grub&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Le filesystem de l’espace de cache a aussi son importance :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;mkfs.xfs -f -l size=128m /dev/sda3&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On adapte aussi le fichier &lt;em&gt;/etc/fstab&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;/&lt;span class=&quot;n&quot;&gt;dev&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;sda3&lt;/span&gt; /&lt;span class=&quot;n&quot;&gt;data&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;cache&lt;/span&gt;/ &lt;span class=&quot;n&quot;&gt;xfs&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rw&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;nobarrier&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;largeio&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;noatime&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;nodiratime&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;logbufs&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;8&lt;/span&gt;,&lt;span class=&quot;n&quot;&gt;inode64&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;La partie sysctl est importante (/etc/sysctl.conf) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_filter&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rmem_default&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;rmem_max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;wmem_default&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;wmem_max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_rmem&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;4096&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;87380&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_wmem&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;4096&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_mem&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;4096&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;16777216&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_low_latency&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;netdev_max_backlog&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;30000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;file&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;shmmax&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16000000000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;shmall&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;16000000000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_abort_on_overflow&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_syncookies&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_fin_timeout&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_tw_reuse&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_tw_recycle&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ip_local_port_range&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1024&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;65535&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;min_free_kbytes&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth1&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth2&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth3&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth5&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_ignore&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth1&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth2&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth3&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;eth5&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;arp_announce&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_orphan_retries&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_timestamps&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_sack&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_window_scaling&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_keepalive_intvl&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_keepalive_probes&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ip_forward&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;proxy_arp&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;proxy_arp&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;sysrq&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;default&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;send_redirects&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;send_redirects&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core_uses_pid&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;kernel&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core_pattern&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;dirty_background_ratio&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;dirty_ratio&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;swappiness&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;vm&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;dirty_writeback_centisecs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1500&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfssyncd_centisecs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;360000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfs&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;xfsbufd_centisecs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;3000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_max_syn_backlog&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;65536&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;optmem_max&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;40960&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_max_tw_buckets&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;360000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_reordering&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;icmp_ignore_bogus_error_responses&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_no_metrics_save&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_max_orphans&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_rfc1337&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;core&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;somaxconn&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_ecn&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ip_no_pmtu_disc&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_slow_start_after_idle&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;net&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ipv4&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tcp_moderate_rcvbuf&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;A adapter selon les interfaces réseaux et la Ram (partie en gras). On l’applique avec un simple :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;sysctl -p&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Il est important d’appliquer les limites correspondantes au système (/etc/security/limits.conf) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;*    &lt;span class=&quot;n&quot;&gt;soft&lt;/span&gt;    &lt;span class=&quot;n&quot;&gt;nofile&lt;/span&gt;    &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;
*    &lt;span class=&quot;n&quot;&gt;hard&lt;/span&gt;    &lt;span class=&quot;n&quot;&gt;nofile&lt;/span&gt;    &lt;span class=&quot;m&quot;&gt;262144&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Certaines modifications sont à appliquer au démarrage du système (&lt;em&gt;/etc/rc.local&lt;/em&gt;) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;ifconfig eth0 txqueuelen 10000
ifconfig eth1 txqueuelen 10000
ifconfig eth2 txqueuelen 10000
ifconfig eth3 txqueuelen 10000
ifconfig eth4 txqueuelen 10000
ifconfig eth5 txqueuelen 10000
ifconfig eth0 mtu 9000
ifconfig eth1 mtu 9000
ifconfig eth2 mtu 9000
ifconfig eth3 mtu 9000
ifconfig eth4 mtu 9000
ifconfig eth5 mtu 9000
ethtool -K eth0 rx off tx off
ethtool -K eth1 rx off tx off
ethtool -K eth2 rx off tx off
ethtool -K eth3 rx off tx off
ethtool -K eth4 rx off tx off
ethtool -K eth5 rx off tx off&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;caching-1&quot;&gt;CACHING&lt;/h3&gt;

&lt;p&gt;Afin d’optimiser le nombre de socket par machine en fonction des ressources, on affecte plusieurs IP en alias à l’interface publique. De même, on pense à rajouter les IP des VIP à la loopback (&lt;em&gt;/etc/network/interfaces&lt;/em&gt;).&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;auto&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;iface&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inet&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;loopback&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;auto&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;iface&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inet&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;static&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;netmask&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;gateway&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;up&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ifconfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;11&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;32&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;up&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ifconfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;12&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;32&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;up&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ifconfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;13&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;32&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;up&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ifconfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;14&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;32&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;up&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ifconfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;15&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;32&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;up&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ifconfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;16&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;32&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;up&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ifconfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;6&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;17&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;32&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;up&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ifconfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;7&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;18&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;32&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;up&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ifconfig&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;eth0&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;8&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;19&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;32&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;auto&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;iface&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inet&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;static&lt;/span&gt; 
 &lt;span class=&quot;n&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;248&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;netmask&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;auto&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;iface&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lo&lt;/span&gt;:&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;inet&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;static&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;249&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;netmask&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;255&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Ensuite, on s’attaque à &lt;em&gt;nginx&lt;/em&gt;. D’abord pour la partie globale :&lt;/p&gt;

&lt;p&gt;{% highlight conf %}
user www-data;
worker_processes 32; 
worker_rlimit_nofile 262144;&lt;/p&gt;

&lt;p&gt;error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;&lt;/p&gt;

&lt;p&gt;timer_resolution 1ms;&lt;/p&gt;

&lt;p&gt;syslog local5 nginx;&lt;/p&gt;

&lt;p&gt;events {
 worker_connections 262144;
 use epoll;
 multi_accept on;
 accept_mutex_delay 1ms;
}&lt;/p&gt;

&lt;p&gt;http {
 include /etc/nginx/mime.types;
 default_type application/octet-stream;&lt;/p&gt;

&lt;p&gt; log_format access ‘[$time_local] $request_time “$request_method $scheme://$host$request_uri $server_protocol” $request_length $upstream_cache_status $status $proxy_host $upstream_addr $bytes_sent “$http_referer” $remote_addr “$http_user_agent”’;
 access_log syslog access;&lt;/p&gt;

&lt;p&gt; # Client connection
 aio off;
 client_body_temp_path /tmp 1 2;
 client_header_timeout 5s;
 client_body_timeout 5s;
 send_timeout 10m;
 connection_pool_size 256k;
 client_header_buffer_size 16k;
 large_client_header_buffers 1024 256k; 
 request_pool_size 128k; 
 keepalive_requests 1000;
 keepalive_timeout 10;
 client_max_body_size 10g;
 client_body_buffer_size 1m;
 client_body_in_single_buffer on;
 open_file_cache max=1000 inactive=3600s; 
 reset_timedout_connection on;&lt;/p&gt;

&lt;p&gt; # Compression
 gzip on;
 gzip_static on;
 gzip_min_length 1100;
 gzip_buffers 16 8k;
 gzip_comp_level 9;
 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 gzip_vary on;
 gzip_proxied any;&lt;/p&gt;

&lt;p&gt; # Network optimizations
 output_buffers 1000 128k;
 postpone_output 1460;
 sendfile on; 
 sendfile_max_chunk 256k;
 tcp_nopush on;
 tcp_nodelay on;
 server_tokens off;&lt;/p&gt;

&lt;p&gt; # DNS
 resolver 127.0.0.1;&lt;/p&gt;

&lt;p&gt; # HTTP Request
 ignore_invalid_headers on;
 index index.html;
 add_header X-CDN “Served by myself”;
 add_header Connection close;&lt;/p&gt;

&lt;p&gt; # Proxy
 proxy_cache_path /data/cache/disk levels=1:2 keys_zone=big:4000m inactive=4320m max_size=500G;
 proxy_temp_path /data/cache/temp 1 2;
 proxy_cache_valid 404 10m;
 proxy_cache_valid 400 501 502 503 504 1m;
 proxy_cache_valid any 4320m;
 proxy_cache_use_stale updating invalid_header error timeout http_404 http_500 http_502 http_503 http_504;
 proxy_next_upstream error timeout invalid_header http_404 http_500 http_502 http_503 http_504;
 proxy_redirect off;
 proxy_set_header Host $http_host;
 proxy_set_header Server Apache;
 proxy_set_header Connection Close;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass_header Set-Cookie;
 proxy_pass_header User-Agent;
 proxy_set_header X-Accel-Buffering on;
 proxy_hide_header X-CDN;
 proxy_hide_header X-Server;
 proxy_intercept_errors on;
 proxy_ignore_client_abort on;
 proxy_connect_timeout 10;
 proxy_send_timeout 10;
 proxy_read_timeout 10;
 proxy_buffer_size 128k;
 proxy_buffers 65536 128k;
 proxy_busy_buffers_size 256k;
 proxy_temp_file_write_size 128k;&lt;/p&gt;

&lt;p&gt; server_names_hash_max_size 5120;
 server_names_hash_bucket_size 256;&lt;/p&gt;

&lt;p&gt;upstream_fair_shm_size 1024k;&lt;/p&gt;

&lt;p&gt; # Includes
 include /etc/nginx/conf.d/&lt;em&gt;.conf;
 include /etc/nginx/sites-enabled/&lt;/em&gt;;
}
{% endhighlight %}&lt;/p&gt;

&lt;p&gt;Ensuite, voici le template par* vhost* (au format &lt;a href=&quot;http://twig.sensiolabs.org/&quot;&gt;twig&lt;/a&gt;) que votre robot déploiera :&lt;/p&gt;

&lt;p&gt;{% highlight conf %}&lt;/p&gt;
&lt;h3 id=&quot;-serial--2&quot;&gt;{{ serial }}&lt;/h3&gt;
&lt;p&gt;proxy_cache_path /data/cache/disk/{{ upstream }} levels=1:2 keys_zone={{ upstream }}:1000m inactive=4320m max_size=400G;
upstream {{ upstream }}.nginx_backend {
 server X.X.A.101 max_fails=1 fail_timeout=1; 
 server X.X.B.101 max_fails=1 fail_timeout=1;
 fair;
}
server {
 listen &lt;em&gt;:80;
 server_name {{ frontends|join(‘ ‘) }};
{ % raw %}
 {% for option in default_options %}
  {{- option.name }} {{ option.value }};
 {% endfor %}
 proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
 proxy_no_cache $http_pragma $http_authorization;
 {% for location in locations %}
  {% for rule_expert in location.rules_expert %}
  # {{ location.name }}
  location ~&lt;/em&gt; {{ rule_expert.pattern }} {
   {% for option in location.options %}
    {{- option.name }} {{ option.value }};
   {% endfor %}
   {% for header in location.del_headers %}
    proxy_hide_header “{{ header.name }}”;
   {% endfor %}
   {% for header in location.mod_headers %}
    proxy_hide_header “{{ header.name }}”;
    add_header “{{ header.name }}” “{{ header.value }}”;
   {% endfor %}
   proxy_cache {{ upstream }};
   proxy_pass http://{{ upstream }}.nginx_backend;
  }
  {% endfor %}
 {% endfor %}
{ % endraw %}
 error_page 404 /404.html;
 error_page 500 /500.html;
 error_page 502 /502.html; 
 error_page 503 /503.html;
 error_page 504 /504.html;
 location = /404.html { root /var/www/nginx-default; }
 location = /500.html { root /var/www/nginx-default; }
 location = /502.html { root /var/www/nginx-default; }
 location = /503.html { root /var/www/nginx-default; }
 location = /504.html { root /var/www/nginx-default; }
}
{% endhighlight %}&lt;/p&gt;

&lt;h3 id=&quot;syslog&quot;&gt;SYSLOG&lt;/h3&gt;

&lt;p&gt;On envoie les logs nginx directement sur le syslog centralisé, en modifiant le fichier &lt;em&gt;/etc/syslog-ng/syslog-ng.conf&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;destination&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;d_remote&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;tcp&lt;/span&gt;(&lt;span class=&quot;s2&quot;&gt;&quot;10.0.A.202&quot;&lt;/span&gt;, &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt;(&lt;span class=&quot;m&quot;&gt;514&lt;/span&gt;)); };
&lt;span class=&quot;n&quot;&gt;filter&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;f_nginx&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;facility&lt;/span&gt;(&lt;span class=&quot;n&quot;&gt;local5&lt;/span&gt;); };
&lt;span class=&quot;n&quot;&gt;log&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;source&lt;/span&gt;(&lt;span class=&quot;n&quot;&gt;s_src&lt;/span&gt;); &lt;span class=&quot;n&quot;&gt;filter&lt;/span&gt;(&lt;span class=&quot;n&quot;&gt;f_nginx&lt;/span&gt;); &lt;span class=&quot;n&quot;&gt;destination&lt;/span&gt;(&lt;span class=&quot;n&quot;&gt;d_remote&lt;/span&gt;); };&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;installation-dun-serveur-stats&quot;&gt;Installation d’un serveur &lt;em&gt;stats&lt;/em&gt;&lt;/h2&gt;

&lt;h3 id=&quot;matériel-3&quot;&gt;Matériel&lt;/h3&gt;

&lt;p&gt;Pour la partie matériel, j’ai pris un HP G7 avec des disques 15k rpm mis en RAID 10. Au niveau réseau, les interfaces gigabit suffisent amplement.&lt;/p&gt;

&lt;h3 id=&quot;packages&quot;&gt;Packages&lt;/h3&gt;

&lt;p&gt;On installe les packages nécessaires :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;aptitude -y install bind9 awstats jdresolve syslog-ng geoip-bin groip-database ntp&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;ntp-3&quot;&gt;NTP&lt;/h3&gt;

&lt;p&gt;On modifie simplement les lignes &lt;em&gt;server&lt;/em&gt; du fichier &lt;em&gt;/etc/ntp.conf&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;B&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;dns-3&quot;&gt;DNS&lt;/h3&gt;

&lt;p&gt;Le service ne sera utilisé qu’en local pour la résolution DNS des IP utilisateurs au moment de l’écriture des logs (ce qui évitera de le faire a posteriori pendant le calcul des statistiques).
Pour cela, on édite le fichier &lt;em&gt;/etc/bind/named.conf/options&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;options&lt;/span&gt; {
 &lt;span class=&quot;n&quot;&gt;directory&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/var/cache/bind&quot;&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;query&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;address&lt;/span&gt; * &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt; *
 &lt;span class=&quot;n&quot;&gt;forwarders&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;B&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;auth&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;nxdomain&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;no&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;v6&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;127&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;recursion&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;version&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;max&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;recursive&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10000&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;minimal&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;responses&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;yes&lt;/span&gt; ;
};&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;syslog-1&quot;&gt;SYSLOG&lt;/h3&gt;

&lt;p&gt;On centralise donc l’arrivée des logs &lt;em&gt;nginx&lt;/em&gt; via &lt;em&gt;syslog-ng&lt;/em&gt;. Pour cela, on édite simplement le fichier &lt;em&gt;/etc/syslog-ng/syslog-ng.conf&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;s_net&lt;/span&gt; {
 &lt;span class=&quot;n&quot;&gt;udp&lt;/span&gt;(&lt;span class=&quot;n&quot;&gt;ip&lt;/span&gt;(&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;) &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt;(&lt;span class=&quot;m&quot;&gt;514&lt;/span&gt;));
 &lt;span class=&quot;n&quot;&gt;tcp&lt;/span&gt;(&lt;span class=&quot;n&quot;&gt;ip&lt;/span&gt;(&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;) &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt;(&lt;span class=&quot;m&quot;&gt;514&lt;/span&gt;) &lt;span class=&quot;n&quot;&gt;max&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;connections&lt;/span&gt;(&lt;span class=&quot;m&quot;&gt;512&lt;/span&gt;));
};
&lt;span class=&quot;n&quot;&gt;destination&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;d_nginx&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;program&lt;/span&gt;(&lt;span class=&quot;s2&quot;&gt;&quot;/usr/bin/jdresolve -a - | /usr/bin/php /opt/cdn/bin/dispatch.php&quot;&lt;/span&gt;); };
&lt;span class=&quot;n&quot;&gt;log&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;source&lt;/span&gt;(&lt;span class=&quot;n&quot;&gt;s_net&lt;/span&gt;); &lt;span class=&quot;n&quot;&gt;destination&lt;/span&gt;(&lt;span class=&quot;n&quot;&gt;d_nginx&lt;/span&gt;); };&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;jdresolve est une application java permettant la résolution DNS à la volée. On le fait à ce moment plutôt que sur le &lt;em&gt;nginx&lt;/em&gt; pour éviter de rallonger la durée de traitement de la requête HTTP. Idem, il est fait avant le calcul des statistiques pour ne pas rallonger le traitement. En effet, &lt;em&gt;awstats&lt;/em&gt; est une véritable limace quand il s’agit de résoudre la partie DNS. Le script dispatch.php permet de dispatcher la ligne dans un fichier spécifique à son &lt;em&gt;vhost&lt;/em&gt;.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-php&quot; data-lang=&quot;php&quot;&gt;&lt;span class=&quot;k&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;explode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;file_get_contents&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;php://stdin&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
 &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
 &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;preg_match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;%.*&quot;.* http://([^/]*)/.* .*&quot;.* ([^\s]+).nginx_backend.*&quot;.*&quot; .* &quot;.*&quot;%i&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;FALSE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;die&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Invalid log format on line &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$id&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;.&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
 &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
 &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;isset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;$dir&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;/mnt/nfs/log/&apos;&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;date&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;Y/m/d&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;mkdir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$dir&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mo&quot;&gt;0777&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;substr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;strpos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;[&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;file_put_contents&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$dir&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;/&apos;&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&apos;.log&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;FILE_APPEND&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
 &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;isset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;sizeof&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;file_put_contents&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/tmp/trash.log&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$match&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;FILE_APPEND&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
 &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Pensez à modifier le chemin de dépôt pour les logs (en gras).&lt;/p&gt;

&lt;h3 id=&quot;statistiques&quot;&gt;Statistiques&lt;/h3&gt;

&lt;p&gt;La partie des statistiques repose sur &lt;em&gt;awstats&lt;/em&gt;. Un script permet de collecter les informations en base pour chaque &lt;em&gt;vhost&lt;/em&gt; et la génération en dynamique de sa configuration en cas de besoin. Je ne vais pas pouvoir vous fournir le script. Cependant, voici le modèle pour les fichiers de configuration d’&lt;em&gt;awstats&lt;/em&gt;.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;LogFile&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;###LOG###&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;LogType&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;W&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;LogFormat&lt;/span&gt; = &lt;span class=&quot;s2&quot;&gt;&quot;%time1 %extra1 %methodurl %extra2 %extra3 %code %extra4 %extra5 %bytesd %refererquot %host %uaquot&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;LogSeparator&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot; &quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;SiteDomain&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;###VHOST###&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;HostAliases&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;###FQDN###&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DNSLookup&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DirData&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;/var/lib/awstats&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DirCgi&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;/cgi-bin&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DirIcons&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;/awstats-icon&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AllowToUpdateStatsFromBrowser&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AllowFullYearView&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;EnableLockForUpdate&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DNSStaticCacheFile&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;dnscache.txt&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DNSLastUpdateCacheFile&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;dnscachelastupdate.txt&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;SkipDNSLookupFor&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AllowAccessFromWebToAuthenticatedUsersOnly&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AllowAccessFromWebToFollowingAuthenticatedUsers&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AllowAccessFromWebToFollowingIPAddresses&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;CreateDirDataIfNotExists&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;BuildHistoryFormat&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;text&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;BuildReportFormat&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;html&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;SaveDatabaseFilesWithPermissionsForEveryone&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;PurgeLogFile&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ArchiveLogRecords&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;KeepBackupOfHistoricFiles&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DefaultFile&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;index.html&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;SkipHosts&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;REGEX[^X\.X\.A\.] REGEX[^X\.X\.B\.]&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;SkipUserAgents&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;SkipFiles&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;SkipReferrersBlackList&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;OnlyHosts&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;OnlyUserAgents&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;OnlyFiles&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;NotPageList&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ValidHTTPCodes&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;200 206 300 301 302 303 304 305 307&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ValidSMTPCodes&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;1 250&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AuthenticatedUsersNotCaseSensitive&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;URLNotCaseSensitive&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;URLWithAnchor&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;URLQuerySeparators&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;?;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;URLWithQuery&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;URLWithQueryWithOnlyFollowingParameters&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;URLWithQueryWithoutFollowingParameters&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;URLReferrerWithQuery&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;WarningMessages&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ErrorMessages&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DebugMessages&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;NbOfLinesForCorruptedLog&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;50&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;WrapperScript&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DecodeUA&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MiscTrackerUrl&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;/js/awstats_misc_tracker.js&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;LevelForBrowsersDetection&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 0 disables Browsers detection.
&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 2 reduces AWStats speed by 2%
&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# allphones reduces AWStats speed by 5%
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LevelForOSDetection&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 0 disables OS detection.
&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 2 reduces AWStats speed by 3%
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LevelForRefererAnalyze&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 0 disables Origin detection.
&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 2 reduces AWStats speed by 14%
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LevelForRobotsDetection&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 0 disables Robots detection.
&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 2 reduces AWStats speed by 2.5%
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LevelForSearchEnginesDetection&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 0 disables Search engines detection.
&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 2 reduces AWStats speed by 9%
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LevelForKeywordsDetection&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 0 disables Keyphrases/Keywords detection.
&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 2 reduces AWStats speed by 1%
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LevelForFileTypesDetection&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 0 disables File types detection.
&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 2 reduces AWStats speed by 1%
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LevelForWormsDetection&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 0 disables Worms detection.
&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# 2 reduces AWStats speed by 15%
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;UseFramesWhenCGI&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DetailedReportsOnNewWindows&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;Expires&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxRowsInHTMLOutput&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;Lang&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;fr&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;DirLang&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;/usr/share/awstats/lang&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowMenu&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;ShowSummary&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;UVPHB&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowMonthStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;UVPHB&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowDaysOfMonthStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;VPHB&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowDaysOfWeekStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;PHB&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowHoursStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;PHB&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowDomainsStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;PHB&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowHostsStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;PHBL&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowAuthenticatedUsers&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowRobotsStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;HBL&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowWormsStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowEMailSenders&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowEMailReceivers&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowSessionsStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowPagesStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;PBEX&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowFileTypesStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;HB&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowFileSizesStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;ShowOSStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowBrowsersStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowScreenSizeStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowOriginStats&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;PH&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowKeyphrasesStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowKeywordsStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowMiscStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowHTTPErrorsStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowSMTPErrorsStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowClusterStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AddDataArrayMonthStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AddDataArrayShowDaysOfMonthStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AddDataArrayShowDaysOfWeekStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;AddDataArrayShowHoursStats&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;IncludeInternalLinksInOriginSection&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfDomain&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitDomain&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfHostsShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitHost&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfLoginShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitLogin&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfRobotShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitRobot&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfPageShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitFile&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfOsShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitOs&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfBrowsersShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitBrowser&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfScreenSizesShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitScreenSize&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfWindowSizesShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitWindowSize&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfRefererShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitRefer&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfKeyphrasesShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitKeyphrase&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfKeywordsShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitKeyword&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxNbOfEMailsShown&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MinHitEMail&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;FirstDayOfWeek&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowFlagLinks&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ShowLinksOnUrl&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;UseHTTPSLinkForUrl&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;MaxLengthOfShownURL&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;64&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;HTMLHeadSection&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;HTMLEndSection&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;BarWidth&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;260&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;BarHeight&lt;/span&gt; = &lt;span class=&quot;m&quot;&gt;90&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;StyleSheet&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;color_Background&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;FFFFFF&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for main page (Default = &quot;FFFFFF&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_TableBGTitle&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;CCCCDD&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for table title (Default = &quot;CCCCDD&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_TableTitle&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;000000&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Table title font color (Default = &quot;000000&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_TableBG&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;CCCCDD&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for table (Default = &quot;CCCCDD&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_TableRowTitle&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;FFFFFF&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Table row title font color (Default = &quot;FFFFFF&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_TableBGRowTitle&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;ECECEC&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for row title (Default = &quot;ECECEC&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_TableBorder&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;ECECEC&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Table border color (Default = &quot;ECECEC&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_text&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;000000&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Color of text (Default = &quot;000000&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_textpercent&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;606060&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Color of text for percent values (Default = &quot;606060&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_titletext&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;000000&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Color of text title within colored Title Rows (Default = &quot;000000&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_weekend&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;EAEAEA&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Color for week-end days (Default = &quot;EAEAEA&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_link&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;0011BB&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Color of HTML links (Default = &quot;0011BB&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_hover&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;605040&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Color of HTML on-mouseover links (Default = &quot;605040&quot;) 
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_u&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;FFAA66&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for number of unique visitors (Default = &quot;FFAA66&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_v&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;F4F090&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for number of visites (Default = &quot;F4F090&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_p&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;4477DD&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for number of pages (Default = &quot;4477DD&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_h&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;66DDEE&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for number of hits (Default = &quot;66DDEE&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_k&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;2EA495&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for number of bytes (Default = &quot;2EA495&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_s&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;8888DD&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for number of search (Default = &quot;8888DD&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_e&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;CEC2E8&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for number of entry pages (Default = &quot;CEC2E8&quot;)
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;color_x&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;C1B2E2&quot;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# Background color for number of exit pages (Default = &quot;C1B2E2&quot;)
#LoadPlugin=&quot;hashfiles&quot;
#LoadPlugin=&quot;geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat&quot;
&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ExtraTrackedRowsLimit&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ExtraSectionName1&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;Hit cache status&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ExtraSectionCodeFilter1&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;ExtraSectionCondition1&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ExtraSectionFirstColumnTitle1&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;Cache Status&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ExtraSectionFirstColumnValues1&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;extra3,(.*)&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ExtraSectionFirstColumnFormat1&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;%s&quot;&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;ExtraSectionStatTypes1&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;H&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;ExtraSectionAddAverageRow1&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;ExtraSectionAddSumRow1&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;MaxNbOfExtra1&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;100&lt;/span&gt; 
&lt;span class=&quot;n&quot;&gt;MinHitExtra1&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Il est intéressant que le script gérant ces statistiques précalcule aussi les pages statiques HTML pour éviter des chargements trop long lors des consultations.&lt;/p&gt;

&lt;h2 id=&quot;installation-dun-serveur-master&quot;&gt;Installation d’un serveur &lt;em&gt;master&lt;/em&gt;&lt;/h2&gt;

&lt;h3 id=&quot;materiel&quot;&gt;Materiel&lt;/h3&gt;

&lt;p&gt;Au niveau matériel, on recycle ce qu’on a. Il n’y a pas besoin de performances réelles sauf pour la base de données donc le choix est libre.&lt;/p&gt;

&lt;h3 id=&quot;packages-1&quot;&gt;Packages&lt;/h3&gt;

&lt;p&gt;On installe les packages principaux :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;aptitude -y install ldirectord ipvsadm bind9 ntp&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Pour la partie backoffice et outils de cron développés en interne, je vous laisse le choix. Je ne peux pas vous fournir mon code pour le moment. Pour autant, une bonne partie de la magie se passe là concernant le déploiement automatique, la customisation par site et le monitoring.&lt;/p&gt;

&lt;h3 id=&quot;dns-4&quot;&gt;DNS&lt;/h3&gt;

&lt;p&gt;Le serveur DNS serveur de forwarders aux autres serveurs DNS. Lui utilisera ceux d’&lt;a href=&quot;http://www.opendns.com/&quot;&gt;OpenDNS&lt;/a&gt; tant qu’à faire. Pour cela, on édite le fichier &lt;em&gt;/etc/bind/named.conf/options&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;options&lt;/span&gt; {
 &lt;span class=&quot;n&quot;&gt;directory&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/var/cache/bind&quot;&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;query&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;source&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;address&lt;/span&gt; * &lt;span class=&quot;n&quot;&gt;port&lt;/span&gt; *;
 &lt;span class=&quot;n&quot;&gt;forwarders&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;208&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;67&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;222&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;222&lt;/span&gt;; &lt;span class=&quot;m&quot;&gt;208&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;67&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;220&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;220&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;auth&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;nxdomain&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;no&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;v6&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;listen&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;on&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;127&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;201&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;transfer&lt;/span&gt; { &lt;span class=&quot;m&quot;&gt;127&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;; &lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;/&lt;span class=&quot;m&quot;&gt;8&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;allow&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;recursion&lt;/span&gt; { &lt;span class=&quot;n&quot;&gt;any&lt;/span&gt;; };
 &lt;span class=&quot;n&quot;&gt;version&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;none&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;max&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;per&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;query&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;recursive&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;clients&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;10000&lt;/span&gt;;
 &lt;span class=&quot;n&quot;&gt;minimal&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;responses&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;yes&lt;/span&gt; ;
};&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Il servira aussi la zone DNS dédiée au CDN. On préconisera au client (même si l’on perd un peu en performance) de faire des CNAME vers ces enregistrement. Cela évitera d’avoir à le prévenir si l’on fait des changements. Si les changements ne sont pas prévu, que l’on gère les zones clientes en interne, ou que l’on préfère les performances, on se refusera de faire des CNAME.&lt;/p&gt;

&lt;h3 id=&quot;load-balancing&quot;&gt;Load-balancing&lt;/h3&gt;

&lt;p&gt;On édite le fichier &lt;em&gt;/etc/network/interfaces&lt;/em&gt; et on rajoute à l’interface publique (&lt;em&gt;eth0&lt;/em&gt; ici) :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;post-up ifconfig eth0:0 X.X.A.248/32
post-up ifconfig eth0:0 X.X.A.249/32&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On utilise donc ldirector/ipvsadm. Dans &lt;em&gt;/etc/default/ldirectord&lt;/em&gt; on définit le chemin de la configuration :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;CONFIG_FILE&lt;/span&gt;=/&lt;span class=&quot;n&quot;&gt;etc&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;ldirectord&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;conf&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Puis, on modifie le fichier correspondant :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;checktimeout&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;negotiatetimeout&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;checkinterval&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;autoreload&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;yes&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;logfile&lt;/span&gt;=&lt;span class=&quot;s2&quot;&gt;&quot;l0&quot;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;quiescent&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;yes&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;emailalert&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;support&lt;/span&gt;@&lt;span class=&quot;n&quot;&gt;domaine&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;tld&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;virtual&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;248&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;11&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;12&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;13&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;14&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;15&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;16&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;17&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;18&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;19&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;20&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;21&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;22&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;23&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;24&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;25&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;26&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;27&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;28&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;29&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;service&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;scheduler&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;sed&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;protocol&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;connect&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;persistent&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;virtual&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;249&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;10&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;11&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;12&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;13&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;14&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;15&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;16&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;17&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;18&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;19&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;20&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;21&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;22&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;23&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;24&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;25&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;26&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;27&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;28&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;real&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;X&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;A&lt;/span&gt;.&lt;span class=&quot;m&quot;&gt;29&lt;/span&gt;:&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gate&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;service&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;scheduler&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;sed&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;protocol&lt;/span&gt;=&lt;span class=&quot;n&quot;&gt;connect&lt;/span&gt;
 &lt;span class=&quot;n&quot;&gt;persistent&lt;/span&gt;=&lt;span class=&quot;m&quot;&gt;5&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Pour information sur cette configuration :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;gate permet le fonctionnement en DSR du load balancing&lt;/li&gt;
  &lt;li&gt;persistent définit la durée du sticky pour la session (ici 5 secondes)&lt;/li&gt;
  &lt;li&gt;autoreload déclenche le rechargement de la configuration à chaque modification du fichier&lt;/li&gt;
  &lt;li&gt;emailalert nous préviendra par email de tout changement d’état dans la VIP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus qu’à lancer relancer l’interface réseau puis le service et voilà la VIP prête.&lt;/p&gt;

&lt;h3 id=&quot;ntp-4&quot;&gt;NTP&lt;/h3&gt;
&lt;p&gt;On veut que tous les serveurs soit synchro niveau temps. Autant avoir un serveur de référence à proximité. On a donc installé le package. Aucune modification de base à faire.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Du vent dans mes molllets : un vent de jeunesse</title>
      <link href="https://francois.aichelbaum.com/2012/09/05/du-vent-dans-mes-molllets-un-vent-de-jeunesse" />
      <updated>2012-09-05T11:11:01+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/09/05/du-vent-dans-mes-molllets-un-vent-de-jeunesse</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/du-vent-dans-mes-mollets-22-08-2012-10-g.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-6836&quot; title=&quot;Du vent dans mes mollets&quot; src=&quot;/assets/du-vent-dans-mes-mollets-22-08-2012-10-g-150x150.jpg&quot; alt=&quot;Du vent dans mes mollets&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Après une publication à succès aux formats livre et BD, Raphaële Moussafir nous offre une version cinéma de son oeuvre &lt;em&gt;Du vent dans mes mollets&lt;/em&gt;. Elle nous y raconte donc les déboires de la jeune Rachel qui, du haut de ses neuf ans, vit bien des aventures après sa rencontre avec Valérie. Transportés dans les années 80 par son récit, nous transporte-t-elle également dans ses émotions ? Chronique d&apos;une enfant des années 70/80.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;La jeunesse et ses soucis&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;introduction animée, façon &lt;a href=&quot;http://www.youtube.com/watch?v=i58qcYzFHCs&quot;&gt;Alinéa&lt;/a&gt;, nous raconte la naissance et les très jeunes années de la petite Rachel. On voit donc en accéléré toutes les tristesses qui l&apos;ont traumatisée au point de dormir habillée et avec son cartable sur le dos. Bonne pour un tour chez le psy selon sa mère.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt; [video]http://www.youtube.com/watch?v=ovPGdCoPmzc[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Arrivée à neuf ans, dans une nouvelle classe, elle rencontre donc l&apos;&lt;em&gt;intrépide&lt;/em&gt; Valérie. Fille d&apos;une mère célibataire, celle-ci est prête pour les 400 coups dans lesquels elle embarque Rachel.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/large_603952.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6848&quot; title=&quot;Du vent dans mes mollets&quot; src=&quot;/assets/large_603952-150x150.jpg&quot; alt=&quot;Du vent dans mes mollets&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/DU-VENT-DANS-MES-MOLLETS_portrait_w858.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6851&quot; title=&quot;Du vent dans mes mollets&quot; src=&quot;/assets/DU-VENT-DANS-MES-MOLLETS_portrait_w858-150x150.jpg&quot; alt=&quot;Du vent dans mes mollets&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/du-vent-dans-mes-mollets-22-08-2012-19-g.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6854&quot; title=&quot;Du vent dans mes mollets&quot; src=&quot;/assets/du-vent-dans-mes-mollets-22-08-2012-19-g-150x150.jpg&quot; alt=&quot;Du vent dans mes mollets&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/du_vent_dans_mes_mollets_2.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6857&quot; title=&quot;Du vent dans mes mollets&quot; src=&quot;/assets/du_vent_dans_mes_mollets_2-150x150.jpg&quot; alt=&quot;Du vent dans mes mollets&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/20148004.jpg-r_640_600-b_1_D6D6D6-f_jpg-q_x-xxyxx.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6860&quot; title=&quot;Du vent dans mes mollets&quot; src=&quot;/assets/20148004.jpg-r_640_600-b_1_D6D6D6-f_jpg-q_x-xxyxx-150x150.jpg&quot; alt=&quot;Du vent dans mes mollets&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/1748089_7_0a05_une-scenedu-film-francais-du-vent-dans-mes_733b037dd50fb5ee029d02558f8bd48c.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6863&quot; title=&quot;Du vent dans mes mollets&quot; src=&quot;/assets/1748089_7_0a05_une-scenedu-film-francais-du-vent-dans-mes_733b037dd50fb5ee029d02558f8bd48c-150x150.jpg&quot; alt=&quot;Du vent dans mes mollets&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On se fait donc transporté au début des années 80 (1981, la meilleure :-P) les larmes aux yeux tellement on rigole. C&apos;est dans les petits détails que l&apos;on reconnait les bons artisants dit le père. C&apos;est dans les détails du décors, des scènes et du magnifique jeune d&apos;acteurs (Agnès Jaoui mais aussi les deux jeunes gamines) que l&apos;on admire et reconnaît le travail de qualité. Les cuisines kitch. Les tenues hautes en couleur. Les parents qui se parlent en franglais pour que la jeune tête blonde ne comprenne pas (selon eux).... Un moment quasi inoubliable.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Mais, parce que je suis mauvais en râlerie, voici les (rares) points noirs relevés :&lt;/p&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;tellement de participants au film qu&apos;on nous détaille même les employés de la cantine du tournage ou la marque de café pour le ravitaillement ; faut bien une durée minimale au générique&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;tout est fait dans le détail des années 80 sauf ... la signalisation routière trop moderne ; penser aux cyclistes sur la route, c&apos;est plus récent ...&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;Tout ceci n&apos;enlève rien à la réussite du film qui mérite qu&apos;on aille prendre sa place. Enfin un bon film français dans les règles de l&apos;art et ca faisait (presque) longtemps qu&apos;on en attendait.&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/09/VENT-DANS-MES-MOLLETS_vdef1-800x1064.jpg&quot;&gt;&lt;img class=&quot;alignnone size-large wp-image-6839 aligncenter&quot; title=&quot;Du vent dans mes mollets&quot; src=&quot;/assets/VENT-DANS-MES-MOLLETS_vdef1-800x1064-769x1024.jpg&quot; alt=&quot;Du vent dans mes mollets&quot; width=&quot;584&quot; height=&quot;777&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Revue du web du 3 septembre 2012</title>
      <link href="https://francois.aichelbaum.com/2012/09/03/revue-du-web-du-3-septembre-2012" />
      <updated>2012-09-03T16:42:07+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/09/03/revue-du-web-du-3-septembre-2012</id>
      <content type="html">&lt;p&gt;C’est lundi. C’est la pluie. C’est pas rose. C’est la faute à morose. Mais bon, il y a toujours de la musique pour nous ramener un peu de baaume au coeur. Ainsi il ira alors de la revue du web du jour. Au passage, allez faire un tour sur &lt;a href=&quot;/tags/mmc&quot;&gt;cette page&lt;/a&gt; du blog pour écouter (et soutenir) des talents emmergeants.&lt;/p&gt;

&lt;h2 id=&quot;quentin-tarantino-dans-un-mashup-hommage&quot;&gt;Quentin Tarantino dans un mashup hommage&lt;/h2&gt;

&lt;p&gt;La semaine dernière, Kubrick a eu le droit à un hommage en vidéo. Cette fois, c’est au tour du déjanté Quentin Tarantino de passer à la moulinette d’un mashup en règle. Hommage de qualité. via &lt;a href=&quot;http://golem13.fr/le-mashup-des-films-de-quentin-tarantino/&quot;&gt;Golem13&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;le-web-et-ses-mashup&quot;&gt;Le web et ses mashup&lt;/h2&gt;

&lt;p&gt;A croire que c’est la mode de faire des mélanges. Cette fois ci, on nous mélange des bandes sons de films et chansons diverses pour un résultat sans équivoque. Du pur plaisir pour les oreilles. via &lt;a href=&quot;http://golem13.fr/superbe-mashup-de-11-videos/&quot;&gt;Golem13&lt;/a&gt;.&lt;/p&gt;

&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;https://player.vimeo.com/video/ithacaaudio/walking-in-your-mind&quot; frameborder=&quot;0&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;il-nest-pas-bon-découter-la-musique-trop-fort&quot;&gt;Il n’est pas bon d’écouter la musique trop fort&lt;/h2&gt;

&lt;p&gt;Même quand il s’agît du magistral &lt;em&gt;Highway to Hell&lt;/em&gt; d’AC-DC. C’est la dure leçon apprise par cette femme qui a eu la visite régulière de la police : quatre fois en 26h. Bon le titre est magnifique, on se le passe facilement en boucle en montant le son. Il faut croire que ce n’est pas du goût de tous. via &lt;a href=&quot;http://golem13.fr/highway-to-hell-joyce-coffey/&quot;&gt;Golem13&lt;/a&gt; (oui encore !)&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;les-androïdes-jouent-il-de-la-musique-&quot;&gt;Les androïdes jouent-il de la musique ?&lt;/h2&gt;

&lt;p&gt;C’est une question que Philip K. Dick aurait pu se poser. On voit de plus en plus de présentation de robots aux activités diverses. Dans le cas présent, un robot à 4 bras qui se déchaîne sur sa batterie. Ok, c’est programmé. Ok, on y perd l’âme de l’artiste. Mais le résultat est là. Ca ne vaut Franck Beard des ZZ-Top qui se défonce à la batterie du haut de ses 63 ans dans de longs solos mémorables. via &lt;a href=&quot;http://www.journaldugeek.com/2012/09/03/stickboy-robot-batteur-4-bras/&quot;&gt;JdG&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Revue du web du 31 août 2012</title>
      <link href="https://francois.aichelbaum.com/2012/08/31/revue-du-web-du-31-aout-2012" />
      <updated>2012-08-31T12:19:10+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/31/revue-du-web-du-31-aout-2012</id>
      <content type="html">&lt;p&gt;C’est Trolldi. Une semaine sans billet c’est long alors une bonne revue du web pour se détendre et pour compenser. Bon surf !&lt;/p&gt;

&lt;h2 id=&quot;beer-chase--il-y-a-des-priorités-dans-la-vie&quot;&gt;Beer chase : il y a des priorités dans la vie&lt;/h2&gt;

&lt;p&gt;Et dans le cas présent, les voleurs préfèrent la bière à l’argent. La bière &lt;em&gt;Carlton Draught&lt;/em&gt; s’offre une pub kitchissime avec un bon &lt;em&gt;feeling&lt;/em&gt; des années 80 avec une course poursuite entre la police et des voyous. C’est sûrement de la &lt;em&gt;pisse&lt;/em&gt; comme diraient certains mais c’est vendeur.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;batman-au-pays-des-tigre--dragon&quot;&gt;Batman au pays des Tigre &amp;amp; Dragon&lt;/h2&gt;

&lt;p&gt;Cartoon Network présente régulièrement, au travers du DC Nations, des courts métrages issue de l’univers de DC. Une vidéo qui fait le tour du net est celle du mashup entre Batman (accompagné de Catwoman et Bane) et la Chine médiévale. Un régal.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;le-web-le-cloud-et-les-américains&quot;&gt;Le web, le cloud et les américains&lt;/h2&gt;

&lt;p&gt;On savait les américains légèrement incultes et limités dans leur compréhension du monde mais là je crois qu’il y a une absence totale de capacité d’abstraction. L’information est remontée par le JdG dans &lt;a href=&quot;http://www.journaldugeek.com/2012/08/30/cloud-computing-certains-americains-pensent-a-un-vrai-nuage/&quot;&gt;un article d’hier&lt;/a&gt;. Seuls 16% des américains savent ce qu’est le cloud. Une personne sur deux pensent que la météo influe sur le service. Quand on vous dit que notre métier est du maraboutage.&lt;/p&gt;

&lt;h2 id=&quot;je-vous-mets-un-petit-bout-de-cervelle-avec-ca-&quot;&gt;Je vous mets un petit bout de cervelle avec ca ?&lt;/h2&gt;

&lt;p&gt;Beaucoup foncent au &lt;a href=&quot;http://www.lecamionquifume.com/&quot;&gt;Camion qui fume&lt;/a&gt; en ce moment. Aux US, c’est une pratique très répandu au point qu’il faut avoir de l’imagination pour se démarquer. &lt;a href=&quot;http://golem13.fr/the-gory-gourmet-food-truck/&quot;&gt;The Gory Gourmet&lt;/a&gt; vous proposer donc la version Zombies. Comme une odeur de vache folle. Why not ?&lt;/p&gt;

&lt;h2 id=&quot;kubrick-nest-pas-cubique&quot;&gt;Kubrick n’est pas cubique&lt;/h2&gt;

&lt;p&gt;Bon elle était facile celle-là. Kubrick est un maître du cinéma et de la perspective qu’il utilise à foison dans ses films. Golem13 nous présente un petit mashup de ses films avec la bande son (envoutante et magnifique) de Requiem for a Dream. Petit hommage en soi au maître.&lt;/p&gt;

&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;https://player.vimeo.com/video/48425421&quot; frameborder=&quot;0&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
</content>
    </entry>
  
    <entry>
      <title>Go on : retour de Matthew Perry encore plus speed</title>
      <link href="https://francois.aichelbaum.com/2012/08/25/go-on-retour-de-matthew-perry-encore-plus-speed" />
      <updated>2012-08-25T21:11:33+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/25/go-on-retour-de-matthew-perry-encore-plus-speed</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/Go-On-e1344553990948-150x150.jpg&quot; alt=&quot;Go on&quot; /&gt;{.left} Matthew Perry, le Chandler Bing de &lt;a href=&quot;https://www.youtube.com/watch?v=Kj1zBmJE_64&quot;&gt;Friends&lt;/a&gt;, revient dans une nouvelle sitcom après l’échec de &lt;a href=&quot;https://www.youtube.com/watch?v=nCmPPEs6wN4&quot;&gt;Mr Sunshine&lt;/a&gt;, son projet personnel abandonné par ABC. Traits tirés, poids perdus, le comique de service est-il de retour pour le meilleur ou pour le pire ? En tout cas sa dynamique réclame qu’on le suive. &lt;em&gt;Go on&lt;/em&gt; sera diffusée sur NBC à partir de septembre mais son pilote a déjà été diffusé par le network américain.&lt;/p&gt;

&lt;h2 id=&quot;matthew-perry-sous-crack&quot;&gt;Matthew Perry sous crack&lt;/h2&gt;

&lt;p&gt;Autant son projet personnel était dynamique, autant il a été quelque peu mal mené et surtout mal vendu par ABC. Pour autant, il ne s’est pas laissé abattu et a rempilé pour un nouveau projet proposé par Scott Silveri.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;J’ai pu voir le pilote. L’acteur se montre fatigué mais pour autant n’a pas perdu de son &lt;em&gt;speed&lt;/em&gt; et de son décallage. Animateur radio mis au repos par sa direction suite au décès de sa femme, on lui demande de suivre une thérapie. Le groupe d’anonyme qui lui est affecté travaille sur les “changements de vie”. Entre les difficultés d’intégration, la perte d’un proche, les ennuis de santé, les phobies, … chaque personne du groupe à une multitude de problèmes sur lesquels il doit travailler. Tout un programme.&lt;/p&gt;

&lt;p&gt;La thérapiste, aux faux airs de Courteney Cox, a du mal à canaliser l’énergie de Matthew Perry qui ne demande qu’une chose : partager son énergie et maquiller sa propre douleur. Une morale en ressort : il y a toujours pire. Donc, autant regarder vers le haut.
Une série à découvrir en septembre.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/182570_3402590706773_1150134598_n.jpg&quot; title=&quot;&quot; srcset=&quot; /assets/182570_3402590706773_1150134598_n.jpg 400w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Vos enfants 2.0</title>
      <link href="https://francois.aichelbaum.com/2012/08/25/vos-enfants-2-0" />
      <updated>2012-08-25T14:04:24+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/25/vos-enfants-2-0</id>
      <content type="html">&lt;aside class=&quot;sidebar__right&quot;&gt;
&lt;nav class=&quot;toc&quot;&gt;
    &lt;header&gt;&lt;h4 class=&quot;nav__title&quot;&gt;&lt;i class=&quot;fa fa-book&quot;&gt;&lt;/i&gt; What?&lt;/h4&gt;&lt;/header&gt;
&lt;ul class=&quot;toc__menu&quot; id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#les-enfants-et-les-bonnes-pratiques-à-leur-inculquée&quot; id=&quot;markdown-toc-les-enfants-et-les-bonnes-pratiques-à-leur-inculquée&quot;&gt;Les enfants et les bonnes pratiques à leur inculquée&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#les-enfants-un-ordinateur-et-internet&quot; id=&quot;markdown-toc-les-enfants-un-ordinateur-et-internet&quot;&gt;Les enfants, un ordinateur et internet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#limiter-le-temps-dutilisation&quot; id=&quot;markdown-toc-limiter-le-temps-dutilisation&quot;&gt;Limiter le temps d’utilisation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#filtrage-du-web&quot; id=&quot;markdown-toc-filtrage-du-web&quot;&gt;Filtrage du web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#petit-cadeau-pour-mon-neveu&quot; id=&quot;markdown-toc-petit-cadeau-pour-mon-neveu&quot;&gt;Petit cadeau pour mon neveu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

  &lt;/nav&gt;
&lt;/aside&gt;

&lt;p&gt;Je vais faire mon vieux, mais à mon époque, lorsque l’on cherchait des infos, on sortait et finissait à la bibliothèque. Aujourd’hui, c’est de plus en plus rare de le voir. L’information (qu’il faut apprendre à confirmer) est disponible facilement via internet. Les enfants d’aujourd’hui sont connectés de plus en plus jeune. Et lorsque je vois les débordements qu’il y a (pédo-pornographie, facilité d’accès à des contenus sensibles, …) et la dérive qui en découle dans le comportement de nos enfants, j’ai peur. Du coup, vu que l’un de mes neveux (12 ans) a besoin d’un ordinateur, tant qu’à faire, autant le lui préparer, le sécuriser et lui apprendre à s’en servir. Je m’intéresse dans l’article présent à la sécurisation du PC et surtout du surf de cette petite tête blonde. Je suppose que vous lui avez déjà installer le nécessaire pour le loisir et les études.&lt;/p&gt;

&lt;h2 id=&quot;les-enfants-et-les-bonnes-pratiques-à-leur-inculquée&quot;&gt;Les enfants et les bonnes pratiques à leur inculquée&lt;/h2&gt;

&lt;p&gt;Déjà, on ne va pas céder &lt;em&gt;totalement&lt;/em&gt; à la facilité. Totalement, car autant je ne lui mettrais pas un Windows, autant il aura le droit à une Ubuntu 12.04. Par contre, cela n’empêche pas d’y faire un ménage salvateur (liste non exhaustive) :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Thunderbird, Evolution&lt;/li&gt;
  &lt;li&gt;Empathy, Pidgin&lt;/li&gt;
  &lt;li&gt;les accès au bureau à distance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ensuite, on pense à installer, même si on n’est pas &lt;em&gt;trolldi&lt;/em&gt;, un anti-virus. Ce n’est pas le seul ordinateur de la maison, et il risque aussi d’échanger avec l’extérieur (famille, amis…). J’ai choisi pour le coup &lt;em&gt;ClamAV&lt;/em&gt;.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;sudo apt-get install clamav clamtk&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On rajoutera une crontab pour mettre à jour régulièrement la base et pour scanner la machine :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;18&lt;/span&gt; * * * /&lt;span class=&quot;n&quot;&gt;usr&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;bin&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;freshclam&lt;/span&gt; --&lt;span class=&quot;n&quot;&gt;quiet&lt;/span&gt;
&lt;span class=&quot;m&quot;&gt;10&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;18&lt;/span&gt; * * * /&lt;span class=&quot;n&quot;&gt;us&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;bin&lt;/span&gt;/&lt;span class=&quot;n&quot;&gt;rclamscan&lt;/span&gt; -&lt;span class=&quot;n&quot;&gt;r&lt;/span&gt; /&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Au besoin, je me connecterais pour le faire à la main.
Niveau firewall, j’install ufw pour le moment mais je verrais plus tard pour en faire la configuration selon les besoins, vu qu’il y a déjà un pare-feu dans la maison.
On pensera à se garder un compte d’administration sur la machine et à restreindre les droits d’utilisation de l’enfant en lui interdisant tout ce qui est tâche d’administration. Ca se passe simplement dans &lt;em&gt;Users and groups&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;les-enfants-un-ordinateur-et-internet&quot;&gt;Les enfants, un ordinateur et internet&lt;/h2&gt;

&lt;p&gt;Personnellement, je pense qu’à 12 ans, on ne sait pas ce qui est bon pour nous sur internet et qu’on a besoin d’une supervision compétente. Du coup, &lt;em&gt;exit&lt;/em&gt; les emails pour le moment. Au pire, on lui donnera un compte dont on gardera le mot de passe pour pouvoir surveiller. Idem pour tout ce qui est &lt;em&gt;chat&lt;/em&gt;. De plus, ils viendront bien vite à y passer trop de temps donc autant encore le limiter comme on le fait pour la TV ou les jeux vidéos (si-si, il faut limiter).&lt;/p&gt;

&lt;h2 id=&quot;limiter-le-temps-dutilisation&quot;&gt;Limiter le temps d’utilisation&lt;/h2&gt;

&lt;p&gt;Nanny n’étant plus suivi, je me repporte sur TimeKpr (en me basant sur la doc &lt;a href=&quot;http://doc.ubuntu-fr.org/timekpr&quot;&gt;Ubuntu&lt;/a&gt;). Au moment de l’écriture de ce billet, la version pour Precise n’est toujours pas disponible donc on suit la version pour Oneiric en ajustant.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;sudo add-apt-repository ppa:timekpr-maintainers/ppa
sudo sed -i.bak &apos;s/precise/oneiric/&apos; /etc/apt/sources.list.d/timekpr-maintainers-ppa-precise.list 
sudo rm /etc/apt/sources.list.d/timekpr-maintainers-ppa-precise.list.bak
sudo aptitude update
sudo aptitude install timekpr
&lt;/span&gt;&lt;span class=&quot;gp&quot;&gt;sudo echo &quot;account required pam_time.so&quot; &amp;gt;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; /etc/pam.d/lightdm
&lt;span class=&quot;gp&quot;&gt;sudo sed -i.bak &apos;/^OnlyShowIn=/s|$&lt;/span&gt;|Unity&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;|&lt;span class=&quot;s1&quot;&gt;&apos; /etc/xdg/autostart/timekpr-client.desktop
&lt;/span&gt;&lt;span class=&quot;go&quot;&gt;sudo rm /etc/xdg/autostart/timekpr-client.desktop.bak&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Ensuite, le lancement se fait simplement :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;soit par le menu &lt;em&gt;System -&amp;gt; Administration -&amp;gt; TimeKpr Control Panel&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;soit sous Unity, simplement en tappant TimeKpr dans la recherche d’application&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L’interface étant assez simple, je ne vais pas rentrer dans le détail. Par contre, il semble que certains bugs soient toujours d’actualité. Toujours selon la doc :&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Irrespect des limites de temps
On modifie le fichier &lt;em&gt;/usr/share/python-support/timekpr/timekpr.py&lt;/em&gt; pour faire deux modifications. On remplace à la ligne 124&lt;/li&gt;
&lt;/ol&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;u&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getcmdoutput&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;users&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;par&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;u&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getcmdoutput&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;ps -e -o ruser&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On fait de même à la ligne 207 en remplaçant :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;isnotified&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;username&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;par&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;isfile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;conffile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;not&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;isnotified&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;username&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;ol&gt;
  &lt;li&gt;Pas d’affichage du temps restant
On modifie le fichier&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;/usr/share/python-support/timekpr/timekpr-client.py&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;en ajoutant après la ligne 42 :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-python&quot; data-lang=&quot;python&quot;&gt;&lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lastNotified&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;datetime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;datetime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;fromtimestamp&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;On a donc installé le strict nécessaire au niveau utilisation et on s’est assuré de limiter l’usage de l’ordinateur. Il est donc maintenant temps de filtrer le grand n’importe quoi qu’est internet.&lt;/p&gt;

&lt;h2 id=&quot;filtrage-du-web&quot;&gt;Filtrage du web&lt;/h2&gt;

&lt;p&gt;On va le faire avec une combinaison Squid/DansGuardian. Pensez à modifier les IP.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;sudo aptitiude install squid dansguardian&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;Squid&lt;/em&gt; ne sera utilisé que via le* localhost* car c’est* DansGuardian* qui sera considéré comme proxy dans les configuration. Pour DansGuardian, il faudra commencer par commenter la ligne UNCONFIGURED dans &lt;em&gt;/etc/dansguardian/dansguardian.conf&lt;/em&gt;. On définit aussi le langage pour les erreurs.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;language&lt;/span&gt; = &lt;span class=&quot;s1&quot;&gt;&apos;french&apos;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Vu qu’on ne veut pas que l’enfant puisse facilement désactiver les paramètres du proxy sur Firefox, on les écrit en dur dans la configuration de Firefox &lt;em&gt;/usr/lib/firefox/firefox.cfg&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;lockPref&lt;/span&gt;(&lt;span class=&quot;s2&quot;&gt;&quot;network.proxy.http&quot;&lt;/span&gt;,&lt;span class=&quot;s2&quot;&gt;&quot;10.202.0.1&quot;&lt;/span&gt;);
&lt;span class=&quot;n&quot;&gt;lockPref&lt;/span&gt;(&lt;span class=&quot;s2&quot;&gt;&quot;network.proxy.http_port&quot;&lt;/span&gt;,&lt;span class=&quot;m&quot;&gt;8080&lt;/span&gt;);
&lt;span class=&quot;n&quot;&gt;lockPref&lt;/span&gt;(&lt;span class=&quot;s2&quot;&gt;&quot;network.proxy.type&quot;&lt;/span&gt;,&lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;);
&lt;span class=&quot;n&quot;&gt;lockPref&lt;/span&gt;(&lt;span class=&quot;s2&quot;&gt;&quot;network.proxy.no_proxies_on&quot;&lt;/span&gt;,&lt;span class=&quot;s2&quot;&gt;&quot;localhost,127.0.0.1&quot;&lt;/span&gt;);
&lt;span class=&quot;n&quot;&gt;lockPref&lt;/span&gt;(&lt;span class=&quot;s2&quot;&gt;&quot;network.proxy.share_proxy_settings&quot;&lt;/span&gt;, &lt;span class=&quot;n&quot;&gt;true&lt;/span&gt;);&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Il faut ensuite activer le vérouillage dans le fichier &lt;em&gt;/etc/firefox/syspref.js&lt;/em&gt; :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-conf&quot; data-lang=&quot;conf&quot;&gt;&lt;span class=&quot;n&quot;&gt;pref&lt;/span&gt;(&lt;span class=&quot;s2&quot;&gt;&quot;general.config.obscure_value&quot;&lt;/span&gt;, &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;);
&lt;span class=&quot;n&quot;&gt;pref&lt;/span&gt;(&lt;span class=&quot;s2&quot;&gt;&quot;general.config.filename&quot;&lt;/span&gt;, &lt;span class=&quot;s2&quot;&gt;&quot;firefox.cfg&quot;&lt;/span&gt;);&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;petit-cadeau-pour-mon-neveu&quot;&gt;Petit cadeau pour mon neveu&lt;/h2&gt;

&lt;p&gt;Il est fan des jeux de type RPG et veut s’en faire. Je ne vais pas lui mettre RPG Maker qui est pour Windows seulement, mais par contre un équivalent sous Linux, avec un petit jeu bonus. Ca sera toujours ça en attendant qu’il apprenne à coder.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;go&quot;&gt;wget http://hamsterrepublic.com/ohrrpgce/archive/debian/ohrrpgce_2012.07.31.alectormancy+2-5284_i386.deb
wget http://hamsterrepublic.com/ohrrpgce/archive/debian/vikings-of-midgard_2012.07.31.alectormancy+2-5284_i386.deb 
aptitude install libncurses5\:i386 libsdl-mixer1.2\:i386 libsdl1.2debian\:i386 libx11-6\:i386 libxext6\:i386 libxpm4\:i386 libxrandr2\:i386 libxrender1\:i386
dpkg -i  ohrrpgce*.deb vikings*.deb&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

</content>
    </entry>
  
    <entry>
      <title>Revue du web du 24 août 2012</title>
      <link href="https://francois.aichelbaum.com/2012/08/24/revue-du-web-du-24-aout-2012" />
      <updated>2012-08-24T13:23:20+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/24/revue-du-web-du-24-aout-2012</id>
      <content type="html">&lt;p&gt;C’est vendredi, c’est ravioli … Non c’est pas ça ! C’est ravioli, c’est trolldi … presque ! C’est vendredi, c’est trolldi ! Revue du web pour se faire plaisir.&lt;/p&gt;

&lt;h2 id=&quot;les-jeux-quon-a-joué-mentalement&quot;&gt;Les jeux qu’on a joué mentalement&lt;/h2&gt;

&lt;p&gt;Gamins, que ca soit dans la rue, la cour, le jardin, en voiture, on s’est tous imaginé des histoires ou des jeux auxquels on jouait. &lt;a href=&quot;http://www.journalgraphic.com/2012/08/23/games-we-play-jeux-inconscients-joue/&quot;&gt;Journal du Graphique&lt;/a&gt; nous présente une vidéo de &lt;a href=&quot;https://www.youtube.com/user/followthefoot&quot;&gt;Followthefoot&lt;/a&gt; assez sympa qui les remet en image. Je vous conseille au passage d’explorer sa chaîne Youtube, elle vaut vraiment le détour.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;le-web-redécouvre-les-gif-animés&quot;&gt;Le Web redécouvre les GIF animés&lt;/h2&gt;

&lt;p&gt;Le micro-blogging photo de Tumblr : vous connaissez. Mais certains semblent (re)découvrir les GIF animés et les considèrent comme une révolution. Pourquoi pas. Chacun y va de son train d’images. Même les community manager. Parfois, c’est drôle, comme celui d’&lt;a href=&quot;http://500000fans.tumblr.com/&quot;&gt;Orange&lt;/a&gt;. Chez Orange, c’est trolldi tous les jours.&lt;/p&gt;

&lt;h2 id=&quot;fan-de-modélisme-et-des-avengers-cest-par-ici&quot;&gt;Fan de modélisme et des Avengers, c’est par ici&lt;/h2&gt;

&lt;p&gt;Certains occupent leur vendredi différemment. &lt;a href=&quot;http://www.journaldugeek.com/2012/08/24/heliporteur-s-h-i-e-l-d-aeromodelisme-fan/&quot;&gt;Journal du Geek&lt;/a&gt; nous présente un fan des deux ayant reproduit l’héliporteur du film. Par contre, dans &lt;a href=&quot;https://www.youtube.com/watch?v=11Mide2KXow&quot;&gt;Captain Sky&lt;/a&gt;, il y en avait un paquet à la fin. D’ailleurs à croire qu’il faut être borgne pour commander ces machines.&lt;/p&gt;

&lt;h2 id=&quot;on-se-demandait-comment-le-sol-de-letoile-noire-pouvait-être-aussi-brillant&quot;&gt;On se demandait comment le sol de l’Etoile Noire pouvait être aussi brillant&lt;/h2&gt;

&lt;p&gt;Et bien avec un nettoyage régulier et un petit passage de cape … pardon, de serpillère. Via &lt;a href=&quot;https://twitter.com/JeremyBenmoussa&quot;&gt;@jeremybenmoussa&lt;/a&gt; sur Twitter.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Krung Thep : un Thaïlandais à Belleville</title>
      <link href="https://francois.aichelbaum.com/2012/08/24/krung-thep-un-thailandais-a-belleville" />
      <updated>2012-08-24T10:00:10+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/24/krung-thep-un-thailandais-a-belleville</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/765-krung-thep.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-6644&quot; title=&quot;Krung Thep&quot; src=&quot;/assets/765-krung-thep-150x150.jpg&quot; alt=&quot;Krung Thep&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Bon ok, c&apos;est facile, il y a trois quartiers asiatiques à Paris : rue au Maire, dans le III&lt;sup&gt;e&lt;/sup&gt; arrondissement, le Triangle de Choisy, dans le XIII&lt;sup&gt;e&lt;/sup&gt;, Belleville, à cheval sur le XIX&lt;sup&gt;e&lt;/sup&gt; et le  XX&lt;sup&gt;e&lt;/sup&gt;. Pour autant, la majorité des restaurants proposés sont des Chinois ou des Japonais (en style de nourriture, je parle). Pour le coup, j&apos;ai pu testé un Thaïlandais : &lt;a href=&quot;https://maps.google.fr/maps?q=Krung+Thep&amp;amp;ie=UTF-8&amp;amp;ei=Bi43UMvdPMqQ0AWi1IGwDg&amp;amp;ved=0CAsQ_AUoAg&quot;&gt;Krung Thep&lt;/a&gt;. Dépaysement ? Goût ? Voyagons et découvrons.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Un Thaïlandais mitigé&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La devanture s&apos;apparente à n&apos;importe quel restaurant asiatique du quartier. Par contre, contrairement aux cantines chinoises de la rue de Belleville, une fois la porte passée, on se retrouve &lt;em&gt;presque&lt;/em&gt; en Thaïlande.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors que bien des restaurants Thaïlandais se contente de chaises et tables à l&apos;occidentale, ici, on vous propose une mise à table plus proche de la thaïlandaise. Proche car on ne vous l&apos;impose pas. Alors que l&apos;on devrait s&apos;assoir en tailleur et s&apos;accouder à une table basse, la table est réhaussée et les coussins vous offrent le choix entre une position occidentale ou l&apos;attendu tailleur. Il faudra cependant un minimum de souplesse pour s&apos;installer : on n&apos;y emmènera pas nos &lt;em&gt;vieux&lt;/em&gt;. L&apos;ameublement et la décoration sont là pour vous orienter vers un esprit du pays bien que le batiment et le quartier se rappellent vite à vous. A noter aussi l&apos;intégralité du personnel féminin. Après tout, la thaïlande a une culture matriarcale. Pour autant, le service peut paraître assez froid (étonnant en comparaison au &lt;a href=&quot;http://francois.aichelbaum.com/restaurant-du-tibet-permathang-depaysement-et-chaleur/&quot;&gt;Tibétain&lt;/a&gt;).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le menu à rallonge m&apos;inspire peu ou trop. En effet, trop de choix tue le choix. Mais surtout, trop de choix signifie pas de spécialisation et un à peu près en tout. Et c&apos;est bien là le cas. Après un choix compliqué pour varier les saveurs et tester un maximum de choses, on s&apos;affaire à goûter. Et là, rien d&apos;exceptionnel. C&apos;est bon, mais sans plus.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour avoir testé rapidement par le passé d&apos;autres restaurants Thaïlandais, je peux vous le dire, celui-ci n&apos;a rien d&apos;exceptionnel. Il ne restera pas dans les annales. Mais le cadre et le niveau correct de la nourriture vous offriront une excellente alternative aux cantines chinoises de Belleville si vous êtes dans le quartier.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/krung-thep-belleville-restaurant.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6647&quot; title=&quot;Krung Thep&quot; src=&quot;/assets/krung-thep-belleville-restaurant-150x150.jpg&quot; alt=&quot;Krung Thep&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/Krung-Thep.jpg&quot;&gt;&lt;img title=&quot;Krung Thep&quot; src=&quot;/assets/Krung-Thep-150x150.jpg&quot; alt=&quot;Krung Thep&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/1102_restaurantkrungthep01_1264933812.jpg&quot;&gt;&lt;img title=&quot;Krung Thep&quot; src=&quot;/assets/1102_restaurantkrungthep01_1264933812-150x150.jpg&quot; alt=&quot;Krung Thep&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/1102_restaurantkrungthep01_1264933812.jpg&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Dupliquer une machine sous Linux en ssh (à la bourrin)</title>
      <link href="https://francois.aichelbaum.com/2012/08/23/dupliquer-une-machine-sous-linux-n-ssh-a-la-bourrin" />
      <updated>2012-08-23T19:48:17+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/23/dupliquer-une-machine-sous-linux-n-ssh-a-la-bourrin</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Pour des besoins divers, j&apos;ai besoin de dupliquer un grand nombre de machines. Dans le cas de ces derniers jours, je dois faire du P2V sur une plateforme d&apos;une 50e de machine. Le P2V, c&apos;est transformer une machine physique en machine virtuelle (pour le coup sur VMWare). La plateforme étant en production et le calendrier définissant une migration s&apos;étalant sur un mois, je duplique tout maintenant, fait la bonne configuration et ferait juste un offset des sites web (scripts PHP, images, bases SQL) au moment de la bascule avec les DNS. Petit décryptage de comment se simplifier la vie. Le but est d&apos;être rapide et efficace et d&apos;avoir peut de boulot à refaire.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;1 - Avant propos&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Selon vos besoins et le nombre de machines certaines étapes peuvent être supprimées. Dans mon cas, on ouvrira un tunnel SSH via une machine qui sert de passerelle pour le transfert.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Dans la suite on nommera :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;bridge&lt;/span&gt; : la machine qui sert pour le tunnel SSH&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;phy1&lt;/span&gt; ... &lt;span style=&quot;color: #3366ff;&quot;&gt;phy9&lt;/span&gt; : les machines physiques 1 à 9&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;vm1&lt;/span&gt; ... &lt;span style=&quot;color: #3366ff;&quot;&gt;vm9&lt;/span&gt; : les &lt;span style=&quot;color: #3366ff;&quot;&gt;vm1&lt;/span&gt; à &lt;span style=&quot;color: #3366ff;&quot;&gt;vm9&lt;/span&gt; qu&apos;on aura préparé sur notre infra (VMWare, Xen, Proxmox ...) avec les bonnes spécifications matériel  (on gardera une cohérence avec les machines physiques au niveau des numéros dans la suite)&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: #3366ff;&quot;&gt;login&lt;/span&gt; : le login qu&apos;on utilise non &lt;em&gt;root&lt;/em&gt; qu&apos;on utilise par défaut sur les serveurs&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On suppose que notre machine perso est sur une &lt;a href=&quot;http://www.debian.org/&quot;&gt;Debian&lt;/a&gt;-like pour install des packages manquant. On suppose également que les configurations serveurs sont homogènes sur le parc de serveurs physiques (sinon rapprenez vos bases).&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;2 - Préparer sur les machines physiques (pré-configuration SSH)&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vu qu&apos;on a une plateforme existente, on suppose qu&apos;on a les moyens de s&apos;y connecter facilement via une patte réseau de management (clées SSH + sudo par ex).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Sur notre machine on installera le package cssh.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;$ sudo aptitude install clusterssh&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ce package permet de lancer plusieurs sessions SSH via une seule ligne de commande et d&apos;y reproduire les mêmes commandes sur chaque session.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On se génère aussi une clé SSH (type RSA) :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;$ ssh-keygen -t rsa&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On met ensuite la clé &lt;em&gt;.ssh/id_rsa.pub&lt;/em&gt; disponible en HTTP pour la plateforme physique (et pas pour la Terre entière !). Pensez à la supprimer après la duplication.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On se connecte alors à chaque machine et on y exécute les commandes suivantes.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;$ cssh &lt;span style=&quot;color: #3366ff;&quot;&gt;phy1 phy2 phy2&lt;/span&gt; ...  &lt;span style=&quot;color: #3366ff;&quot;&gt;phy9&lt;/span&gt;
$ sudo su -&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On aura besoin de l&apos;accès root pour le transfert, donc on se l&apos;autorise temporairement en SSH.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# mkdir -p .ssh
# wget http://mon-serveur-perso/macle.pub -O - &amp;gt;&amp;gt; .ssh/authorized_keys&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ne cherchez ma clé publique, elle n&apos;est pas sur le net.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Choisissez ensuite votre éditer favori (&lt;em&gt;vim&lt;/em&gt;, &lt;em&gt;nano&lt;/em&gt;, &lt;em&gt;ed&lt;/em&gt;...) pour éditer le fichier &lt;em&gt;/etc/ssh/sshd_config&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;&lt;span style=&quot;background-color: #ffcc99; color: #000000;&quot;&gt;&lt;strong&gt;- &lt;/strong&gt;PermitRootLogin no&lt;/span&gt;
&lt;span style=&quot;background-color: #ccffcc; color: #000000;&quot;&gt;&lt;strong&gt;+&lt;/strong&gt; PermitRootLogin yes&lt;/span&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ccffcc;&quot;&gt;&lt;strong&gt;+&lt;/strong&gt; AllowUsers root@&lt;span style=&quot;color: #3366ff;&quot;&gt;bridge&lt;/span&gt; &lt;span style=&quot;color: #3366ff;&quot;&gt;login&lt;/span&gt;@* &lt;/span&gt;&lt;span style=&quot;background-color: #ffcc99;&quot;&gt;&lt;strong&gt;-&lt;/strong&gt; RSAAuthentication no&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: #ffcc99; color: #000000;&quot;&gt;&lt;strong&gt;-&lt;/strong&gt; PubkeyAuthentication no&lt;/span&gt;
&lt;span style=&quot;background-color: #ffcc99; color: #000000;&quot;&gt;&lt;strong&gt;-&lt;/strong&gt; #AuthorizedKeysFile %h/.ssh/authorized_keys&lt;/span&gt;
&lt;span style=&quot;background-color: #ccffcc; color: #000000;&quot;&gt;&lt;strong&gt;+&lt;/strong&gt; RSAAuthentication yes&lt;/span&gt;
&lt;span style=&quot;background-color: #ccffcc; color: #000000;&quot;&gt;&lt;strong&gt;+&lt;/strong&gt; PubkeyAuthentication yes&lt;/span&gt;
&lt;span style=&quot;background-color: #ccffcc; color: #000000;&quot;&gt;&lt;strong&gt;+&lt;/strong&gt; AuthorizedKeysFile %h/.ssh/authorized_keys &lt;/span&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Si vos équipes de dev se connectent aussi en SSH, pensez à les rajouter dans les &lt;em&gt;AllowUsers&lt;/em&gt;. On peut alors relancer le service &lt;em&gt;sshd&lt;/em&gt; :&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# /etc/init.d/ssh restart&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On pense à s&apos;assurer que le package rsync est installé.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;# aptitude install rsync&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On prendra le temps d&apos;analyser la volumétrie des dossiers pour ne pas copier ce qui n&apos;est pas vraiment nécessaire. Donc mon cas, je cherche à ne pas trop me casser la tête, donc je ne transfert pas ce qui est de type backup et aussi les montages NFS (que j&apos;ai armonisés en les montant en sous-dossiers de &lt;em&gt;/mnt/nfs&lt;/em&gt;).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On peut alors se délogguer de ces machines.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;3 - Lancer la synchro en rsync via un tunnel SSH&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Afin d&apos;éviter de trop saturer les liens réseaux (vu que l&apos;ancienne plateforme physique reste en production le temps du transfert), on évitera de faire trop de duplication en simultané.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On démarre donc la &lt;span style=&quot;color: #3366ff;&quot;&gt;vm1&lt;/span&gt;, qui remplacera &lt;span style=&quot;color: #3366ff;&quot;&gt;phy1&lt;/span&gt; et que l&apos;on aura préalablement bien provisionné. La machine sera démarrée sur un liveCD (personnellement, je démarre sur une ISO &lt;a href=&quot;http://www.gentoo.org/&quot;&gt;Gentoo&lt;/a&gt;). Une fois l&apos;OS disponible, on se lance un terminal si l&apos;on est sur l&apos;interface graphique. Ensuite, tout se fera de la même manière, en ligne de commande. Je suppose que vous connaissez la configuration IP qui va bien pour &lt;span style=&quot;color: #3366ff;&quot;&gt;vm1&lt;/span&gt;.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;$ sudo ifconfig eth0 &lt;em&gt;IPVM1/CIDR&lt;/em&gt;
$ sudo route add default gw &lt;em&gt;IPGW&lt;/em&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On partitionne le disque comme il faut. Là encore j&apos;ai une préférence pour le vieillissant &lt;em&gt;cfdisk&lt;/em&gt;. Ensuite formatage des partitions. Puis montage. On supposera que l&apos;on a fait très basique avec juste un&lt;em&gt; /&lt;/em&gt; accompagné d&apos;un &lt;em&gt;/boot&lt;/em&gt; et d&apos;un &lt;em&gt;swap&lt;/em&gt; pour le partitionnement du disque &lt;em&gt;/dev/sda&lt;/em&gt; (&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;strong&gt;ADAPTEZ !&lt;/strong&gt;&lt;/span&gt;).&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;$ sudo mount /dev/sda3 /mnt/gentoo
$ sudo mkdir /mnt/gentoo/boot 
$ sudo mount /dev/sda1 /mnt/gentoo/boot
$ mkdir .ssh
$ echo &quot;Host &lt;span style=&quot;color: #3366ff;&quot;&gt;phy1&lt;/span&gt;&quot; &amp;gt;&amp;gt; .ssh/config
$ echo &quot; ProxyCommand nohup ssh &lt;span style=&quot;color: #3366ff;&quot;&gt;bridge&lt;/span&gt; nc -w1 %h %p&quot; &amp;gt;&amp;gt; .ssh/config
$ wget http://mon-serveur-perso/macle.priv -O .ssh/id_rsa&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Encore une fois, inutile de chercher ma clé privée ...&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;On peut enfin s&apos;occuper du transfert. Certains dossiers sont donc à éviter. A vous d&apos;en rajouter.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;$ sudo rsync -av --progress root@&lt;span style=&quot;color: #3366ff;&quot;&gt;phy1&lt;/span&gt;:/* /mnt/gentoo/ --exclude=&quot;/dev/*&quot; --exclude=&quot;/sys/*&quot; --exclude=&quot;/proc/*&quot; --exclude=&quot;/mnt/nfs/*/*&quot;&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Maintenant que c&apos;est fini, occupons-nous de la configuration finale.&lt;/p&gt;
&lt;pre style=&quot;text-align: justify;&quot;&gt;$ sudo mount -t proc none /mnt/gentoo/proc
$ sudo mount -t sysfs none /mnt/gentoo/sys
$ sudo cp -a /dev/* /mnt/gentoo/dev
$ sudo mount -o bind /dev /mnt/gentoo/dev
$ sudo chroot /mnt/gentoo /bin/bash&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vu qu&apos;on a supposé être sur une Debian, on modifiera les fichiers suivant comme il va bien :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/etc/fstab&lt;/li&gt;
&lt;li&gt;/etc/hosts&lt;/li&gt;
&lt;li&gt;/etc/networks&lt;/li&gt;
&lt;li&gt;/etc/network/interfaces&lt;/li&gt;
&lt;li&gt;/etc/ssh/sshd_config (pour supprimer les modifications faites au point 2)&lt;/li&gt;
&lt;li&gt;/etc/udev/rules.d/70-persistent-net.rules ou z25-persistent-net.rules (ou du genre, selon la version, qui est à vider de son contenu)&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Je vous laisse adapter aux applications installées sur la machine. De la même manière, on purge la clé SSH rajoutée pour le transfert. Ensuite il faut mettre à jour &lt;em&gt;grub&lt;/em&gt;.&lt;/p&gt;
&lt;pre&gt;# update-grub
# /usr/sbin/grub-install /dev/sda&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Sur certaines vieilles Debian, il m&apos;est arrivé de devoir modifier le fichier &lt;em&gt;/boot/grub/menu.lst&lt;/em&gt; et &lt;em&gt;/etc/mtab&lt;/em&gt; à la main avant de lancer &lt;em&gt;grub-install&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Une fois fini, il vous suffit de redémarrer la VM sans l&apos;ISO de Gentoo et voilà!&lt;/p&gt;
&lt;p&gt;A reproduire pour chaque migration P2V.&lt;/p&gt;
&lt;h2&gt;4 - Nettoyage&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Une fois les machines dupliquées (ou à chaque), on pense à faire un rollback des modifications du point 2 en supprimant la clé SSH et en remodifiant la configuration de SSH.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Revue du web du 23 août 2012</title>
      <link href="https://francois.aichelbaum.com/2012/08/23/revue-du-web-du-23-aout-2012" />
      <updated>2012-08-23T14:58:47+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/23/revue-du-web-du-23-aout-2012</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Il fait beau. Les oiseaux chantent. Les navets sont au cinéma. L&apos;estomac se creuse. Les méninges se réveilles sur le web. Petite revue du jour ...&lt;/p&gt;
&lt;p&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2&gt;Jack Bauer se recycle dans la patisserie&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La vidéo a fait le tour du web hier et j&apos;ai pu en profiter au cinéma pendant les bandes annonces aussi. Jack Bauer veut faire de la patisserie et avoir une boutique en ligne. Donc il se trouve un geek pour le faire mais surtout, le nouvel &lt;em&gt;ultrabook&lt;/em&gt; Acer.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=5zemXwxg8Og[/video]&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Le web montre le meilleur ... de nos photographes&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il n&apos;est pas question de Mme Michu et de ses photos ou de mon blog et mes ridicules clichés de promenades mais simplement d&apos;une collecte de photos pro ... bonnes pour la poubelle. Certains photographes devraient se demander pourquoi il y a des écoles de photographies. &lt;a href=&quot;http://youarenotaphotographer.com/&quot;&gt;Vous n&apos;êtes pas un photographe&lt;/a&gt;.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Un webdesigner propose son CV façon Zelda&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors que certains ne savent toujours pas rédiger un simple CV sans faute. Alors que d&apos;autres préfère remplacer le papier par la chanson. Alors que certains tentent le CV vidéo. Daniel Sternlicht propose &lt;a href=&quot;http://danielsternlicht.com/&quot;&gt;son CV&lt;/a&gt; en un jeu HTML aux graphismes qui ne sont pas sans rappeler les vieux Zelda. Ca s&apos;appelle &quot;savoir se vendre&quot;.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Quand des femmes défendent Assange&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ca se passe dans les colonnes web (papiers aussi ?) du Guardian. Katrin Alexsson et Lisa Longstaff dénonce une machination politico-judiciaire. Alors qu&apos;elles se revendique Femmes (logique) et contre le viol (re-logique), elles rappellent les nombreux non-respects de procédure dans l&apos;affaire, le changement de dénomination du dossier, les manipulations médiatiques. Elles mettent également en exergue que les médias majeux s&apos;intéresse à Assange comme s&apos;il avait été déclaré coupable. De même, elles opposent le comportement des autorités anglaises contre Assange, à leur comportement contre Pinochet à l&apos;époque. On rajoute ceci aux déclarations du jour d&apos;un des avocats d&apos;Assange, le dossier est loin d&apos;être fini. Merci mesdames pour &lt;a href=&quot;http://www.guardian.co.uk/commentisfree/2012/aug/23/women-against-rape-julian-assange&quot;&gt;votre article&lt;/a&gt;.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The expendables 2 ou une indigestion bouchère d’action</title>
      <link href="https://francois.aichelbaum.com/2012/08/23/the-expendables-2-ou-une-indigestion-bouchere-daction" />
      <updated>2012-08-23T10:21:26+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/23/the-expendables-2-ou-une-indigestion-bouchere-daction</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/Video-The-Expendables-2.jpg&quot;&gt;&lt;img class=&quot;alignleft&quot; title=&quot;The Expendables 2 - Icone&quot; src=&quot;/assets/Video-The-Expendables-2-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Le premier film avait été un plaisir : réunir un wagon de stars des films d&apos;actions des 30 dernières années sur un seul plateau. Scénario et réalisation pour &lt;em&gt;Sly&lt;/em&gt;, qui n&apos;est plus un débutant. Le film se présentait bien malgré un accueil mitigé à l&apos;époque. Selon les codes des nanards d&apos;actions, il avait cependant peu de points faibles.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Aujourd&apos;hui, &lt;em&gt;XP2012&lt;/em&gt; (comme écrit sur l&apos;avion de Sly), change de réal et de scénariste. Il présente de nouvelles têtes. Il nous fait des promesses. C&apos;était hier sa sortie officielle. C&apos;est ce matin que je me fais un maximum d&apos;ennemis, sans &lt;em&gt;spoiler&lt;/em&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2&gt;De l&apos;action nerveuse ... même derrière la caméra&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Bon c&apos;est tout excité que je fais mon téméraire pour me taper un block-buster au ciné le jour de sa sortie. Après tout, c&apos;est un film sous testostérone donc autant faire ressortir la mienne.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=7rkdTcQLwZ4[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Sly avait été très fédérateur pour le premier opus. D&apos;ailleurs, on ressentait un certain plaisir pour ses collègues de jouer devant sa caméra. On s&apos;étonne alors qu&apos;il ait laissé sa place de réal et de scénariste à &lt;a href=&quot;http://fr.wikipedia.org/wiki/Simon_West&quot;&gt;Simon West&lt;/a&gt;. Simon West n&apos;est pas un inconnu de l&apos;action pour autant. Au cinéma, il nous a déjà réalisé &lt;a href=&quot;http://www.youtube.com/watch?v=fWq-S1_1vnc&quot;&gt;les Ailes de l&apos;Enfer&lt;/a&gt; (plutôt bon), &lt;a href=&quot;http://www.youtube.com/watch?v=TbJbk0H33IU&quot;&gt;le déshonneur d&apos;Elisabeth Campbell&lt;/a&gt; (très mauvais) et &lt;a href=&quot;http://www.youtube.com/watch?v=cnNBqNb3taw&quot;&gt;Lara Croft&lt;/a&gt; (plutôt mauvais). Côté série, il s&apos;est attaqué aux pilotes de &lt;a href=&quot;http://www.youtube.com/watch?v=k3K-y-I0yz8&quot;&gt;Human Target&lt;/a&gt; et &lt;a href=&quot;http://www.youtube.com/watch?v=PajqY0VgYiU&quot;&gt;The Cape&lt;/a&gt;, tous deux motivant les spectateurs. A croire que le cinéma n&apos;est pas sa tasse de thé. Aujourd&apos;hui, il désire offrir une suite à The Expendables, suite justement &lt;em&gt;expendable&lt;/em&gt; (sacrifiable) car pas indispensable.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/Premiere-seance-du-22-aout-Expendables-2-ecrase-ses-concurrents_portrait_w5321.jpg&quot;&gt;&lt;img title=&quot;Sly + Norris&quot; src=&quot;/assets/Premiere-seance-du-22-aout-Expendables-2-ecrase-ses-concurrents_portrait_w5321-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/no_flash.jpg&quot;&gt;&lt;img title=&quot;Site Promo&quot; src=&quot;/assets/no_flash-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/jean-claude-van-damme-the-expendables-2.jpg&quot;&gt;&lt;img title=&quot;JCVD&quot; src=&quot;/assets/jean-claude-van-damme-the-expendables-2-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/jean-claude-van-damme-the-expendables-2.jpg&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/EXPENDABLES-2-LINEUP.jpg&quot;&gt;&lt;img title=&quot;L&apos;Equipe&quot; src=&quot;/assets/EXPENDABLES-2-LINEUP-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/Expendables-2-trailer-3-008.jpg&quot;&gt;&lt;img title=&quot;Vilain et ses méchants&quot; src=&quot;/assets/Expendables-2-trailer-3-008-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/expendables-2-photo-501fe42e3059f.jpg&quot;&gt;&lt;img title=&quot;Sly + Schwarzy + Willis&quot; src=&quot;/assets/expendables-2-photo-501fe42e3059f-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/expendables-2-making-of.jpg&quot;&gt;&lt;img title=&quot;The Expendables 2&quot; src=&quot;/assets/expendables-2-making-of-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/expendables-2-box-office.jpg&quot;&gt;&lt;img title=&quot;The Expendables 2&quot; src=&quot;/assets/expendables-2-box-office-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/expendables2-photo-sly-schwarzy.jpg&quot;&gt;&lt;img title=&quot;Schwarzy + Sly à l&apos;hosto&quot; src=&quot;/assets/expendables2-photo-sly-schwarzy-150x150.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/expendables-2-box-office.jpg&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/expendables2-photo-sly-schwarzy.jpg&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/expendables2-photo-sly-schwarzy.jpg&quot;&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors oui, à vouloir faire une suite à tout prix, on est obligé de faire de la sur-enchère. Cependant certaines choses manquent ou sont mal faites. L&apos;absence de Mickey Rourke au bar est bien malheureuse. Tout comme les acteurs espérés (un jour ?) : Jackie Chan (indisponible), Nicolas Cage (trop cher), John Travolta (non intéressé), Antonio Banderas (indisponible), Clint Eastwood (?), Steven Segal (?), Wesley Snipes (en prison pour fraude fiscale - libéré en 2013) ... Par contre, d&apos;autre sont présents : Schwarzy (avec une tenue rappelant le premier &lt;a href=&quot;http://www.youtube.com/watch?v=c4Jo8QoOTQ4&quot;&gt;Terminator&lt;/a&gt;), Bruce Willis, Chuck Norris, mais surtout (et malheureusement quelque part), Jean-Claude Van Damme bien trop &lt;em&gt;aware&lt;/em&gt;. Liam Hemsworth représente la très jeune vague d&apos;acteurs de films d&apos;action.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors pour ces nouveaux (qui ne sont pas que des caméos), comment s&apos;intègrent-ils ? Pour ce qui est de Willis, rien à dire, il n&apos;a jamais arrêté et a même fait évolué son personnage de simple flic à agent de la CIA (&lt;a href=&quot;http://francois.aichelbaum.com/cest-pas-moi-cest-lui/&quot;&gt;Sans issue&lt;/a&gt; par ex). Egale à lui-même.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Schwarzy avait mis sa carrière d&apos;acteur en stand by. Il n&apos;a jamais eu un jeu parfait surtout avec ses difficultés de prononciation pour ses premiers films. Cependant, il a toujours été convaincant. Là encore, il ne déroge pas à la règle et répond à ce dont on attend de lui.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Chuck Norris est l&apos;archétype de l&apos;acteur qui n&apos;a pas pris la grosse tête alors que tout le monde et surtout tout internet parle de lui. L&apos;auto-dérision lui était déjà &lt;a href=&quot;http://www.youtube.com/watch?v=arKpdxjHamI&quot;&gt;connu&lt;/a&gt; après les &lt;em&gt;Chuck Norris Facts&lt;/em&gt;. Sa prestation continue dans ce sens et l&apos;arrivée du Texas Ranger pour les sauver tous est à savourer. D&apos;ailleurs un des &lt;em&gt;facts&lt;/em&gt; est repris : &quot;Un jour, un cobra royal a mordu &lt;em&gt;Chuck Norris&lt;/em&gt;. Après cinq jours de longue agonie, le cobra est mort&quot;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Liam Hemsworth a le spectre de l&apos;un de ses ainés à combattre (Chris, vu dans Thor et The Avengers entre autres). Et avoir la même trombine et le même regard que son frangin ne va pas l&apos;y aider s&apos;il reste dans les films d&apos;action. Mais bon, il ne joue pas trop mal ... tant que le script (merci West ...) ne le démolie pas : ex-soldat, il dit avoir abandonné l&apos;armée à cause des atrocités de la guerre. C&apos;est sûr que se faire recruter comme boucher dans une équipe de mercernaires, ca sera bien moins violent.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;JCVD. Un cas à part. On ne le présente plus. Par contre, on rigole de son retournement de veste. Il était connu qu&apos;il avait refusé l&apos;invitation pour le premier opus car il n&apos;avait pas envie de perdre contre Jet Li et qu&apos;il ne croyait pas en ce projet. Pour autant, dans une &lt;a href=&quot;http://www.lesinrocks.com/2012/08/22/cinema/jean-claude-van-damme-linterview-fleuve-11288790/&quot;&gt;récente interview&lt;/a&gt;, il annonce que c&apos;est simplement pour des raisons d&apos;emploi du temps. Vu l&apos;avancé de son projet, cette raison est peu valable. Avec cette mauvaise fois, se rajoute un jeu d&apos;acteur en déclin. Il partait pourtant de très bas. Le travail aide ... Ridicile. D&apos;ailleurs, il interprête le vilain de l&apos;histoire, sobrement nommé Vilain. C&apos;est dire.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Au niveau du film en lui-même, que dire ? Dès le début, un goût de déjà-vu se fait sentir. C&apos;est sûr, l&apos;intro n&apos;est pas sans rappeler le dernier &lt;a href=&quot;http://www.youtube.com/watch?v=z93AADd2Dpo&quot;&gt;A-Team&lt;/a&gt;. Et ce sentiment se renforcera à chaque &lt;em&gt;cliché&lt;/em&gt;, à chaque clin d&apos;oeil. En fait, si on veut faire court, là où &lt;em&gt;The Expendables&lt;/em&gt; était un agréable plaisir bourré d&apos;action rénovée, ce second film n&apos;est qu&apos;un immense clin d&apos;oeil proche d&apos;un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fanfiction&quot;&gt;fanfic&lt;/a&gt;. Les acteurs se balancent leurs répliques cultent (ou se les échangent). Les plans vu dans les autres films s&apos;enchaîne. Par ex, un hélico abattu par Bruce Willis avec une voiture dans &lt;em&gt;Die Hard 4&lt;/em&gt;, se transforme en un hélico abattu par Sylvester Stallone. Les tenues sont là aussi pour rappeler les précédents films : tenue de  &lt;em&gt;Terminator&lt;/em&gt; pour Schwarzy, tenues de&lt;em&gt; Demolition Man&lt;/em&gt; et &lt;em&gt;Rocky&lt;/em&gt; pour Sly par ex.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tout ceci pourrait tirer le film vers le kitch qui plait presque sans problème si la réalisation suivait. Enormément d&apos;erreurs. Trop d&apos;erreurs. D&apos;ailleurs, inspirés de &lt;a href=&quot;http://www.allocine.fr/video/emissions/faux-raccords/episode/?cmedia=19370188&quot;&gt;cette émission&lt;/a&gt;, les muscles devraient s&apos;occuper de son cas mais surtout du directeur de la photographie. Ca manque de bimbos ! Du coup, on aurait pu espérer que Charisma Carpenter la joue pour compenser. Mais non. Dommage. Et que dire justement du directeur de la photographie : on n&apos;a pas idée de filmer en analogique puis de faire un zoom &quot;de la mort qui tue&quot; en numérique en &lt;em&gt;post-prod&lt;/em&gt;. Ca pique les yeux ! Certains acteurs sont transparents : Jet Li malgré l&apos;intro ou encore Randy Couture. Quel gâchis.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Bref, j&apos;ai passé un bon moment en salle en me grillant les derniers neurones vivants hier soir. On profite des acteurs présents et on se remémore les films précédents. Pour autant, l&apos;arrière goût de déjà-vu/vu-et-revu ne passe pas et laisse une certaine amertume envers Simon West.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/expend2-poster-1.jpg&quot;&gt;&lt;img class=&quot;aligncenter&quot; title=&quot;The Expendables 2&quot; src=&quot;/assets/expend2-poster-1-692x1024.jpg&quot; alt=&quot;The Expendables 2&quot; width=&quot;584&quot; height=&quot;864&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Revue du web du 22 août 2012</title>
      <link href="https://francois.aichelbaum.com/2012/08/22/revue-du-web-du-22-aout-2012" />
      <updated>2012-08-22T12:40:44+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/22/revue-du-web-du-22-aout-2012</id>
      <content type="html">&lt;p&gt;Comme tous les jours ou presque, petite revue du web. Cette fois, on s’intéresse à notre petite personne en priorité.&lt;/p&gt;

&lt;h2 id=&quot;vieux-pas-si-con&quot;&gt;Vieux (pas si) con&lt;/h2&gt;
&lt;p&gt;Rah les vieux cons qu’ils disaient. Ces ‘jeunz en jean-t-shirt-basket-casquette à l’envers. S’ils savaient. Mais il ne peuvent pas le savoir. Comme ils ne savent pas ce qu’ils feront de leur vie, du fait de leur jeunesse. Après tout, le cerveau n’est pas mature avant 30 ans. Merci le site web de &lt;a href=&quot;http://www.slate.fr/lien/60741/adulte-cerveau-adolescent-maturite&quot;&gt;Slate&lt;/a&gt;. Ca me rappelle du Brassens tiens.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;parmi-les-super-héros--le--cochon-dinde-&quot;&gt;Parmi les super-héros : le … cochon-d’inde !&lt;/h2&gt;

&lt;p&gt;Vous ne connaissez pas le sketch de Bruno Salomon ? Pas grave. Par contre, Slate (oui encore eux ce matin), nous rapporte une &lt;a href=&quot;http://www.slate.fr/lien/60771/super-heros-identification-perception-effets-psychologiques&quot;&gt;étude de psys américains&lt;/a&gt;. Selon cette étude, il est sain (psychologiquement voire physiquement) de s’identifier à des Super-héros. Bon bah je retourne sortir ma panoplie du Punisher et régler leur compte à ces mécréants de l’open-space.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;mars-attacks&quot;&gt;Mars attacks&lt;/h2&gt;

&lt;p&gt;Alors pour ceux qui n’ont pas suivi, un nouveau robot (Curiosity) a été déployé sur Mars. Depuis il nous envoie régulièrement des clichés. Un vrai paparazzi. D’ailleurs, il tient à nous présenter ses amis les martiens. Article fort sympa de chez &lt;a href=&quot;http://www.gizmodo.fr/2012/08/21/ovni-curiosity-photographie-mars.html&quot;&gt;Gizmodo FR&lt;/a&gt;. Préparez-vous à l’invasion !&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;couper-laccès-au-web-peut-vous-coûter-la-vie&quot;&gt;Couper l’accès au web peut vous coûter la vie&lt;/h2&gt;

&lt;p&gt;Petit fait divers rapporté par le &lt;a href=&quot;http://www.journaldugeek.com/2012/08/22/elle-tue-son-oncle-qui-avait-coupe-internet/&quot;&gt;Journal du Geek&lt;/a&gt;. Une timbrée de 19 ans a simplement tué son oncle pour lui avoir couper l’accès au net. Elle était droguée &lt;em&gt;au net&lt;/em&gt;. Quand on voit que les jeunes ne pourraient pas survivre sans être connectés, on se rend compte qu’ils pourraient aussi tuer pour être connectés. SFR l’avait prédit.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Abraham Lincoln, chasseur de vampires de pourfandeur d&amp;#039;Histoire</title>
      <link href="https://francois.aichelbaum.com/2012/08/22/abraham-lincoln-chasseur-de-vampires-de-pourfandeur-dhistoire" />
      <updated>2012-08-22T11:18:30+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/22/abraham-lincoln-chasseur-de-vampires-de-pourfandeur-dhistoire</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/482px-Abe_Lincoln_young.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-6539&quot; title=&quot;Abraham Lincoln&quot; src=&quot;/assets/482px-Abe_Lincoln_young-150x150.jpg&quot; alt=&quot;Abraham Lincoln&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Il est de ces hommes dont la vie est devenue une légende. &lt;a href=&quot;http://fr.wikipedia.org/wiki/Abraham_Lincoln&quot;&gt;Abraham Lincoln&lt;/a&gt; fait partie de ceux-là. Une vie tellement remplie et importante pour l&apos;évolution d&apos;un pays qu&apos;il a inspiré nombre de mouvements et de sentiments. Nombre d&apos;histoires aussi sont nés de sa légende. Une des ces histoires est la biographie fictive de Seth Grahame-Smith de 2010. Et fictive, elle l&apos;est très largement, surtout lorsqu&apos;elle modifie des faits réels pour justifier de ses idées. Classé en horreur, faut-il frissonner de sa version cinéma ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Abraham Lincoln aime la hache ...&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;... et l&apos;auteur du bouquin mais surtout &lt;a href=&quot;http://fr.wikipedia.org/wiki/Timur_Bekmambetov&quot;&gt;Timur Bekmambetov&lt;/a&gt; aussi. Ce russe ne vous est peut-être pas inconnu : &lt;a href=&quot;http://www.youtube.com/watch?v=2ySIiB1OBa8&quot;&gt;Night Watch&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=ZtVD97ss7rU&quot;&gt;Day Watch&lt;/a&gt; (il est où le 3e opus tant attendu ?), et le m****** &lt;a href=&quot;http://www.youtube.com/watch?v=sxEAE-10YTE&quot;&gt;Wanted&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=34x6m-ahGIo[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors oui, Smith présente son oeuvre comme une autobiographie fictive. Mais est-ce une raison pour modifier des faits avérés ? Il aurait été plus salutaire de ne pas le faire pour amplifier la possible véracité des faits fictifs contés. Au final, la vie et l&apos;oeuvre de Lincoln sont coupées et modifiées à grands coups de hache. De la vraie bouillie. Quand on sait que Tim Burton est à la production, on se demande s&apos;il n&apos;avait pas un coup dans le pif au moment de signer le contrat.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/JPABRAHAM-articleLarge.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6545&quot; title=&quot;Will &amp;amp; Abraham&quot; src=&quot;/assets/JPABRAHAM-articleLarge-150x150.jpg&quot; alt=&quot;Will &amp;amp; Abraham&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/abraham-lincoln-vampire-hunter-rufus-sewell-benjamin-walker-erin-wasson.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6548&quot; title=&quot;Abraham contre Vadoma&quot; src=&quot;/assets/abraham-lincoln-vampire-hunter-rufus-sewell-benjamin-walker-erin-wasson-150x150.jpg&quot; alt=&quot;Abraham contre Vadoma&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/ABRAHAM-LINCOLN-VAMPIRE-HUNTER-NOUVEAU-POSTER-XL.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6551&quot; title=&quot;Statue d&apos;Abraham&quot; src=&quot;/assets/ABRAHAM-LINCOLN-VAMPIRE-HUNTER-NOUVEAU-POSTER-XL-150x150.jpg&quot; alt=&quot;Statue d&apos;Abraham&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/20120809_abrahamlincoln_cover.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6554&quot; title=&quot;Abraham Lincoln&quot; src=&quot;/assets/20120809_abrahamlincoln_cover-150x150.jpg&quot; alt=&quot;Abraham Lincoln&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/2012_5_25_AbrahamLincolnVampireHunter1.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6557&quot; title=&quot;Abraham Lincoln&quot; src=&quot;/assets/2012_5_25_AbrahamLincolnVampireHunter1-150x150.jpg&quot; alt=&quot;Abraham Lincoln&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/482px-Abe_Lincoln_young1.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-6560&quot; title=&quot;Abraham Lincoln&quot; src=&quot;/assets/482px-Abe_Lincoln_young1-150x150.jpg&quot; alt=&quot;Abraham Lincoln&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Je dois avouer que je suis aller voir le film pour une double raison : l&apos;ambiance ressentie sur la bande annonce qui m&apos;interpelait et le grand bordel qui en ressortait. Le film est-il aussi bordélique ? En fait non. Mais cela ne le sauve pas pour autant.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Des films bordéliques, il y en a eu. Et bien souvent, le résultat était bénéfique : &lt;a href=&quot;http://www.youtube.com/watch?v=JY3u7bB7dZk&quot;&gt;Serenity&lt;/a&gt; (et la série &lt;a href=&quot;http://www.youtube.com/watch?v=mG9bSBGLtMc&quot;&gt;Firefly&lt;/a&gt;), &lt;a href=&quot;http://www.youtube.com/watch?v=He_PWsJqsVY&quot;&gt;Iron Sky&lt;/a&gt;, ... Mais là, le bordelique s&apos;amoindrit, le soufflé retombe et le navet s&apos;enfonce.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Faux raccords à foisons, aberrations à répétitions, jeu d&apos;acteurs très en retrait, qualité des effets graphiques qui joue au yo-yo, Histoire trop modifiée... Le film n&apos;a pas grand chose pour plaire. Et c&apos;est ce qui ressort du film. On y reste pour voir comment va évoluer le film, mais connaissant la fin, peu de surprises pour nous réconforter d&apos;avoir attendu.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Une énorme déception et un film à fuire.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/2012_5_25_AbrahamLincolnVampireHunter.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-6542 aligncenter&quot; title=&quot;Abraham Lincoln, chasseur de vampires&quot; src=&quot;/assets/2012_5_25_AbrahamLincolnVampireHunter-300x230.jpg&quot; alt=&quot;Abraham Lincoln, chasseur de vampires&quot; width=&quot;300&quot; height=&quot;230&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Revue du web du 21 août 2012</title>
      <link href="https://francois.aichelbaum.com/2012/08/21/revue-du-web-du-21-aout-2012" />
      <updated>2012-08-21T11:04:19+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/21/revue-du-web-du-21-aout-2012</id>
      <content type="html">&lt;p&gt;Aujourd’hui la revue du web sera très geek. Pour autant, je vais tenter de titiller vos souvenirs, vos plaisirs et votre curiosité.&lt;/p&gt;

&lt;p&gt;## X-or, le shériff, le shériff de l’espace&lt;/p&gt;

&lt;p&gt;En 5/1000e il se transforme. En 5/1000e, je rédige ce billet … ou presque. Certains se souviendront sûrement de lui ou de ses successeurs. Par contre, je ne vais pas paraphraser l’article du site web &lt;a href=&quot;http://www.serieslive.com/news/x-or-renait-au-cinema/16606/&quot;&gt;Séries Live&lt;/a&gt; et vais vous laisser gratter un peu vos souvenirs et la poussière déposée dessus. Par contre, pour le plaisir, … le générique d’antant.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;## La télécommande universelle façon gamin&lt;/p&gt;

&lt;p&gt;Quand on me parle de télécommande universelle, je pense à deux choses : les télécommandes universelles pour remplacer les 50.000 télécommandes du salon et les montres-télécommandes à l’époque du collège. Là, nous avons le droit à un petit plaisantin qui prend plaisir à utiliser son petit montage dans la rue pour éteindre les TV des bars ou boutiques. Vraiment dans l’esprit des montres de l’époque. Bizarrement, je trouvais ca plus comique à l’époque, vieux con que je suis.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;## Disney, l’open-source et le web&lt;/p&gt;

&lt;p&gt;Quand je vois la news reprise sur le net depuis hier, je pense que Disney vient de se faire un paquet d’ennemi et que ca promet un joli bizutage. En cause, une séquence dans l’une des séries produites et diffusées par Disney Channel où l’on peut entendre un joli “&lt;em&gt;As-tu utilisé du code open source pour gagner du temps et un virus était caché dedans ?&lt;/em&gt;”. Personnellement, je doute que cela soit dû à une mauvaise information du scénariste. Je miserais plus sur un partenaire &lt;em&gt;à la noix&lt;/em&gt; (&lt;em&gt;à la pomme&lt;/em&gt; vu l’ordinateur de la séquence) ayant demandé une petite séquence propagande.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;## Le Lazer Game nouveau est arrivé&lt;/p&gt;

&lt;p&gt;Beaucoup d’entre vous connaissent les Lazer Games, peu importe le nom commercial du produit. Souvent en entrepôt, le jeu part à la conquête de la ville. &lt;a href=&quot;http://www.gizmodo.fr/2012/08/20/lazer-tag-nouveau-arrive.html&quot;&gt;Gizmodo FR&lt;/a&gt; nous présente donc une évolution du produit très intéressante pour les &lt;em&gt;aficionados&lt;/em&gt; du jeu. Ce n’est pas excessif au niveau prix, c’est à la page (&lt;em&gt;version iPhone&lt;/em&gt; seulement pour le moment).&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;## Michael Moore, Oliver Stone et les US&lt;/p&gt;

&lt;p&gt;Michael Moore critique ouvertement les US avec des films-documentaires : &lt;a href=&quot;http://www.youtube.com/watch?v=EUSpszWfu_w&quot;&gt;Bowling for Columbine&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=2Zf2nCiBJLo&quot;&gt;Fahrenheit 9/11&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=8BJyyyRYbSk&quot;&gt;SiCKO&lt;/a&gt; … Oliver Stone le fait de manière souvent plus &lt;em&gt;poétique&lt;/em&gt; : &lt;a href=&quot;http://www.youtube.com/watch?v=4_67t6I_beg&quot;&gt;Tueurs nés&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=EdwjsNmwo7k&quot;&gt;Né un 4 juillet&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=gKDG9kolAaY&quot;&gt;JFK&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=dO2LWKpeyI8&quot;&gt;Nixon&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=weELpc3pYMs&quot;&gt;W&lt;/a&gt; … Aujourd’hui, ils nous offrent un papier commun dans l’édition du NY Times, disponible sur &lt;a href=&quot;http://www.nytimes.com/2012/08/21/opinion/wikileaks-and-the-global-future-of-free-speech.html?_r=2&quot;&gt;son site web&lt;/a&gt;. A lire sans modération.&lt;/p&gt;

&lt;p&gt;## L’Elysee et la sécurité&lt;/p&gt;

&lt;p&gt;Dans certains pays, d’autres seraient morts pour moins que ça. Il est donc question d’un entrepreneur se baladant avec une clé USB non cryptée contenant les plans de l’Elysée. Clé volée directement dans sa voiture. C’est &lt;a href=&quot;http://www.rue89.com/2012/08/21/les-plans-de-lelysee-derobes-dans-une-voiture-234748&quot;&gt;Rue 89&lt;/a&gt; qui le rapporte sur son site web. De quoi lancer un film de série Z.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Total Recall : ma mémoire a le hoquet</title>
      <link href="https://francois.aichelbaum.com/2012/08/17/total-recall-ma-memoire-a-le-hoquet" />
      <updated>2012-08-17T22:58:08+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/17/total-recall-ma-memoire-a-le-hoquet</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/total_recall_rect-460x3071-150x150.jpg&quot; alt=&quot;Douglas Quaid - Total Recall&quot; /&gt;{.left} Qui n’a jamais rêvé que le fruit de son imagination soit réel ? Malheureusement, il est dur de réaliser tous nos rêves. Pour autant, pourquoi ne pas s’assurer qu’ils deviennent de vrais souvenirs, gravés dans votre mémoire. C’est le business de &lt;em&gt;Rekall Inc&lt;/em&gt; : “Dites-nous vos rêves, nous les réalisons”.
Inspiré de la courte nouvelle de Philip K. Dick (&lt;a href=&quot;http://fr.wikipedia.org/wiki/Souvenirs_%C3%A0_vendre_(nouvelle)&quot;&gt;We Can Remember It for You Wholesale&lt;/a&gt;), le film de 2012 est surtout un remake de celui de &lt;a href=&quot;https://www.youtube.com/watch?v=WFMLGEHdIjE&quot;&gt;1990&lt;/a&gt; avec Schwarzy. Quelques différences nous offrent un film qui sait se distinguer de son aïeul.&lt;/p&gt;

&lt;h2 id=&quot;une-mémoire-à-déprogrammer&quot;&gt;Une mémoire à déprogrammer&lt;/h2&gt;

&lt;p&gt;Le premier réflexe que l’on a, est de se souvenir de la première version. Cependant, même si l’on se prend à chercher les clins d’oeil et les différences, il est plus agréable d’essayer de découvrir se film comme une nouvelle aventure, indépendante et vierge.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Pourquoi partir dans cette optique ? Simplement parce que la nouvelle de Philip K. Dick ne fait que tracer les lignes initiales de ces deux films (&lt;a href=&quot;http://fr.wikipedia.org/wiki/Total_Recall&quot;&gt;1&lt;/a&gt; et &lt;a href=&quot;http://fr.wikipedia.org/wiki/Total_Recall_:_M%C3%A9moires_programm%C3%A9es&quot;&gt;2&lt;/a&gt;), mais aussi de la série &lt;a href=&quot;http://www.serieslive.com/serie/total-recall-2070/657/&quot;&gt;Total Recall 2070&lt;/a&gt;. En effet, il n’y est question que de Douglas Quaid rêvant d’aller sur Mars sans en avoir les moyens. Il s’intéresse alors à la société Rekall Inc, offrant d’implanter de faux souvenirs dans votre mémoire. Mais le service vient à déparer pour en interférant avec de vrais souvenirs enfouis. Rien de plus.
Dans la version de 1990, on enchaîne sur ce que serait ce souvenir enfoui. L’action majeur se passe sur Mars, planète que notre ami body-buildé Douglas Quaid va sauver. Dans la série de 1999, il s’agit de suivre des enqueteurs dont la plupart des affaires gravitent autour de Rekall. Aujourd’hui, Douglas Quaid est de nouveau parmi nous mais vit sur une Terre divisée entre les riches britanniques et les pauvres ouvriers australiens (oui je schématise).&lt;/p&gt;

&lt;p&gt;Bien accompagné cette fois-ci encore (spéciale dédicace à Jessica Biel pour ma part), Douglas travaille comme ouvrier sur les chaines d’assemblage de soldats-robots. Pauvre, il aspire à plus grand de son côté du globe. Surtout qu’un rêve  récurrent le perturbe, à croire que sa mémoire veut lui dire quelque chose. Une publicité pour Rekall va l’attirer dans l’usine à souvenir. De là, sa mémoire va commencer à se libérer.
Et pour nous, le début d’un film au pas de course, à l’action nerveuse mais pourtant claire. Calé sur la version de 1990 en bien des points et surtout l’enchaînement des séquence, le film se dénote pourtant sur l’univers, plus proche de &lt;a href=&quot;https://www.youtube.com/watch?v=mKylB9f3_Gk&quot;&gt;Blade Runner&lt;/a&gt; que du premier &lt;em&gt;Total Recall&lt;/em&gt;. La partie graphique plus dans le détail mais aussi la bande son plus recherchée marquent là encore des différences avec le précédent. Mais le remake se veut aussi un hommage au travail accompli par le passé et les clins d’oeil se multiplient.
On finit par se faire transporter dans ce film à grandes prétentions dans une aventure sous crack mêlant action dynamique, thème inspirant et jolie plastique. Cependant, les nombreux faux raccords pourraient causer du tord au film si l’on y fait trop attention. Reste qu’il m’avait fait peur à son annonce, mais qu’il a presque su me faire oublier l’espace de deux heures le précédent film. Un bon moment qui aurait pu être exceptionnel avec un travail mieux fini, &lt;em&gt;remake&lt;/em&gt; oblige.&lt;/p&gt;

&lt;p&gt;P.S. : une fille pourrait-elle m’expliquer à quoi cela sert-il de mettre une culotte blanche presque transparente par dessus un string blanc ?&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/totalRecall20121.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/totalRecall20121.jpg 480w, /assets/totalRecall20121.jpg 500w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Rebelle : douche écossaise</title>
      <link href="https://francois.aichelbaum.com/2012/08/17/rebelle-douche-ecossaise" />
      <updated>2012-08-17T16:13:12+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/17/rebelle-douche-ecossaise</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/le-rebelle-150x150.jpg&quot; alt=&quot;Le Rebelle&quot; /&gt;{.left} Le Rebelle : &lt;em&gt;il était flic, il faisait du bon travail mais il a commis le crime le plus grave en témoignant contre d’autres flics …&lt;/em&gt; La testostérone à l’état brut sur petit écran. Mais avec un grand coeur, faut pas déconner. Que de souvenir. Donc le film sort au cinéma …. Hmm ? On me souffle dans l’oreillette que je me serais trompé de Rebelle ? Dommage !
Donc, hier j’ai pu voir le dernier Pixar avec deux semaines de retard. Une morale au ton comique pour les enfants (petits et grands). &lt;em&gt;Dé-pixélisation&lt;/em&gt; d’un bon moment en salle obscure.&lt;/p&gt;

&lt;h2 id=&quot;pixar-se-rebelle-en-roux&quot;&gt;Pixar se rebelle en roux&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://fr.wikipedia.org/wiki/Pixar_Animation_Studios&quot;&gt;Pixar&lt;/a&gt;, c’est un film d’animation par an en moyenne. Un chef d’oeuvre artistique presque à chaque fois : &lt;a href=&quot;https://www.youtube.com/watch?v=KYz2wyBy3kc&quot;&gt;Toy Story&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=9jemRQTLFH4&quot;&gt;Monstre &amp;amp; Cie&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=wYcxGGLkE84&quot;&gt;le Monde de Nemo&lt;/a&gt;,&lt;a href=&quot;https://www.youtube.com/watch?v=wphN9hG0l5w&quot;&gt;les Indestructibles&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=c3sBBRxDAqk&quot;&gt;Ratatouille&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=alIq_wG9FNk&quot;&gt;Wall-E&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=p-TdCD6DBfM&quot;&gt;Là-Haut&lt;/a&gt;. &lt;em&gt;Rebelle&lt;/em&gt; est-il de cette étoffe. Pour les trop pressés, un grand Oui !&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Pour résumer l’histoire, nous suivons donc Merida, princesse héritière du roi d’Ecosse, destinée à se marier et devenir une sage petite princesse avec de bonnes manières. Bah, oui ! Une fille, ça ne rôte pas. Ca ne pète pas. Ca ne fait pas caca. Ca n’a pas besoin de savoir chasser. Sauf que Merida rêve du parfait contraire. Une demande à la sorcière du coin devrait l’y aider … Début des ennuis pour elle et du spectacle pour nous.
J’ai eu l’occasion de voir le film en VO et là, l’accent écossais fait une énorme différence sur le film en français. Cependant, avec des enfants, on fuiera clairement cette version. Mais pour les grands enfants, un plaisir additionnel, surtout à se dire “Mais qu’est-qu’il dit le blondinet ?”
Comme toujours avec les &lt;em&gt;Pixar&lt;/em&gt;, une morale doit nous être livrée. Et pour ne pas déroger à la règle, les crises de fous rire vont nous y aider. Comment résister aux mini roux prêts à tout pour la farce ? Comme résister aux Jeux Ecossais bien moins ridicule que nos chers JO ? Réveillons le rebelle écossais qui dort en nous et allons taquiner du rouquin !
Sur le plan artistique, chaque détail compte. On sentirait presque les vents écossais sur notre visage en humant la bonne mousse fraiche. On pourra s’amuser cependant à chercher les coquilles mais le plaisir est trop présent pour perdre ainsi son temps.
Un voyage en Ecosse qu’on aimerait revivre. En attendant, vais me manger un &lt;em&gt;haggis-burger&lt;/em&gt; …
N.B. : l’hommage pour &lt;a href=&quot;http://www.lefigaro.fr/cinema/2011/08/25/03002-20110825ARTFIG00508-pixar-l-autre-grande-reussite-de-steve-jobs.php&quot;&gt;Steve Jobs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;P.S. : pour un certain père indigne dont je ne citerais pas le nom, oui j’ai aimé et j’assume !&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/Concours-Rebelle-300x184.jpg&quot; title=&quot;&quot; srcset=&quot; /assets/Concours-Rebelle-300x184.jpg 300w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Revue du web du 17 août 2012</title>
      <link href="https://francois.aichelbaum.com/2012/08/17/revue-du-web-du-17-aout-2012" />
      <updated>2012-08-17T14:50:07+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/17/revue-du-web-du-17-aout-2012</id>
      <content type="html">&lt;p&gt;Allez, c’est vendredi, c’est la journée des trolls pour les geeks mais surtout une veille de WE et il fait chaud. Bref, on se rafraîchit un peu les méninges. Bref, petite revue du web. Très petite vu la journée.&lt;/p&gt;

&lt;h2 id=&quot;gros-muscles-grosses-gaffes&quot;&gt;Gros muscles, grosses gaffes&lt;/h2&gt;

&lt;p&gt;Allociné, outre les infos sur le cinéma, propose quelques web-émissions assez sympa. L’une de mes préférées, c’est “Faux Raccord”. Celle d’aujourd’hui, première de la nouvelle saison est particulièrement risible sur les dialogues. Alors c’est parti pour le trio &lt;a href=&quot;http://www.allocine.fr/video/emissions/faux-raccords/episode/?cmedia=19370188&quot;&gt;Sly-Schwarzy-Willis&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;assange-ou-comment-fuire-langleterre&quot;&gt;Assange ou comment fuire l’Angleterre&lt;/h2&gt;

&lt;p&gt;Il est de ces personnes dont la vie fait parler la presse du monde entier pendant des semaines. C’est le cas de Julian Assange. Pour rappel, le fondateur de &lt;a href=&quot;http://fr.wikipedia.org/wiki/WikiLeaks&quot;&gt;Wikileaks&lt;/a&gt; est convoqué en Suède pour être entendu dans &lt;a href=&quot;http://bugbrother.blog.lemonde.fr/2010/12/08/wikileaks-julian-assange-nest-pas-un-violeur/&quot;&gt;une affaire de viol et d’aggression sexuelle&lt;/a&gt;. Il n’y est pas encore condamné ni même accusé. Cependant, l’Angleterre souhaite l’y renvoyé par tous les moyens. Certains y voir un complot des Etats Unis. Reste que le pays de sa Majesté n’avait pas mis autant de moyen à l’époque d’&lt;a href=&quot;http://en.wikipedia.org/wiki/Murder_of_Yvonne_Fletcher&quot;&gt;un tueur de flic&lt;/a&gt;. Mais bon, en marge des manifestations pro-Assange, certains s’en donnent à coeur joie sur le web et imaginent des &lt;a href=&quot;http://www.numerama.com/magazine/23434-julian-assange-5-tactiques-pour-s-enfuir-de-l-ambassade.html&quot;&gt;sorties du pays possible&lt;/a&gt;. De quoi bien rire.&lt;/p&gt;

&lt;h2 id=&quot;cest-lété-les-cités-sont-de-sortie-pour-la-drague&quot;&gt;C’est l’été, les cités sont de sortie pour la drague&lt;/h2&gt;

&lt;p&gt;Aller, petit plaisir avec un &lt;a href=&quot;http://payetashnek.tumblr.com/&quot;&gt;Tumblr&lt;/a&gt; à savourer. Même si la probabilité que certaines ne soient que pure invention, elles ne restent pas très éloignées de la réalité.&lt;/p&gt;

&lt;h2 id=&quot;roulez-moins-cher-pour-vos-vacances&quot;&gt;Roulez moins cher pour vos vacances&lt;/h2&gt;

&lt;p&gt;Petite astuce pour ceux qui prennent la route pour les vacances (et même les autres). Voici &lt;a href=&quot;http://www.challenges.fr/revue-de-presse/20120817.CHA9661/les-astuces-d-un-ingenieur-nantais-pour-reduire-de-30-sa-facture-aux-peages.html?xtor=RSS-16&quot;&gt;un petit site&lt;/a&gt; avec une carte interactive qui permet de définir le trajet le plus économique au niveau des péages, quite à sortir pour re-rentrer sur l’autoroute. Bonne idée. Très utile surtout vu l’augmentation régulière des tarifs autoroutiers.&lt;/p&gt;

&lt;h2 id=&quot;téléphoner-ou-manger-il-faut-choisir&quot;&gt;Téléphoner ou manger, il faut choisir&lt;/h2&gt;

&lt;p&gt;Dans la série des bons plans qu’il faudra faire venir chez nous, voici l’idée d’un chef de LA. Pour redonner un côté convivial aux tables et &lt;em&gt;déconnecter&lt;/em&gt; ses clients, le chef offre &lt;a href=&quot;http://www.gizmodo.fr/2012/08/17/sms-restaurant.html&quot;&gt;une réduction&lt;/a&gt; sur l’addition de 5% si on n’utilise pas son smartphone. A développer.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Revue du web du 14 août 2012</title>
      <link href="https://francois.aichelbaum.com/2012/08/14/revue-du-web-du-14-aout-2012" />
      <updated>2012-08-14T12:27:06+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/14/revue-du-web-du-14-aout-2012</id>
      <content type="html">&lt;p&gt;Nouvelle révue du web avec du plaisir et de l’image choc. Bon surf !&lt;/p&gt;

&lt;h2 id=&quot;un-holodeck-à-la-maison&quot;&gt;Un holodeck à la maison&lt;/h2&gt;

&lt;p&gt;Petit rappel sur ce qu’est un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Holodeck&quot;&gt;holodeck&lt;/a&gt;. C’est un concept issu de Star Trek qui propose une salle “toute virtuelle”. Un monde y est recré et vous y intéragissez à volonté. C’est le summum de la réalité virtuelle. Bah de petits étudiants californiens en ont monté un. Bon, ok ce n’est pas encore du niveau de &lt;a href=&quot;http://www.youtube.com/watch?v=E11v3qmuKxk&quot;&gt;celui de Star Trek&lt;/a&gt;, mais ca vaut le détour.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;gotye-ses-fans-et-le-web&quot;&gt;Gotye, ses fans et le web&lt;/h2&gt;

&lt;p&gt;Gotye et son &lt;a href=&quot;http://www.youtube.com/watch?v=8UVNT4wvIGY&quot;&gt;Somebody that I used to know&lt;/a&gt; a été repris un paquet de fois sur le web, de manière détournée ou non. Petit signe de reconnaissance, l’artiste publie une vidéo en mixant une bonne partie. Aucune modification aux reprises des fans, juste une compilation des sons. Très agréable et presque zen.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;des-pyramides-englouties--dans-le-désert&quot;&gt;Des pyramides englouties … dans le désert&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/pyr-3-564x540-150x150.jpg&quot; alt=&quot;De nouvelles pyramides mises à jour ?&quot; class=&quot;left&quot; /&gt; Bon cette fois-ci il ne s’agit pas de pyramides englouties dans l’océan. Des &lt;a href=&quot;http://news.yahoo.com/long-lost-egyptian-pyramids-found-google-earth-005252340.html&quot;&gt;photos de Google Earth&lt;/a&gt; auraient mis à jour de &lt;em&gt;nouvelles&lt;/em&gt; dans le désert égyptien. Elles semblent bien vieille, bien erodées.
Il n’y a plus qu’à y envoyer Indy ou Lara sur place pour s’assurer de la chose.&lt;/p&gt;

&lt;h2 id=&quot;le-choc-du-jour--mort-pour-une-photo&quot;&gt;Le choc du jour : mort pour une photo&lt;/h2&gt;

&lt;p&gt;Il y a des morts violentes et absurdes. Et clairement, celle qui fait le tour de &lt;a href=&quot;http://www.leparisien.fr/faits-divers/battu-a-mort-a-cause-d-une-photo-14-08-2012-2124766.php&quot;&gt;la presse&lt;/a&gt; aujourd’hui l’est. Le tord de la victime : avoir apprécié une moto et la toucher pour une prise de photo. Le (présumé) coupable : un agent de sécurité au sang un peu trop chaud. L’arme : les chaussures de sécurité (coquées donc) de l’agent dans la figure de la victime. L’action se passe en deux temps car bon, mettre un homme à terre seul, c’est peu amusant. Donc autant revenir avec ses potes pour l’achever. Mon commentaire ? 1981.&lt;/p&gt;

&lt;h2 id=&quot;cest-de-lart-on-vous-dit-&quot;&gt;C’est de l’art on vous dit !&lt;/h2&gt;

&lt;p&gt;Aussi inutile qu’un frigo sur la banquise. Aussi artistique qu’un monochrome de Whiteman. Voici les &lt;a href=&quot;http://golem13.fr/william-bett-surveillance/&quot;&gt;photos des caméras de surveillances&lt;/a&gt; exposées tels des chefs d’oeuvre. On va oublier le droit à l’image, l’accès à des données de sécurité et surtout que l’artiste n’a rien fait si ce n’est une capture d’une image qu’il ne contrôle pas. Bref, c’est de l’art puisqu’on nous le dit. Point barre.&lt;/p&gt;

&lt;h2 id=&quot;des-bandes-annonces-comme-vous-en-rêviez&quot;&gt;Des bandes annonces comme vous en rêviez&lt;/h2&gt;

&lt;p&gt;Des amateurs. Des jeux vidéos. Des bandes annonces. De futurs films du box office. Il n’en fallait pas plus et le &lt;a href=&quot;http://www.journaldugamer.com/2012/08/13/top-5-meilleures-ba-amateurs/&quot;&gt;Journal du Gamer&lt;/a&gt; nous gratifie d’une petit Top5 qui fait du bien par où ca passe. Après tout, on a eu un florilège d’adaption vidéo ludique (voire ludique) au cinéma. Non je ne parle pas de la bataille navale transformée en &lt;a href=&quot;/la-croisiere-samuse/&quot;&gt;Battleship&lt;/a&gt; en tête de liste.&lt;/p&gt;

&lt;h2 id=&quot;the-expendables-3&quot;&gt;The Expendables 3&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/418851_344755945610456_263059213_n-600x921-150x150.jpg&quot; alt=&quot;The Expendables version jeux vidéos&quot; class=&quot;left&quot; /&gt; Alors que l’épisode 2 sort au cinéma cet été, un graphiste nous offre sa vision des Expendables qui serait au final digne de faire l’affiche d’un 3e opus. On remplace donc les stars du cinéma d’action par les stars du jeu vidéo d’action. Un bon plaisir.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Hail to the Kings, Baby!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;what-a-piece-of-chalk&quot;&gt;What a piece of Chalk&lt;/h2&gt;

&lt;p&gt;Petit court métrage présenté par &lt;a href=&quot;http://www.journalgraphic.com/2012/08/12/court-metrage-with-piece-chalk/&quot;&gt;le Journal Graphic&lt;/a&gt;. C’est beau. C’est porteur de plein de choses. Juste à apprécier … et à méditer.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Valentin : la cuisine familiale de Belleville et de Thaïlande</title>
      <link href="https://francois.aichelbaum.com/2012/08/12/restaurant-valentin" />
      <updated>2012-08-12T14:02:21+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/12/restaurant-valentin</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/9DDDE2C9-C706-49D5-B42B-DB471046E1CF.jpeg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-5294 alignleft&quot; title=&quot;9DDDE2C9-C706-49D5-B42B-DB471046E1CF.jpeg&quot; src=&quot;/assets/9DDDE2C9-C706-49D5-B42B-DB471046E1CF-150x150.jpeg&quot; alt=&quot;&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Samedi soir, la fatigue de la journée s&apos;est fait sentir. La ballade en forêt m&apos;a ouvert l&apos;appétit. Direction un petit restaurant offrant de la cuisine familiale. Le choix s&apos;est porté sur Valentin, petit restaurant à la devanture sans prétention, en haut de la &lt;a href=&quot;https://maps.google.fr/maps?q=valentin+rue+rebeval&amp;amp;ie=UTF-8&amp;amp;ei=rJYnULb1BITMhAfGhYCoAg&amp;amp;ved=0CFcQ_AUoAg&quot;&gt;rue Rebeval, dans le 19e&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--more--&gt;&lt;/p&gt;
&lt;h2&gt;Valentin ou la cuisine familiale voyage en Thaïlande&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La carte de Valentin se fait alléchante, mélangeant une cuisine du terroir à de la cuisine aux saveurs Thaïlandaises. La carte est annoncée sur des enveloppes marrons rangées dans des portes dessins. La carte du jour écrite rapidement sur un feuille de carnet. On se croirait presque revenu à l&apos;école. A deux, petit tour du repas choisi.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Entrées : os à moelle ; calamars à la thaïlandaise&lt;/li&gt;
&lt;li&gt;Plats : tomates farcies ; raie au curry doux&lt;/li&gt;
&lt;li&gt;Desserts : tiramisu ; tarte tatin&lt;/li&gt;
&lt;li&gt;Boissons : Saint Géron et bière Organic&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;Que dire : tout est parfait pour de la cuisine familiale. On sent que la patron a voyagé et  apprécié la Thaïlande : il n&apos;a qu&apos;une envie, nous le faire partager au travers de la carte. On déguste l&apos;entrée. L&apos;os à moelle est divin ; les calamars bien frais et assaisonné. La sauce au curry et lait de coco relève parfaitement la raie très bien cuite. Cependant, la préparation aurait pu être parfaitement finie en retirant le cartilage des filets. Pour un néophyte, cela peut être rébarbatif. Heureusement, cela n&apos;enlève rien au goût. Côté tomates farcies, rien a redire, c&apos;est très bon. La fin du repas se marque par deux desserts magnifiques (oui, le tiramisu n&apos;est ni du terroir ni de Thaïlande). Assis à une table collée au bar, on voit les autres desserts se faire dresser et l&apos;eau reste en bouche pour multiplier les goûts.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;On en reste cependant là. L&apos;estomac est bombé. Les papilles en ébullition. La note un peu élevé mais sobre (64€). L&apos;accueil a été très chaleureux avec quelques blagues du patron. L&apos;adresse est notée pour un nouveau rendez-vous.&lt;/div&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[print_gllr id=5291]&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Restaurant du Tibet-Pemathang : dépaysement et chaleur</title>
      <link href="https://francois.aichelbaum.com/2012/08/12/restaurant-du-tibet-permathang-depaysement-et-chaleur" />
      <updated>2012-08-12T13:29:04+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/12/restaurant-du-tibet-permathang-depaysement-et-chaleur</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/pemathangbig.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-5279&quot; title=&quot;Tibet-Permathang&quot; alt=&quot;Tibet-Permathang&quot; src=&quot;/assets/pemathangbig-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Vendredi soir, affamé et d&apos;humeur aventureuse, je me suis retrouvé dans mon vieux V&lt;sup&gt;e&lt;/sup&gt; arrondissement de Paris en direction d&apos;un restaurant Thaïlandais à Maubert-Mutualité que l&apos;on m&apos;avait recommandé. Fermé pour les vacances, je me suis rabattu sur un Tibétain (tout aussi recommandé) un peu plus haut dans la rue. Découverte de la chaleur et des saveurs du &lt;a href=&quot;https://maps.google.fr/maps?ie=UTF-8&amp;amp;q=restaurant+tibetain+paris+5&amp;amp;fb=1&amp;amp;gl=fr&amp;amp;hq=restaurant+tibetain&amp;amp;hnear=0x47e671ef6ff7f46f:0x50b82c368941a90,5e+Arrondissement,+Paris&amp;amp;cid=0,0,2374113226799631725&amp;amp;ei=oY0nUL6mBNCwhAex1IHoBw&amp;amp;ved=0CIIBEK8LMAU&quot;&gt;Tibet-Pemathang&lt;/a&gt;, au 13 rue Montagne Sainte Geneviève, Paris 5&lt;sup&gt;e&lt;/sup&gt;.&lt;!--more--&gt;&lt;/p&gt;
&lt;h2&gt;Au Tibet, société matriarcale ; ici, restaurant féminin&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Premier étonnement culturel : de l&apos;accueil à la cuisine, en passant par le service, tout est accompli par des femmes tibétaines. Un peu d&apos;explication nous fait comprendre que la société tibétaine est une société matriarcale. La hiérarchie est ici reportée. L&apos;accueil se montre alors hyper chaleureux et il est clair que le client est plus que soigné.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Second étonnement culturel : je suis le seul homme présent dans le restaurant pendant toute la soirée. A croire que la clientèle se passe le mot seulement entre femmes et que les hommes sont bannis de cette importation de société matriarcale. Amusant mais malheureux quelque part. Pour autant, j&apos;en profite bien car l&apos;ambiance y est agréable.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;D&apos;ailleurs, tout de l&apos;attention du personnel à la décoration est chaleureux. Sans trop en faire pour nous transporter au Tibet, les quelques photos et la présence du bois apparent suffisent amplement à nous faire voyager et à sentir la chaleur de l&apos;accueil, ancrée dans cette société. Plus qu&apos;à mettre les pieds sous la table, lire le menu et déguster.&lt;/p&gt;
&lt;h2 style=&quot;text-align: justify;&quot;&gt;Voyage au Tibet au travers de la nourriture&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Chaque plat au menu est présenté sous son nom tibétain et accompagné d&apos;une explication en français. C&apos;est limpide et les babines salivent délicieusement. On va faire donc simple, une entrée variée qui reprend chaque entrée (hors soupe) en petite quantité. Suivra un boeuf sauté et épicé. Et pour finir, une coule douce du Tibet. Le tout accompagné d&apos;un Dhara : yaourt mélangé façon milk shake avec du miel. Addition : environ 30€ pour ce menu. Verdict ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;De manière générale, les produits sont frais et bien préparés. L&apos;entrée est parfaite pour découvrir plusieurs spécialités rapidement. Le plat, très épicés est un régal. Le Dhara est alors parfait pour calmer les épices du plat. D&apos;ailleurs j&apos;en redemande volontiers. Pour ce qui est du dessert, il clôt ce repas. A travers les plats, on ressent les différentes influences des immigrants ayant rejoint le Tibet à travers le temps. Les saveurs tendent aussi bien vers l&apos;Inde que vers la Chine avec des pointes d&apos;épices venant d&apos;ailleurs. Un savoureux mélange qui assure le voyage.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Sans conteste, l&apos;une de mes plus belles aventures culinaires de ces derniers temps. Le prix vaut largement la qualité du repas et le voyage au Tibet ainsi réalisé. On comprend vite la panoplie de stickers du Guide du Routard sur la devanture. A refaire !&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/PT01.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-5282 aligncenter&quot; title=&quot;Tibet-Permathang&quot; alt=&quot;Tibet-Permathang&quot; src=&quot;/assets/PT01-150x150.jpg&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Revue du web du 10 août 2012</title>
      <link href="https://francois.aichelbaum.com/2012/08/10/revue-du-web-du-10-aout-2012" />
      <updated>2012-08-10T14:24:08+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/10/revue-du-web-du-10-aout-2012</id>
      <content type="html">&lt;p&gt;Comme depuis quelques temps, petite revue du web en vidéos, en images et en textes.&lt;/p&gt;

&lt;h2 id=&quot;les-cariboux-soutiennent-leur-équipe-olympique-sur-le-web&quot;&gt;Les cariboux soutiennent leur équipe olympique sur le web&lt;/h2&gt;

&lt;p&gt;Nos cousins de l’autre côté de l’Atlantique soutiennent à fond leur équipe olympique. La société Rona, l’équivalent de notre Leroy Merlin, le montre dans un spot mis sur le web.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;pour-lamour-du-bien-gras&quot;&gt;Pour l’amour du bien gras&lt;/h2&gt;

&lt;p&gt;Un bon burger, il n’y a que ca de vrai. Ca nourrit. Ca remonte le moral. Ca guérit de beaucoup de choses (c’est beau l’utopie non ?). C’est aussi un art. Petite galerie sur &lt;a href=&quot;http://fatandfuriousburger.tumblr.com/&quot;&gt;Tumblr&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;les-nounours-sont-nos-amis&quot;&gt;Les nounours sont nos amis&lt;/h2&gt;

&lt;p&gt;En tout cas, l’ours en peluche se veut signe de paie et de démocratie selon certains suédois qui en ont &lt;a href=&quot;http://www.lemonde.fr/europe/article/2012/08/10/minsk-stockholm-les-nounours-de-la-discorde_1744694_3214.html#xtor=RSS-3208&quot;&gt;parachuté un paquet sur la Biélorussie&lt;/a&gt;. Le Monde dans son édition web nous explique rapidement la violence de l’acte suédois contre la paisible dictature biélorusse.&lt;/p&gt;

&lt;h2 id=&quot;lathétisme-est-dangereux-pour-votre-santé&quot;&gt;L’athétisme est dangereux pour votre santé&lt;/h2&gt;

&lt;p&gt;Le Huffington Post rapporte les dangers de l’athlétisme amateur au travers d’une &lt;a href=&quot;http://www.huffingtonpost.fr/2012/08/08/jo-athletisme-amateur-gif-chutes_n_1763021.html&quot;&gt;série de GIFs animés&lt;/a&gt;. Attention, risque sévère de migraine en perspective.&lt;/p&gt;

&lt;h2 id=&quot;le-cinéma-peut-être-meûgnon&quot;&gt;Le cinéma peut être meûgnon&lt;/h2&gt;

&lt;p&gt;Qu’ils peuvent être chou les bouts-de-choux. Personnages de cinéma &lt;a href=&quot;http://golem13.fr/praia-de-belas-moivies-kids/&quot;&gt;revisités façon garderie&lt;/a&gt;. C’est frais. C’est sur Golem13.&lt;/p&gt;

&lt;h2 id=&quot;ff-est-mort-pas-vive-ff&quot;&gt;FF est mort. Pas vive FF&lt;/h2&gt;

&lt;p&gt;C’est le Journal du Gamer qui publie &lt;a href=&quot;http://www.journaldugamer.com/2012/07/27/pal-81-final-fantasy-est-mort-adieu/&quot;&gt;une critique&lt;/a&gt; sur la décadence du jeu vidéo à la japonaise, license &lt;a href=&quot;http://fr.wikipedia.org/wiki/Final_Fantasy&quot;&gt;Final Fantasy&lt;/a&gt; en tête. Ca fait du bien de lire quelqu’un du même avis. La profondeur des histoires et des univers, sans parler d’un vrai &lt;em&gt;character design&lt;/em&gt; est absent depuis bien trop longtemps au profit de la technique sur ce genre de jeux. Personnellement, oui FF VII me hante et FF XII a achevé la saga en s’orientant dans un gameplay à la MMO alors que FF XI n’aurait jamais dû être. C’était mieux &lt;em&gt;avant&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;faire-du-camping-et-emmener-un-stock-de-bière&quot;&gt;Faire du camping et emmener un stock de bière&lt;/h2&gt;

&lt;p&gt;Quand on fait dans le &lt;em&gt;roots&lt;/em&gt;, on a très peu de place. Pour autant, on n’abandonne pas sa bibine. Gizmodo présente une solution : &lt;a href=&quot;http://www.gizmodo.fr/2012/08/10/biere-en-poudre.html&quot;&gt;la bière en poudre&lt;/a&gt;. A tester mais j’ai peur.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Jusqu&amp;#039;à ce que la fin du monde nous sépare : j&amp;#039;en suis mort</title>
      <link href="https://francois.aichelbaum.com/2012/08/09/jusqua-ce-que-la-fin-du-monde-nous-separe-jen-suis-mort" />
      <updated>2012-08-09T11:15:27+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/09/jusqua-ce-que-la-fin-du-monde-nous-separe-jen-suis-mort</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/geocroiseur_impact.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-4874&quot; title=&quot;Apocalypse&quot; src=&quot;/assets/geocroiseur_impact-150x150.jpg&quot; alt=&quot;Apocalypse&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;2012. La fin du monde approche selon la croyance populaire (non ce ne sont pas les mayas qui l&apos;ont dit). Cependant, un astéroïde nous menace. Bruce Willis veut nous en sauver dans &lt;a href=&quot;http://www.youtube.com/watch?v=73cWfFEKAfE&quot;&gt;Armageddon&lt;/a&gt;. Mais ici, le vaisseau &lt;em&gt;Delivrance&lt;/em&gt; explose en vol et nous voilà définitivement condamnés. Mort clinique d&apos;un spectateur en salle obscure.&lt;!--more--&gt;&lt;/p&gt;
&lt;h2&gt;La mort d&apos;un genre&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Hier sortait donc &lt;em&gt;Jusqu&apos;à ce que la fin du monde nous sépare&lt;/em&gt;. J&apos;y suis allé. J&apos;ai vu. Je n&apos;ai pas vaincu.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=0NPhBOWA2VI[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les films sur la fin du monde, une grande histoire de non amour avec le cinéma sur les dernières décennies. &lt;em&gt;Le Jour où la Terre s&apos;arrêta&lt;/em&gt; (1951). &lt;em&gt;Le jour d&apos;après&lt;/em&gt; (1983). &lt;em&gt;Deep&lt;/em&gt; &lt;em&gt;Impact&lt;/em&gt; (1997). &lt;em&gt;Armageddon&lt;/em&gt; (1998). &lt;em&gt;Last Night&lt;/em&gt; (1999). &lt;em&gt;La fin des temps&lt;/em&gt; (1999). &lt;em&gt;Fusion&lt;/em&gt; (2001). &lt;em&gt;Le jour d&apos;après&lt;/em&gt; (2004). &lt;em&gt;La guerre des mondes&lt;/em&gt; (2005). &lt;em&gt;Melancholia&lt;/em&gt; (2007). &lt;em&gt;Sunshine&lt;/em&gt; (2007). &lt;em&gt;Le Jour où la Terre s&apos;arrêta&lt;/em&gt; (2008). &lt;em&gt;Phénomènes&lt;/em&gt; (2008). &lt;em&gt;2012&lt;/em&gt; (2009). &lt;em&gt;Prédictions&lt;/em&gt; (2009). Petite liste non exhaustive donc. Mais le genre tourne quelque peu en rond : astéroïde, cataclysme naturel ou extra-terrestres. Peu de changement aux scénarios. La mort d&apos;un genre. Ici on rejoue &lt;em&gt;Armageddon&lt;/em&gt; sous un autre angle.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Cette fois-ci, on la vie façon &lt;a href=&quot;http://www.youtube.com/watch?v=lnSgSe2GzDc&quot;&gt;Eternal sunshine in spotless mind&lt;/a&gt;. Le couple qui s&apos;y forme ne cherche pas désespérément à survivre mais simplement à finir sa vie ensemble. Dodge (&lt;a href=&quot;http://www.imdb.com/name/nm0136797/&quot;&gt;Steve Carell&lt;/a&gt;) a été largué par sa femme (la vraie femme de Steve dans la vie) suite à l&apos;annonce de l&apos;explosion de la navette Delivrance. Penny (&lt;a href=&quot;http://www.imdb.com/name/nm0461136/&quot;&gt;Keira Knightley&lt;/a&gt;) est une jeune fille perdue dans sa vie, hypersomniaque à ses moments perdus et amoureuse d&apos;un loser. Tous deux, voisins depuis quelques années mais pourtant inconnus, vont profiter de la situation pour faire connaissance et tenter de s&apos;entraider à réaliser leur dernier rêve. Revoir ses parents pour elle. Revoir son amour de jeunesse pour lui.&lt;/p&gt;
&lt;h2&gt;La mort du spectateur&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Alors qu&apos;une vraie osmose se sentait entre les héros d&apos;&lt;a href=&quot;http://www.youtube.com/watch?v=lnSgSe2GzDc&quot;&gt;Eternal sunshine in spotless mind&lt;/a&gt;, nos deux tourtereaux en devenir sont ici transparents l&apos;un pour l&apos;autre. Tout comme le jeu d&apos;acteur plat, le film enchaîne les platitudes de situations, les évidences dans les enchaînements. C&apos;est long. Les temps morts s&apos;enchaînent. Petit réconfort, le personnage de Penny aime le bon son et emmène ses vinyls. L&apos;occasion d&apos;avoir au moins une bonne chose dans ce film : de la bonne musique. Insuffisant.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Par deux fois, on nous envoie des électrochocs pour s&apos;assurer que nous ne sommes pas mort dans la salle obscure. Heureusement. Mais encore une fois insuffisant. Quinze personnes ont fuit la salle pour se préserver. Je suis mort sur mon siège.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt; &lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/08/Jusqua-ce-que-la-fin-du-monde-nous-separe-Affiche-France.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-4877&quot; title=&quot;Jusqu&apos;à ce que la fin du monde nous sépare&quot; src=&quot;/assets/Jusqua-ce-que-la-fin-du-monde-nous-separe-Affiche-France-225x300.jpg&quot; alt=&quot;Jusqu&apos;à ce que la fin du monde nous sépare&quot; width=&quot;225&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Petite revue du web du 8 août 2012</title>
      <link href="https://francois.aichelbaum.com/2012/08/08/petite-revue-du-web-du-8-aout-2012" />
      <updated>2012-08-08T15:13:16+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/08/petite-revue-du-web-du-8-aout-2012</id>
      <content type="html">&lt;p&gt;Mercredi, jour des enfants, sorties aux cinémas, … Revue du web en attendant l’heure de la sortie des classes !&lt;/p&gt;

&lt;h2 id=&quot;jukebox-humain-dans-la-grosse-pomme&quot;&gt;Jukebox humain dans la Grosse Pomme&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/thehumanjukebox-150x150.jpg&quot; alt=&quot;The Human Jukebox - CDZA&quot; class=&quot;left&quot; /&gt; En ce début d’après midi, le site web des &lt;a href=&quot;http://www.lesinrocks.com/inrocks.tv/un-jukebox-humain-dans-les-rues-de-new-york/&quot;&gt;InRocks&lt;/a&gt; nous propose de (re)découvrir les performances du groupe &lt;a href=&quot;http://www.cdzamusic.com/&quot;&gt;CDZA&lt;/a&gt;. Cette fois, c’est au travers d’un jeu de jukebox vivant dans les rues de New York City que le show se passe et on en redemande volontiers.
Profitez pour aller découvrir leurs autres &lt;em&gt;expériences musicales&lt;/em&gt;, cela vaut vraiment le détour.&lt;/p&gt;

&lt;h2 id=&quot;se-protéger-cest-bien-le-faire-bien-cest-mieux&quot;&gt;Se protéger c’est bien, le faire bien, c’est mieux&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/nginx_logo-150x150.gif&quot; alt=&quot;nginx&quot; class=&quot;left&quot; /&gt; Un peu de technique sur le web. Je viens de tomber sur un article du blog de &lt;a href=&quot;http://korben.info/auteur&quot;&gt;Korben&lt;/a&gt; : &lt;a href=&quot;http://korben.info/nginx-comment-bloquer-les-attaques-les-plus-courantes.html&quot;&gt;comment bloquer les attaques les plus courantes&lt;/a&gt;.
L’article est intéressant. L’idée louable. Mais je ne suis pas fan de Korben pour ses articles techniques et là encore ça se révèle incomplet. L’exercice qui vise à protéger un site perso est très complexe en soi. Le résumer à quelques lignes même pour se &lt;em&gt;protéger des attaques les plus courantes&lt;/em&gt;. La configuration proposée par Korben (repris d’un tutoriel de &lt;a href=&quot;http://www.howtoforge.com/nginx-how-to-block-exploits-sql-injections-file-injections-spam-user-agents-etc&quot;&gt;Howtoforge.com&lt;/a&gt;) est bien trop simpliste et réductrice. Par contre, proposer l’intégration d’un mod-security (&lt;strong&gt;bien configuré !&lt;/strong&gt;) sur un Apache ou dans le cas présent, d’un &lt;a href=&quot;http://code.google.com/p/naxsi/&quot;&gt;naxsi&lt;/a&gt; sur un nginx est bien plus intéressant et bien plus viable à terme. Contrairement à mod-security, naxsi fonctionne sur une liste blanche du “bon comportement du site” qu’on va lui faire apprendre au cours d’une session rapide. Donc oui, pendant les premières minutes/heures (selon l’affluence du site ou ce que l’on veut faire), le site n’est pas encore réellement protéger. Mais il ne l’était pas en amont. Au final, la protection est bien plus complète et plus fine, en autant de temps et avec moins de ligne de configuration.&lt;/p&gt;

&lt;h2 id=&quot;il-est-en-vie--en-vie-&quot;&gt;Il est en vie ! En vie !&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/wall-e-irl-mike-senna-150x150.jpg&quot; alt=&quot;Wall-E&quot; class=&quot;left&quot; /&gt; Petite news du web rapportée par Golem13 : un &lt;a href=&quot;http://golem13.fr/wall-e-irl-mike-senna/&quot;&gt;Wall-E&lt;/a&gt; construit par un lambda. Bon, le créateur n’est pas entièrement un anonyme puisqu’il avait déjà reproduit de la même manière un &lt;a href=&quot;http://sennasr2d2.blogspot.fr/&quot;&gt;R2-D2&lt;/a&gt; en 2003.
Travail magnifique au demeurant, qui me rappelle avec la larme à l’oeil l’oeuvre de Pixar. Seul point sombre selon moi ? Le robot n’est pas entièrement autonome.&lt;/p&gt;

&lt;h2 id=&quot;une-part-de-serpent&quot;&gt;Une part de serpent&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/450x305xsnakecake.jpg.pagespeed.ic_.TiMoGNyDZO-150x150.jpg&quot; alt=&quot;Serpent ou pas serpent ?&amp;quot;&quot; class=&quot;left&quot; /&gt; Pour ceux qui se prépare à goûter, c’est &lt;a href=&quot;http://www.gizmodo.fr/2012/08/08/croirez-jamais-pas-vrai-serpent.html&quot;&gt;Gizmodo France&lt;/a&gt; qui nous propose de découvrir un python sous un angle différent.
Alors on le regarde sous tous les angles, on comprend que c’est une réplique puis … on s’interroge. Personnellement, ca m’ouvre l’appétit pour changer. A vos fourchettes !&lt;/p&gt;

&lt;h2 id=&quot;il-était-une-fois-zelda-au-far-west&quot;&gt;Il était une fois Zelda au far-west&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/b8f64593-150x150.jpg&quot; alt=&quot;Link dans Zelda&quot; class=&quot;left&quot; /&gt; Je ne vous présente par Zelda, un des emblèmes du jeu vidéo &lt;em&gt;made in&lt;/em&gt; Nintendo. &lt;a href=&quot;http://www.journalgraphic.com/2012/08/03/legende-zelda-western/&quot;&gt;Le Journal Graphic&lt;/a&gt; nous présente un web-serie mélangeant l’univers de Zelda aux westerns spaghettis.
C’est disponible depuis le 7 août, ca divertit et le mélange n’est pas totalement rebutant.&lt;/p&gt;

&lt;h2 id=&quot;un-verre-de-wd-40-patron-&quot;&gt;Un verre de WD-40, patron !&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/wd-40-200ml-150x150.jpg&quot; alt=&quot;WD-40&quot; class=&quot;left&quot; /&gt; Les mécaniciens en herbe connaissent bien le WD-40. Mais pas sûr qu’ils le connaissent comme nous le présente &lt;a href=&quot;http://gizmodo.com/5932262/10-surprising-uses-for-wd+40-and-5-places-it-should-never-be-sprayed&quot;&gt;Gizmodo US&lt;/a&gt;.
Les 10 usages proposés par le site ne sont pas une excuse pour faire n’importe quoi. Il nous est donc rappelé/apporté quelques règles non négligeables.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>5 ans de réflexion : avec ou sans gâteau</title>
      <link href="https://francois.aichelbaum.com/2012/08/08/5-ans-de-reflexion-avec-ou-sans-gateau" />
      <updated>2012-08-08T11:39:42+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/08/5-ans-de-reflexion-avec-ou-sans-gateau</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/5-ans-de-reflexion-2012-16697-963360868-150x150.jpg&quot; alt=&quot;Jason Segel&quot; /&gt;{.left} Le mariage, que de réflexion à avoir et de questions à se poser. Savoir si le partenaire est le bon. Choisir la date. Choisir le mariage religieux ou non. Si oui, de quelle(s) confession(s) la cérémonie doit être. Décider d’un cadre pour la cérémonie. Tester les restaurants. Se mettre d’accord sur la liste des invités. Résoudre les soucis de son couple avant … ou pas. Bref, Que de réflexion à avoir !&lt;/p&gt;

&lt;h2 id=&quot;5-minutes-de-réflexion-pour-se-dire-si-on-aime&quot;&gt;5 minutes de réflexion pour se dire si on aime&lt;/h2&gt;

&lt;p&gt;Hier j’ai donc choisi après une très rapide réflexion d’aller voir le film “5 ans de réflexion”, comédie avec &lt;a href=&quot;http://www.imdb.com/name/nm0781981/&quot;&gt;Jason Segel&lt;/a&gt; et &lt;a href=&quot;http://www.imdb.com/name/nm1289434/&quot;&gt;Emily Blunt&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Le film se présente donc comme une petite comédie romantique avec Jason Segel au scénario, pour un film sans prétention qui demande à se goûter. Donc gâteau de mariage ou donut de fast-food ? Simplement un donut de mariage.
Tom et Violet ont la vie qui leur réussi. Tom est chef dans un restaurant à la mode. L’avenir de Violet se profile dans une université de renom pour des recherches en psychologie sociale. Au delà de leurs CV, ils sont surtout amoureux et tous leurs proches les considèrent comme le couple parfait. Donc tant qu’à faire, autant se marier. Mais vient alors les questions à se poser. Et les déboires de la vie courante qui demande la réorganisation.
Et comme le bazar que va devenir leur vie pendant 5 ans le film est un gros n’importe quoi. Totalement sur joué. Des découpages parfois peu logique. Un couple qui ne fusionne jamais. Et de ce chaos nait une comédie irrésistible qui nous emporte pourtant. A ne pas comprendre. On se balade avec Tom &amp;amp; Violet, et attendont le Happy End évident avec la bave au coin des lèvres.
C’est rapide. Ca ne restera pas dans les mémoires. Mais ça s’apprécie clairement. Un très bon moment de relaxation.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/the-five-year-engagement-the-five-year-engagement-01-08-2012-1-g-220x300.jpg&quot; title=&quot;&quot; srcset=&quot; /assets/the-five-year-engagement-the-five-year-engagement-01-08-2012-1-g-220x300.jpg 220w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Ah les Parigots : carte de Paris</title>
      <link href="https://francois.aichelbaum.com/2012/08/08/ah-les-parigots-carte-de-paris" />
      <updated>2012-08-08T10:54:23+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/08/ah-les-parigots-carte-de-paris</id>
      <content type="html">&lt;p&gt;Je viens de recevoir ça par email, je suis plié et donc je partage … Cela vous occupera en attendant la revue de “5 ans de réflexion” qui arrive dans la journée.
Pour ceux qui n’ont pas été voir &lt;a href=&quot;/how-to-become-parisian-in-one-hour/&quot;&gt;Olivier Giraud&lt;/a&gt;, ca peut vous motiver à y aller.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/paris.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/paris.jpg 480w, /assets/paris.jpg 500w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>News du jour sur internet</title>
      <link href="https://francois.aichelbaum.com/2012/08/02/news-du-jour-sur-internet" />
      <updated>2012-08-02T12:04:52+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/08/02/news-du-jour-sur-internet</id>
      <content type="html">&lt;h2 id=&quot;ca-se-passe-sur-internet&quot;&gt;Ca se passe sur internet&lt;/h2&gt;

&lt;p&gt;Rien à critiquer ou à tester aujourd’hui. Pas d’argumentaire. Ca sent vraiment les vacances. Alors du coup, je vais faire un billet que je mettrais peut être à jour courant de la journée avec les conneries plus ou moins sérieuses que l’on peut trouver sur internet. Allez, commentons un peu l’actualité du jour.&lt;/p&gt;

&lt;h2 id=&quot;les-sales-gosses&quot;&gt;Les sales gosses&lt;/h2&gt;

&lt;p&gt;C’est le Parisien qui publie un article sur son site internet : &lt;a href=&quot;http://www.leparisien.fr/automobile/en-voiture-les-enfants-craquent-apres-30-minutes-02-08-2012-2111048.php&quot;&gt;le comportement des enfants en voiture&lt;/a&gt;. Personnellement, on me parle d’enfants en voiture, je repense à un trio infernal qui joue les sales gosses (Guillaume - Pauline - votre serviteur) avec leur “c’est quand qu’on arrive ?” et autre “pipi!”. Bref. L’article se focalise sur un fait bien connu : les enfants n’ont que peu de patience en voiture. Il faut donc savoir les occuper en les divertissant. Bon rappel. Par contre, la fée DVD est à déconseiller de mon point de vue. Les vacances sont faites pour décrocher du train-train habituel. Les enfants sont déjà trop accrochés à la TV, au PC ou à la console. Laissez la place aux jeux de société pour la voiture ou inventez des jeux !&lt;/p&gt;

&lt;h2 id=&quot;jurassic-park&quot;&gt;Jurassic Park&lt;/h2&gt;

&lt;p&gt;C’est l’histoire d’un milliardaire qui ne va jamais au cinéma. Du coup, il veut &lt;a href=&quot;http://www.gizmodo.fr/2012/08/02/milliardaire-veut-cloner-dinosaures.html&quot;&gt;cloner les dinosaures&lt;/a&gt;. Puis pourquoi s’arrêter en si bon chemin : il faut les mettre dans un parc. C’est le site internet français de Gizmodo qui nous le rapporte. Bref, il n’a pas vu la trilogie et il serait bon que quelqu’un la lui offre. Une leçon à tirer de cette news : aller au cinéma est bon pour apprendre à ne pas faire de bétises.&lt;/p&gt;

&lt;h2 id=&quot;il-est-sain-davoir-un-compte-facebook&quot;&gt;Il est sain d’avoir un compte Facebook&lt;/h2&gt;

&lt;p&gt;Et c’est même mieux. Ainsi se présente l’information rapportée par &lt;a href=&quot;http://techno.ca.msn.com/photos/nouvelles-du-jour-27-au-30-juillet-2012&quot;&gt;MSN Techno&lt;/a&gt;. Ne pas être présent sur les réseaux sociaux peut paraître suspect et détonerait même de trouble psychologique. Comment ça, il faut être parano pour ne vouloir aucune empreinte numérique sur internet ?&lt;/p&gt;

&lt;h2 id=&quot;la-guerre-des-robots-viendra&quot;&gt;La guerre des robots viendra&lt;/h2&gt;

&lt;p&gt;Même si Skynet est à la bourre de quelques années, la guerre des robots viendra. Avant ou après l’invasion zombie n’est pas le soucis. Par contre, savoir y survivre oui. &lt;a href=&quot;http://gizmodo.com/5931152/how-to-survive-a-robot-apocalypse&quot;&gt;Petit cours&lt;/a&gt; sur internet rapporté par Gizmodo US.&lt;/p&gt;

&lt;h2 id=&quot;les-super-héros-aussi-ont-une-vie&quot;&gt;Les super-héros aussi ont une vie&lt;/h2&gt;

&lt;p&gt;Un petit reportage photo est mis en ligne par &lt;a href=&quot;http://golem13.fr/chowkarhoo-supers-heros/&quot;&gt;Golem13&lt;/a&gt; sur la vie cachée des super-héros. Après tout, sont humains. Quoique …&lt;/p&gt;

&lt;h2 id=&quot;supprimer-des-axes-rapides-réduit-la-pollution-&quot;&gt;Supprimer des axes rapides réduit la pollution …&lt;/h2&gt;

&lt;p&gt;… dixit la Mairie de Paris. C’est la logique présentée pour justifier &lt;a href=&quot;http://www.leparisien.fr/transports/fermeture-des-voies-sur-berge-la-revolution-qui-attend-paris-02-08-2012-2110985.php&quot;&gt;la fermeture des quais&lt;/a&gt; rapporté par le Parisien. C’est sûr que rajouter des voitures à des axes déjà saturés, ca ne polluera pas plus. Comme le fait que les parisiens et banlieusards se reporteront sur des transports saturés. Que d’air dans le métro ou le RER. Que de plaisir à rester bloquer en bus à des carrefours saturés par les flots de voitures. Quel bonheur d’attendre dans les tunnels que les secours ramassent le hachis déposé sur les rails par un malheureux à qui son employeur vient d’annoncer qu’il était viré car il ne pouvait utiliser sa voiture et que les transports parisiens ne marchent pas. Et non le Vélib’ n’est pas une solution : vous ne savez pas faire du vélo et les chauffeurs (voiture, bus, camion) vous ignorent. Ah, le bon air pollué de Paris. Bientôt en plus forte dose.&lt;/p&gt;

&lt;h2 id=&quot;nettoyons-la-planète&quot;&gt;Nettoyons la planète&lt;/h2&gt;

&lt;p&gt;C’est une news d’Univers Freebox concernant la participation de &lt;a href=&quot;http://www.universfreebox.com/article17972.html&quot;&gt;Free au World Clean Up 2012&lt;/a&gt;. J’en avais déjà parler il y a peu sur les réseaux sociaux car l’affiche rapporte un autre participant de poids : la Fondation PSA (du groupe PSA). D’ailleurs, PSA a déjà commencé le nettoyage, mais par Aulnay.&lt;/p&gt;

&lt;h2 id=&quot;météo-et-politique-font-bon-ménage&quot;&gt;Météo et politique font bon ménage&lt;/h2&gt;

&lt;p&gt;Vous vous souvenez peut-être de mon billet sur le &lt;a href=&quot;/le-jour-dapres-hier/&quot;&gt;climat&lt;/a&gt;. Aujourd’hui c’est le site &lt;a href=&quot;http://www.slate.fr/story/60133/pluie-gauche-droite-meteo-hollande&quot;&gt;Slate&lt;/a&gt; qui se prête au jeu et marie la météo avec la politique. Le résultat est convaincant de comique.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Aux bons Amis : un couscous excellent et très bon marché</title>
      <link href="https://francois.aichelbaum.com/2012/07/30/aux-bons-amis-un-couscous-excellent-et-tres-bon-marche" />
      <updated>2012-07-30T19:27:45+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/30/aux-bons-amis-un-couscous-excellent-et-tres-bon-marche</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;Le couscous est un de ces plats facile à trouver, surtout dans les quartiers populaires de Pariset qui réunit les critères suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;appétissant&lt;/li&gt;
&lt;li&gt;bon marché&lt;/li&gt;
&lt;li&gt;nourrissant&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Petite revue rapide du Grenier mais surtout du restaurant &lt;em&gt;Aux Bons Amis&lt;/em&gt;.&lt;!--more--&gt;&lt;/div&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Il y a peu j&apos;avais pu découvrir &lt;em&gt;Le Grenier&lt;/em&gt; (&lt;a href=&quot;https://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=Le+Grenier,+Rue+Oberkampf,+Paris&amp;amp;aq=0&amp;amp;oq=LE+grenier,+rue+O&amp;amp;ie=UTF8&amp;amp;hq=Le+Grenier,+Rue+Oberkampf,+Paris&amp;amp;ll=48.867397,2.381544&amp;amp;spn=0.015922,0.038581&amp;amp;t=m&amp;amp;z=15&amp;amp;vpsrc=0&amp;amp;iwloc=A&amp;amp;cid=7090860540041199524&quot;&gt;rue Oberkampf à Paris&lt;/a&gt;). N&apos;y allez pas n&apos;importe quel jour, le bar ne sert le couscous que le vendredi et samedi soirs. La particularité ? Le couscous y est gratuit avec pour seule obligation de consommer. Les boissons étant aux prix classiques de Paris, le tarif est largement honnête. Donc couscous à volonté. Seulement des merguez pour viande. Semoule fine. Légumes bons mais sans plus. Vu le prix, rien à redire en fait et à noter pour tous les radins.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Par contre, hier j&apos;ai pu tester une autre catégorie : aux Bons Amis, dans le quartier de &lt;a href=&quot;https://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=Aux+bons+Amis,+paris&amp;amp;aq=&amp;amp;sll=46.22475,2.0517&amp;amp;sspn=17.151693,39.506836&amp;amp;vpsrc=0&amp;amp;ie=UTF8&amp;amp;hq=Aux+bons+Amis,&amp;amp;hnear=Paris,+%C3%8Ele-de-France&amp;amp;ll=48.877361,2.37545&amp;amp;spn=0.063674,0.154324&amp;amp;t=m&amp;amp;z=13&amp;amp;iwloc=A&amp;amp;cid=11710307045630742394&quot;&gt;Belleville&lt;/a&gt;, toujours à Paris. Cadre sympathique avec les poutres apparentes dans la première salle, patron timide mais sympa, à l&apos;ambiance de cantine lors du plein et reposant en cette période de ramadan. La spécialité de la maison ? Le couscous évidemment, les viandes grillées accessoirement.&lt;/p&gt;
&lt;h4 style=&quot;text-align: justify;&quot;&gt;On s&apos;est focalisé sur le plat pour faire simple. Pour deux, note à la sortie : 30€. A priori, tarif moyen, mais décomposons : 9€ par tête pour le couscous &quot;Maison&quot; (entre 6,5 et 11€ selon la recette choisie) et 12€ pour une bouteille de vin gris du Maroc.&lt;/h4&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le couscous &quot;Maison&quot; se présente en trois plats conviviaux : les viandes (mergez, keftas, brochettes d&apos;agneaux), les légumes et la semoule fine. Rien n&apos;est raté : la semoule est fine sans grumeaux, les légumes assaisonnés et cuits parfaitement, la viande est grillée comme il se doit. Les merguez sont parmi les meilleures que j&apos;ai pu manger, tout comme le kefta à l&apos;assaisonnement excellent. Les brochettes d&apos;agneaux offrent de beaux morceaux en taille et qualité. Une verrine d&apos;harissa maison est proposée pour relevé le tout. Pour le prix, une qualité parfaite. A tester les autres recettes ou grillades. Côté vin, rien de tel qu&apos;un vin gris pour l&apos;accompagnement : léger, sucré mais pas trop, il réhausse le goût global.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Pour faire simple : un couscous excellent et très bon marché. A refaire.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/07/DSCN0345.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-3658&quot; title=&quot;Le couscous aux bons amis&quot; src=&quot;/assets/DSCN0345-150x150.jpg&quot; alt=&quot;Le couscous aux bons amis&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/07/DSCN03441.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-3655&quot; title=&quot;Le critique gastronomique&quot; src=&quot;/assets/DSCN03441-150x150.jpg&quot; alt=&quot;Le critique gastronomique&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/07/DSCN0030.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-3652&quot; title=&quot;Aux bons Amis&quot; src=&quot;/assets/DSCN0030-150x150.jpg&quot; alt=&quot;Aux bons Amis&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The Dark Knight rises : ou comment Batman chute</title>
      <link href="https://francois.aichelbaum.com/2012/07/30/the-dark-knight-rises-ou-comment-batman-chute" />
      <updated>2012-07-30T12:00:54+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/30/the-dark-knight-rises-ou-comment-batman-chute</id>
      <content type="html">&lt;p&gt;Mercredi dernier, Batman nous a livré le dernier chapitre de sa trilogie. &lt;a href=&quot;https://www.youtube.com/watch?v=vak9ZLfhGnQ&quot;&gt;Batman Begins&lt;/a&gt; avait marqué par son côté sombre et violent. &lt;a href=&quot;https://www.youtube.com/watch?v=yQ5U8suTUw0&quot;&gt;The Dark Knight&lt;/a&gt; nous avait offert une nouvelle référence pour le &lt;a href=&quot;https://www.youtube.com/watch?v=QehZjjwb7-I&quot;&gt;Joker&lt;/a&gt; (&lt;a href=&quot;http://www.imdb.com/name/nm0005132/&quot;&gt;Heath Ledger&lt;/a&gt;). The Dark Knight Rises nous offre juste une film à potentiel non converti. Trop long. Trop de (petits) ratés. Une Catwoman perfectible. Un Bane en demi teinte. Une Marion Cotillard qui devrait avoir honte. Une ouverture lors du final qui aurait pu ne pas être faite. Décryptage d’un loupé qui, cependant, divertit.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;h2 id=&quot;batman--une-trilogie-à-ne-pas-louper&quot;&gt;Batman : une trilogie à ne pas louper&lt;/h2&gt;

&lt;p&gt;On se souvient tous des films des années 90. Deux films gothiques du maître Tim Burton (&lt;a href=&quot;https://www.youtube.com/watch?v=VRqa47-jv0M&quot;&gt;1&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.youtube.com/watch?v=mnEEU3rcnw4&quot;&gt;2&lt;/a&gt;) qui mélangeait son univers à celui du héros masqué sans problème. Deux films de Joel Schumacher (&lt;a href=&quot;https://www.youtube.com/watch?v=iXsS1gLn8Gk&quot;&gt;3&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.youtube.com/watch?v=VK7wRdzg0MM&quot;&gt;4&lt;/a&gt;) qu’on espère oublier avec leurs délires psychotiques. &lt;a href=&quot;http://www.imdb.com/name/nm0634240/&quot;&gt;Christopher Nolan&lt;/a&gt; avait entamé sa version du chevalier sombre de manière magistrale et allant crescendo. Il nous avait annoncé une fin en apothéose et ne devait surtout pas se louper, tellement le rouleau compresseur médiatique nous en a fait bouffer pendant des semaines avant la sortie.
Avec &lt;a href=&quot;https://www.youtube.com/watch?v=vak9ZLfhGnQ&quot;&gt;Batman Begins&lt;/a&gt;, &lt;a href=&quot;http://www.imdb.com/name/nm0634240/&quot;&gt;Nolan&lt;/a&gt; et &lt;a href=&quot;http://www.imdb.com/name/nm0000288/&quot;&gt;Bale&lt;/a&gt; nous faisaient rentrer dans un univers sombre et torturé du chevalier. On lui découvrait des origines complémentaires absentes des versions précédentes (dont &lt;a href=&quot;http://fr.wikipedia.org/wiki/Ra&apos;s_al_Ghul&quot;&gt;Ra’s Al Ghul&lt;/a&gt;). Grosse surprise en sortie de salle qui a mis l’eau à la bouche de tous les fans en désespoir depuis les dernières adaptations. Malheureusement, l’&lt;a href=&quot;http://fr.wikipedia.org/wiki/%C3%89pouvantail_(DC_Comics)&quot;&gt;épouventail&lt;/a&gt; y avait été assez transparent.
Dans &lt;a href=&quot;https://www.youtube.com/watch?v=yQ5U8suTUw0&quot;&gt;The Dark Knight&lt;/a&gt;, nous y découvrions le némésis de la chauve-souris : le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Joker_(comics)&quot;&gt;Joker&lt;/a&gt;. Campé par &lt;a href=&quot;http://www.imdb.com/name/nm0000197/&quot;&gt;Jack Nicholson&lt;/a&gt; précédemment, ce dernier avait défini de belles règles pour le rôle. Il était alors très dur d’arriver à sa hauteur. Mais le drogué &lt;a href=&quot;http://www.imdb.com/name/nm0005132/&quot;&gt;Heath Ledger&lt;/a&gt; avait de la ressource à vendre. Il n’a d’ailleurs pas démérité son Oscar posthume tant la performance était magnifique.&lt;/p&gt;

&lt;h2 id=&quot;un-batman-en-déchéance&quot;&gt;Un Batman en déchéance&lt;/h2&gt;

&lt;p&gt;Annoncé avec des personnages importants de l’univers de Batman (à savoir &lt;a href=&quot;http://fr.wikipedia.org/wiki/Catwoman&quot;&gt;Catwoman&lt;/a&gt; et &lt;a href=&quot;http://fr.wikipedia.org/wiki/Bane_(DC_Comics)&quot;&gt;Bane&lt;/a&gt;), ce Dark Knight Rises s’annonçait surpuissant. Et rien que pour eux, les loupés existent. Oui, Bane y est enfin intelligent comme il le devrait (et contrairement à la version de Schumacher), mais reste que le jeu d’acteur, la posture et l’expression orale montrent quelques restes de ce passé atardé. Dans le cas de Catwoman c’est plus compliqué. &lt;a href=&quot;https://www.youtube.com/watch?v=aVQAI4NdZR0&quot;&gt;Michelle Pfeiffer&lt;/a&gt; a donné au rôle ses titres de noblesse. &lt;a href=&quot;https://www.youtube.com/watch?v=8P5l36B8qPw&quot;&gt;Halle Berry&lt;/a&gt; a ruiné le personnage. Anne Hathaway résiste, est sexy dans son latex moulant mais reste totalement transparente tout au long du film. Décidément pas Miaou la chatte bien que sortant les griffes. Les clins d’oeil aux personnages précédents sont agréables … Il en manque cependant un pour le Joker qui a fait la renommée du second opus.
Ca c’est pour les personnages. Le film en lui-même enchaîne les ratés. Commençons par la durée : 2h45 en plein été, dans des salles où la climatisation n’est soit pas en état, soit pas suffisante, c’est du suicide ! On se croirait dans le RER, en heure d’affluence avec une panne.
Ensuite, la chronologie des évènements et la gestion du calendrier est digne d’un Harry Potter : on enchaîne les changements de jours (parfois mois) sans rien comprendre. C’est totalement décousu et mal expliqué. Comment perdre le spectateur. C’est sûr qu’en 2h45 de film, Nolan n’avait pas le temps de rendre la chose agréable et propre.
Pour le jeu des acteurs, autant faire une liste nomminative :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Catwoman/Selina Kyle : transparente&lt;/li&gt;
  &lt;li&gt;Alfred : fatigué émotionnellement, touchant, mais trop absent&lt;/li&gt;
  &lt;li&gt;Lucius Fox : les chevilles sont tros grosses et heureusement, il apparaît peu&lt;/li&gt;
  &lt;li&gt;Bane : c’est quoi cette tenue ?!&lt;/li&gt;
  &lt;li&gt;Mlle Tate : Marion Cotillard, vous faites honte au cinéma français et au montant du chèque perçu pour ce rôle ; depuis quand on sur-joue autant dans ce genre de film ?!&lt;/li&gt;
  &lt;li&gt;Batman : fatigué physiquement, limite grabataire ; oui, il doit clairement se relever&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On nous annonçait une trilogie, la fin ouvre sur une double possibilité (attention, ça &lt;em&gt;spoile&lt;/em&gt; donc passez au paragraphe suivant si vous ne voulez pas lire) :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;soit la création du Robin/Nightwing (bien qu’il ne soit pas question de Dick Grayson)&lt;/li&gt;
  &lt;li&gt;soit la création d’un nouveau Batman&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Accessoirement, pour votre information, John Blake existe dans les comics (il apparaît dans le #13 de 1942 et est le Robin de l’époque) : peu connu mais bon à savoir.
Ce qu’il reste donc au final à ce film ? Son gros spectacle, un scénario qui tient la route (pour les grandes lignes) et son côté sombre. Mais bon, comme disait &lt;a href=&quot;http://www.funnyordie.com/videos/fd747e8af8/every-3d-movie-is-the-same?playlist=featured_videos&quot;&gt;Funny or Die&lt;/a&gt; dans un de leurs derniers podcasts vidéos, quand on en a vu un, on les a tous vu. Pas convaincu qu’il vaille le coup d’aller s’étouffer au cinéma pour le voir.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/the_dark_knight_rises___poster_by_damovieman-d31tsnm-691x1024.png&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/the_dark_knight_rises___poster_by_damovieman-d31tsnm-691x1024.png 480w, /assets/the_dark_knight_rises___poster_by_damovieman-d31tsnm-691x1024.png 691w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Holy Motors : pour Oscar, ca tourne !</title>
      <link href="https://francois.aichelbaum.com/2012/07/26/holy-motors-pour-oscar-ca-tourne" />
      <updated>2012-07-26T22:34:38+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/26/holy-motors-pour-oscar-ca-tourne</id>
      <content type="html">&lt;h2 id=&quot;holy-motors--oscar-de-la-jeunesse-&quot;&gt;Holy Motors : Oscar de la Jeunesse ?&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/er8xdf4htd-150x150.jpg&quot; alt=&quot;M. Oscar&quot; /&gt;{.left} Présenté en compétition officielle du festival de Cannes 2012, Holy Motors est primé par un Oscar de la Jeunesse. Et là, je me dis que la jeunesse n’est pas une génération totalement perdue tant le film peut s’interpréter de manières diverses, voire rebuter si l’on ne prend pas le temps. Oscar est le nom de cet être étrange que nous suivons, alors qui’il vogue de vie en vie. Dix vies. Dix actes. Dix leçons. La première scène nous montre un public endormi au cinéma : allons-nous aussi nous endormir devant cet ovni ?&lt;/p&gt;

&lt;h2 id=&quot;une-ode-au-cinéma-et-au-théatre-ou-sujet-danthropologie-&quot;&gt;Une ode au cinéma et au théatre ou sujet d’anthropologie ?&lt;/h2&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Oscar est donc cet homme dont on ne voit jamais le vrai visage qui va prendre la vie d’un autre pendant quelques minutes ou heures. Tour à tour vieux banquier, vieille mendiante russe, monstre dans un cimetière, père de famille… Chaque scène, chaque rendez-vous, est orchestré à la seconde et nous propose un film à part entière. Sans lien, chaque scène est un acte de la pièce jouée par Oscar (&lt;a href=&quot;http://www.imdb.com/name/nm0491777/&quot;&gt;Denis Lavant&lt;/a&gt;) et accompagné par Céline (&lt;a href=&quot;http://www.imdb.com/name/nm0778568/&quot;&gt;Edith Scob&lt;/a&gt;) qui lui sert de chauffeur de limousine et d’assistante. La journée est chargée. Dix actes nous attendent.
On pourra passer de la vie peu passionnante du banquier aux trubliations d’un monstre du cimetière se la jouant Fantome de l’Opera et kidnappant une mannequin, campée par &lt;a href=&quot;http://www.imdb.com/name/nm0578949/&quot;&gt;Eva Mendes&lt;/a&gt;. Et là, l’un des points clés du film : la relation d’Oscar avec les femmes. Toutes veulent le manipuler à leur façon : l’assistance et la planification pour Céline, le calme et l’acceptation pour le mannequin, le mensonge par la petite fille, les souvenirs pour &lt;em&gt;sa collègue&lt;/em&gt; … Toutes prendront l’ascendant sur lui, le menant où elles désirent ou le faisant réfléchir à sa situation, à sa vie (absente).
Puis, comme au théatre, nous avons le droit à notre entracte. Ou simplement, le 6e rendez-vous d’Oscar. Un boeuf d’accordéons dans une église. Rafraîchissant et bien placé. A noter la présence de Bertrand Cantat pour manier l’harmonica. ”3 ! 12 ! Merde !”&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Puis c’est la descente aux enfers pour Oscar dont la fatigue de la journée se fait sentir. Le stress se ressent. On est essoufflé pour lui. Perdu dans ses dossiers comme lui. A ne plus savoir qui il a été, qui il est et qui il va être.
La rencontre de la &lt;a href=&quot;https://www.youtube.com/watch?v=YOcZon_R43g&quot;&gt;Fée Verte&lt;/a&gt;, &lt;a href=&quot;http://www.imdb.com/name/nm0001541/&quot;&gt;Kylie Minogue&lt;/a&gt;, apparaît comme une divine venue. Chantante (“&lt;a href=&quot;https://www.youtube.com/watch?v=S-1651-XCXo&quot;&gt;Who were we&lt;/a&gt;”), elle rappelle à Oscar son passé, leur passé. Ces êtres sans visages, sans vie propre, ces mannequins, nous font visiter les ruines de  &lt;a href=&quot;http://fr.wikipedia.org/wiki/La_Samaritaine&quot;&gt;la Samaritaine&lt;/a&gt;, le sol jonché de mannequins démembrés, en compagnie de ses êtres sans visage est oppressant. Mais le passé doit rester le passé. Le présent se charge de le lui rappeler de manière violente.
Céline dépose alors Oscar à son dernier rendez-vous avant de ramener la limousine au hangar d’Holy Motors. Alors qu’on ne voit jamais le vrai visage d’Oscar, Céline masque enfin le sien en nous quittant. S’engage alors un épilogue entre les âmes de ces vaissaux guidant les gens vers leurs derniers voyages, comme s’amuse à le dire &lt;a href=&quot;http://www.imdb.com/name/nm0136021/&quot;&gt;Leos Carax&lt;/a&gt;.
Ce film est déroutant : ce qui est réel semble irréel et inversement. Les standards sont bousculés. On ne comprend jamais vraiment le but à tout ceci. On se plait à repenser à &lt;a href=&quot;http://www.serieslive.com/serie/code-quantum/153/&quot;&gt;Code Quantum&lt;/a&gt; dans lequel Sam voyageait de vie en vie afin d’aider les autres, accompagné d’Al. Les choses sont ici bien plus rapides, brutales. Al est devenu une femme et Ziggy une limo. Une manière de marqué l’impulsivité et le mouvement, alors que la série prenait son temps.  Mais alors que tout va mal pour lui et que sa vie ne lui plait pas, pourquoi continuer ? Et nous, pourquoi continuer à regarder ce film qui semble décousu ? Comme le dit Oscar, on continue pour le spectacle. Et c’est pour cela qu’on va voir ce film. Profiter de l’esthétisme. Inspirer la méditation. Apprécier la vie. Arriver à sa conclusion, le cerveau bouillonne. La digestion est longue mais bénéfique.
A voir sans conteste.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/holy_motors.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/holy_motors.jpg 480w, /assets/holy_motors.jpg 500w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>La tontine : un penny bien placé</title>
      <link href="https://francois.aichelbaum.com/2012/07/18/la-tontine-un-penny-bien-place" />
      <updated>2012-07-18T12:02:45+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/18/la-tontine-un-penny-bien-place</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/clauses-tontine-150x150.jpg&quot; alt=&quot;La tontine&quot; /&gt;{.left} La tontine : pensez à votre avenir, faites des projets, placez bien vos pennys, qu’ils disaient.
Ca fait quelques jours que je n’ai rien posté. Normal, rien de bien passionant ici bas. Hier, on m’a proposé une réunion Tupperware financier : me faire l’article sur les tontines. Alors qu’est-ce qu’une tontine ? Quels sont mes projets ? Ai-je signé un contrat ? On va voir tout ceci.&lt;/p&gt;

&lt;h2 id=&quot;késako-la-tontine-&quot;&gt;Késako la tontine ?&lt;/h2&gt;

&lt;p&gt;Déjà personnellement, me parler de tontine, de placement ou simplement de mettre des sous de côté, ça me fait tout de suite penser à Mary Poppins.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Ca, c’est fait, comme on dit. Mais késako une tontine, bande d’ignards ? Selon la page &lt;a href=&quot;http://fr.wikipedia.org/wiki/Tontine&quot;&gt;wikipedia&lt;/a&gt;, ça serait : &lt;em&gt;la tontine est un contrat aléatoire correspondant au financement collectif de l’achat d’un actif financier ou d’un bien dont la propriété revient à une partie seulement des souscripteurs&lt;/em&gt;. Voici pour la définition. Pour les curieux, je vous laisse lire le document pour l’histoire et les informations complémentaires. A l’habitude, c’est votre banquier ou un courtier en assurance qui vous contacte pour vous faire souscrire à une assurance vie ou un placement à long terme. Ca se passe en privé. Ici, &lt;a href=&quot;http://www.conservateur.fr/&quot;&gt;le Conservateur&lt;/a&gt; utilise la technique des réunions Tupperware pour faire sa pub et attirer les &lt;del&gt;clients&lt;/del&gt; mutualistes.&lt;/p&gt;

&lt;h2 id=&quot;indigestion--de-chiffres&quot;&gt;Indigestion … de chiffres&lt;/h2&gt;

&lt;p&gt;Après s’être fait mettre à l’aise par l’hôte de maison avec les classiques plateaux charcuteries/fromages/vins, le courtier commence son show. On va nous vendre l’histoire de la mutuelle non régie par un actionnariat et donc indépendante, vieille de près de 170 ans, oeuvrant toujours à l’intérêt de ses mutualistes, et toujours meilleure que la concurrence. Alors, oui, les chiffres annoncent beaucoup de choses, la revue de presse chante leur louange, mais bon il faut que ça interpèle.
Le but premier est de vous faire réaliser que le modèle de retraite partagée auquel on participe en France n’est pas à notre avantage et qu’on sera tous en faillite une fois arrivé à la retraite et qu’il y a aujourd’hui (selon les chiffres) un manque à gagner de 20% entre ce qu’on va toucher et ce dont on va avoir besoin. Enfin 20%, c’est pour les employés. Pour les cadres ou professions libérales, c’est bien pire et monte jusqu’à 45%. Mais la tontine est là pour réhausser le sacro-saint pouvoir d’achat&lt;/p&gt;

&lt;p&gt;Bref, des chiffres alarmistes pour vous dire une chose : faites des projets et mettez de l’argent de côté … dans une tontine par exemple. Alors, pour ma part, d’autres points me choquent : l’idée du projet qui sera respecté et l’argent mis de côté.&lt;/p&gt;

&lt;h2 id=&quot;cétait-mieux-avant&quot;&gt;C’était mieux avant&lt;/h2&gt;

&lt;p&gt;Le Conservateur s’appuie sur son expertise de 170 ans pour nous garantir qu’il sait ce qu’il dit et que le modèle mis en place en 1844 est toujours valable aujourd’hui. Reste que le monde a changé, les moeurs aussi, tout comme les habitudes liées à l’emploi. Et que dire de la capacité des jeunes couples à pouvoir faire des projets ? Oui en 1844 ou encore pour la génération du baby-boom, il était courant de rester fidèle à son employeur toute sa vie, comme le couple était fidèle l’un à l’autre. Mais aujourd’hui, les changements de boulot en cours de route sont réguliers avec une moyenne, en 2010, de 7 ans pour 58% des actifs et 3 ans pour 25%. On est loin du poste à vie de nos parents. Et de manière amusée, les durées de vie des couples sont assez proches, avec un nombre sans cesse croissant des divorces. Alors les projets … Et c’est bien sûr sans prendre en compte une vie qui semble tenir à un fil toujours plus fin.
La partie financière n’est pas en reste avec une succession de crises au XXe siècle et en ce début de XXIe siècle, des marchés financiers qui régissent toujours plus notre vie quotidienne et des conséquences pesant sur les moyens pécuniers des jeunes couples. Avec les frais quotidiens en perpetuelle augmentation et de manière bien plus rapide que l’inflation annoncée par l’insee et des salaires en régression, le niveau de vie de ces couples est loin d’être idyllique et mettre de côté des 200€ mensuels recommandés par le courtier s’avère un calvère financier. Et justement, cela empêche tout projet autre que la retraite et encore plus de se préserver de toute situation d’urgence.&lt;/p&gt;

&lt;h2 id=&quot;round-1--fight-&quot;&gt;Round 1 : fight !&lt;/h2&gt;

&lt;p&gt;Avec ces éléments et bien d’autres dans les manches de mon t-shirt, je titille le courtier qui se rebiffe tel un chihuahua dans le coin d’une pièce : ça montre les crocs, ça grogne pour démontrer que les chiffres ont raison. Tout ça dans le but de contrer les arguments et pouvoir rassurer le reste de l’assistance. Mais bon, il cherche mais n’y arrive point. Il n’est jamais bon de s’exciter pour se justifier et soutenir sa position. Et les chiffres, on leur faire dire ce qu’on veut. Maintenant, dans l’absolu, il a raison : il faut, tant que possible prendre les devants et prévoir notre vieillesse, comme il faut prévoir demain. La tontine permet à moindre coup de se composer un capital honnête. Le dernier exemple était d’ailleurs intéressant.&lt;/p&gt;

&lt;h2 id=&quot;round-2--ko&quot;&gt;Round 2 : K.O.&lt;/h2&gt;

&lt;p&gt;Un couple de jeunes de 25 ans commence à se pencher sur la question. Chacun va mettre mensuellement 100€ répartis en deux tontines par tête (pour des raisons fiscales). La tontine choisie est une tontine avec rente sur 20 ans. Donc arrivés à 45 ans, ils se retrouvent avec leur rente. Cette rente, vu qu’ils n’en ont pas besoin (bah oui, ils bossent encore), il la réinvestissent de nouveaux dans des tontines de 20 ans avec pour objectif un capital. Arrivés à la retraite (oui on espère qu’elle soit toujours à 65 ans), le capital se débloque avec un joli montant de 372.000 € pour 48.000€ investi. C’est magique. C’est le rêve. Sauf que l’évolution de notre civilisation montre qu’à 65 ans on ne sera toujours pas à la retraite. Qu’on vivra toujours plus vieux. Qu’on changera toujours plus de taff. Que mettre de côté 200€ à 25 ans, c’est déjà trop tard. Qu’on devrait mettre 800€ tous les mois à 45 ans pour compenser, chose qui ne se fera pas. Bref, les chiffres du courtier annoncent le miracle qui existerait si l’on vivait encore 30 ans plus tôt, ce qui n’est pas le cas.&lt;/p&gt;

&lt;h2 id=&quot;and-the-winner-is-&quot;&gt;And the winner is …&lt;/h2&gt;

&lt;p&gt;Le concept de reprendre les réunions Tupperware pour présenter des produits financiers fait son affaire puisque l’ambiance est plus détendue, et que l’échange avec le courtier est plus franc et plus intéressant. Une heure de show, c’est chaud. C’est épuisant pour lui, mais un régal pour une personne comme moi. On ne peut que réagir. On essaie alors d’imaginer, de prévoir. Mais la vie est faite de contre projets qui remettent toujours tout en question, de nos jours. Pour autant, rien n’empêche de tenter de sauver nos vieux jours. Pas de signature, mais un intérêt relevé.
Pour clore, juste un phrase qui peut prendre son importance ici : &lt;em&gt;faites que le rêve dévore votre vie, afin que la vie ne dévore pas votre rêve&lt;/em&gt;.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Rock Forever : Rock&amp;#039;n&amp;#039;Roll is all about love, Babe</title>
      <link href="https://francois.aichelbaum.com/2012/07/12/rocknroll-is-all-about-love-babe" />
      <updated>2012-07-12T00:18:25+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/12/rocknroll-is-all-about-love-babe</id>
      <content type="html">&lt;h2 id=&quot;et-dieu-créa-le-rock&quot;&gt;Et Dieu créa le Rock&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/rock-of-ages-150x150.jpg&quot; alt=&quot;Rock Forever (Rock of ages)&quot; /&gt;{.left}&lt;/p&gt;

&lt;p&gt;Vous savez tous ce que Dieu créa pendant les six premiers jours. Le septième, il ne s’est pas reposé : il a créé le Rock’n’Roll !
Combien de courants musicaux en sont nés ? Combien de destins s’y sont liés ? Combien d’enfants ont été conçus sur des banquettes arrières au son de ses rifts de guitare ? Le Rock est Vie. Le Rock est Amour.
Mais pour raconter cette partition de sentiments, Broadway créa la comédie musicale &lt;a href=&quot;https://www.youtube.com/watch?v=iKGvQ-HAezo&quot;&gt;Rock of Ages&lt;/a&gt; (Rock Forever). Hollywood en fit un film.&lt;/p&gt;

&lt;h2 id=&quot;branchez-les-guitares-moi-jaccorde-ma-basse&quot;&gt;Branchez les guitares. Moi j’accorde ma basse.&lt;/h2&gt;

&lt;p&gt;Pourquoi mettre ce billet dans trois catégories ? Tout simplement parce qu’un film se regarde mais le rock s’écoute et se ressent. J’ai choisi ce film avec la peur au ventre. Peur que la bande son ne soit pas à la hauteur avec autant de reprises. Peur de l’interprétation de Tom Cruise qui me désespère de plus en plus à chacune de ses apparitions.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Mais bon, le casting regroupe quand même quelques chanteurs : Julianne Hough et Diego Boneta (deux chanteurs de Country), Mary J. Blige (the Queen of Hip-Hop Soul). Ceci permet un niveau de chant agréable forçant les autres acteurs à travailler. Le playback se ressent un peu trop malheureusement et laisse supposer un gros travail en studio pour corriger les voix. Pour autant, la playlist est généreuse et agréable. Au niveau des acteurs, je remercie qui de droit de n’avoir pas donné une trop grande importance à l’écran à Tom Cruise : son &lt;del&gt;encombrance&lt;/del&gt; importance s’arrête à l’affiche du film.
Nous sommes projetés en 1987, excellente année pour le Rock sur le Sunset Boulevard de Los Angeles. La foule se déchire entre frigides coincés et amoureux &lt;em&gt;of the devil&lt;/em&gt;. Nous y suivons l’arrivée de Sherrie dans la cité des Anges avec ses rêves de gloire musicale. Elle débarque donc de son Tulsa natal (Oklahoma), sans un sous, les yeux rivés sur le Bourbon Room, le bar rock N°1. Sa (mal)chance la mettra sur la route de Drew, son Don Juan, et toute la fine équipe du bar. Stacee Jaxx (alias Tom Cruise), l’idole de ces jeunes, est un mix entre Jim Morrison, Axl Rose, Keith Richards et Iggy Pop. Mais comme toute rock star, Stacee se fait désirer et donc n’apparaît que peu à l’écran. Une chance pour nous qui permet presque de savourer une prestation honorable du scientologue. Personnellement, je l’ai trouvé relativement “plat” (comme à son habitude) jusqu’à un certain regard de sa part lors de sa deuxième venue au Bourbon Bar. J’ai alors retrouvé le Tom des années 80 pendant quelques brèves secondes.&lt;/p&gt;

&lt;h2 id=&quot;rock--rock--rocknroll-&quot;&gt;Rock ! Rock ! Rock’n’Roll !&lt;/h2&gt;

&lt;p&gt;Pour le plaisir, voici donc les chansons qui ont été reprises. Mais dans leurs versions originales. Une playlist YouTube est &lt;a href=&quot;https://www.youtube.com/playlist?list=PLDE02D747D9FBDECD&amp;amp;feature=view_all&quot;&gt;disponible&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=z92bmlcmyq0&quot;&gt;Sister Christian&lt;/a&gt;” / “&lt;a href=&quot;https://www.youtube.com/watch?v=cI-BohBMeLk&quot;&gt;Just Like Paradise&lt;/a&gt;” / “&lt;a href=&quot;https://www.youtube.com/watch?v=nC9P8-B42cA&quot;&gt;Nothin’ but a Good Time&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=nx0guAlTsUg&quot;&gt;Juke Box Hero&lt;/a&gt;” / “&lt;a href=&quot;https://www.youtube.com/watch?v=u0ZicY7Oqmg&quot;&gt;I Love Rock ‘n’ Roll&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=0JRgHol94Xc&quot;&gt;Hit Me with Your Best Shot&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=rm9CyNZfAjQ&quot;&gt;Waiting for a Girl Like You&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=UrIiLvg58SY&quot;&gt;More Than Words&lt;/a&gt;” / “&lt;a href=&quot;https://www.youtube.com/watch?v=3eT464L1YRA&quot;&gt;Heaven (Warrant song)&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=SRvCvsRp5ho&quot;&gt;Wanted Dead or Alive (Bon Jovi song)&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=AYT7y6lFJtw&quot;&gt;I Want to Know What Love Is&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=SRwrg0db_zY&quot;&gt;I Wanna Rock&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=AQ4xwmZ6zi4&quot;&gt;Pour Some Sugar on Me&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=OqeKV2UYq1Q&quot;&gt;Harden My Heart&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=ZInRE-KryGA&quot;&gt;Get Nervous&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=DSlSaGcc0QM&quot;&gt;Here I Go Again&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=aCVx2jrKKXQ&quot;&gt;Can’t Fight This Feeling&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=atxUuldUcfI&quot;&gt;Any Way You Want It&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=-gm3FyeW7FM&quot;&gt;Undercover Love&lt;/a&gt;” (euh … euh … bouuuuuuuuuuuuuh !! Du - faux - Boys Band !!)&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=c56vEgA4fjU&quot;&gt;Every Rose Has Its Thorn&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;http://www.youtube.com/watch?v=nsdj9NRzqC4&quot;&gt;We Built This City&lt;/a&gt;” / “&lt;a href=&quot;https://www.youtube.com/watch?v=4xmckWVPRaI&quot;&gt;We’re Not Gonna Take It (Twisted Sister song)&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=N5wVZwdHmRY&quot;&gt;Don’t Stop Believin’&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=Rbm6GXllBiw&quot;&gt;Paradise City&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=sxdmw4tJJ1Y&quot;&gt;Rock You Like a Hurricane&lt;/a&gt;”&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;D’autres chansons arrosent nos oreilles de leurs notes, directement dans leurs versions d’origine. Une playlist YouTube est &lt;a href=&quot;https://www.youtube.com/playlist?list=PL651143A189F8FB0A&amp;amp;feature=view_all&quot;&gt;disponible&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=jO4Bb1xQHXw&quot;&gt;I Remember You (Skid Row song)&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=4bZmGtaqP68&quot;&gt;Everybody Wants Some!!&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=e1V8GtZjWFQ&quot;&gt;Rock of Ages (song)&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=Vt2Y78VgfNQ&quot;&gt;Bringin’ on the Heartbreak&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=xCChxBSRo1Y&quot;&gt;Talk Dirty to Me&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=3cc39bU4GZ0&quot;&gt;No One Like You&lt;/a&gt;”&lt;/li&gt;
  &lt;li&gt;“&lt;a href=&quot;https://www.youtube.com/watch?v=KW2J_UZ8lQU&quot;&gt;Cum on Feel the Noize&lt;/a&gt;”&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;a-voir--non-juste-à-écouter&quot;&gt;A voir ? Non juste à écouter&lt;/h2&gt;

&lt;p&gt;Au final, malgré un très bon son dans les oreilles, un bon casting et des moyens non négligeables, les rôles sont sur-joués, les émotions non transmises et le spectacle qui se voulait détonnant fait office de pétard mouillé. A voir … en vidéo chez soi si vous voulez la vidéo, sinon autant allez acheter la BO.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/Rock-of-ages.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/Rock-of-ages.jpg 480w, /assets/Rock-of-ages.jpg 509w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Starbuck : tiguidou !</title>
      <link href="https://francois.aichelbaum.com/2012/07/11/starbuck-tiguidou" />
      <updated>2012-07-11T11:37:46+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/11/starbuck-tiguidou</id>
      <content type="html">&lt;h2 id=&quot;viens-che-nous&quot;&gt;Viens che-nous&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/starbuck_movies-150x150.jpg&quot; alt=&quot;Starbuck&quot; /&gt;{.left} Nos cousins québécois, on les connait pour leurs expat’ musiciens. Mais leur joual s’exprime aussi au cinéma, plus rare dans nos contrées si ce n’est avec quelques acteurs. Place à Starbuck.
Cette fois, c’est un film de 2011 qui nous arrive au cinéma. Un sujet mêlant dans leur univers, sous titré pour les passages trop hardus à comprendre. Le titre laisse perplexe au début, mais la bande annonce impose d’aller voir le film.&lt;/p&gt;

&lt;h2 id=&quot;who-the-fuck-is-starbuck-&quot;&gt;Who the fuck is Starbuck ?&lt;/h2&gt;

&lt;p&gt;Comme quatre à cinq milliards d’humains le lendemain, on est tous à se poser cette question : mais, who the fuck is Starbuck ?&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;C’est El Masturbator. C’est l’histoire d’un jeune sans bidoux à la fin des années 80 qui vend sa semence à une banque de sperme plus de 600 fois. Un sperme d’une grande qualité puisqu’utilisé avec succès à 533 reprises. Ce jeune, 22 ans plus tard, la quarantaine approchant, se retrouve père géniteur de 533 enfants dont 142 veulent faire sa connaissance. Sauf qu’à 40 ans, David Wosniak est irresponsable, pire livreur de viandes au monde, incapable d’avoir une relation saine avec sa blonde et qui tente la culture hydroponique pour arrondir ses fins de mois.
Toute une descente d’un homme pour pouvoir mieux en rire. Et du rire, il y en a, malgré les différents sujets abordés : don de sperme, parents génétiques, droit à l’anonymat, homosexualité, handicap lourd, décallage, difficultés d’adaptation …  Une certaine profondeur d’histoire, racontée avec une certaine légèreté : on est au bord des lieux communs des relations familiales. Découvrir tous ces enfants avec toutes ces vies compliquées vont éveiller chez David tout un tas de sentiments qu’il n’espérait sûrement pas. Il va vibrer, espérer, croire. Et nous avec lui. Entre les zoulous des mange-canayes qui le pourchassent, les banques qui se la jouent pawnshop, sa famille qui le prend pour le mouton noir, sa copine en balloune mais qui ne veut plus de lui, rien n’est fait pour qu’il marque.
Sauf justement ses 142 enfants qui l’espèrent et à travers leurs vies croisées vont le motiver à s’enmieuter. Qu’il soit footballeur pro, chanteur dans le métro (&lt;a href=&quot;http://david-giguere.com/nouvelles.php&quot;&gt;David Giguère&lt;/a&gt;), acteur décrié, gamine y’é stone à mort et désabusée, ado goth ou encore son fils lourdement handicapé moteur, ses enfants ont tous une leçon à lui offrir de la même manière que lui peut devenir leur ange-gardien (et non leur super-héros en lycra).&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Et c’est là l’histoire d’une vie que nous offre David. C’est aussi la leçon qu’il nous apprend dans les larmes et les rires. Le film aurait pu basculé vers la banalité, mais s’en sort. Même la fin “conte de fée” où tout le monde il est heureux passe : pas d’autre choix pour appeler à l’ouverture d’esprit du public. A noter qu’on a pensé à vous autres qui ne connaissez pas le joual avec des sous-titres donc Pratique.. Pas de vrais temps-morts. A voir. A revoir. A respirer. A s’impreigner. A cogiter.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/starbuck.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/starbuck.jpg 480w, /assets/starbuck.jpg 520w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Affaire Goldorak : conjugaison du verbe larguer</title>
      <link href="https://francois.aichelbaum.com/2012/07/10/conjugaison-du-verbe-larguer" />
      <updated>2012-07-10T12:42:07+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/10/conjugaison-du-verbe-larguer</id>
      <content type="html">&lt;h1&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/07/12t46czt.jpg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-1840 alignleft&quot; title=&quot;Goldorak&quot; src=&quot;/assets/12t46czt-150x150.jpg&quot; alt=&quot;Goldorak&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;L&apos;affaire du millénaire : l&apos;affaire Goldorak&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Non l&apos;affaire n&apos;est pas une histoire de coeur. Quoique, cela puisse devenir une histoire de coeur pour certains. Après tout, Actarus et son Goldorak ont bercé l&apos;enfance de nombre d&apos;entre nous.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Reste l&apos;un des plus grands mystères de nos vies : mais pourquoi donc Actarus fait-il deux demi-tours au moment de son transfert de la soucoupe vers le géant de fer ? Le débat a duré longtemps, les esprits se sont déchaînés mais la réponse était ailleurs. Ou ici.&lt;br /&gt;
&lt;!--more--&gt;&lt;/p&gt;
&lt;h1&gt;Transfert autolargue&lt;/h1&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Vous vous souvenez probablement tous de Goldorak. Pour les rares ignorants, vous avez loupé quelque chose. Mais rien n&apos;est perdu, il vous suffit de trouver un &quot;un peu plus vieux&quot; que vous pour tout vous dire sur le sujet. En attendant, le mystère a fait grand bruit et ce matin, la pause café m&apos;a imposé un billet sur le sujet : le transfert autolargue.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=gx8KtPZsP6o[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Bon d&apos;avance, je remercie l&apos;auteur d&apos;&lt;a href=&quot;http://www.autolargue.net/&quot;&gt;autolargue.net&lt;/a&gt; pour les informations complémentaires que j&apos;ai pu y glaner et mon frangibus à l&apos;origine de bien des idées de conspirations. Donc oui, mais pourquoi deux demi-tours lors du transfert ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;A l&apos;inverse de son ancètre &lt;a href=&quot;http://en.wikipedia.org/wiki/Mazinger_Z&quot;&gt;Mazinger Z&lt;/a&gt;, le navette de pilotage n&apos;est pas un modèle réduit s&apos;imbriquant dans le robot pour le contrôler. Ici, elle sert de module de vol pour le robot et s&apos;en sépare pour les combats directs. De fait, il fallait permettre à son pilote de se transférer du vaisseau vers le robot. De là est né le transfert autolargue : une fois le pilote transféré, le robot est automatiquement largué.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Mais lors de son tranfert, le siège du pilote tourne sur lui en deux temps pour opérer deux demi-tours. Nombres d&apos;hypothèses ont été avancées et Go Nagai, créateurs des sagas de robots géants &lt;em&gt;Mazinger&lt;/em&gt; et &lt;em&gt;Grendizer&lt;/em&gt;, y a répondu d&apos;une langue de bois inavouable pour éluder la question et garder la réponse toujours aussi secrète. Selon l&apos;annonce officielle, Actarus est bien trop prudent et préfère se retourner.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Or, Actarus ne décide de rien dans l&apos;histoire. En effet, Goldorak est le Golgoth le plus puissant de l&apos;armée de Vega et Actarus n&apos;est qu&apos;un vil voleur ayant soustrait le robot à ses propriétaires. Il n&apos;est donc clairement pas le créateur du robot et n&apos;a donc pas décidé de son fonctionnement ou des rouages du transfert. La réponse officielle du créateur de l&apos;animé n&apos;est donc pas viable. Reste à décortiquer la vidéo du transfert, de se souvenir de nos heures de Mécano et Lego, pour aboutir à de bien meilleures spéculations.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Primo, l&apos;ensemble des commandes (dont celle du transfert) est intégré au siège/nacelle dans lequel est installé le pilote. La seule commande permettant le transfert est une poignée à tirer. Personnellement, je me souviens de mes jouets (&lt;a href=&quot;http://www.youtube.com/watch?v=ODKXsE1ZtKY&quot;&gt;Mask&lt;/a&gt; en tête par exemple) où une gachette (ou un bouton) dévérouillait le mécanisme complet de transformation. On en demande peu au pilote, c&apos;est prédéfini. Simple mécanisme. D&apos;ailleurs l&apos;animation ne montre aucune autre commande à manipuler pendant le transfert (surtout au moment des demi-tours). L&apos;intervention humaine, encore une fois est à réfuter pleinement.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Secundo, la vidéo montre un double point important : le moment des deux demi-tours. L&apos;un se produit une fois le siège arrivé dans le corps du robot, l&apos;autre avant l&apos;entrée du siège dans la tête qui sert de centre de commande. Un élément est absent de la vidéo et impose une supposition : le tunnel de transfert est intégré au vaisseau et au robot. Mais quelle partie du tunnel reste dans le robot après ? Personnellement je dirais que le coude reste avec la soucoupe et, le reste avec le robot. Ce qui aide à la démonstration.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tercio, la partie audio montre des bruits bien différents lors des rotations, ce qui suppose des mécanismes différents mis en place. Cela vient appuyer une thèse que la rotation est liée à la mécanique du transfert.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Tout m&apos;oriente vers ce qu&apos;on peut voir sur les plateaux rotatifs pour chemin de fer ou encore les puzzles glissants.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/07/ROCO-42615.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-1843&quot; title=&quot;Plateau rotatif de voies ferrées&quot; src=&quot;/assets/ROCO-42615-150x150.jpg&quot; alt=&quot;Plateau rotatif de voies ferrées&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/07/image003.jpg&quot;&gt;&lt;img class=&quot;alignnone size-thumbnail wp-image-1846&quot; title=&quot;Puzzle glissant&quot; src=&quot;/assets/image003-150x150.jpg&quot; alt=&quot;Puzzle glissant&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;L&apos;idée est donc que le mécanisme nécessite un déblocage ou un dégoupillage pour passer d&apos;un état à un autre. Dans le cas présent, le siège doit se désolidariser du rail de la soucoupe puis se solidariser au rail du robot pour finir par occuper le centre de commande.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Ainsi, le siège, à la fin de la descente, arrive sur un butoire qui le force à se retourner, un nouveau rail le prenant alors en charge. Arrivé à l&apos;entrée de la tête, le même type de mécanisme se reproduit pour le placer dans le bon sens. CQFD.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;La mécanique est donc simpliste, la conspiration absente et la prudence innocente. La simplicité de la raison serait-elle la cause de la langue de bois de Go Nagai ?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Le premier générique de 78 en prime (mon préféré)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=dOO3LgzXdYg[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Et la version de Noam&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;[video]http://www.youtube.com/watch?v=SvDsjWerRug&amp;amp;feature=related[/video]&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;PS : c&apos;est la faute à Henley.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Météo : le jour d&amp;#039;après hier</title>
      <link href="https://francois.aichelbaum.com/2012/07/09/le-jour-dapres-hier" />
      <updated>2012-07-09T15:51:09+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/09/le-jour-dapres-hier</id>
      <content type="html">&lt;h2 id=&quot;on-est-en-novembre&quot;&gt;On est en novembre&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/soleil-dorage-150x150.jpg&quot; alt=&quot;Soleil d&apos;orage&quot; /&gt;{.left} L’un des principaux sujets de discussion, où que l’on soit ces derniers jours, c’est la météo. Il n’est pas rare d’entendre des “Mais c’est quoi ce temps de novembre ?” ou de lire des articles sur la mauvaise météo comme si le temps se déréglait. Où encore le titre du jour du parisien : “&lt;a href=&quot;http://www.leparisien.fr/societe/l-ete-seulement-dans-le-sud-09-07-2012-2083370.php&quot;&gt;L’été … seulement dans le sud&lt;/a&gt;”. En étant en &lt;a href=&quot;http://www.imdb.com/title/tt1190080/&quot;&gt;2012&lt;/a&gt;, on arrive sûrement à la fin du monde …&lt;/p&gt;

&lt;h2 id=&quot;cest-la-fin-du-monde&quot;&gt;C’est la fin du monde&lt;/h2&gt;

&lt;p&gt;Lorsque je vois la pluie des derniers jours, ca me fait immédiatement penser au &lt;a href=&quot;http://www.imdb.com/title/tt0319262/&quot;&gt;Jour d’après&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Certains y voient des prémisses de fin du monde. D’autres, la fatalité de l’industrialisation du monde. L’&lt;a href=&quot;http://fr.wikipedia.org/wiki/Agent_Smith&quot;&gt;agent Smith&lt;/a&gt; lui, y voit les conséquences de l’existence du parasite humain. Bref, les théories sont nombreuses, toutes valables pour peu que l’on soit ouvert, aucune démontrée, pour autant, tout le monde sort sa science.&lt;/p&gt;

&lt;h2 id=&quot;on-sort-notre-science&quot;&gt;On sort notre science&lt;/h2&gt;

&lt;p&gt;Bon déjà, on vire la théorie des Mayas. Pour faire court, c’est un romancier (Steve Alten) qui a voulu se faire mousser en s’auto proclamant expert et, à coup de promotion nous a vendu sa prophétie.
Ensuite, replaçons aussi nos chers présentateurs TV à leur rang : les présentateurs de la météo ne sont pas des météorologues. Tout est dans leur titre : PRE-SEN-TA-TEUR. Alors, nous ressortir des statistiques comme cela leur chante, au final, on en revient à la manipulation de masse par les médias, tant adorée par les conspirationnistes et qui ici prend toute sa forme. Bref, passons.&lt;/p&gt;

&lt;h2 id=&quot;un-peu-de-concret&quot;&gt;Un peu de concret&lt;/h2&gt;

&lt;p&gt;Notre galaxie bouge dans l’univers. Notre système solaire bouge dans notre galaxie. Notre planète bleue bouge dans notre système solaire. Ce mouvement est à la fois sur une rotation ovoïdale autour du Soleil, mais également une rotation sur un axe en mouvement (rotation et bascule), axe dont l’inclinaison varie. La Lune aussi bouge. Tout bouge. Mais chacun de ces corps a une incidence sur l’autre. Les plus classiques et visibles, sont la météo et les marées par exemple.
Tout ceci pour en venir justement à ce que nous disaient nos chers Mayas (et autres civilisations anciennes, pré-colombiennes en tête) : tout est cycle dans le monde vivant. Ce qui fut dans un sens, sera dans un autre et inversement. L’axe de la Terre a pivoté plus d’une fois. De nombreuses ères glacières se sont succédées. Les saisons s’enchaînent. Lors d’une marée haute d’un côté, la marée est basse ailleurs. Les rivières sous marines tournent.
Ok très bien. Tout évolue. Pour autant si l’on suit les médias, la météo semble se dégrader de manière continue et irrémédiable, et les saisons ne plus être ce qu’elles devraient. Oui, mais. Oui tout ceci est un fait, mais parce que nous n’avons aucun recul du fait d’être “la tête dans le trou”, nous ne voyons réellement le pourquoi du comment. Oui il est sûr que l’industrialisation humaine a joué sur la vitesse de réchauffement du climat. Comme le dégazage sauvage de la part des dinosaures pourrait avoir causé &lt;a href=&quot;http://www.sciencesetavenir.fr/archeo-paleo/20120509.OBS5196/les-dinosaures-des-usines-a-methane.html&quot;&gt;leur perte&lt;/a&gt;. Mais justement, parce que tout est cycle, le changement est lent et progressif. Après tout, on parle de millions d’années pour les périodes de vies des sauriens contre quelques millénaires pour l’humanité. Que de relativité. Alors que dire de la météo actuelle à notre échelle. Une simple averse dans la longue vie de la Terre.
Alors que se passe-t-il ? une accumulation de choses, plus ou moins naturelles, plus ou moins aidées par l’Homme. Voici une petite liste non exhaustive, crédibles ou non.&lt;/p&gt;

&lt;h3 id=&quot;les-rivières-sous-marines&quot;&gt;Les rivières sous-marines&lt;/h3&gt;

&lt;p&gt;Une idée avancée par Wallace Broecker consiste en l’étude de lents courants sous marins chauds s’étendant à travers les divers océans, et ayant des cycles de 1500 ans.
Ces courants influeraient sur la météorolgie globale du fait des écarts de température entre les eaux, de leur mouvement global (à distination des pôles) … Le géochimiste explique d’ailleurs dans sa thèse que le courant aurait ralenti de près du tiers de sa vitesse en un siècle, ce qui pourrait avoir de grave répercussion sur la météo (entre autres choses).&lt;/p&gt;

&lt;p&gt;### L’industrialisation&lt;/p&gt;

&lt;p&gt;Que cela soit l’industrialisation au sens premier depuis le XIXe siècle ou encore les théories bio-écologiques concernant la production de la viande. Que cela soit les modes d’agricultures, ou encore la génération de méthane par les bovins. Il faut dire ce qui est : les proportions des gaz constituant l’air terrestre ont drastiquement changé en deux siècles et impliquent des changements important au niveau de l’éco système. Ce point est indéniable mais n’explique pas tout à lui seul.&lt;/p&gt;

&lt;h3 id=&quot;le-cycle-de-la-météo&quot;&gt;Le cycle de la météo&lt;/h3&gt;
&lt;p&gt;Je disais donc que tout était cycle. Au niveau météo aussi. Certes il nous manque des données scientifiques pour de grandes périodes, mais certaines données sont suffisantes pour extrapoler une hypothèse valable. Arnaud Lemaistre le rapportait dans un document intitulé “&lt;a href=&quot;https://docs.google.com/viewer?a=v&amp;amp;q=cache:lqXGG2RCU10J:www.palais-decouverte.fr/fileadmin/fichiers/infos_sciences/terre_univers/textes/286_Lemaistre.pdf+&amp;amp;hl=fr&amp;amp;gl=fr&amp;amp;pid=bl&amp;amp;srcid=ADGEESjMKW9896keXhpSow2o7Dy1inrM1HvuFt5LrkjuJS3yengENMUAA6ZYztLrrTxsoL4o-qwT32iDqwHBBmxIsXrP4e4oUw0DR6B73SVZHaa6PPN-alCXEfXS6MFW2lyszrdZCpsK&amp;amp;sig=AHIEtbR5N_WM3492FzRzLVJvKFKEqJeOPA&amp;amp;pli=1&quot;&gt;Chronologie climatique du dernier millénaire en Europe&lt;/a&gt;”. Ainsi, généralement, la température était bien plus basse avec un temps plus sec. D’ailleurs les hivers étaient plus marqués avec des températures négatives sur toute la période. Mais il y a eu une petite exception d’une trentaine d’année entre 1710 et 1740 où les températures sur l’année étaient équivalentes à celles d’aujourd’hui avant un brusque refroidissement. Notre situation n’est donc pas exceptionnelle, et l’époque citée permet d’innocenter temporairement la présumé-coupable industrialisation. De plus, l’augmentation sur le siècle concerné était de +1,9° contre “seulement” 0.6° pour le siècle dernier. Intéressant.
Dans le même ordre d’idées, certains ouvrages concernant l’époque moyennageuse rapportent des hivers en été et des étés en hiver. Difficile d’avoir des données concrètes cependant. La période de glaciation se produisit principalement avant le Xe siècle, les trois siècles suivant offrant une période chaude, propices aux voyages de nos cousins Vikings, par ex.
Enfin les périodes glacières s’étalent sur des périodes de 100.000 ans avec des périodes chaudes dites inter-glacières de 10.000 à 20.000 ans.&lt;/p&gt;

&lt;p&gt;### Autres causes&lt;/p&gt;

&lt;p&gt;Rapidement, une liste non exhaustive d’autres causes qu’on peut lire à gauche à droite :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;le changement d’axe de rotation de la Terre&lt;/li&gt;
  &lt;li&gt;les nazis planqués sur la &lt;a href=&quot;http://www.ironsky.net/+&quot;&gt;face cachée de la Lune&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;les ondes radios (téléphones, wifi, radios, TV, …) qui perturbent le champs magnétique terrestre&lt;/li&gt;
  &lt;li&gt;l’autre (c’est toujours la faute de l’autre)&lt;/li&gt;
  &lt;li&gt;le serpent qui se mort la queue : il fait de plus en plus chaud, donc fonte des calottes polaires donc réchauffement&lt;/li&gt;
  &lt;li&gt;la crise socio-économique (rah les banques et les traders !)&lt;/li&gt;
  &lt;li&gt;pratiques agricoles pour nourrir la population globale (enfin surtout le “Nord”)&lt;/li&gt;
  &lt;li&gt;les chinois islamistes du FBI&lt;/li&gt;
  &lt;li&gt;les cycles de l’activité solaire&lt;/li&gt;
  &lt;li&gt;42&lt;/li&gt;
  &lt;li&gt;la famille et les potes de Roswell&lt;/li&gt;
  &lt;li&gt;les changements géologiques (naturels ou humains) : désertification, déforestation, …&lt;/li&gt;
  &lt;li&gt;Obi-Wan Kenobi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je vous laisse faire le tri selon vos croyances ou compétences.&lt;/p&gt;

&lt;h2 id=&quot;quoi-quon-fait-&quot;&gt;Quoi qu’on fait ?&lt;/h2&gt;

&lt;p&gt;Tout et rien. Oui, il faut intervenir sur l’industrialisation qui peut se révéler plus que néfaste, mais elle ne peut supporter l’entière responsabilité des changements qui se produisent. On ne peut que constater un cumul entre les actions de la nature, les cycles et bien sûr l’intervention humaine ayant pour conséquence le changement, sa vitesse et son ampleur. Est-ce définitif ? La météo du XVIIIe siècle nous montre que non.
Alors profitez simplement de la vie. Profitez du soleil. Profitez de la neige. Profitez de la pluie. Qu’est ce que cela change que l’on soit en juillet ou mars ou que sais-je ? Adaptez-vous et profitez !
Pour finir, petit point qui me fait rire sur les écolos critiquant l’industrialisation : pour modéliser les différentes théories, les chercheurs utilisent les ordinateurs privés à la façon des projets Seti ou des projets sur le cancer … Seulement 150.000 ordinateurs qu’ils disent. Question, on les alimente avec quoi ? (question valable pour le rechargement des voitures électriques).&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The Amazing Spider-Man : j&amp;#039;ai une araignée au plafond</title>
      <link href="https://francois.aichelbaum.com/2012/07/05/jai-une-araignee-au-plafond" />
      <updated>2012-07-05T23:37:59+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/05/jai-une-araignee-au-plafond</id>
      <content type="html">&lt;h2 id=&quot;un-redémarrage-nécessité-&quot;&gt;Un redémarrage nécessité ?&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/assets/spider-man-revele-identite-grd-150x150.jpg&quot; alt=&quot;Spider-Man révèle son identité&quot; /&gt;{.left} Alors qu’une première trilogie s’était affichée sur nos écrans entre 2002 et 2007 avec un &lt;a href=&quot;http://www.imdb.com/name/nm0001497/&quot;&gt;Tobey Maguire&lt;/a&gt; en guise de Peter Parker/Spiderman peu convaincant dans le costume, Sony Pictures remet le couvert avec un redémarrage complet de la license. Cette fois-ci, c’est &lt;a href=&quot;http://www.imdb.com/name/nm1940449/&quot;&gt;Andrew Garfield&lt;/a&gt; qui revêt la tenue rouge et bleue de l’homme araignée. Personnellement, vu les derniers comics, je pensais que Sony aurait suivi l’orientation de Marvel avec un &lt;a href=&quot;http://hoodedutilitarian.com/wp-content/uploads/2012/06/1.jpg&quot;&gt;Peter Parker afro-américain&lt;/a&gt;. Mais il faut croire que l’ouverture n’aurait pas aidé aux entrées en salles.   Sam Raimi avait accompli un superbe travail sur la précédente saga étalée sur la dernière décennie. Pas sûr qu’un redémarrage soit si nécessaire. Pour autant, quelques corrections étaient à apporter et la nouvelle saga en approche se propose de les corriger.&lt;/p&gt;

&lt;h2 id=&quot;du-gros-spectacle&quot;&gt;Du gros spectacle&lt;/h2&gt;

&lt;p&gt;Des erreurs corrigées, il y en a … Pourquoi Peter repliait seulement deux de ses doigts pour tisser sa toile ? Simplement pour déclencher un appareil de sa création qui la tisse ; non, ce n’est pas lui qui la “produit”. Mary-Jane ? Non ils ne se sont pas connus au lycée ; c’est Tante May qui voulait à tout pris le caser bien plus tard, son pauvre chéri au coeur brisé. Où accroche-t-il sa toile pour voler ? Simplement aux grues qu’on lui sert sur un plateau ; non ca ne tient pas dans le vide. Attention, on nous annonce non plus Spider-man mais The Amazing Spider-man et il va être époustouflant.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Cependant, ici aussi, quelques erreurs sont faites : cartographie de NYC, rencontre avec Curt Connors/The Lizard, absence d’Harry Osborn, … et surtout absence de LA phrase résumant la conscience de notre amical arachnide : “A grand pouvoir, grande responsabilité”. On a bien un simulacre de phrase pour nous la rappeler, mais le poids des mots n’y est pas. Dommage.
Dommage aussi la longue introduction, qui semble ramener le film à un teenage-movie lycéen. Mais, place au spectacle.
On commencera par apprécier le casting avec un très vieillissant Martin Sheen en Uncle Ben (non pas &lt;a href=&quot;https://www.youtube.com/watch?v=y_EiyNv2NS0&quot;&gt;Uncle Ben’s&lt;/a&gt;, ni &lt;a href=&quot;https://www.youtube.com/watch?v=C4XKNNl31Gc&quot;&gt;Ben l’Oncle Soul&lt;/a&gt;) - cela reste toujours un succès ; un charismatique &lt;a href=&quot;http://www.imdb.com/name/nm0406975/&quot;&gt;Rhys Ifans&lt;/a&gt; que l’on a pu voir récemment en James Hook dans &lt;a href=&quot;http://www.imdb.com/title/tt1720619/&quot;&gt;Neverland&lt;/a&gt; (mini série de Sy-Fy relatant la génèse de Peter Pan) ou en tant qu’un des sorciers dans &lt;a href=&quot;http://www.imdb.com/title/tt0926084/&quot;&gt;Harry Potter et les reliques de la Mort&lt;/a&gt; ; une sexy Emma Stone très appréciée dans &lt;a href=&quot;http://www.imdb.com/title/tt0926084/&quot;&gt;Zombieland&lt;/a&gt;.
Heureusement, le film ne se résume pas seulement à son casting ou à son introduction pubère à rallonge. Ses deux heures quinze se chargent de nous en mettre plein les mirettes pour nous faire oublier le travail de Sam Raimi. Et il faut dire que le spectacle est là, se déguste, le pop-corn disparaît bien trop vite et les acrobaties de l’araignée nous comble. Andrew nous fait d’ailleurs vite oublier un Tobey Maguire qui donnait une image niaise à Peter Parker.
La réal tient la route. Graphiquement, on en prend plein la vue. L’histoire est agencée dans une optique de saga à nous distiller longuement les secrets de l’univers. J’avais apprécié la précédente saga : je sens que je vais adoré la nouvelle saga qui s’amorce depuis hier dans les salles obscures.
Allez, pour la route, je vous laisse découvrir un &lt;a href=&quot;https://www.youtube.com/watch?v=tfeoz2QPhVU&quot;&gt;petit plaisir personnel du soir&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/the_amazing_spider-man.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/the_amazing_spider-man.jpg 480w,/assets/resized/800/the_amazing_spider-man.jpg 800w,/assets/resized/1400/the_amazing_spider-man.jpg 1400w, /assets/the_amazing_spider-man.jpg 1920w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Olala, pfff, je suis parisien !</title>
      <link href="https://francois.aichelbaum.com/2012/07/05/how-to-become-parisian-in-one-hour" />
      <updated>2012-07-05T11:29:34+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/05/how-to-become-parisian-in-one-hour</id>
      <content type="html">&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/2012/07/05/olala-pfff-je-suis-parisien/&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-1786&quot; title=&quot;How to become Parisian in one hour&quot; src=&quot;/assets/78304-flyer-htbp-tdn-150x150.jpg&quot; alt=&quot;How to become Parisian in one hour&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Vous vous souvenez certainement de ma revue de &lt;a href=&quot;http://francois.aichelbaum.com/2012/05/03/etre-parisien-cest-etre-un-eternel-incompris/&quot;&gt;How to become parisian in one hour&lt;/a&gt; d&apos;Olivier Giraud ? Après avoir fait salle comble pendant 3 ans au théatre de la Main d&apos;Or, il revient, dans une salle bien plus grand, le théatre des Nouveautés pour au moins un an. Il y fait encore le plein. On y rit encore et toujours pendant toute l&apos;heure. Je crois qu&apos;il faut que j&apos;y retourne encore pour un autre shooting. Petit reportage photo ...&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;PS: Olivier, pour l&apos;exercice final, tu devrais faire monter un étranger pour jouer le parisien et un parisien pour jouer l&apos;étranger.&lt;/p&gt;
&lt;p&gt;[print_gllr id=1660]&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Les moines danseurs de Majuli</title>
      <link href="https://francois.aichelbaum.com/2012/07/03/les-moines-danseurs-de-majuli" />
      <updated>2012-07-03T19:55:36+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/07/03/les-moines-danseurs-de-majuli</id>
      <content type="html">&lt;h1&gt;&lt;strong&gt;Sattriya – danse sacrée (Assam, Inde du nord-est)&lt;/strong&gt;&lt;/h1&gt;
&lt;h2&gt;&lt;strong&gt;Spectacle conçu et dirigé par Bhabananda Barbayan&lt;/strong&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://francois.aichelbaum.com/wp-content/uploads/2012/07/Flyer-Majuli-681x1024.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-1516&quot; title=&quot;Les moines danseurs de Majuli&quot; src=&quot;/assets/Flyer-Majuli-681x1024-150x150.jpg&quot; alt=&quot;Les moines danseurs de Majuli&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;Depuis dix ans, le sattriya fait officiellement partie des huit danses classiques principales de l’Inde. Sattriya vient du mot « sattra » qui désigne les monastères hindouistes de l’Assam (nord-est de l’Inde) fondés au XVème siècle par le maître Srimanta Sankardeva (1449-1568). La danse sattriya fut créée pour accompagner les Ankiya Naat, une forme locale de théâtre dévotionnel consacré aux épisodes de la vie de Krishna et Rama.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Les moines danseurs de Majuli constituent aujourd’hui la meilleure troupe de sattriya de l’Assam. Artiste au charisme exceptionnel, Bhabananda Barbayan figure parmi les danseurs les plus primés dans sa discipline. Héritier d’une transmission ininterrompue depuis cinq siècles dans les monastères, il guide les moines danseurs de Majuli au-delà des frontières des sattras, de l’Assam et de l’Inde. De magnifiques lampas (lés de soie) de l’Assam datés des XVIème/XVIIIème siècles conservés au musée Guimet seront le fil conducteur de ce nouveau spectacle. Les lampas ont été conçus du vivant du fondateur du sattriya et nous en montrent l’exacte origine : la vie de Krishna, les avatars de Vishnu, Narasimha (homme-lion), les aventures de Ram, Sita, Hanuman (singe), Ravana (démon), etc. Souhaitant apporter un souffle nouveau à la tradition tout en préservant le style chorégraphique propre au sattriya, Bhabananda Barbayan a intégré ces soieries dans la scénographie. Il a notamment opéré d’importants changements dans la création des masques et des costumes, inchangés depuis des siècles. Le plaisir de découvrir le sattriya classique dans sa forme la plus pure se mêlera à la magie de voir les personnages des soieries anciennes prendre vie grâce à la danse, la musique, le chant, le jeu d’acteur et les masques.&lt;/p&gt;
&lt;p&gt;Plus d&apos;information sur leur tournée, sur &lt;a href=&quot;http://majulitour.com/&quot;&gt;Majitour&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;[print_gllr id=1513]&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Le texte provient du site du &lt;a title=&quot;Musée Guimet - Les moines danseurs de Majuli&quot; href=&quot;http://www.guimet.fr/fr/auditorium/spectacles/les-moines-danseurs-de-majuli&quot; target=&quot;_blank&quot;&gt;musée Guimet&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Okay café : crêpe à l&amp;#039;eau</title>
      <link href="https://francois.aichelbaum.com/2012/06/29/crepe-a-leau" />
      <updated>2012-06-29T18:43:35+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/29/crepe-a-leau</id>
      <content type="html">&lt;p&gt;Avec une météo mitigée qui nous rappelle la Bretagne, pourquoi ne pas manger une crêpe, mais les pieds dans l’eau ? C’est ce que nous propose l’&lt;a href=&quot;https://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=okay+caf%C3%A9,+paris&amp;amp;aq=&amp;amp;sll=46.75984,1.738281&amp;amp;sspn=14.426196,33.815918&amp;amp;vpsrc=0&amp;amp;ie=UTF8&amp;amp;hq=okay+caf%C3%A9,+paris&amp;amp;hnear=&amp;amp;radius=15000&amp;amp;t=m&amp;amp;z=13&amp;amp;iwloc=A&amp;amp;cid=2367635947479408110&quot;&gt;Okay Café&lt;/a&gt;, situé sur le canal de l’Ourcq à Paris.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/okay_cafe.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/okay_cafe.jpg 480w, /assets/okay_cafe.jpg 500w&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;ambiance&quot;&gt;Ambiance&lt;/h2&gt;

&lt;p&gt;Le cadre, extérieur comme intérieur, fait plaisir : le restaurant et sa terrasse sont posés sur les quais du canal avec une déco simple mais plaisante. On est vraiment les pieds dans l’eau et à part la pollution, on pourrait se croire à la mer (merci les mouettes parisiennes). Petit plus vu le volume disponible, un coin jeu pour les gamins est prévu à l’intérieur. De quoi ravir tout le monde. L’équipe quand à elle est disponible et vraiment agréable, bien que non bretonne : personne n’est parfait !&lt;/p&gt;

&lt;h2 id=&quot;nourriture-et-boisson&quot;&gt;Nourriture et boisson&lt;/h2&gt;
&lt;p&gt;Niveau prix, la carte annonce des tarifs dans la moyenne ce qui est agréable avec des crêpes entre 9 et 13€. Dans cette ligne directrice de la moyenne, le goût et la garniture des crêpes se développent : ni exceptionnel ni mauvais. A croire que le cadre devrait tout faire. Dommage car une garniture plus fournie ou des ingrédients aux goûts plus marqués auraient fait un énorme plus.
Par contre, le cidre fermier se boit très bien, et sa fraîcheur fait du bien avec les chaleurs (rares ?) des derniers jours.
Au final, une crêperie agréable au cadre parfait pour les petits restos d’été à Paris.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>The Dictator : Aladeen a dit : &amp;quot;Aladeen !&amp;quot;</title>
      <link href="https://francois.aichelbaum.com/2012/06/26/aladeen-a-dit-aladeen" />
      <updated>2012-06-26T11:06:32+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/26/aladeen-a-dit-aladeen</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/aladeen-150x150.jpg&quot; alt=&quot;Aladeen&quot; /&gt;{.left} &lt;em&gt;Imaginez que l’Amérique soit une dictature. Vous pourriez laisser 1% des gens posséder toutes les richesses du payer. Vous pourriez laisser vos amis s’enrichir en baissant leurs impôts et combler leurs pertes. Vous pourriez interdire aux pauvres les remboursements de santé et l’éducation. Vos médias seraient entièrement libres mais aux mains d’une seule personne et sa famille. Vous pourriez torturer des prisonniers étrangers. Vous pourriez trafiquer les élections. Vous pourriez mentir sur les raisons d’aller en guerre. Vous pourriez remplir vos prisons avec un groupe particulier de personnes et personne ne s’en plaindrait. Vous pourriez utiliser les médias pour effrayer les gens pour qu’ils supportent une politique qui va à l’encontre de leurs intérêts.&lt;/em&gt;” … Oui, ne faisons qu’imaginer.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Après tout, Kim Jong-Il considère que ce film est de la bombe. Alors pouvons-nous être d’accord avec un dictateur ? Mis à part leur complexe de supériorité, leur délire psychotique, leur démesurée ridicule (je vous laisse comprendre), ce sont des hommes comme les autres … Nous sommes d’accord sur notre désaccord. Ce film est de la bombe. Mais les dictateurs ne sont pas comme vous et moi. Quoi qu’ils sont peut-être comme moi (concernant leur égo) : bah oui, ce n’est pas moi qui vais être comme eux !
Comment résister aux explosions de rire que nous confère le film tout au long de sa petite heure et demie. &lt;a href=&quot;http://www.imdb.com/name/nm0056187/&quot;&gt;Sacha Baron Cohen&lt;/a&gt; enfile le costume du dictateur Aladeen regroupant tous les stéréotypes médiatiques des dictateurs récemment tombés ou morts. Un dictateur inculte, champion de ses propres JO, acteur oscarisé à de multiples reprises à sa propre remise de prix pour ses propres films, aimé d’un pays &lt;em&gt;motivé&lt;/em&gt; à l’aimer, … Aladeen est parfait en tout point. Tout lui réussit s’il l’a décidé. Sinon … couic …
Reste que le pouvoir attire toujours la convoitise, surtout de ceux qui veulent en plus l’argent. Et là, c’est le drame. Le voyage politique à New York se transforme en putsch presque raté qui nous offre l’une des meilleures comédies de l’année, dans la droite ligne de ce que nous avait offert Borat et son voyage en Amérique profonde. Les stéréotypes sont amplifiés. La bien pensante amérique malmenée. La politique bénéfique ridiculisée. Et bien sûr, l’argent ne fait pas le bonheur mais achète tout le monde, les artites en tête de liste (&lt;a href=&quot;http://www.imdb.com/name/nm1083271/&quot;&gt;Megan Fox&lt;/a&gt;, &lt;a href=&quot;http://www.imdb.com/name/nm0001570/&quot;&gt;Edward Norton&lt;/a&gt;, …)
Aladeen nous offre donc un film Aladeen. Il est donc Aladeen d’aller le voir pour s’Aladeen de rire. Un avis Aladeen sans Aladeen. Juste Aladeen.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/the_dictator_2012.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/the_dictator_2012.jpg 480w, /assets/the_dictator_2012.jpg 560w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Dias de Gracia : Coup de sifflet final</title>
      <link href="https://francois.aichelbaum.com/2012/06/20/coup-de-sifflet-final" />
      <updated>2012-06-20T12:01:03+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/20/coup-de-sifflet-final</id>
      <content type="html">&lt;p&gt;Hier soir, le Mexique nous a offert un match de haut rang : le Mexique ensoleillé de la carte postale contre le Mexique violent de la réalité. Le match s’annonçait dur, sauvage, animé. Deux heures de spectacle où les aficionados des Coupes du Monde &lt;a href=&quot;http://fr.wikipedia.org/wiki/Coupe_du_monde_de_football_de_2002&quot;&gt;2002&lt;/a&gt;/&lt;a href=&quot;http://fr.wikipedia.org/wiki/Coupe_du_monde_de_football_de_2006&quot;&gt;2006&lt;/a&gt;/&lt;a href=&quot;http://fr.wikipedia.org/wiki/Coupe_du_monde_de_football_de_2010&quot;&gt;2010&lt;/a&gt; étaient les seuls à comprendre le rythme effréné. Ce fut un jour de grâce pour les joueurs. Ce fut leur &lt;a href=&quot;http://www.imdb.com/title/tt1450320/&quot;&gt;Dias de Gracia&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Destins croisés entre un jeune boxeur désabusé et perdu, un flic hyper motivé et très manichéen et un otage de la haute. Le tout narré au long de 8 ans, rythmé par les coupes du mondes qui servent de point de repère temporel. Autant dire qu’un néophyte en foot se perdra très vite. Le match s’averrant bien long avant le dénouement permettant de tout remettre à sa place.
Dans un pays qu’on dépeint souvent avec son soleil, sa téquilla ou son shivas, ses plages au Spring Break, nous découvrons un envers du décors bien plus violent ou la corruption est reine et fait partie, avec sa soeur &lt;em&gt;violence&lt;/em&gt;, du quotidien de tout à chacun. Qui sont les arbitres ? Y en a-t-il vraiment ? Qui contrôle quoi ? Quelle est la vraie vie de chacun ? Un grand médecin (&lt;a href=&quot;http://www.serieslive.com/serie/dr-house/386/&quot;&gt;Dr. House&lt;/a&gt; pour ne pas le citer) nous disait : “Tout le monde ment”. C’est bien là le soucis, dans ce pays totalement perdu où il est si facile de se perdre soi-même.
L’action est ultra nerveuse. La caméra affolée. L’ambiance sur-chauffée. On accroche très vite. Et pour moi, qui suis anti-foot et donc sans connaissances réelles sur les Coupes du Monde, j’ai quelque peu souffert de la chronologie décousue et rafistolée à coup d’annonces de match à la radio ou d’images rapides à la TV. Ca m’a presque gâché le plaisir. Le concept est là. La qualité aussi. On sent que le Mexique vit pour le foot par moment et c’est dommage pour certains d’entre nous. Pour autant, à voir et à subir. Coup de sifflet de fin.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/DiasdeGracia.jpg&quot; title=&quot;&quot; srcset=&quot; /assets/DiasdeGracia.jpg 450w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Blanche Neige et le chasseur : neige sombre et le miroir pas si enchanté</title>
      <link href="https://francois.aichelbaum.com/2012/06/19/snow-dark-et-le-miroir-pas-si-enchante" />
      <updated>2012-06-19T15:35:29+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/19/snow-dark-et-le-miroir-pas-si-enchante</id>
      <content type="html">&lt;p&gt;Il est bon de croire que cette année audio-visuelle (saison 2011-2012) est celle des reprises de contes. Après tout, la télévision nous a offert &lt;a href=&quot;https://www.youtube.com/watch?v=uar1rWVAJV0&quot;&gt;Grimm&lt;/a&gt; et &lt;a href=&quot;https://www.youtube.com/watch?v=15__iA1MTqc&quot;&gt;Once upon a time&lt;/a&gt;, deux séries prometteuses (et prolongées), alors que le cinéma nous offre deux versions de Blanche Neige en moins de deux mois (&lt;em&gt;&lt;a href=&quot;http://www.imdb.com/title/tt1667353/&quot;&gt;1&lt;/a&gt; et &lt;a href=&quot;http://www.imdb.com/title/tt1735898/&quot;&gt;2&lt;/a&gt;&lt;/em&gt;). Et ce, sans parler des adaptations distribuées directement en vidéo. Pour autant, chaque version apporte sa touche au conte. Cette fois-ci, on s’intéresse à la version sombre.&lt;!--more--&gt;&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;On a tous en tête au moins la version de &lt;a href=&quot;https://www.youtube.com/watch?v=eyjc8txuG44&quot;&gt;Disney&lt;/a&gt;. Coloré, (en)chantant, … Disons que les &lt;em&gt;Bisounours&lt;/em&gt; ont muri et se racontent trop d’histoire en étant beurrés. Ca devient sombre, glauque et presque sale. C’est un peu le même effet que la Marâtre opère sur son monde. De toutes les versions &lt;em&gt;live&lt;/em&gt; du conte qu’on ait pu voir à l’écran, il est une chose certaine, c’est que Charlize Theron est LA reine dont il faut se souvenir : magnifique, imposante, ensorcellante, puissante … Pour autant, sa beauté est une tragédie pour son monde.
A moins que sa &lt;em&gt;Dear, Dear Snow White&lt;/em&gt; puisse tous les sauver. Et là, c’est le drame. Blanche Neige est censée être belle, pleine de vie, souriante, chantante … Oui, le film nous dit qu’elle est la Vie et que la Nature l’aime. Mais, il y a un énorme hic. On nous impose la morne Kristen Stewart qui a bien du mal à sourire même pour les plus belles choses (rien que son sourire forcé du dernier écran est bien douloureux). Puis bon, on est dans une version “sombre”, alors il faut qu’elle devienne guerrière pour que ca saigne ! Là encore, c’est le drame : elle se veut meneuse d’hommes. Pour un conte anti féministe quelque part, où la femme ne vaut que pour sa beauté éphémère (voir la tirade de Charlize Theron à ce sujet), clairement le monde est peuplé de Simplet. Quelques battement de cils, et la pire harangue pour motiver les troupes de tous les temps suffit à tous les motiver à se faire trucider.
Bien sûr, le titre du film nous en prévient, elle est assistée du Chasseur. Pour camper le rôle, c’est Thor (Chris Hemsworth) qui s’y colle. A croire qu’il est séduit par les petites brunettes, le Viking… Alors attention, cette fois-ci, on ne lui demande pas d’être (juste) musclé, ni humaniste, mais aussi d’avoir un coeur d’artichaut. Il en est bien affaiblit le grand gaillard. Son jeu aussi.
&lt;em&gt;Mirror, Mirror on the wall&lt;/em&gt; est lui quasi transparent. On a beau le voir, planté là, imposant de son reflet d’or, pour autant … il aurait pu être ailleurs, ca n’aurait pas été bien grave. C’est comme le bon “Prince” qui n’est plus que simple fils de Duc et qui, à part vouloir jouer au docteur avec la Princesse, ne sert plus à grand chose. Par contre, les septs nains, et les acteurs choisis (Bob Hoskins, Ian McShane, Toby Jones, Eddy Marsan, Nick Frost, …), sont tout bonnement parfaits dans leurs rôles. Par contre, si vous vous mettez à siffloter en vous &lt;em&gt;remettant au boulot&lt;/em&gt; (&lt;em&gt;getting back to/from work&lt;/em&gt;), vous risquez de vous faire décapiter par Grincheux.
Au final, une affiche prometteuse pour nous oublier la version colorisée avec Julia Roberts, un casting qui serait parfait avec une autre Blanche Neige, de beaux écrans, une bande son bien sympa, des nains sur puissants … Ce film avait tout pour être un bon. Mais l’actrice et l’adaptation en lui même du rôle de Blanche Neige font tâche et pourraient gâcher le film. Heureusement, la reine Ravenna nous permet de passer un bon moment et compense ce raté.
Au passage, pour ceux que ca intéresse, un peu de culture, ca ne fait pas de mal donc on demande à notre ami &lt;a href=&quot;http://fr.wikipedia.org/wiki/Blanche-Neige&quot;&gt;Wikipedia&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/SnowWhiteHuntsman.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/SnowWhiteHuntsman.jpg 480w, /assets/SnowWhiteHuntsman.jpg 640w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>21 Jump Street : l&amp;#039;abus de drogue est dangereux pour la santé</title>
      <link href="https://francois.aichelbaum.com/2012/06/15/labus-de-drogue-est-dangereux-pour-la-sante" />
      <updated>2012-06-15T14:07:49+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/15/labus-de-drogue-est-dangereux-pour-la-sante</id>
      <content type="html">&lt;p&gt;Il y aura un avant et un après 6 juin 2012. La sortie d’un film a scindé le monde en deux catégories : les vieux et les jeunes. Les vieux, ce sont ce qui regardait la TV le samedi matin dans les années 80/90 pour regarder les exploits de jeunes flics infiltrant les lycées pour démenteler des réseaux de drogues ou attraper des violeurs. Les jeunes, ce sont ces gens de la génération Z, qui n’ont pas connu tout ca. Après ce 6 juin 2012, les premiers se drogueront pour oublier, les derniers continueront à se droguer.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Ce film c’est l’adaptation ciné de &lt;a href=&quot;http://www.imdb.com/title/tt1232829/&quot;&gt;21 Jump Street&lt;/a&gt; (&lt;a href=&quot;http://www.imdb.com/title/tt0092312/&quot;&gt;rappel de la série d’origine&lt;/a&gt;). A la base, la bande annonce m’avait décidé à fuir le film. Au final, Henley confirmant que j’avais raison de le faire a titillé ma curiosité : il est bien connu que j’ai toujours raison mais de là à avoir raison sans savoir … Il fallait que je juge sur pièce.
Pour moi, &lt;em&gt;21 Jump Street&lt;/em&gt;. ce sont les aventures d’&lt;a href=&quot;http://www.imdb.com/name/nm0005372/&quot;&gt;Hoffs&lt;/a&gt;, &lt;a href=&quot;http://www.imdb.com/name/nm0629006/&quot;&gt;Ioki&lt;/a&gt;, &lt;a href=&quot;http://www.imdb.com/name/nm0217938/&quot;&gt;Penhall&lt;/a&gt; et bien sûr &lt;a href=&quot;http://www.imdb.com/name/nm0000136/&quot;&gt;Hanson&lt;/a&gt;, le tout orchestré par le &lt;a href=&quot;http://www.imdb.com/name/nm0931736/&quot;&gt;Capitaine Fuller&lt;/a&gt;, ces jeunes officiers s’infiltrant dans les écoles pour parler de choses sérieuses sur un ton sérieux limite sombre et moralisateur, dans une amérique en délabrement. Mais aujourd’hui le sérieux n’est pas vendeur. Par contre des &lt;em&gt;teenage movies&lt;/em&gt; à la &lt;a href=&quot;http://www.imdb.com/title/tt1636826/&quot;&gt;Project X&lt;/a&gt;, ca c’est vendeur. Pour le reste, c’est le Deputy Chief Hardy qui nous l’explique.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Nous réactivons un ancien service d’infiltrations policières mis sur pieds dans les années 80 et nous le mettons à l’heure d’aujourd’hui.
Voyez vous, les gens chargés de ces services n’ont aucune créativité et sont totalement à court d’idées alors tout ce qu’ils savent faire c’est recycler de vieux trucs du passé et espérer que personne ne re-marquera rien.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Voilà tout est dit : une license à succès existe et il y a surement moyen de s’en mettre plein les poches 20 ans après l’arrêt de la série. Ca sent la parodie à plein nez, le teenage movie sur joué (et mal joué), l’ambiance &lt;em&gt;m’as-tu vu&lt;/em&gt; des banlieues chics, l’absence complète de caractère … Et une fois qu’on a passé le quart d’heure d’intro en se forçant à supporter le film, on prend notre rail pour voir un ce navet qu’il faudrait renier. D’ailleurs, je me demande comment les acteurs de la série ont pu accepter d’y participer (Peter DeLuise, Holly Robinson et surtout Johnny Depp) ! D’ailleurs, la chapelle n’est plus la même … Et on se coltine un Christ Coréen, &lt;em&gt;qui n’a pas le temps de s’ocupper de vos conneries, il a déjà bien à faire avec ses merdes coréennes&lt;/em&gt;.
L’usage de la license n’est qu’un prétexte éhonté pour une sur-enchère devenue habituelle sur grand écran, où rien n’est fait pour être sérieux. D’ailleurs, plus d’une fois, j’avais l’impression de revoir &lt;a href=&quot;https://www.youtube.com/watch?v=Q6hwjSXUUv8&quot;&gt;News Kids Turbo&lt;/a&gt;. On pourrait se dire que la méthode est là pour faire assimiler à la génération Z certains concepts quant à l’utilisation de la drogue. Mais même là, c’est loupé et la morale échappe à tout contrôle. Décevant en tout point. Et dire qu’ils se sont laissé une porte ouverte à une suite.
Les rares bons points selon moi de ce film ?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;la voiture&lt;/li&gt;
  &lt;li&gt;la présence des anciens (encore une fois, le duo Penhall/Hanson est à savourer)&lt;/li&gt;
  &lt;li&gt;le générique de fin&lt;/li&gt;
&lt;/ul&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Vous voulez aller le voir ? si vous êtes “vieux”, droguez-vous, sinon, droguez vous.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/21jump.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/21jump.jpg 480w, /assets/21jump.jpg 674w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Les filles ne comptent pas pour des pêches</title>
      <link href="https://francois.aichelbaum.com/2012/06/11/les-filles-ne-comptent-pas-pour-des-peches" />
      <updated>2012-06-11T11:22:25+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/11/les-filles-ne-comptent-pas-pour-des-peches</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/peche-150x150.jpg&quot; alt=&quot;peche&quot; /&gt;{.left} Ah, la cérémonie du mariage : les sourires (faux-culs ?), la boisson, les histoires, … les demoiselles d’honneur qui détestent toutes la mariée …
C’est ainsi que nous faisons la connaissance de cinq demoiselles d’honneur, au fil de la pièce d’Alan Ball, &lt;a href=&quot;http://www.billetreduc.com/66954/evt.htm&quot;&gt;5 filles couleur pêche&lt;/a&gt;. Entre alcool et joints, déboires amoureux, vies sexuelles &lt;em&gt;compliquées mais débridées&lt;/em&gt;, relations avec la mariée, hommes à femmes, … elles nous font vivre leurs sentiments et ressentiments. Tous les sujets y passent, même les plus sérieux, déclenchant l’hilarité du public.&lt;!--more--&gt;
Comment garder son sérieux quand on les voit toutes plus folles les unes que les autres, rêvant de leurs ébats dans les poubelles ou utilisant la religion comme excuse à tout et surtout à la niaiserie. On ne peut que se rompre de rire de leurs extravagances et leurs folies.
Personnellement, la seule critique que je ne me suis pas gêné de dire aux filles : c’est trop court, on avait encore le temps !
Il ne vous reste qu’une seule et unique représentation parisienne, le 24 juin. C’est au &lt;a href=&quot;https://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=sonart,+paris&amp;amp;aq=&amp;amp;sll=46.75984,1.738281&amp;amp;sspn=14.426196,33.815918&amp;amp;vpsrc=0&amp;amp;ie=UTF8&amp;amp;hq=sonart,&amp;amp;hnear=Paris,+%C3%8Ele-de-France&amp;amp;ll=48.871151,2.356396&amp;amp;spn=0.054084,0.132093&amp;amp;t=m&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;cid=2439162054154969027&quot;&gt;Sonar(t)&lt;/a&gt; à Pigalle, c’est gratuit (enfin boisson obligatoire et chapeau pour les filles). A voir. Sinon, vous pourrez les suivre à Avignon cet été !&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/5filles.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/5filles.jpg 480w, /assets/5filles.jpg 700w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Prometheus : promettez nous de ne pas crier dans l&amp;#039;espace</title>
      <link href="https://francois.aichelbaum.com/2012/06/10/promettez-nous-de-ne-pas-crier-dans-lespace" />
      <updated>2012-06-10T13:26:44+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/10/promettez-nous-de-ne-pas-crier-dans-lespace</id>
      <content type="html">&lt;p&gt;A la question “qui sont nos créateurs ?”, il est maintenant dans la culture populaire de croire que nos anciennes civilisations avait la réponse : nos dieux-créateurs étaient des extraterrestres. Dans ces conditions, si vous trouvez la route pour aller leur passer un petit coucou, pourquoi ne pas le faire ? C’est ce que nous propose &lt;a href=&quot;http://www.imdb.fr/name/nm0000631/&quot;&gt;Ridley Scott&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Comment parler de la polémique du film sans spoiler ou sans critique les cinéphiles du dimanche ? Tout simplement en une phrase : “si ca en a le goût, si ca y ressemble, si ca a la consistance et si ca vient de la même bestiole, c’est que c’en est”. Ca c’est dit. Passons.
L’intro du film, j’ai mis 24 heures a réellement en comprendre tout le sens et franchement, c’est abusé. On nous la balance à la figure, on s’attend à quelque chose, puis d’un revers de main on passe à autre chose qui n’a aucun lien. Ridley, si tu me lis, c’est la première fois que tu me déboussoles et me perds ainsi : je suis surpris mais surtout déçu.
Quoiqu’il en soit, l’art visuel est là : l’image est belle, l’action net, les couleurs dépaysantes, la bande son ennivrante. Mais est-ce suffisant pour nous empêcher de crier ? Pas sûr.
Vingt cinq ans avant les mésaventures du Nostromo, le Prometheus part à la rencontre de nos créateurs et ne trouvera que notre fin. Découvrir ce monde de création et de destruction offre tellement de possibilité de terreur que les sentiments autres n’y trouve pas leur place. D’ailleurs, c’est le capitaine qui nous le fait remarquer : “Etes-vous humaine ?” On explore donc cette planète, les poils hérissés pour certains, les mains crispées pour d’autres, les doigts pleines du caramel des popcorns pour les derniers. Le voyage promis est là.
Une jolie carte postale d’horreur spatiale que l’on se plait à voir.
Mais souvenez-vous :&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Dans l’espace, personne ne vous entendra crier.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bon pour le spoil : non ce n’est pas un clin d’oeil, &lt;strong&gt;bande d’ignards&lt;/strong&gt; !&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/Prometheus.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/Prometheus.jpg 480w, /assets/Prometheus.jpg 800w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Blend : Le burger se fait gourmet</title>
      <link href="https://francois.aichelbaum.com/2012/06/10/le-burger-se-fait-gourmet" />
      <updated>2012-06-10T13:04:59+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/10/le-burger-se-fait-gourmet</id>
      <content type="html">&lt;p&gt;La France a eu sa mode du restaurant chinois, puis celle du japonais. Aujourd’hui c’est le burger. Combien de restaurant ouvrent avec pour seule carte des variations sur le burger ? J’avais déjà eu l’occasion de tester &lt;a href=&quot;https://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=hand,+paris&amp;amp;aq=&amp;amp;sll=46.75984,1.738281&amp;amp;sspn=20.889338,47.878418&amp;amp;vpsrc=0&amp;amp;ie=UTF8&amp;amp;hq=hand,&amp;amp;hnear=Paris,+%C3%8Ele-de-France&amp;amp;t=m&amp;amp;z=15&amp;amp;iwloc=A&amp;amp;cid=5647606194305929415&quot;&gt;HAND&lt;/a&gt; (d’ailleurs il faudra le rester pour vous gratifier d’un billet), mais je n’avais pas encore fait dans le burger gourmet. C’est la proposition de &lt;a href=&quot;https://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=blend+paris&amp;amp;aq=&amp;amp;sll=48.865724,2.336706&amp;amp;sspn=0.039156,0.093513&amp;amp;vpsrc=0&amp;amp;ie=UTF8&amp;amp;hq=blend&amp;amp;hnear=Paris,+%C3%8Ele-de-France&amp;amp;ll=48.859605,2.351074&amp;amp;spn=0.039161,0.093513&amp;amp;t=m&amp;amp;z=15&amp;amp;iwloc=A&amp;amp;cid=2983489397591399632&quot;&gt;Blend&lt;/a&gt; dans le quartier de Montorgueil. Goutons.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/Blend.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/Blend.jpg 480w,/assets/resized/800/Blend.jpg 800w, /assets/Blend.jpg 944w&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;ambiance&quot;&gt;Ambiance&lt;/h2&gt;

&lt;p&gt;L’ambiance est épurée, design, relativement sobre et simple. Cependant tout est fait pour aller vite. On se tassera à plusieurs couples différents par table si l’on est pas venu en groupe de quatre, on s’assiera sur de simples mais lourds tabourets en bois, on lira la carte sur un simple bout de papier glissé dans une fente en milieu de table. Au passage, concernant la carte, petite erreur de leur part, la carte affichée en grand à l’entrée du restaurant ne correspond pas à celle proposée à table. Inutile de réfléchir à l’avance pour occuper les 30 à 45 minutes d’attentes aux heures de pointe. Le personnel bien que sympathique vous fera comprendre qu’il faut aller vite. On fait dans le gourmet, pas dans la discussion ici !&lt;/p&gt;

&lt;h2 id=&quot;nourriture-et-boisson&quot;&gt;Nourriture et boisson&lt;/h2&gt;
&lt;p&gt;Cinq burgers, aux noms sobres mais aux compositions très classieuses, émoustillent nos papilles d’avance et nous posent de sérieux dilème quant au choix à faire pour le diner. Venir nombreux aide à résoudre : chacun en prendra un différent pour partager et faire goûter aux autres.
Que cela soit la viande cuite de manière parfaite, le steak de mozarella qui vous en offre une bonne portion d’un goût esquit, ou encore les frites maisons aux patates douces, que de ravissement pour le palet. Et que dire du pain brioché maison ? Le tout servi dans une petite barquette métale simplicime.
Bien sûr, un bon repas s’accompagne d’une bonne boisson. On nous propose ici des bières assez exotiques (la Bellerose ou encore la californienne Sierra Nevada) qui s’accomoderont idéaliement aux burgers.
On achève cet exercice culinaire par le dessert. Le choix du jour s’est porté sur le cupcake chocolat : je dirais très bien, mais pas excellent. Le moelleux au chocolat servant de base peut s’améliorer.
Reste que cette adresse est à recommander et à tester, plusieurs fois, pour confirmer la qualité. Non je ne suis pas gourmand ! D’ailleurs, avec un repas “normalement humain”, pour une fois, j’ai été rassasié. A noter.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>La classe : on ne parle pas en classe</title>
      <link href="https://francois.aichelbaum.com/2012/06/10/on-ne-parle-pas-en-classe" />
      <updated>2012-06-10T12:15:00+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/10/on-ne-parle-pas-en-classe</id>
      <content type="html">&lt;p&gt;Une ambiance de classe comme nous avons pu en avoir que l’on soit trentenaire ou plus, une carte prometteuse, voilà ce que nous offre la &lt;a href=&quot;https://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=La+Classe,+Rue+de+Maubeuge,+Paris&amp;amp;aq=0&amp;amp;oq=la+classe,+&amp;amp;sll=46.75984,1.738281&amp;amp;sspn=20.889338,47.878418&amp;amp;vpsrc=0&amp;amp;ie=UTF8&amp;amp;hq=La+Classe,&amp;amp;hnear=Rue+de+Maubeuge,+Paris,+%C3%8Ele-de-France&amp;amp;t=m&amp;amp;z=17&amp;amp;cid=2519009725032060842&amp;amp;iwloc=A&quot;&gt;Classe&lt;/a&gt; (Paris 9e).&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/LaClasse.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/LaClasse.jpg 480w, /assets/LaClasse.jpg 750w&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;ambiance&quot;&gt;Ambiance&lt;/h2&gt;

&lt;p&gt;Les tables sont de tailles adultes mais impossible de ne pas se souvenir à quel point les nôtres pouvaient être petites pour des adultes : la table pour deux, avec la double barre au milieu pour relier les chaises, les casiers en bois ou métal pour ranger les affaires, le trou pour l’encre, la rainure pour poser les stylos ; les cartes de France, d’Europe et du Monde avec leur typo très simplifiée ; les rayonnages de livres vieillis et jaunis ; … Ah, l’école primaire de notre enfance, que de souvenir ….! Tout y est pour nous transporter dans nos souvenirs. Le personnel très sympathique nous apporte alors la carte des vins pour l’apéro dans une couverture de cahier. Vraiment, tout y est.
Comme à la cantine, l’eau est servie dans les bons vieux verres Duralex ronds.&lt;/p&gt;

&lt;h2 id=&quot;nourriture-et-boisson&quot;&gt;Nourriture et boisson&lt;/h2&gt;

&lt;p&gt;Une carte des vins à rallonge qui nous offre un large choix selon les goûts de chacun, selon les bouteilles, servis au verre ou non. On déguste tranquillement notre petit rouge ou notre petit blanc. Mais vu que nous y sommes aller pour l’apéro plutôt que pour le dîner, il faut bien “éponger” un peu l’alcool consommé pour profiter du reste de la soirée. Pour celà, il suffit de demander une planche charcuterie/fromage. Et là, servis accompagné d’une baguette à l’ancienne bien chaude, l’apéro prend une dimension magique. Tout y est bon. Tout y est fin. Tout y a du goût. On en redemanderait presque.
Le prix est légèrement élevé par rapport au petit balto du coin mais vu la qualité des produits et l’ambiance, chaque centime dépensé nous offre du plaisir et nous le fait oublier.
A y faire l’apéro et à l’y refaire. A tester aussi un repas car celà sent prometteur !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Hot-dog : et un clébard chaud !</title>
      <link href="https://francois.aichelbaum.com/2012/06/07/clebard-chaud" />
      <updated>2012-06-07T12:20:53+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/07/clebard-chaud</id>
      <content type="html">&lt;p&gt;L’autre jour, se faisant faim et désirant changer un peu de cantine, mais aussi des plats habituels, on a voulu se faire un hot-dog. Aux Halles, en surface, se trouve le &lt;a href=&quot;https://maps.google.fr/maps?f=q&amp;amp;source=s_q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=dog&apos;s+caf%C3%A9,+paris&amp;amp;aq=&amp;amp;sll=46.75984,1.738281&amp;amp;sspn=14.426196,33.815918&amp;amp;vpsrc=0&amp;amp;ie=UTF8&amp;amp;hq=dog&apos;s+caf%C3%A9,&amp;amp;hnear=Paris,+%C3%8Ele-de-France&amp;amp;ll=48.85184,2.322063&amp;amp;spn=0.054105,0.132093&amp;amp;t=m&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;cid=3452158383687327772&quot;&gt;Dog’s Café&lt;/a&gt;, qui se targue d’être le &lt;em&gt;meilleur chien chaud en ville&lt;/em&gt;. Ambiance et digestion.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/DogsCafe.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/DogsCafe.jpg 480w, /assets/DogsCafe.jpg 533w&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;ambiance&quot;&gt;Ambiance&lt;/h2&gt;

&lt;p&gt;Franchement, rien à redire. On est vraiment emmené dans un diner avec ses grandes baies vitrées, son zinc à rallonge sur lequel on va pouvoir diner, installé sur de hautes chaises. Le cadre est là. Le service aussi, la serveuse est disponible, agréable et souriante. Le cuistot agréable et également disponible. On apprécie et on demanderait presque du jus de chaussette &lt;em&gt;à discrétion&lt;/em&gt;.&lt;/p&gt;

&lt;h2 id=&quot;repas&quot;&gt;Repas&lt;/h2&gt;

&lt;p&gt;La carte est prometteuse : entre le hot-dog newyorkais au choux, le hot-dog Miller à l’oignon frit et ce chili con carne, on espère se régaler, et le choix entre une saucisse au porc ou au poulet. Malheureusement, la qualité n’est pas à la hauteur de l’annonce. En bref ?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;pain trop sec : un pain grillé à la plancha et n’offre plus le moelleux d’un bon pain pour hot-dog et trop petit pour se manger à la main si l’on prend deux saucisses&lt;/li&gt;
  &lt;li&gt;une saucisse générique, juste bonne&lt;/li&gt;
  &lt;li&gt;un fromage à revoir : le supplément fromage offre une vulgaire petite tranche de cheddar fondu, que le burger soit à une ou deux saucisses … copie à revoir&lt;/li&gt;
  &lt;li&gt;des pommes de terres sautés un poil trop grasses&lt;/li&gt;
  &lt;li&gt;pas d’oignon frais&lt;/li&gt;
  &lt;li&gt;la présentation en assiette est dommage : des barquettes auraient été plus dans le &lt;em&gt;trip dinner&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;le choix dans les bières est plutôt restreint mais la Bud et la Coronna permettent de rester dans l’ambiance&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Au final, pour un prix honnête on s’en sort avec une qualité en deçà de la moyenne alors que le cadre est vendeur et l’annonce prometteuse … On peut attaquer pour publicité mensongère ?&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Perfect Sense : le 6e sens</title>
      <link href="https://francois.aichelbaum.com/2012/06/07/6e-sens" />
      <updated>2012-06-07T11:46:17+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/07/6e-sens</id>
      <content type="html">&lt;p&gt;Deux mois après, je réalise qu’il me manque une revue : celle de &lt;a href=&quot;http://www.imdb.fr/title/tt1439572/&quot;&gt;Perfect Sense&lt;/a&gt;. A croire que justement, j’ai également perdu mes sens puis ma mémoire …&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;On suit Susan, Michael et un monde malade. Susan est une épidémiologiste désabusée par son histoire amoureuse et ses problèmes de santé. Michael est chef cuisiner et charmeur à ses heures perdues, incapacité à s’attacher. Le monde, lui, est malade et se dépérit. C’est l’occasion qui permettra à nos deux tourtereaux de se rencontrer, de flasher et de découvrir l’Amour.
La maladie du monde n’a pas de nom, n’a pas d’origine, n’a pas de patient zéro, n’a pas de remède. Rien de connu. Juste la perte d’un sens à la fois, dans le même ordre pour tout le monde, accompagné de symptômes plutôt expressif qui font ressortir l’instinct animal de l’Homme.
Mais au final, quel est le sens le plus important à ne pas perdre ? Comment vivre sans nos sens ? Le film aurait pu virer à l’étude psychologique de masse mais nous offre l’un des couples les plus fusionnels qu’on ait pu voir sur grand écran pour nous glisser cette réflexion à mener. Chacun ira de sa conclusion, mais la vraie question ne serait-elle pas plutôt de savoir ce qui fait que la vie vaut le coup d’être vécue, quelqu’en soit le coût ?
Reste que ce que nous fait ressortir le couple Eva/Ewan est tellement fort qu’on aime et souffre avec eux. A ressentir.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/PerfectSense.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/PerfectSense.jpg 480w, /assets/PerfectSense.jpg 680w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Moonrise Kingdom : scout toujours prêt !</title>
      <link href="https://francois.aichelbaum.com/2012/06/07/scout-toujours-pret" />
      <updated>2012-06-07T11:12:22+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/07/scout-toujours-pret</id>
      <content type="html">&lt;p&gt;S’il y a des films qu’on a plaisir de voir et revoir, ce sont les petites comédies infantiles qui nous ramènent à nos souvenirs, à notre propre histoire de gamin. Après tout, nous restons d’éternels enfants. Personnellement, c’est l’effet que me font les films du type &lt;a href=&quot;http://www.imdb.fr/title/tt0054949/&quot;&gt;la guerre des boutons&lt;/a&gt;, &lt;a href=&quot;http://www.imdb.fr/title/tt0099669/&quot;&gt;la gloire de mon père&lt;/a&gt;, &lt;a href=&quot;http://www.imdb.fr/title/tt0099266/&quot;&gt;le chateau de ma mère&lt;/a&gt; et autres … Ce WE, j’ai pu en rajouté un autre à la liste : &lt;a href=&quot;http://www.imdb.fr/title/tt1748122/&quot;&gt;Moonrise Kingdom&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Une bande annonce qui interpelle par sa bizarrerie et sa fraîcheur, un casting imposant, impossible de ne pas aller voir cet &lt;em&gt;OVNI&lt;/em&gt; (Object Visuel Non Identifié). Au final, en regardant de plus près, c’est un peu la période pour ce genre de films (&lt;a href=&quot;/2012/05/19/mon-baluchon-pour-linde-est-pret/&quot;&gt;Indian Palace&lt;/a&gt;, &lt;a href=&quot;/2012/06/07/6e-sens/&quot;&gt;Perfect Sense&lt;/a&gt;, &lt;a href=&quot;http://www.imdb.fr/title/tt1441952/&quot;&gt;Des saumons dans le désert&lt;/a&gt; …). C’est franchement rafraichissant en ces temps …
On suit donc la fugue de deux gamins (déjà) désabusés mais amoureux. Un roadtrip dans les bois à la découverte des sentiments, des liens qui peuvent se forger entre les gens, sentiments contre raison, …
Une balade en plein ouragan naissant, une chasse à l’homme version scout se prenant pour les &lt;a href=&quot;http://www.imdb.fr/title/tt0361748/&quot;&gt;Inglorious Basterds&lt;/a&gt;, des adultes vraiment pas sain(t)s ni adultes et un cours sur la musique classique (profitez du générique de fin d’ailleurs). Une recette implacable pour des rires tout du long. On ne voit pas le temps passer et on veut y retourner.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/MoonriseKingdom.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/MoonriseKingdom.jpg 480w, /assets/MoonriseKingdom.jpg 620w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Men in Black 3 : j&amp;#039;ai la classe avec un costard</title>
      <link href="https://francois.aichelbaum.com/2012/06/06/jai-la-classe-avec-un-costard" />
      <updated>2012-06-06T11:38:55+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/06/06/jai-la-classe-avec-un-costard</id>
      <content type="html">&lt;p&gt;Etonnamment, personne dans mes contacts n’avait organisé de soirée en costume pour aller voir &lt;a href=&quot;http://www.imdb.fr/title/tt1409024/&quot;&gt;Men in Black 3&lt;/a&gt; : pour le coup, vous me décevez les gens ! J’y suis donc aller avec mon Viking. Pour une fois qu’il était sur Paris …&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Pour se préparer, je m’étais fais une projection privée des deux premiers en numérique … puis grâce à &lt;a href=&quot;http://www.paniccinema.com/&quot;&gt;Panic Cinéma!&lt;/a&gt;, une version en salle avec une bobine originale qui saute bien. Et déjà, je peux vous dire que sur les trois, hormis le pourquoi du comment du gros vilain méchant extraterrestre, ce sont les mêmes films, avec les mêmes scènes, dans le même ordre. A une exception : cette fois-ci, &lt;em&gt;K&lt;/em&gt; est la demoiselle en détresse.
Fil conducteur de l’épisode ? le voyage dans le temps et le paradoxe du grand père revisité. C’est &lt;a href=&quot;https://www.youtube.com/watch?v=KJRh-37H4fA&quot;&gt;Doc Brown&lt;/a&gt; qui aurait apprécié. &lt;em&gt;J&lt;/em&gt; doit donc remonter de 40 ans dans le passé pour sauver &lt;em&gt;K&lt;/em&gt; tué par le destructeur de planètes, &lt;em&gt;Boris l’Animal&lt;/em&gt; (pardon, “&lt;em&gt;Juste, Boris !&lt;/em&gt;”). Et pour remplacer le ténébreux Tommy Lee Jones âgé de “&lt;em&gt;110 ou 111 ans&lt;/em&gt;”, on nous offre un Josh Brolin tout propre. Celui-ci a du mérite de reprendre le rôle et nous offre là une composition qui nous donne toute l’illusion d’avoir Tommy Lee Jones bien plus jeune (enfin avec un peu de kilométrage quand même pour quelqu’un âgé de 29 ans).
A côté de ce jeu, le voyage temporel nous offre une autre vision des extraterrestres :  on passe ainsi des modernes numériques aux comédiens grimés façon &lt;em&gt;Star Trek - the original series&lt;/em&gt; … Quel plaisir ! Visuellement on se dénote bien les différences avec toutes les références aux vieux films et aux vieilles séries des &lt;em&gt;seventies&lt;/em&gt;.
Franchement, non ce n’est pas le meilleur des films de la saga car il ne crée pas la surprise du premier, mais il est dans la logique globale de la license et de ce qu’a pu nous offrir le second : un bon spectacle avec de l’action (moins qu’avant, on est trop vieux pour ces conneries), des clins d’oeil, de l’humour et une histoire sympatoche. Juste un bon moment au ciné donc.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/MenInBlack3.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/MenInBlack3.jpg 480w, /assets/MenInBlack3.jpg 754w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>C&amp;#039;est Barbie qui a perdu la clé</title>
      <link href="https://francois.aichelbaum.com/2012/05/29/cest-barbie-qui-a-perdu-la-cle" />
      <updated>2012-05-29T21:39:59+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/29/cest-barbie-qui-a-perdu-la-cle</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/Barbie-150x150.jpg&quot; alt=&quot;Barbie&quot; /&gt;{.left} Ce soir après un taff sous une chaleur assez épuisante, la fraicheur d’une salle obscure avait un air salvateur. Bon par contre, les neurones étaient tous bien grillés donc le choix de genre était tout à fait d’actualité : un gros nanard sous testostérone. C’est donc &lt;a href=&quot;http://www.imdb.fr/title/tt1592525/&quot;&gt;Lockout&lt;/a&gt; qui était tout désigné.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;C’est donc l’histoire de Barbie, dite la &lt;em&gt;First Daughter&lt;/em&gt; grâce au poste de Président des USA qu’occupe M. Papa Warnock, qui part dans une prison spaciale pour faire dans l’humanitaire. Et là tout dérape…&lt;/p&gt;

&lt;h2 id=&quot;linterrogatoire-musclé&quot;&gt;L’interrogatoire musclé&lt;/h2&gt;

&lt;p&gt;Pourquoi l’humanitaire ? Parce Papa est méchant.
Pourquoi mettre les prisonniers sur orbite ? les cellules les congèlent puis au pire, ca sera l’espace.
Pourquoi alors qu’une vitre sépare Barbie du méchant violeur un agent des services secrets est à côté du violeur ? Parce que sinon il ne pourrait pas lui permettre de trouver une arme interdite puis ca flinguerait toute l’intrigue.
Pourquoi prendre un gars qu’on considère comme un paria, qui ne fait pas partie de l’armée quand on pourrait aller prendre le meilleur des meilleurs des meilleurs, Sir ? Parce que sinon ce n’est pas drôle, il n’aurait pas la même réthorique.&lt;/p&gt;

&lt;h2 id=&quot;cest-en-frappant-quon-devient-forgeron&quot;&gt;C’est en frappant qu’on devient forgeron&lt;/h2&gt;
&lt;p&gt;Demandez donc à Rupert à quel point ca fait plaisir de taper sur Snow ! Il n’y a pas de petit plaisir.
Puis il en va de même entre les mutins de prisonniers : pourquoi se limiter aux pauvres gardes sans défense quand on peut se taper sur la gueule non stop … c’est tellement bon toute cette activité physique. Bien sûr, tout ceci est dans le futur, donc appuyé d’effets graphiques dont les Gobelins auraient honte par moment.
Et que dire alors de la logique des scénaristes : ils n’ont pas assez regardé les infos je crois : une bombe en collier ca ne décapite par un mec aussi proprement qu’une hache … tout en la désintégrant …
Mais bon, c’est ma poussée de testostérone qui me fait mal voir.&lt;/p&gt;

&lt;h2 id=&quot;femme-qui-rit-femme-à-moitié-au-lit&quot;&gt;Femme qui rit, femme à moitié au lit&lt;/h2&gt;
&lt;p&gt;Snow, c’est un peu prendre tous nos acteurs fétiches de films d’action des années 80/90, avec une pincée de mec torturé en primaire, et les passer au mixeur. On obtient une savoureuse réthorique cachée par des muscles.
Mais le numéro de charme fonctionne. Après tout, c’est ca la recette des vieux films d’actions : un gentil costaud un peu mal béché qui cognent les gros et moches méchants pour libérer la belle Barbie. Mais aujourd’hui ca passe mieux en projection privée ou en vidéo.
En tout cas, si l’on vous demande ce qu’il s’est passé dans cette chambre d’hôtel, demander plutôt à votre femme !&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/Lockout_Poster2partial.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/Lockout_Poster2partial.jpg 480w, /assets/Lockout_Poster2partial.jpg 610w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Sans issue : c&amp;#039;est pas moi, c&amp;#039;est lui !</title>
      <link href="https://francois.aichelbaum.com/2012/05/22/cest-pas-moi-cest-lui" />
      <updated>2012-05-22T23:34:35+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/22/cest-pas-moi-cest-lui</id>
      <content type="html">&lt;p&gt;Ce soir, je continue sur ma lancée du choix du film à l’aveugle : je fonce au cinéma et je prends le premier film qui démarre. C’est ainsi que je me retrouve à m’installer dans la salle pour voir &lt;a href=&quot;http://www.imdb.fr/name/nm0000244/&quot;&gt;Sans issue&lt;/a&gt;, avec entre autres &lt;a href=&quot;http://www.imdb.fr/name/nm0000244/&quot;&gt;Sigourney Weaver&lt;/a&gt; et &lt;a href=&quot;http://www.imdb.fr/name/nm0000246/&quot;&gt;Bruce Willis&lt;/a&gt; pour les pointures américaines mais aussi &lt;a href=&quot;http://www.imdb.fr/name/nm0147147/&quot;&gt;Henry Cavill&lt;/a&gt;, plutôt prometteur, et un gars de chez nous, de la cité d’à côté (puisqu’originaire de &lt;a href=&quot;http://maps.google.fr/maps/place?ftid=0x47e66f45c618b431:0x950c4e920d76f175&amp;amp;q=Gennevilliers&amp;amp;hl=fr&amp;amp;ved=0CA0Q-gswAA&amp;amp;sa=X&amp;amp;ei=6AG8T8fbBdCLOq-_8MQB&quot;&gt;Gennevilliers&lt;/a&gt;), &lt;a href=&quot;http://www.imdb.fr/name/nm0954704/&quot;&gt;Roschdy Zem&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Bon avant de rentrer plus dans le vif du sujet, je vais pousser une gueulante : ils ont un soucis les distributeurs français avec les traductions de titres anglais ?! Non mais sérieusement : est-ce que l’un de vous peut m’expliquer comment &lt;em&gt;The Cold Light of Day&lt;/em&gt; a pu donner en traduction &lt;em&gt;Sans issue&lt;/em&gt; ? Surtout que l’expression anglaise se rapproche plus d’un “voir les choses sous leur vrai jour” … On ne doit vraiment pas parler la même langue.
Quoiqu’il en soit, je n’avais rien vu concernant ce film si ce n’est son affiche dans quelques rares salles. A croire que la promo est aussi efficace que la traduction. Du coup, salle quasi vide. Mais bon, je suis d’autant plus libre de vivre le film tranquillement sans parasitage.
Pour la faire courte, Will Shaw (joué par Henry Cavill) se retrouve au milieu d’une affaire de contre espionnage américano-israélien pendant des vacances avec sa famille en Espagne. L’enlèvement de celle-ci donnera l’occasion à Will de découvrir les sombres secrets de sa famille.
Au passage, on peut noter que Bruce Willis fait de plus en plus d’apparitions courtes dans les films alors que Sigourney Weaver semble se trouver une passion pour les espions (c.f. &lt;a href=&quot;http://www.imdb.fr/title/tt1600195/&quot;&gt;Identité secrète&lt;/a&gt;). Pourquoi pas. Leur jeu reste efficace et la dynamique du film est là sans nous offrir une exagération que l’on a dans la sage de &lt;a href=&quot;http://www.imdb.fr/character/ch0002110/&quot;&gt;Jason Bourne&lt;/a&gt; ou justement &lt;a href=&quot;http://www.imdb.fr/title/tt1600195/&quot;&gt;Identité secrète&lt;/a&gt;. On apprécie l’avancée, les retournements plus ou moins prévisibles et le côté Pierre Richard de l’&lt;em&gt;espion malgré lui&lt;/em&gt;.
Au final, un thriller d’action comme on dit, sans grandes prétentions, mais efficace si on le prend pour ce qu’il est : un divertissement de type &lt;em&gt;fast food&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/Sans-Issue-The-Cold-Light-of-Day-Affiche-US.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/Sans-Issue-The-Cold-Light-of-Day-Affiche-US.jpg 480w, /assets/Sans-Issue-The-Cold-Light-of-Day-Affiche-US.jpg 620w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Oh une bâche !</title>
      <link href="https://francois.aichelbaum.com/2012/05/20/oh-une-bache" />
      <updated>2012-05-20T22:16:38+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/20/oh-une-bache</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/bache-150x150.jpg&quot; alt=&quot;Bâche&quot; /&gt;{.left} Il y a des jours où on ne sait pas se décider pour un film : entre les horaires qui ne vont pas, la salle qui ne va pas … Dans ce cas, ma solution : partir à l’aventure. De bien grands mots vous me dites ? Mais non ! Il suffit de vous faire une bonne balade à pattes dans Paris, pour arriver à votre salle favorite, et choisir le premier film qui démarre (en évitant un film déjà vu). Le sort m’a sélectionné &lt;a href=&quot;http://www.imdb.fr/title/tt1524137/&quot;&gt;Contrebande&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Jusqu’à ce soir, je n’avais vu que le titre dans les horaires affichés sur &lt;a href=&quot;http://www.allocine.fr&quot;&gt;Allociné&lt;/a&gt; mais cela ne m’avait pas interpellé. Il est donc clair, que sans connaître le synopsis ni avoir vu la bande annonce, je m’engageais sur ce film sans aucun a priori.
On suit donc un contrebandier repenti obligé de reprendre les affaires pour sauver sa famille. Son aventure le conduira au Panama. Hasard ou coïncidence, le matin même je me documentais un peu sur le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Canal_de_Panama&quot;&gt;Canal de Panama&lt;/a&gt; … Personnellement, cela m’a bien fait rire !
Pour en revenir au film, c’est du déjà vu à maintes reprises. Le premier titre qui me vient en tête, c’est &lt;a href=&quot;http://www.imdb.fr/title/tt0187078/&quot;&gt;60 secondes chrono&lt;/a&gt;. Mais j’y retrouve un peu l’ambiance d’un &lt;a href=&quot;http://www.imdb.fr/title/tt0840361/&quot;&gt;The Town&lt;/a&gt;. Rien de bien novateur, les habitués décoderont l’intrigue dans les premières minutes du film. Reste quelques scènes sympa et surtout voir les idées pour planquer la marchandise (cf la fin du film).
Cependant, je pense qu’un élément du film, démontrant le niveau des douaniers et du capitaine du navire, nous résume assez bien la qualité du film : “Oh une bâche !” Le film se regardant facilement en vidéo ou avec une carte illimité, je vous laisse le soin de replacer cette citation dans son contexte.
Sur ce, je retourne programmé ma prochaine contrebande à faire circuler entre la cuisine et le salon.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/Contrebande.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/Contrebande.jpg 480w, /assets/Contrebande.jpg 510w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Indian Palace : mon baluchon pour l&amp;#039;Inde est prêt</title>
      <link href="https://francois.aichelbaum.com/2012/05/19/mon-baluchon-pour-linde-est-pret" />
      <updated>2012-05-19T21:59:40+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/19/mon-baluchon-pour-linde-est-pret</id>
      <content type="html">&lt;p&gt;Il y a des films comme celui-ci, qui vous offrent deux sentiments à la sortie de la salle de cinéma :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;préparer votre voyage pour ledit pays le plus vite possible&lt;/li&gt;
  &lt;li&gt;qu’il manque quand même l’odorama au cinéma pour ce genre de films&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce film ? &lt;a href=&quot;http://www.imdb.fr/title/tt1412386/&quot;&gt;Indian Palace&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Je ne savais pas trop à quoi m’attendre avec ce film après avoir vu la bande annonce. Une comédie de et pour vieux de la vieille ? Un mix entre &lt;a href=&quot;http://www.imdb.fr/title/tt0879870/&quot;&gt;Mange, Prie, Aime&lt;/a&gt; et &lt;a href=&quot;http://www.imdb.fr/title/tt0335266/&quot;&gt;Lost in Translation&lt;/a&gt; ? Un déballage de platitudes évidentes ? Un concentré de stéréotypes ?
Tout ceci et rien en même temps. Après une rapide présentation de nos retraités, nous partons avec eux pour découvrir l’Inde. Et là, soit votre imagination est assez forte à la vu des couleurs et sons pour vous laisser supposer les odeurs, soit vous regretter l’absence de l’odorama. On découvre le pays, un peu comme on l’a pu faire avec &lt;a href=&quot;https://www.youtube.com/watch?v=JrQiIpWq-_s&quot;&gt;Pékin Express&lt;/a&gt;, il y a quelques années (Saison 2 - La route de l’Himalaya - 2007) au travers de nos “jeunes et beaux retraités”. Ainsi, chacun vivra un mini voyage initiatique, pour confirmer qui il est, ce qu’il a perdu, ou ce qu’il a raté. Et il faut dire que &lt;a href=&quot;http://www.imdb.fr/name/nm0006960/&quot;&gt;John Madden&lt;/a&gt; sait nous impliquer dans ses histoires.
On vivre avec eux. On prie. On espère. On découvre. On se réjouit. On finit par rentrer pour préparer notre bagage et voir le prochain avion.
Si vous me cherchez, je suis sûrement au &lt;em&gt;Best Exotic Marigold Hotel&lt;/em&gt; pour une durée indéterminée !&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/IndianPalace.jpg&quot; title=&quot;&quot; srcset=&quot; /assets/IndianPalace.jpg 450w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Bankrupt !</title>
      <link href="https://francois.aichelbaum.com/2012/05/18/bankrupt" />
      <updated>2012-05-18T22:24:25+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/18/bankrupt</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/bankrupt-150x150.jpg&quot; alt=&quot;Bankrupt&quot; /&gt;{.left} Aujourd’hui, je ne metterais point de musique : ce n’est pas que je n’ai aucun artiste à vous proposer, au contraire, mais je prépare un petit truc qui devrait sortir ce WE. Et comme on dit, l’attente augmente le plaisir !
°Par contre, c’est vendredi, donc jour de cinéma. Et quoi de mieux qu’un jour où presque personne ne travaille que de faire bosser nos neurones ? Pour ça, un film est parfait : &lt;a href=&quot;http://www.imdb.fr/title/tt1615147/&quot;&gt;Margin Call&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Une plétore d’acteurs de cinéma ou de séries TV vont donc s’efforcer de nous montrer une facette de l’origine de la &lt;a href=&quot;http://fr.wikipedia.org/wiki/Crise_bancaire_et_financi%C3%A8re_de_l&apos;automne_2008&quot;&gt;crise de 2008&lt;/a&gt;. Malheureusement, le monde de la finance est un domaine bien peu passionnant, même avec des acteurs de renom…
Et s’enchaînent alors les images stéréotypées d’&lt;a href=&quot;http://fr.wikipedia.org/wiki/Op%C3%A9rateur_de_march%C3%A9&quot;&gt;Opérateur de marché&lt;/a&gt; flambant leur argent, tous dans ce monde par l’appât du gain, peu importe leur formation d’origine, quand ils ne se font pas virer avec tous les égards qui leur sont dus. Il est toujours bon aussi de se faire rappeler qu’il y a toujours un chef au dessus du chef qui, lui, saura prendre &lt;em&gt;la bonne décision&lt;/em&gt; en ces temps difficiles.
Au final, une phrase très juste du grand patron de la &lt;a href=&quot;http://www.imdb.fr/title/tt0106918/&quot;&gt;La Firme&lt;/a&gt;, John Tuld (&lt;a href=&quot;http://www.imdb.fr/name/nm0000460/&quot;&gt;Jeremy Irons&lt;/a&gt;) : “Il est possible de se faire énormément d’argent avec cette crise”. Et Hollywood nous le montre une fois de plus : peu importe l’état de leurs finances (&lt;a href=&quot;http://www.scientificamerican.com/article.cfm?id=does-digital-piracy-really&quot;&gt;avec le piratage&lt;/a&gt;), il y a toujours un sujet, même anodin pour sortir un film plat qui rapporte potentiellement de gros sous grâce à ses acteurs ou son réalisateur.
Là est peut-être la clé de ce film : nous montrer qu’il n’y a pas un sujet qu’on ne puisse traiter pour s’en mettre plain les poches. En un mot comme en cent pour résumer ce film : &lt;strong&gt;arnaque&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/margincall.jpg&quot; title=&quot;&quot; srcset=&quot; /assets/margincall.jpg 408w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Chanson pour le printemps</title>
      <link href="https://francois.aichelbaum.com/2012/05/16/chanson-pour-le-printemps" />
      <updated>2012-05-16T11:04:34+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/16/chanson-pour-le-printemps</id>
      <content type="html">&lt;p&gt;Il faut beau, les oiseaux chantent, le printemps se montre pour quelque jour. On va le fêter en musique avec &lt;a href=&quot;http://www.mymajorcompany.com/users/nadim&quot;&gt;Nad!m&lt;/a&gt; et sa chanson &lt;em&gt;Elle me prend la main&lt;/em&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Encore un artiste MMC que j’adore. Si c’est également votre cas, n’hésitez pas à le soutenir !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Ouh un WE sans rien dire</title>
      <link href="https://francois.aichelbaum.com/2012/05/14/ouh-un-we-sans-rien-dire" />
      <updated>2012-05-14T08:38:03+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/14/ouh-un-we-sans-rien-dire</id>
      <content type="html">&lt;p&gt;Certains vont me faire la tête à force … Aucun morceau matinal … On corrige ca de suite alors. C’est une nouvelle semaine, donc un nouveau départ avec &lt;a href=&quot;http://www.mymajorcompany.com/#!/milachka17/barbara-green&quot;&gt;Barbara Green&lt;/a&gt; et son &lt;em&gt;Repars à zéro&lt;/em&gt; :&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Vous pouvez soutenir et produire Barbara sur MMC. D’ailleurs changement de règles sur MMC qui impose qu’un artiste arrive à se faire produire en six mois sinon la porte de sortie lui sera présentée. Très expéditif comme méthode.
D’ailleurs petit lot de critique pour MMC :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;nouvelles règles qui font partir nombre d’artistes&lt;/li&gt;
  &lt;li&gt;nouvelles règles qui font fuir bon nombre de potentiels inscrits&lt;/li&gt;
  &lt;li&gt;les remises à cause de ces départs forcés n’inclus pas la remise des frais empochés par MMC (et il faut donc les repayer)&lt;/li&gt;
  &lt;li&gt;MMC considère qu’un artiste, avant d’arriver sur son site doit avoir des enregistrements audio et vidéo de bonne qualité et de bons moyens de comm (donc avoir fait une partie de la prod)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bref MMC, c’est de pire en pire … Et les artistes en patissent. Dommage.
Bon nouvelle semaine, je râle sur MMC mais il ne faut pas croire, je suis de très bonne humeur. Je prépare une bonne petite radio pour les artistes que je suis.
Ah, pi aussi, accessoirement, spéciale dédicace à son interprête pour le remercier de son concert de vendredi soir, à savoir &lt;a href=&quot;http://www.mymajorcompany.com/#!/fabienbourguet&quot;&gt;Fabien Bourguet&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Semaine courte mais super chargée au programme. Courage les gens !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Trêve de plaisanterie</title>
      <link href="https://francois.aichelbaum.com/2012/05/11/treve-de-plasanterie" />
      <updated>2012-05-11T08:35:35+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/11/treve-de-plasanterie</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/fabien_bourguet-150x150.jpg&quot; alt=&quot;Fabien Bourguet&quot; /&gt;{.left} Ce matin, j’ai choisi une chanson qui me touche. C’est celle de &lt;a href=&quot;http://www.mymajorcompany.com/#!/fabienbourguet/fabien-bourguet&quot;&gt;Fabien Bourguet&lt;/a&gt;, &lt;em&gt;un jour de trêve&lt;/em&gt;.
[video]http://www.youtube.com/watch?v=cdyK3IQ-v8Y[/video] Si ses chansons vous plaisent, soutenez-le sur MMC.
Au passage, pour les parisiens, il se produit ce soir 11 mai 2012 au Caveau des Artistes à 20h45. L’entrée est à 10€. Bon concert !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Dark Shadows : soyez psyché, vous serez cool</title>
      <link href="https://francois.aichelbaum.com/2012/05/10/soyez-psyche-vous-serez-cool" />
      <updated>2012-05-10T08:52:22+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/10/soyez-psyche-vous-serez-cool</id>
      <content type="html">&lt;p&gt;Ce matin j’ai voulu faire un double billet, mélangeant le film du jour, enfin … d’hier, et la chanson du jour. Bon, c’est sûr, trouver du psychédélique ou du Alice Cooper dans mes perles de MMC, malheureusement, ce n’est pas gagné. Par contre, trouver quelque chose de cool et qui collera au thème du film … Suffit de chercher &lt;a href=&quot;http://www.mymajorcompany.com/morphe-morphe&quot;&gt;Morphé&lt;/a&gt; et &lt;em&gt;Rose promise&lt;/em&gt; :&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Comme à l’habitude maintenant, Morphé est à produire sur MMC. Belle introduction à l’amour que cette chanson, non ? Et bien c’est aussi le thème de fond du dernier Tim Burton, &lt;em&gt;Dark Shadows&lt;/em&gt; :&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Certes ce n’est pas un univers entièrement sorti de l’imagination de Timmy, mais il faut avouer qu’il a particulièrement bien revu la &lt;a href=&quot;https://www.youtube.com/watch?v=aFgGywbxeRw&amp;amp;feature=results_video&amp;amp;playnext=1&amp;amp;list=PL37B0F4C0CB9D67EC&quot;&gt;série télévisée des années 60&lt;/a&gt;. Le psychédélique et torturé Tim Burton nous fait donc ressucité Barnabas Collins en 1972, en pleine guerre du Vietnam, avec ses mouvements Hippies et ses couleurs d’opposition.
Commandés par Tim Burton, ses acteurs fétiches, Helena Bonham Carter et Johnny Depp sont soutenus par Michelle Pfeiffer, qui me rappelle sans cesse l’une des sorcières de &lt;a href=&quot;https://www.youtube.com/watch?v=kldLBWaSuKU&quot;&gt;Stardust&lt;/a&gt; et Eva Green, pour les têtes d’affiche. Et, il faut dire, que ces dernières se sont toutes les deux plus que bien adaptées au style de la maison.
On rigole, on frissone, on dévore le popcorn bien trop vite avec ce mélange de &lt;a href=&quot;https://www.youtube.com/watch?v=v5Umz8UWTqk&quot;&gt;Famille Addams&lt;/a&gt; (de Barry Sonnenfeld) et &lt;a href=&quot;https://www.youtube.com/watch?v=xjZihSC42HI&quot;&gt;Charlie et la Chocolaterie&lt;/a&gt;, sauce Scooby, dépeignant cette réunion de famille sur thème de la malédiction amoureuse. Ah, l’Amour …
Ce film s’est fait attendre, surtout avec tout le buzz orchestré sur les médias sociaux. Dans ces conditions, il arrive trop souvent que l’on soit déçu (non je ne vise aucune super production américaine de ces dernières années offrant un nombre de suite trop important), mais pour le coup, le ravissement est là … et m’impose d’y retourner ASAP ! Après tout, c’est du Tim Burton, et il ne déçoit jamais (précision : sur un film de son cru … suivez mon regard …).
Pour terminer, en se faisant plaisir avec un Alice Cooper de 1972, ca sera le petit cadeau du matin :&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;A se demander si ce n’est pas un vampire immortel d’ailleurs …&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/darkshadows.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/darkshadows.jpg 480w, /assets/darkshadows.jpg 500w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>Petit réveil en douceur</title>
      <link href="https://francois.aichelbaum.com/2012/05/09/petit-reveil-en-douceur" />
      <updated>2012-05-09T07:42:01+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/09/petit-reveil-en-douceur</id>
      <content type="html">&lt;p&gt;Ce matin, c’est &lt;a href=&quot;http://www.mymajorcompany.com/luke-greenwald-1&quot;&gt;Luke Greenwald&lt;/a&gt; qui se charge de votre réveil avec &lt;em&gt;Tired and Wasted&lt;/em&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Comme à l’habitude, si vous appréciez, soutenez le sur MyMajorCompany.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Journée du souvenir en musique</title>
      <link href="https://francois.aichelbaum.com/2012/05/08/journee-du-souvenir-en-musique" />
      <updated>2012-05-08T10:47:14+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/08/journee-du-souvenir-en-musique</id>
      <content type="html">&lt;p&gt;C’est une journée du souvenir pour pas mal d’entre vous. Autant le faire avec un bon son pop-rock de chez nous. Voici donc &lt;a href=&quot;http://www.mymajorcompany.com/#!/mathyl5&quot;&gt;Mathyl&lt;/a&gt; avec &lt;em&gt;Rappelle-toi&lt;/em&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Si ses chansons vous plaisent, produisez-la sur MyMajorCompany.
NB: j’ai profité dans la semaine pour rajouter l’authentification via Facebook et Twitter pour ceux qui veulent commenter le blog.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>American Pie 4 : j&amp;#039;ai trop mangé de tartes</title>
      <link href="https://francois.aichelbaum.com/2012/05/07/jai-trop-mange-de-tartes" />
      <updated>2012-05-07T21:03:37+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/07/jai-trop-mange-de-tartes</id>
      <content type="html">&lt;p&gt;Ceux qui me connaissent vont se dire qu’il y a un énorme soucis : comme ai-je pu trop mangé de tartes, moi, l’estomac sur pattes, l’héritier de Gargantua ?! La faute aux &lt;em&gt;American Pies&lt;/em&gt;. Tout le monde connait les trois premiers volets sortis au cinéma entre 1999 et 2003. Entre 2005 et 2009, quatre autres nous ont nourris directement en vidéo, pour notre plus grand damne, pour ceux qui ont voulus garder un esprit adolescent.
Et bien cette année, 13 ans après le premier, l’équipe d’ados en rute revient sévire, à croire que leurs comptes en banque sont vide.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Impossible de se mettre dans le même état d’esprit qu’à l’époque. Le film reprend pourtant la même sauce, un peu plus osé (plus de nudité), un peu plus adultes (ils ont tous une vie maintenant) pour autant, la tarte ne cuit pas correctement.
Je ne dis pas que je n’ai pas laissé échappé quelques pouffements… C’est sûr, je ne m’égosillait pas comme le mec à deux places de moi. Mes neurones ne doivent pas se percuter de la même manière, je crois.
Quoi qu’il en soit, on est à une époque où la créativité d’Hollywood se borne à beaucoup de suite, remake, … mais là c’est trop. La nostalgie n’opère pas, le charme est absent, le déluré, lui, est radin. Un Projet X proposera bien meilleur spectacle. Même les trois premiers que je me suis refais avant la séance m’apporte plus de plaisir.
Donc non clairement le film de trop et une tarte mal préparée. Même le ton moralisateur des jeunes &lt;em&gt;gens&lt;/em&gt; maintenant mûrs qui aurait pu ressortir est partie voir un autre film.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Sauvons le jour</title>
      <link href="https://francois.aichelbaum.com/2012/05/07/sauvons-le-jour" />
      <updated>2012-05-07T15:01:08+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/07/sauvons-le-jour</id>
      <content type="html">&lt;p&gt;Journée plaisante pour certains. Journée morne pour d’autres.
Journée vivante pour les uns. Journée soporifique pour les autres.
Dans tous les cas, un peu de bon rock fait du bien, donc place à &lt;a href=&quot;http://www.mymajorcompany.com/annsom&quot;&gt;Ann’So M&lt;/a&gt; avec &lt;em&gt;Save the Day&lt;/em&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Vous aimez ? Parrainez-la sur MyMajorCompany !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Et une deuxième brochette</title>
      <link href="https://francois.aichelbaum.com/2012/05/05/et-une-deuxieme-brochette" />
      <updated>2012-05-05T12:56:52+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/05/et-une-deuxieme-brochette</id>
      <content type="html">&lt;p&gt;Hier je vous ai présenté mes petites perles :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.mymajorcompany.com/annsom&quot;&gt;Ann’So M&lt;/a&gt;&lt;/strong&gt; (pop/rock)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.mymajorcompany.com/luke-greenwald-1&quot;&gt;Luke Greenwald&lt;/a&gt;&lt;/strong&gt; (reggae/rock)&lt;/li&gt;
  &lt;li&gt;**&lt;a href=&quot;http://www.mymajorcompany.com/devon-graves&quot;&gt;Devon Graves&lt;/a&gt; (pop/folk) - &lt;a href=&quot;http://www.mymajorcompany.com/morphe-morphe&quot;&gt;Morphé&lt;/a&gt; à la guitare&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aujourd’hui je vous présente la légion :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;**&lt;a href=&quot;http://www.mymajorcompany.com/#!/remyash&quot;&gt;Ash of Sound&lt;/a&gt; (pop/rock)&lt;/li&gt;
&lt;/ul&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.mymajorcompany.com/#!/mathyl5&quot;&gt;Mathyl&lt;/a&gt;&lt;/strong&gt; (pop/rock)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vers &lt;a href=&quot;http://www.noomiz.com/Mathyl&quot;&gt;Noomiz&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.mymajorcompany.com/#!/jessieryanmusic/jessie-ryan-music&quot;&gt;Jessie Ryan&lt;/a&gt;&lt;/strong&gt; (pop/rock)&lt;/li&gt;
&lt;/ul&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.mymajorcompany.com/#!/songsofmaryjane/songs-of-maryjane&quot;&gt;Maryjane&lt;/a&gt;&lt;/strong&gt; (pop/folk)&lt;/li&gt;
&lt;/ul&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.mymajorcompany.com/#!/milachka17/barbara-green&quot;&gt;Barbara Green&lt;/a&gt;&lt;/strong&gt; (pop/rock)&lt;/li&gt;
&lt;/ul&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://www.mymajorcompany.com/#!/monsieur-plume/monsieur-plume&quot;&gt;Monsieur Plume&lt;/a&gt;&lt;/strong&gt; (chanson française)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vers &lt;a href=&quot;http://www.zicmeup.com/artiste/florentvergnes/sons#&quot;&gt;Zic Me Up&lt;/a&gt; (écoutez “&lt;em&gt;Le Sage&lt;/em&gt;”)&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Mon premier, une petite brochette de chanteurs dont j&amp;#039;espère beaucoup</title>
      <link href="https://francois.aichelbaum.com/2012/05/04/mon-premier-une-petite-brochette-de-chanteurs-dont-jespere-beaucoup" />
      <updated>2012-05-04T16:54:41+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/04/mon-premier-une-petite-brochette-de-chanteurs-dont-jespere-beaucoup</id>
      <content type="html">&lt;p&gt;Plutôt que de rédiger un long billet, je vous laisse apprécier les chanteurs (pas la qualité de l’enregistrement, bande de râleurs).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.mymajorcompany.com/annsom&quot;&gt;Ann’So M&lt;/a&gt;&lt;/strong&gt; (pop/rock)&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;** &lt;a href=&quot;http://www.mymajorcompany.com/devon-graves&quot;&gt;Devon Graves&lt;/a&gt;** (pop/folk) - &lt;a href=&quot;http://www.mymajorcompany.com/morphe-morphe&quot;&gt;Morphé&lt;/a&gt; à la guitare&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;** &lt;a href=&quot;http://www.mymajorcompany.com/luke-greenwald-1&quot;&gt;Luke Greenwald&lt;/a&gt;** (reggae/rock)&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Etre Parisien, c&amp;#039;est être un éternel incompris</title>
      <link href="https://francois.aichelbaum.com/2012/05/03/etre-parisien-cest-etre-un-eternel-incompris" />
      <updated>2012-05-03T01:05:11+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/05/03/etre-parisien-cest-etre-un-eternel-incompris</id>
      <content type="html">&lt;p&gt;Ce soir, pour changer, direction le théatre (de la Main d’Or). Au programme, un cours pour anglophone (ou pas) pour devenir parisien.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/howtobecomeparisian.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/howtobecomeparisian.jpg 480w, /assets/howtobecomeparisian.jpg 499w&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Bon, ok la représentation est entièrement en anglais et ce qui rébutera plus d’une personne (j’en ai une en tête, tiens, mais je n’ai pas dit mon dernier mot) sous le prétexte de la barrière de la langue : et bien c’est une erreur magistrale car Olivier Giraud est tellement vivant sur scène, que tout se comprend, peu importe la langue.
Alors, oui, tout de suite, vous allez me rétorquer, que nous, pauvres Parisiens que nous sommes (enfin pour ceux qui le sont, pour les autres, désolé mais tout le monde ne peut pas être parfait et on l’est déjà pour vous) allons être stéréotypés à outrance et dénigrés au possible … Et bien, oui nous sommes stéréotypés de nos caractères véridiques. A aucun moment, je n’ai pu réfuter que nous étions tel que présentés. Mais c’est tellement bon de rire de soit même et Olivier (bien que Bordelais, lui aussi ne peut pas être parfait…) gère ca avec brio. On se délecte de notre mauvais caractère ou nos mauvaises habitudes. Mais bon, le Parisien est un être à part et il n’y a pas meilleur spectacle pour le décrire.
Un cours magistral en huit chapitre, une interro à la fin, un plaisir sans fin et oui, je te confirme Olivier, je vais me souvenir encore de ton spectacle un moment. Par contre, au moment du sexe, là, désolé pour ton égo, mais je penserais à quelqu’un d’autre, car t’es trop peu mon genre.
Bon, je profite pour tirer mon chapeau :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;un soir de débat électoral, alors que les cafés/restos se plaignent de la faible clientèle, le théatre fait le plein&lt;/li&gt;
  &lt;li&gt;Olivier a cru en son projet et l’a mené au bout … et c’est un succès&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reste à trouver ceux que j’emmènera et je fais le serment qu’ils y seront et que je les accompagnerais avec le même plaisir.
Encore plus fier d’être Parisien après ce soir. Merci Olivier !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Je me vengerais !</title>
      <link href="https://francois.aichelbaum.com/2012/04/29/je-me-vengerais" />
      <updated>2012-04-29T01:08:27+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/04/29/je-me-vengerais</id>
      <content type="html">&lt;p&gt;Ce soir, le film, parce que c’est le week, parce que c’est du Marvel, parce que c’est du super Box Office américain, parce que j’aime, parce que c’était avec des fanas de comics … c’était ca :&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/46527.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/46527.jpg 480w, /assets/46527.jpg 620w&quot; /&gt;&lt;/p&gt;

&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;https://www.dailymotion.com/video/1vfwp_&quot; frameborder=&quot;0&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;Bon ok, celui là je l’ai vu un paquet de fois sur la 6 et il était à Panic Cinéma il y a deux semaines. J’étais voir le survitaminé, le génétiquement modifié, le body buildé, le déique, le sexy, le comique, le précis, l’amateur The Avengers, lancé par les Studios Marvel :&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Bon, on reprend certains personnages sous des traits connus (Iron Man, Captain America, Thor, Loki) et quelques nouveaux ou certains qui change à chaque nouvelle affiche cinématographique (suivez mon regard vers le géant vert). Pour autant, j’ai l’impression depuis l’été dernier, que personne n’a remarqué que Captain America est aussi la Torche Humaine (un des &lt;a href=&quot;https://www.youtube.com/watch?v=3V0h28qYPqQ&quot;&gt;4 Fantastiques&lt;/a&gt;) ou que l’Agent Hill est &lt;a href=&quot;https://www.youtube.com/watch?v=U01hsTwtc-c&quot;&gt;canadienne&lt;/a&gt; à ses heures perdues. Bon le premier me choque le plus vu que c’est la même license (&lt;em&gt;Marvel&lt;/em&gt;). C’est un peu comme Ryan Reynolds qui campe Green Lantern chez &lt;em&gt;DC&lt;/em&gt; et Deadpool chez &lt;em&gt;Marvel&lt;/em&gt;… Mais bon, ca ne change pas grand chose au spectacle.
Pour en revenir à nos vengeurs, il est de ces films qui nous rappellent pourquoi on aime aller au cinéma : pour y voir du spectacle, rire, frissoner, dévorer le popcorn trop vite tellement on est plongé dans l’action à tendre la main mécaniquement entre le paquet et la bouche … Et clairement, &lt;em&gt;Avengers&lt;/em&gt; est de ce genre de film. Oui, bien sûr, comme tout film où la 3D a été rajoutée en post-prod, on rumine de gâcher une part du plaisir là dedans. Reste que c’est beau, l’action claire en permanence, dynamique, un ton comique lié aux relations entre les différents protagoniste (que ca soir Tony Stark qui passe ton temps à titiller Bruce Banner, Captain America qui veut jouer son rôle de capitaine, Black Widow qui est une faible femme aussi mortelle que sexy et bien sûr le tandem entre le Viking et le Troll à savoir Thor/Hulk).
En résumé, un régal de divertissement, car il ne se raconte pas mais se vit …
Pour terminer, je résume pourquoi vous aller foncer au ciné :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;une phrase : “Hulk … Smash !”&lt;/li&gt;
&lt;/ul&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;une vidéo (&lt;strong&gt;ATTENTION&lt;/strong&gt; : énorme spoil donc cliquez à vos risques et péril) :&lt;/li&gt;
&lt;/ul&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Bons crus</title>
      <link href="https://francois.aichelbaum.com/2012/04/27/bons-crus" />
      <updated>2012-04-27T01:41:31+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/04/27/bons-crus</id>
      <content type="html">&lt;p&gt;Pour une fois, ce soir, je parle de vins. J’ai passé ma deuxième soirée découverte d’une cave très agréable sur Paris :&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/Logo_rvb_gris_72.jpg&quot; alt=&quot;Crus&quot; /&gt;&lt;/p&gt;

&lt;p&gt;C’est dans le 1er arrondissement à proximité de Châtelet. Un cadre plein de charme, un patron passionné et très agréable, une experte en vins passionnée et charmante, une plétore de bouteilles, un ravissement pour les papilles, un cours permanent pour les curieux, …
Au delà de la vente au détail, ils se font aussi grossistes mais également meneurs de soirées découvertes (publiques ou privées) : l’occasion de (re)découvrir les vins, de manière générale ou d’un producteur (ce soir, du Chablis). On déguste, on s’instruit … Un vrai plaisir sans nom ou se mélange les adjectifs et les plaisirs olfactifs et gustatifs tels un torrent d’émotions … le tout accompagné de plateaux de charcuteries et fromages aussi raffinés que les boissons servies.
A découvrir, à recommander, à partager et à profiter. Au passage, mon côté nerd adore le moteur de recherche “logique” de leur site, assez rare pour le remarquer.
Pour le plaisir :&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;A la vôtre !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>2 days in New York : perdu dans la traduction</title>
      <link href="https://francois.aichelbaum.com/2012/04/25/perdu-dans-la-traduction" />
      <updated>2012-04-25T22:23:05+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/04/25/perdu-dans-la-traduction</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/perdu-150x150.jpg&quot; alt=&quot;Perdu&quot; /&gt;{.left} Mieux vaut tard que jamais comme on dit ? Cela fait un mois que &lt;em&gt;2 days in New York&lt;/em&gt; est sorti dans les salles obscures françaises, deux semaines que je soutiens que j’irais le voir mais que mon planning est sans cesse modifié mais cette fois c’est fait ! J’ai fui lâchement l’inactivité lassive du soir pour me réfugier au chaud de la salle de projection pour le voir.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Quelques uns me parlaient d’un bon film, sans plus, on rigole “mais” … mais quoi ? Je ne sais pas. A force, j’ai cru finir devant un &lt;a href=&quot;https://www.youtube.com/watch?v=yYAS92XPvIM&quot;&gt;Lost in Translation&lt;/a&gt; familial et français. Mais ces critiques ne m’atteignent pas : j’adore la productive et vivante Julie Delpy et la piplette déconcertante qu’est Chris Rock …
Ah … les français, leurs râleries, leurs hypocrisies, leurs ignorances … c’est ainsi que la famille de &lt;em&gt;Marion&lt;/em&gt; (Julie Delpy) nous représente, comme les américains comme &lt;em&gt;Mingus&lt;/em&gt; (Chris Rock) nous dépeindraient avec nos saucissons et reblochons à faire passer tels de la contrebande. Mais au delà, sont surtout mis en exergue les a prioris, le brassage culturel, la vie de chacun, l’effet de la loi de Murphy et bien sûr … l’inexistence même des coïncidences ! Une nana disjonctée, un vrai &lt;em&gt;new yorker&lt;/em&gt;, une soeur psychotique/nympho/exhib, un boulet de service, un père qui ne débite pas un mot d’anglais, un fils un peu perdu et une fille qui finira comme la première Goth Black … Un bon groupe comme on les aime.
Tout est raconté à la légère, tel les mensonges que l’on raconte à un voisin chiant dans l’ascenceur pour s’en débarasser. Rien n’est pris au sérieux si ce n’est notre propre désespoir et justement que chacun se retrouve à un moment … perdu dans sa propre réalité. Chaque drame a son happy end.
Après tout, nous français, nous délectons avec plaisir et humour du malheur de nos congénaires, alors faisons-le avec panache et légèreté ! Julie Delpy nous offre une comédie à déguster à n’importe quelle heure.
Je cherche encore à comprendre la tentative de comparaison de &lt;em&gt;certains&lt;/em&gt; avec du &lt;em&gt;Woody Allen&lt;/em&gt;, à croire qu’il faut toujours comparé à certains dinosaures américains pour apprécier la fraicheur et légèreté de la nouvelle vague francaise…&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Ian égorge la magie</title>
      <link href="https://francois.aichelbaum.com/2012/04/24/ian-magie-gore" />
      <updated>2012-04-24T08:29:34+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/04/24/ian-magie-gore</id>
      <content type="html">&lt;p&gt;Roh c’est mal … je deviens un poisson rouge (et non un poisson clown, bande de mauvaises langues) : je vais voir un spectacle et j’oublie d’en parler. Pour le coup, c’est tout les lundis (me concernant c’était la semaine dernière), à la &lt;a href=&quot;http://cantada.net/&quot;&gt;Cantada&lt;/a&gt;, c’est gratuit et c’est :&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/ian.jpg&quot; alt=&quot;Ian Magie Gore&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Bon, tant qu’à faire, on est à la Cantada, donc on profite de la carte : absinthes, hypocras, charcuterie … Ca c’est moins gratuit mais pas trop cher et c’est bon !
Puis on descend voir le spectacle à la cave, on s’installe et on attend. Ian aussi attend : “parce que c’est à 20h30”. Pas 20h28. Pas 20h31. Non … 20h30 … faut pas louper l’heure de début ! Alors Ian et sa magie gore c’est quoi ? Voici son résumé sur &lt;a href=&quot;http://www.billetreduc.com/64090/evt.htm&quot;&gt;Billetreduc&lt;/a&gt; :&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Vous ne connaissez pas le cinema gore ?
Vous ne comprenez rien à la prestidigitation ?
Vous croyez que le mentaliste est un blondinet rebelle qui joue avec le cerveau des gens ?
Vous imaginez qu’un blockbuster est un film de chasseur de fantômes ?
Les tours de magies ne dérapent jamais ?
Je vous expliquerez tout pour devenir de vrais geeks !
Une soirée sang pour sang interactive!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Le ton ? la déconnade, le foirage, le kitch … puis viendra les &lt;em&gt;eurk&lt;/em&gt;, les &lt;em&gt;aie&lt;/em&gt;, les &lt;em&gt;ouch&lt;/em&gt;, les &lt;em&gt;oups&lt;/em&gt; … Quelques suprises qui ne sont ni de la magie ni du gore mais qui a priori donnent plus de frissons aux demoiselles à rassurer après coup !
Bref, une heure de show mélangeant tous les styles : ça tâche, c’est drôle, ça donne des frissons, ça titille la curiosité … A faire (et à refaire).
Bon petite astuce pour ceux qui ne s’encombrent pas de choses inutiles : il faut emmener un magnétoscope VHS Pal/Secam, une péritel, une multi-prise et une petite TV compatible. Là, votre soirée sera unique !
Accessoirement, un guest permanent : Cloclo était, est et sera là !
Si &lt;em&gt;Nils&lt;/em&gt; m’envoie enfin des photos, je les publierais ;)&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Ne paniquez pas au cinéma !</title>
      <link href="https://francois.aichelbaum.com/2012/04/22/ne-paniquez-pas-au-cinema" />
      <updated>2012-04-22T01:33:29+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/04/22/ne-paniquez-pas-au-cinema</id>
      <content type="html">&lt;p&gt;Ce soir, j’ai découvert &lt;a href=&quot;http://www.paniccinema.com/&quot;&gt;Panic! Cinema&lt;/a&gt; : c’est un rendez-vous hebdomadaire pour les cinéphiles et les non-cinéphiles, pour voir des films de genre. Le rendez-vous se passe à la Nouvelle Latina, rue du Temple, cadre extrêmement sympa.
Quand on voit la liste des films, on se dit que ca peut être sympa. Quand on voit que c’est 5€ en tarif unique, on se dit que ca devient intéressant. Quand on apprend que c’est compatible avec les cartes illmités UGC et Pass, on sait qu’on va sûrement y aller. Et là, on nous souffle que la bière est offre dans ce cadre super agréable avec des gens plus que sympas : plus aucune raison de fuir !
On arrive, on papote, on lève le coude … Puis on descend voir la pré-séance. La semaine passé, le film &lt;em&gt;aurait du être&lt;/em&gt; La revanche de Hulk : les organisateurs s’excusent d’avoir présenté &lt;em&gt;son mariage&lt;/em&gt; et se propose de corriger le tir en diffusant le bon film … en une minute. C’est … suffisant. S’ensuit une chanson de vampire “&lt;a href=&quot;https://www.youtube.com/watch?v=yGLwqtOF_XY&quot;&gt;First Date&lt;/a&gt;”, la bande annonce d’un nouveau film sur les vampires, “&lt;a href=&quot;https://www.youtube.com/watch?v=0IblzBerSFk&quot;&gt;Jesus VS les vampires&lt;/a&gt;”, &lt;a href=&quot;https://www.youtube.com/watch?v=f6QmgTQpLWU&quot;&gt;Blade Trinity en 5 secondes&lt;/a&gt;, puis bien sûr une fin alternative en dessin animé pour … &lt;a href=&quot;http://bcove.me/ss4kiz0j&quot;&gt;Twilight&lt;/a&gt; … Comment dire … On est lancé !
J’ai eu le plaisir d’y faire mon baptême avec le film Higanjima, film de vampires japonais, tiré d’un manga éponyme.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/higanjima-aff.jpg&quot; alt=&quot;Higanjima&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Pour avoir déjà goûter aux vampires sauce Yakitori avec &lt;a href=&quot;https://www.youtube.com/watch?v=tYnciEGup9k&quot;&gt;Blood&lt;/a&gt; (version anime), je n’ai pas franchement été dépaysé sur l’ambiance et le style graphique. Le film respecte les règles &lt;em&gt;du genre&lt;/em&gt; : un lieu reclu (une des 7000 îles japonaises), un vampire libéré de sa prison, un héros torturé, des gamins pleins d’espoirs désillusionés, du sang en surdosage, une nana sexy, …
Le film est rythmé, comique, sanglant, … parfois aberrant. Et c’est là que son charme s’opère. On apprécie son côté décallé qui reste sur les rails &lt;em&gt;de son genre&lt;/em&gt;.
Bref, une soirée parisienne gratuite et super plaisante, à refaire régulièrement : ca tombe bien, c’est toutes les semaines !&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Twixt, deux doigts coupent fin ...</title>
      <link href="https://francois.aichelbaum.com/2012/04/12/twixt-deux-doigts-coupent-fin" />
      <updated>2012-04-12T21:52:25+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/04/12/twixt-deux-doigts-coupent-fin</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/twix-150x150.gif&quot; alt=&quot;Twix&quot; /&gt;{.left} Le dernier Coppola que je me suis fait au ciné, c’était un film de la fille du &lt;em&gt;Maître&lt;/em&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=sU0oZsqeG_s&quot;&gt;Lost in Translation&lt;/a&gt; - Sofia Coppola, 2003). Le sentiment qui me revient à chaque fois que je pense à ce film ? “Hein ? Quoi ? Je suis où ? Il s’est passé quoi ?” … Bref, perdu … Je crois qu’en fait, c’est génétique chez eux. En tout cas, je suis dans le même état après Twixt.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;On suit donc un écrivain raté, un Stephen King de seconde classe, dominé par la mort de sa fille, guidé par Edgar Allan Poe, dans un univers présentant les traits d’un livre d’&lt;a href=&quot;https://www.youtube.com/watch?v=auw3_z9EyRg&quot;&gt;Alan Wake&lt;/a&gt; en plus … épuisé par l’alcool.
Tous les clichés sont donc réunis : un écrivain atteind du mal de la page blanche, à qui l’ont colle une étiquette de genre qu’il n’aime pas, torturé par la mort de sa fille dont il se culpabilisé, agressé en permanence par sa &lt;del&gt;sorcière&lt;/del&gt; femme, défoncé au mauvais alcool (et parfois un bon whisky onirique) et aux somnifères ; un bled paumé dans l’amérique profonde, traumatisé par un massacre ; des &lt;del&gt;bouseux&lt;/del&gt; autochtones rares et … bizarres ; un shérif qui rêve de son quart d’heure américain ; un agent qui ne pense qu’à son argent ; …
Bon c’est sûr, avec un environnement pareil, un synopsis qui tiens sur une carte de visite et un Val Kilmer toujours plus gros (il continue d’imiter son mentor, Marlon Brando), on part tout de suite sur de mauvaises bases avec ce film. Puis, on se rappelle que c’est le Maître à la baguette, que tous les détails comptent.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Twixt ? selon le wikipedia, c’est de l’&lt;em&gt;anglais archaïque&lt;/em&gt; pour dire “entre (deux choses)” ; on passe notre temps à hésiter : entre deux émotions (mal-être et agacement), entre deux mondes (monde vivant et monde onirique), entre deux films (un thriller et un film d’horreur)&lt;/li&gt;
  &lt;li&gt;Val Kilmer ? Un acteur qui avait un potentiel et qui l’a gâché (comme son personnage)&lt;/li&gt;
  &lt;li&gt;Le beffroi ? Sept cadrans, sept heures différentes, sept séquences, sept coups de cloche à sept reprise, sept cadavre d’enfants alors qu’il devrait y en avoir douze, on ne connait qu’un seul jour, le dimanche, le 7e … sept … toujours sept … à la manière du “Nevermore” du corbeau d’Egdar Poe … (au passage, le budget est de … 7 millions de dollars)&lt;/li&gt;
  &lt;li&gt;tout est intemporel : on ne sait plus l’heure à cause du beffroi, on ne sait plus la date avec les personnages qui sont présents à toutes les époques et dans les deux univers, …&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Au final, l’impression d’être perdu est clairement une manipulation voulue. On nous perd dans le fouilli ambiant, pour nous rattraper par des messages chocs, des images plus qu’expressive et toujours d’actualité, peu importe le pays. Assez perturbant car on ne sait jamais sur quel pied danser avec le film, et encore moins quoi ressentir après coup.&lt;/p&gt;

&lt;p&gt;Par contre, je n’avais pas vu autant de sang (dans la scène finale) depuis que Freddy Krueger avait tué &lt;a href=&quot;https://www.youtube.com/watch?v=p0rbyIMXBJA&quot;&gt;Johnny Depp&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Bon allez, pour la route, je ne pouvais pas ne pas la sortir :&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Perturbé, je suis incapable, même après ce billet, de dire si j’ai apprécié ou non ce film ; je suis clairement perdu avec … Mais Coppola reste le &lt;a href=&quot;https://www.youtube.com/watch?v=WaVZmo8CsGQ&quot;&gt;Maître&lt;/a&gt;. A voir si vous voulez arrêter l’alcool ou la drogue.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/twixt.jpg&quot; title=&quot;&quot; srcset=&quot; /assets/twixt.jpg 300w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>La croisière s&amp;#039;amuse ...</title>
      <link href="https://francois.aichelbaum.com/2012/04/11/la-croisiere-samuse" />
      <updated>2012-04-11T22:57:59+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/04/11/la-croisiere-samuse</id>
      <content type="html">&lt;p&gt;Ce soir j’ai &lt;em&gt;re&lt;/em&gt;découvert un monument de l’art audiovisuel cinématographique :&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Bon alors attention, le cast est super long, super non exhaustif et super pas dans l’ordre :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=3kzBwxQ39mM&quot;&gt;Olive et Tom&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=6Rf55GTEZ_E&quot;&gt;John Carter&lt;/a&gt; quand il s’est pas vu quand il a bu&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=AABvc7Y9hpE&quot;&gt;Mr Bean&lt;/a&gt; qui se la joue &lt;a href=&quot;https://www.youtube.com/watch?v=kT552wBkiuE&quot;&gt;Panthère Rose&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;les &lt;a href=&quot;https://www.youtube.com/watch?v=5SrpxsaMFQw&quot;&gt;Cowboys&lt;/a&gt; de l’espace revus par les &lt;a href=&quot;https://www.youtube.com/watch?v=InBXu-iY7cw&quot;&gt;Village People&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;un réal qui croit être le fils de &lt;a href=&quot;https://www.youtube.com/watch?v=NZZvtQtdbzM&quot;&gt;Rolland Emmerich&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;une BO bien rock’n’roll avec un magistral &lt;a href=&quot;https://www.youtube.com/watch?v=o018byLnMFM&quot;&gt;Thunderstruck&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;un &lt;a href=&quot;https://www.youtube.com/watch?v=snr3ajCFR9Y&quot;&gt;Qui Gon Jinn&lt;/a&gt; au regard de feu mais je me demande s’il ne porte pas déjà des couches&lt;/li&gt;
  &lt;li&gt;des &lt;a href=&quot;https://www.youtube.com/watch?v=oEYH28o3aOw&quot;&gt;jouets&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;une &lt;a href=&quot;https://www.youtube.com/watch?v=DE0jyoMggGQ&quot;&gt;chanteuse&lt;/a&gt; &lt;del&gt;pulpeuse mais fragile&lt;/del&gt; sur-tatouée, comme un vrai marines !&lt;/li&gt;
  &lt;li&gt;une &lt;a href=&quot;https://www.youtube.com/watch?v=qwpjSpc3loQ&quot;&gt;Barbie&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;une &lt;a href=&quot;https://www.youtube.com/watch?v=wBAfpjf5z2U&quot;&gt;bataille navale pour de faux&lt;/a&gt; parce que sinon ca fait bobo&lt;/li&gt;
  &lt;li&gt;des aliens sortis de &lt;a href=&quot;https://www.youtube.com/watch?v=ElxWObVu8GY&quot;&gt;Mass Effect&lt;/a&gt; armés par &lt;a href=&quot;https://www.youtube.com/watch?v=4nPReFao19g&quot;&gt;Lost Planet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;le tout à bord du &lt;a href=&quot;https://www.youtube.com/watch?v=m_wFEB4Oxlo&quot;&gt;Pacific Princess&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;pour mettre en valeur le patriotisme et le sacrifice de &lt;a href=&quot;https://www.youtube.com/watch?v=NIyksk8uiEo&quot;&gt;Pearl Harbor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;sans oublié, la référence à &lt;a href=&quot;https://www.youtube.com/watch?v=u_Mx1kA3irk&quot;&gt;Touche pas mon périscope&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;un survivor qui n’a pas oublié ses classes de &lt;a href=&quot;https://www.youtube.com/watch?v=DnN_ElUIW78&quot;&gt;Foot US&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;un &lt;a href=&quot;https://www.youtube.com/watch?v=nXCXw7R9pWc&quot;&gt;intello&lt;/a&gt;, ca a des lunettes, les chocottes et c’est pas doué&lt;/li&gt;
  &lt;li&gt;du &lt;a href=&quot;https://www.youtube.com/watch?v=xZ96tl5MrfU&quot;&gt;Fast and Furious &lt;del&gt;Hawaï&lt;/del&gt; Tokyo Drift&lt;/a&gt; à la mer&lt;/li&gt;
  &lt;li&gt;la séquence émotion des &lt;a href=&quot;https://www.youtube.com/watch?v=wLlmymHRNZg&quot;&gt;Rasta Rocket&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;l’autre séquence émotion perdue entre l’&lt;a href=&quot;https://www.youtube.com/watch?v=dJ3kwMq18-8&quot;&gt;entraide&lt;/a&gt; et la &lt;a href=&quot;https://www.youtube.com/watch?v=t8NR6n1nRMI&quot;&gt;douleur&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=g1-9vw8cUi8&quot;&gt;‘Ti Biscuit&lt;/a&gt; en patron de la Défense US&lt;/li&gt;
  &lt;li&gt;un &lt;a href=&quot;https://www.youtube.com/watch?v=PQaNxnXh68s&quot;&gt;burrito&lt;/a&gt; au poulet&lt;/li&gt;
  &lt;li&gt;c’est l’histoire de &lt;a href=&quot;https://www.youtube.com/watch?v=TRE7gINaS5o&quot;&gt;Dumb and Dumber&lt;/a&gt; qui ont un fils, comme s’appelle-t-il ?&lt;/li&gt;
  &lt;li&gt;l’armée ca vous &lt;a href=&quot;https://www.youtube.com/watch?v=V7SgZ2kbENg&quot;&gt;forme&lt;/a&gt; votre jeunesse dépravée&lt;/li&gt;
  &lt;li&gt;de &lt;a href=&quot;https://www.youtube.com/watch?v=STp1UtMrKR4&quot;&gt;beaux dialogues&lt;/a&gt; parce que ca motive (réf à un certain Mr J.)&lt;/li&gt;
  &lt;li&gt;au moins autant d’invités, de clins d’oeils involontaires (ou pas ?), de référence qu’il y a de séquences …&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ca donne&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;D’ailleurs, UGC le résume tout aussi bien en une image dans son mensuel :&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/ugc.png&quot; alt=&quot;UGC - Mensuel 04/12 - Battleship&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Je suis à jeun. Par contre, avec un budget annoncé de 200 millions de dollars pour transformé le jeu de la bataille navale en film, je pense que la Prod et la Réa ont bien profité pour se démonter le cerveau.
J’ai rarement vu une salle aussi hilare du début à la fin. C’est gros. C’est baveux. C’est énorme. C’est LA référence des super-grosses productions américaines pour les décennies à venir. C’est LE nanard du siècle.
Ok je partais avec l’idée d’aller voir un navet vu que le ruhbe m’empêche de connecter tous les neurones. Au final, j’en sors, je suis soigné, et me souviens de tout … Ils mettent des choses dans les clim’ des UGC ? Bref, c’est tout simplement énorme dans le n’importe quoi. Pas une séquence sans me rappeler un film, une série, un DA, un personnage, une chanson, … Et dès la première séquence, on vous fait comprendre que ce n’est pas votre cerveau qui déraille mais bien le film qui sera comme ca.
C’est Battlleship. C’est inclassable. C’est sorti aujourd’hui. C’est sain pour votre santé. Et moi, je pars me chercher un burrito au Jumbo … pardon, au poulet.&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/battleship.jpg&quot; title=&quot;&quot; srcset=&quot;/assets/resized/480/battleship.jpg 480w, /assets/battleship.jpg 600w&quot; /&gt;&lt;/p&gt;

</content>
    </entry>
  
    <entry>
      <title>A l&amp;#039;oeil d&amp;#039;aucun</title>
      <link href="https://francois.aichelbaum.com/2012/04/04/a-loeil-daucun" />
      <updated>2012-04-04T21:07:29+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/04/04/a-loeil-daucun</id>
      <content type="html">&lt;p&gt;&lt;img src=&quot;/assets/oeil-150x150.jpg&quot; alt=&quot;oeil&quot; /&gt;{.left} Alors ce soir au dîner, je vous propose la recette suivante :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;une base de &lt;a href=&quot;http://www.allocine.fr/series/ficheserie_gen_cserie=58.html&quot;&gt;24H Chrono&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;une bidasse bien française&lt;/li&gt;
  &lt;li&gt;un soupçon d’&lt;a href=&quot;http://fr.wikipedia.org/wiki/Anonymous_(collectif)&quot;&gt;Anonymous&lt;/a&gt; pour être à la mode&lt;/li&gt;
  &lt;li&gt;de la crème électorale&lt;/li&gt;
  &lt;li&gt;saupoudré d’un enregistrement rappelant par moment du &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=57410.html&quot;&gt;Saw&lt;/a&gt; …&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et on obtient … &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=191181.html&quot;&gt;Aux yeux de tous&lt;/a&gt;. Bon, c’est sûr, j’y suis allé avec un méchant &lt;em&gt;a priori&lt;/em&gt; sur le film et principalement la partie “hacking”. Faut être réaliste, nous remettre un coup d’&lt;em&gt;Anonymous&lt;/em&gt; pour faire passer la pillule c’était un peu trop à mon goût (mais c’est un autre débat).&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Le film démarre et je subis clairement les premières minutes, tant que notre cher Martin, le pirate, ne fait qu’être spectateur. Entre l’environnement permettant tout et n’importe quoi, la beauté dans la bascule des écrans, le tout accessoirisé par &lt;a href=&quot;http://www.microsoft.com/hardware/fr-fr&quot;&gt;Microsoft&lt;/a&gt; … et j’en passe des meilleurs … Quoi que non je ne passe pas …
La caméra passera rapidement et furtivement sur les écrans pour nous montrer des pseudos lignes de commande ou de code … et s’attardera parfois sur des écrans de toute beauté pour les connaisseurs. Un exemple ?
Dans le film :&lt;/p&gt;

&lt;p&gt;~~~~ {.shell .numberLines startFrom=1}
$ pstree -l 13278&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;rouge-gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
6
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;rouge-code&quot;&gt;&lt;pre&gt;
(on s&apos;en fout du nombre ...) donne en résultat ... une recherche sur la présence d&apos;une nana dans tous les hopitaux parisiens ... C&apos;est magique.
Dans la réalité, [pstree](http://manpagesfr.free.fr/man/man1/pstree.1.html) affiche un arbre des processus d&apos;un système Linux (un arbre permettant de savoir de quel programme un autre programme dérive, pour faire simple).

~~~~ {.shell .numberLines startFrom=1}
$ pstree
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;renvoie par exemple&lt;/p&gt;

&lt;p&gt;~~~~ {.shell .numberLines startFrom=1}
init─┬─atop
     ├─cron
     ├─6&lt;em&gt;[getty]
     ├─master─┬─anvil
     │ ├─pickup
     │ └─qmgr
     ├─mysqld_safe─┬─logger
     │ └─mysqld───19&lt;/em&gt;[{mysqld}]
     ├─openvpn
     ├─pdns_server─┬─pdns_server───11&lt;em&gt;[{pdns_server}]
     │ └─{pdns_server}
     ├─postgrey
     ├─snmpd
     ├─sshd───sshd───sshd───bash───sudo───su───bash───pstree
     ├─syslog-ng───syslog-ng
     └─udevd───2&lt;/em&gt;[udevd]
~~~~&lt;/p&gt;

&lt;p&gt;Le “-l” ? Il permet un affichage dit “long” donc avec plus d’infos. Le nombre ? De démarrer à un certain niveau directement.&lt;/p&gt;

&lt;p&gt;Bref on est à des années lumières d’une recherche sur des bases d’hôpitaux.
On continue ? Les caméras : peu importe que cela soit des caméras de sécurités, des globes de banque, de boutiques, etc etc … Toutes ont du son : c’est tout simplement parfait pour espionner.
On pourrait continuer longtemps sur les incohérences … Donc autant en faire abstraction sinon on sort direct de la salle de cinéma.
Passé un bon gros 20/30 minutes, le film se dynamise un peu et nous rappelle qu’on est au cinéma pour se divertir … L’histoire sur l’attentat suit son cours puis vient nous rappeler que n’importe quel média peut être manipuler … parfois (?) par les politiques. On pourrait se dire que le film tombe bien ? Peut être trop …
Quoi qu’il en soit, le film me laisse un goût amer, mélangeant les questions qu’on est en droit de se poser sur l’actualité de ces dernières semaines, à une mauvaise réalisation qui rend l’ensemble assez indigeste. Pour faire simple : le potentiel du film est clairement gâcher.
Ok le budget du film minime, sa sortie en salle assez confidentielle, mais bon :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;la réalisation ferait échouer le candidat aux épreuves universitaires&lt;/li&gt;
  &lt;li&gt;le hacking nous rappelle à quel point notre “science” ressemble à du chinois (d’ailleurs ils auraient mis des caractères à la &lt;a href=&quot;https://www.youtube.com/watch?v=8ze54ymmi1A&quot;&gt;Matrix&lt;/a&gt; j’aurais préféré …)&lt;/li&gt;
  &lt;li&gt;les effets visuels (l’explosion de l’attentat en tête de file) ne sont même pas au niveau des &lt;a href=&quot;http://www.gobelins.fr/&quot;&gt;Gobelins&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dommage : le synopsis était sympa, le parti pris de n’avoir que des images “de webcam/cam de sécurité/…” audacieux … mais le reste échoue lamentablement.
Bref, à voir si vous vous posez encore des questions sur ce que vous voyez dans les médias ou que vous voulez rire des &lt;em&gt;Script Kiddies&lt;/em&gt; membre des &lt;em&gt;Anonymous&lt;/em&gt; et dans tous les autres cas … A FUIR !&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Hop hop on garde le rythme</title>
      <link href="https://francois.aichelbaum.com/2012/03/29/hop-hop-on-garde-le-rythme" />
      <updated>2012-03-29T21:26:16+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/03/29/hop-hop-on-garde-le-rythme</id>
      <content type="html">&lt;p&gt;Bon aujourd’hui c’est un billet “&lt;a href=&quot;/category/feelings/&quot;&gt;Fellings&lt;/a&gt;” car je ne sais pas trop de quoi parler … Ah si, on peut lister ces deux derniers jours !&lt;/p&gt;

&lt;h2 id=&quot;cinéma--chronicle--the-wrath-of-the-titans&quot;&gt;Cinéma : Chronicle &amp;amp; the Wrath of the Titans&lt;/h2&gt;

&lt;p&gt;Alors Chronicle on va le résumé ainsi : un mix entre du &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=20268.html&quot;&gt;Projet Blairwitch&lt;/a&gt; pour l’ambiance visuel et le concept et du &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=6429.html&quot;&gt;Akira&lt;/a&gt; pour les mecs qui gagnent des pouvoirs et potentiellement pêtent un câble.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;On passe un bon moment même si l’on se doute dès le début de comment tout ca va finir … Mais on regarde … On regarde la nature humaine s’exprimer de deux manières différentes. Après tout : à de grands pouvoirs, de grandes responsabilités. On apprécie que la vidéo ne soit pas fouillie (ni trop quand elle doit l’être) contrairement à certains films à effets spéciaux récents… Pas grand chose à dire : juste à le prendre pour ce qu’il est : une vue de la nature humaine, une bonne ambiance, un bon trip, un bon moment.&lt;/p&gt;

&lt;p&gt;Par contre, la Colère des Titans… Alors ok, on fait tout de suite abstraction de la mythologie (de ce qu’on s’en souvient ou non) et on reste focalisée sur l’adaptation plus que libre faite par &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=127950.html&quot;&gt;le Choc des Titans&lt;/a&gt; version 2010 …&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Bon dès lors, on s’attend simplement à un gros spectacle en 3D … On en a presque pour son argent : l’action est là, les graphismes sont propres, la 3D … absente … Bon, si vous avez conservé vos lunettes UGC … on s’en fout presque …
Ce que je regrette ? La BO présente du &lt;a href=&quot;https://www.youtube.com/watch?v=m6VojYGrnpg%26ob%3Dav2n&quot;&gt;Marilyn Manson&lt;/a&gt; en bande son … Et bah non, on reste sur de la pure musique de film presque sans vie … Dommage, ca aurait pu donner un énorme plus d’avoir une OST avec ce genre de dynamisme … Mais bon …
Après, on rigolera clairement du jeu de certains acteurs vraiment pas convaincant (Liam Neeson &amp;amp; Ralph Fiennes en tête …) surtout que ce ne sont plus de jeunes premiers.
Bref, gros spectacle mais qui loupe clairement le coche de se démarquer sur “le reste” (3D, bande originale, jeu des acteurs…) puisqu’il est très clairement annoncé pour nous en mettre plein la vue … Dommage, il y avait de quoi en faire un vrai blockbuster avec ces petits plus … A ranger en nanard à gros budget qui se fera vite oublier … Jusqu’à la prochaine suite …&lt;/p&gt;

&lt;h2 id=&quot;au-taff--le-salon-cloud&quot;&gt;Au taff : le salon Cloud&lt;/h2&gt;

&lt;p&gt;Plus petit que par le passé. Moins animé que par le passé. Plus de presta (SSII et VRP) que par le passé (qui viennent vous démarcher, sans stand). Plus fouilli. Plus éreintant.
Et juste “Cloud”… Dommage, la partie Datacenter est presque oubliée, et le Green IT, passé de mode.
Pourtant, cela ramenait du meilleur monde et donnait beaucoup plus de matière à parler … Du coup, tout le monde vend la même chose, de la même manière, … Après, il y a quelques exceptions :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.iliad-entreprises.fr/&quot;&gt;nous&lt;/a&gt; déjà : normal j’y suis … je ne suis pas objectif (mais si on a quelque chose en plus quand même)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.outscale.com&quot;&gt;Outscale&lt;/a&gt; : qui a choisit un mode de fonctionnement très différent de la concurrence, des outils différents, puis bon, l’affectif joue puisque j’ai fait mes classes en infogérance avec ses fondateurs (David Gillard et Laurent Seror) et certains membres (Fred Jolliton en tête)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.cloudbees.com/&quot;&gt;CloudBees&lt;/a&gt; : même si je suis allergique au Java, leur approche et leur produit m’a interpelé au milieu du reste&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bon prochain coup, faut prévoir les masseuses par contre (pour moi) et mes pitbulls pour qu’on n’est pas à jeter le “spam” humain comme on finit par le faire à la fin de la journée …&lt;/p&gt;

&lt;h2 id=&quot;feelings-&quot;&gt;Feelings ?&lt;/h2&gt;

&lt;p&gt;Bon si je ne dis rien sur ce point, on va me dire que je ne communique pas, que je garde trop pour moi, que j’inquiète les gens, etc etc …
Donc je me retrouve, je suis positif … Juste que tout ces chamboulements dans ma vie perso font que j’ai envie d’autre chose niveau pro … Recommencer, pour tourner totalement la page sur ce passé.
Et quelque part, revoir d’anciens patrons/collègues chez qui j’ai fait mes classes d’infogérant et pour qui j’ai énormément de respect … fait que le côté nostalgie rappuie sur ce point …
Rajouté aux rêves et souvenirs que j’ai en ce moment …
Enfin bon, maître-mot du moment PO-SI-TIF !&lt;/p&gt;

&lt;p&gt;Bon et la vidéo qui me donne le sourire aujourd’hui ?&lt;/p&gt;
&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
    </entry>
  
    <entry>
      <title>Ce matin, revue de films</title>
      <link href="https://francois.aichelbaum.com/2012/03/27/ce-matin-revue-de-films" />
      <updated>2012-03-27T09:11:09+02:00</updated>
      <id>https://francois.aichelbaum.com/2012/03/27/ce-matin-revue-de-films</id>
      <content type="html">&lt;p&gt;Vu que je dois m’occuper au maximum l’esprit et me forcer à sortir, ma solution de facilité : profiter de ma carte UGC.
Du coup, en quatre jours, quatre films : &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=137263.html&quot;&gt;John Carter&lt;/a&gt;, &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=178074.html&quot;&gt;Target&lt;/a&gt;, &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=183556.html&quot;&gt;la Dame en Noir&lt;/a&gt; et &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=145083.html&quot;&gt;Hunger Games&lt;/a&gt;. Allons-y dans l’ordre.&lt;/p&gt;

&lt;h2 id=&quot;john-carter&quot;&gt;John Carter&lt;/h2&gt;

&lt;p&gt;On est vendredi soir, je déprime un peu beaucoup, je dois me changer FORTEMENT les idées : direction le ciné avec un film que je crois être un super nanard : &lt;em&gt;John Carter&lt;/em&gt;.
Pour ceux qui auraient la flemme de cliquer, il s’agit d’un film mélangeant action, aventure et science fiction, produit par Disney, réalisé par Andrew Stanton (un habitué de chez Pixar ayant déjà réalisé &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=126123.html&quot;&gt;Toy Story 3&lt;/a&gt;, &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=130368.html&quot;&gt;Là-Haut&lt;/a&gt;, &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=123734.html&quot;&gt;Wall-E&lt;/a&gt; et &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=46211.html&quot;&gt;Ratatouille&lt;/a&gt;) basé sur le premier volume du &lt;em&gt;Cycle de Mars&lt;/em&gt; d’Edgar Rice Burroughs (1917).
On résume ? une maison de production avec des moyens assez énorme, pour rester gentil, un réalisateur de films magnifiques, et un livre des premières heures de la SF donc avec la naïveté et les bases de l’époque (la rédaction du livre a commencé a priori en 1911 donc l’histoire est centenaire !). A la base, il y a de quoi promettre.
Puis on se souvient que Disney commet souvent des impairs : où sera-t-il aujourd’hui ? Dans toute la promo …&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Résultat, le film est prometteur, mais la promo a tout gâché et donc pas assez d’entrée … Qu’en est-il vraiment ? Et bien il en ressort un excellent divertissement à la qualité graphique Pixar ! Action rapide (et nette), un peu de romance légère façon macho début du XXe siècle, une épopée de gladiateur, … J’ai vu un mélange de &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=20754.html&quot;&gt;Star Wars - la Menace Fantôme&lt;/a&gt; (pour les graphismes), de &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=12811.html&quot;&gt;Flash Gordon&lt;/a&gt; (pour l’ambiance mélangeant les style et d’une autre époque) et tous les bons vieux péplum avec Charlton Heston ou Kirk Douglas !
Et pour ceux comme &lt;a href=&quot;http://odieuxconnard.wordpress.com/2012/03/22/john-cratere/&quot;&gt;Odieux Connard&lt;/a&gt;, qui vont voir le film sous LSD en s’arrêtant à la promo faite (oui je sais, faut le prendre au 50.000e degré son blog) : allez voir les &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=180509.html&quot;&gt;Chroniques de Mars&lt;/a&gt; et on reparle de &lt;em&gt;John Carter&lt;/em&gt; ! Bref, faites abstraction de la partie “Disney”, de toutes les affiches sur les abri-bus et dans le métro et profitez de ce film pour ce qu’il est : un énorme spectacle pour toute la famille reposant sur les origines de la SF un chevalier sans maître, une princesse, une guerre, un dragon/sorcier) avec de faux airs de nanard. Perso, je suis fan.&lt;/p&gt;

&lt;h2 id=&quot;target&quot;&gt;Target&lt;/h2&gt;

&lt;p&gt;Samedi je me suis dit, tant qu’à faire, autant prendre le rythme d’un film quotidien. Cogitant pas mal sur les histoires de triangle amoureux, je me rabas sur celui que je ne devrais pas : &lt;em&gt;Target&lt;/em&gt;. Réalisé par McG, j’ai confiance pour un bon spectacle. J’ai découvert McG via des séries et quelques adaptations : &lt;a href=&quot;http://www.serieslive.com/serie/chuck/1087/&quot;&gt;Chuck&lt;/a&gt;, &lt;a href=&quot;http://www.serieslive.com/serie/supernatural/628/&quot;&gt;Supernatural&lt;/a&gt;, &lt;a href=&quot;http://www.serieslive.com/serie/human-target-la-cible/2006/&quot;&gt;Human Target&lt;/a&gt; ou encore &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=57405.html&quot;&gt;Terminator Renaissance&lt;/a&gt; et les deux &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=27119.html&quot;&gt;Charlie’s Angels&lt;/a&gt;.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;C’est rythmé. C’est explosif. C’est sur-joué. C’est une relation amoureuse sous testostérone. Une fois qu’on a dit ca, le film est résumé. Une pointe d’humour quand même sinon ca serait fade… Mais oui, voilà tout le film. C’est le genre qu’on regarde et qu’on oublie quelques minutes après, même en ayant passé un bon moment. Je ne regrette pas, mais je n’irais pas le revoir volontairement.
L’histoire tient du sitcom. Le naturel des espions est artificiel. L’action présente est télescopée. Reste Reese que j’adore et la réalisation dynamique de McG pour sauver le film. J’en suis sorti avec un avis mitigé : peu digeste du fait des à peu près, diverti quand même, mais déçu de l’histoire et de la manière de la mener. Dommage.&lt;/p&gt;

&lt;h2 id=&quot;la-dame-en-noir&quot;&gt;La Dame en noir&lt;/h2&gt;

&lt;p&gt;Dimanche midi, il fait beau, on peut aller se cacher dans une salle obscure pour se faire peur : ca sera &lt;em&gt;la Dame en noir&lt;/em&gt;. Bon on connait Daniel Radcliffe pour l’avoir vu grandir à travers son rôle d’&lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=29276.html&quot;&gt;Harry Potter&lt;/a&gt;. Peut-être trop d’ailleurs ce qui fait que toute la promo a tourné autour de lui en nous laissant parfois apercevir un lien non désiré entre tout ca …&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Heureusement, aucun lien si ce n’est l’étiquette collée au visage de Daniel. Il va vraiment avoir du mal à s’en défaire. Pour autant, le film, adapation du livre éponyme est vraiment agréable a regarder. Tant qu’on n’a pas des wanabe-racaillettes en train de piailler à la moindre image … Bref …
Mon premier sentiment pendant le film : le même sentiment que lorsque j’ai vu &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=863.html&quot;&gt;Shining&lt;/a&gt; pour la première fois : curieux, en attente, sursautant sur mon siège même lorsque c’est prévisible … Le jeu des acteurs est convaincant, la réalisation propre, la photo un peu trop flou sur certaines scène, mais l’ambiance est clairement là et on apprécie le film.
Oui l’histoire est plus que prévisible, et on en arrive vite à se poser deux fins possibles et, comme tout impatient, attendre la fin pour savoir si l’on s’est trompé ou non. Mais on nous la fait déguster, apprécier, morceau par morceau, et on finit plus horrifié par la cause que par les conséquences. Pour ceux qui cherche une autre vision de l’épouvante, celle qui fait cogiter et non celle qui cherche à nous faire boire des litres de sang accompagnés de lambeaux de chair humaine.&lt;/p&gt;

&lt;h2 id=&quot;hunger-games&quot;&gt;Hunger Games&lt;/h2&gt;

&lt;p&gt;Alors là, j’étais le voir par curiosité avec un avis très mitigé. On est lundi soir, je suis crevé après une journée assez bizarre et j’ai lu deux/trois choses sur &lt;em&gt;Hunger Games&lt;/em&gt; mais surtout vu l’affiche. Pour la petite histoire, &lt;em&gt;Hunger Games&lt;/em&gt;, c’est avant tout une trilogie littéraire récente, primée, vendue à foison… On se dit tout de suite : il y a matière, surtout après avoir lu le synopsis ! Puis c’est un film. La première approche d’un film ? Son affiche et là, je remarque le détail, qui personnellement me refroidit : la position de la main de &lt;em&gt;Katniss&lt;/em&gt; pour tenir son arc : elle va avoir sacrément mal en décochant sa flèche ; donc soit ils ont oublié les conseillers dans la partie budget de la super production, soit il y a quelque chose. Réponse ? Il y a quelque chose et ca s’appelle l’incompétence de celui qui a sélectionner la photo car le conseiller ou la formation à l’archerie est bien présent.&lt;/p&gt;

&lt;style&gt;.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }&lt;/style&gt;

&lt;div class=&quot;embed-container&quot;&gt;    &lt;iframe title=&quot;YouTube video player&quot; width=&quot;640&quot; height=&quot;390&quot; src=&quot;//www.youtube.com/embed/&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;On se retrouve donc dans un monde post-rebellion où les Etats Unis ne sont plus (ça nous change déjà) et remplacé par un Etat divisé en secteurs. L’ambiance qui ressort de la gouvernance telle qu’elle nous ait présentée ? un mélange de &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=32224.html&quot;&gt;Running Man&lt;/a&gt;, &lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=253.html&quot;&gt;New York 1997&lt;/a&gt; (rah … Snake !) et d’&lt;a href=&quot;http://www.allocine.fr/film/fichefilm_gen_cfilm=132663.html&quot;&gt;Alice au Pays des Merveilles&lt;/a&gt; (j’hésite sur la version…). On se demande où on n’est au début … puis on commence à apprécier. A voir les volumes suivants.
Mais avant de pouvoir apprécier l’ambiance, on doit déjà arriver à digérer la réalisation caméra au poing qui donne plus le mal au crâne qu’autre chose : l’action générale est floue, on est perdu … Vu le réalisateur, pas étonnant dans le rendu, mais plus étonnant dans le choix. A croire qu’il s’est fait un film de guerre juste avant et qu’il s’est dit que ca serait bon pour dynamiser l’action. Monumentale erreur !
On pourra cependant apprécié &lt;em&gt;Lenny Kravitz&lt;/em&gt; même s’il a peu de scène. Remarque, on a toujours la sensatin qu’il a eu des coupures nets dans l’histoire et l’enchaînement des scènes, à croire que certains ont oublié qu’adaptation ne signifiait pas prendre un livre et sortir la hache …
Mais bon, on reste assez, on ignore le mouvement de caméra et les coupures, puis on commence à apprécier le film pour son potentiel et non pour son rendu. Dommage.
Autre point que je regrette ? la bande originale “&lt;a href=&quot;http://www.amazon.fr/Hunger-Games-District-digital-booklet/dp/B007GHW76U&quot;&gt;The Hunger Games : songs from District 12 and beyond&lt;/a&gt;” n’inclut AUCUNE chanson de Lenny … Roh !!!
Bon, vous allez vous dire que le film est nul, que je regrette … franchement, non. Oui je n’ai clairement pas apprécié la réalisation et certains choix fait, pour autant, le film me donne envie de découvrir les livres mais me fait aussi attendre avec impatience les deux prochains volets. J’ai passé deux très bonnes heures et si on me demandait d’accompagner quelqu’un et de me le refaire, j’accepterais.&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Autoconfiguration des mails</title>
      <link href="https://francois.aichelbaum.com/2012/03/23/autoconfiguration-des-mails" />
      <updated>2012-03-23T08:27:48+01:00</updated>
      <id>https://francois.aichelbaum.com/2012/03/23/autoconfiguration-des-mails</id>
      <content type="html">&lt;p&gt;Aujourd’hui j’ai retrouvé une motivation longtemps disparue pour bosser. Je me suis intéressé à des histoires de DNS et d’emails.
J’avais eu une remontée de quelques “soucis” lors de la configuration des comptes mails par certains hébergés (membres/clients) de l’association (&lt;a href=&quot;http://www.heimdall.net&quot;&gt;Heimdall.net&lt;/a&gt;). Je viens de mettre différentes choses en place.&lt;/p&gt;

&lt;h2 id=&quot;mise-à-jour-des-entrées-dns&quot;&gt;Mise à jour des entrées DNS&lt;/h2&gt;

&lt;p&gt;Il manquait quelques entrées DNS “classiques” : j’ai donc remis les CNAME correspondants pour les smtp.&lt;em&gt;, imap.&lt;/em&gt; et pop.*. De plus, leur absence pertubait certains hébergés donc d’une pierre deux coups.
J’ai aussi corrigé l’accès au webmail pour qu’on puisse à nouveau l’utiliser en &lt;a href=&quot;http://webmail.heimdall.net&quot;&gt;webmail.*&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;autoconfiguration-globale&quot;&gt;Autoconfiguration globale&lt;/h2&gt;

&lt;p&gt;Il y a une &lt;a href=&quot;http://tools.ietf.org/html/rfc6186&quot;&gt;RFC&lt;/a&gt; concernant l’utilisation des enregistrements DNS type SRV pour l’accès et l’envoi des emails. Les champs sont bien renseignés pour la zone heimdall.net :&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;proto &lt;span class=&quot;k&quot;&gt;in &lt;/span&gt;smtp imap pop3 submission&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do &lt;/span&gt;dig srv _&lt;span class=&quot;nv&quot;&gt;$proto&lt;/span&gt;._tcp.heimdall.net | &lt;span class=&quot;nb&quot;&gt;grep &lt;/span&gt;SRV | &lt;span class=&quot;nb&quot;&gt;tail&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-1&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;done&lt;/span&gt;
&lt;span class=&quot;go&quot;&gt;_smtp._tcp.heimdall.net. 79 IN SRV 0 1 25 mail.heimdall.net.
_imap._tcp.heimdall.net. 151 IN SRV 0 1 143 mail.heimdall.net.
_pop3._tcp.heimdall.net. 300 IN SRV 0 1 110 mail.heimdall.net.
_submission._tcp.heimdall.net. 300 IN SRV 0 1 587 mail.heimdall.net.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Par contre pour tester plus, vu que ce qui suit est déjà en place …&lt;/p&gt;

&lt;h2 id=&quot;autoconfiguration-pourthunderbird&quot;&gt;Autoconfiguration pour Thunderbird&lt;/h2&gt;

&lt;p&gt;J’ai également trouvé un moyen qui permet à &lt;a href=&quot;http://www.mozilla.org/fr/thunderbird/&quot;&gt;Thunderbird&lt;/a&gt; de se configuration automatiquement avec un simple fichier &lt;a href=&quot;http://autoconfig.heimdall.net/mail/config-v1.1.xml&quot;&gt;XML&lt;/a&gt;. A voir ce qu’on peut y rajouter, mais le résultat est assez bluffant déjà de base : on donne son adresse mail et son mot de passe à &lt;a href=&quot;http://www.mozilla.org/fr/thunderbird/&quot;&gt;Thunderbird&lt;/a&gt;, il fait le reste … j’adore !&lt;/p&gt;

&lt;h2 id=&quot;autoconfiguration-pour-outlook-2010&quot;&gt;Autoconfiguration pour Outlook 2010&lt;/h2&gt;

&lt;p&gt;Dans le même esprit que pour &lt;a href=&quot;http://www.mozilla.org/fr/thunderbird/&quot;&gt;Thunderbird&lt;/a&gt;, il existe un format &lt;a href=&quot;http://autodiscover.heimdall.net/autodiscover/autodiscover.xml&quot;&gt;XML&lt;/a&gt; pour la configuration automatique d’Outlook 2010. Plus qu’à trouver les outils MS pour tester …&lt;/p&gt;
</content>
    </entry>
  
    <entry>
      <title>Il faut bien un début !</title>
      <link href="https://francois.aichelbaum.com/2012/03/21/il-faut-bien-un-debut" />
      <updated>2012-03-21T19:06:19+01:00</updated>
      <id>https://francois.aichelbaum.com/2012/03/21/il-faut-bien-un-debut</id>
      <content type="html">&lt;p&gt;Un blog et tellement de questions.
Pourquoi un blog ? Pourquoi maintenant ? Que pourrais-je y écrire ? J’ai ré-ouvert ce domaine il y a quelques jours, et installé le wordpress peu après … Puis plus rien. Pour une raison très simple : ma vie actuelle est compliquée et douloureuse. Ceci a eu pour effet un isolement de ma part avec des pensées bien trop noires.
Mais bon, ma nature double fait que j’ai ouvert les yeux sur certaines choses ce matin. J’ai besoin de retrouver la solitude liée à mon côté loup pour pouvoir méditer, me retrouver avec moi-même et faire ce que j’ai à faire pour reprendre ma place en haut de la pyramide.
Cela ne va pas se faire en quelques secondes, et contrairement à ce que beaucoup pensent, certains d’entre nous n’ont pas besoin de se faire entourer car justement, l’étouffement lié peut être bien plus destructeur qu’autre chose.
Ce besoin de solitude vient aussi de mon sentiment de trahison d’une personne très proche, qui, même dans la situation actuelle, avec la guerre sans nom qu’elle m’a lancé avec son oubli volontaire, reste ma Lili. On pourrait considérer que c’est une énorme bétise de penser encore et toujours à elle mais bon, l’instinct est et restera supérieur ! Suffit de faire appel au reptilien pour éviter la souffrance.
Tout ceci pour justifier le délais de réflexion avant de déposer mes premiers mots. Les autres questions ? Le temps y fournira les réponses, comme à toute chose. Mais je ne prévois pas de restreindre ce blog à un seul et unique type de messages.
Aujourd’hui, j’entame un parcours initiatique pour parachever ma traversée du désert. Ma seule certitude ? Que je peux faire confiance à mon instinct, quoi qu’il arrive.&lt;/p&gt;
</content>
    </entry>
  
</feed>
