Hayek vs. Keynes – The Rap

Une production econstories.tv.


Hayek contre Keynes – VOSTfr
Uploaded by Liberte_Cherie

How to replace Drupal core’s tracker module using views

This can be pretty handy, especially if you would like to customize it a bit more and add other tabs. Here is a simple step-by-step tutorial:

  1. Disable Drupal’s original core tracker module.
  2. Install views.
  3. Go to Site Building > Views and enable the tracker view.
  4. In the tracker view, go to the Page item, and rename it for example as « Recent posts » in Basic settings > Name and Basic settings > Title.  Make sure you click on override before saving, so that you keep the original configuration in Defaults.
  5. In the Page settings fieldset, set Path to tracker/all and the type to Default menu tab. Set Title to Recent posts and Weight to -10. Click on update and when asked for the Parent menu item, select Normal menu item, and once again type Recent posts as Title. Click on update. We are done with this page type that will display the latest nodes modifications by all users. You can now enjoy the power of views and tweak the display to precisely show what you have in mind.
  6. In the left drop-down list, select Page and click Add display. Rename it for example as « My recent posts » in Basic settings > Name and Basic settings > Title.  Make sure you click on override before saving, so that you keep a version of the original values.
  7. In the Page settings fieldset, set Path to tracker/my and the type to Menu tab. Set Title to My recent posts and Weight to 1. Click on update.
  8. In the Arguments fieldset, click on Node: User posted or commented (if it doesn’t exist, add it), and as the Action to take if argument is not present, select Provide default argumentUser ID from logged in user.
  9. That’s it! The link to your new tracker view is mysite.com/tracker; two tabs will be displayed just like in the original core module. You may for example create a menu item that links to this page.

President Obama: ‘Never Again Will the American Taxpayer be Held Hostage by a Bank that is ‘Too Big to Fail’

It is good to hear that the White House has clearly understood how banks could divert from their original mission while still benefiting from the associated privileges. Now, it should not make us forget the big share of responsibility that the US government had by actively encouraging subprime mortgages.
Obama’s objectives to reshape the financial industry are ambitious. If he succeeds, it will not radically change where and how banks are making money, but hopefully add more transparency and ensure that they are not playing against taxpayers and their own customers.

Cloning objects with events in Visual Basic .NET

The easiest way to clone an object (deep copy) in .NET is to use the serialization functions available:

    Public Shared Function CloneObject(ByVal obj As Object) As Object
        If Not obj Is Nothing Then
            Dim bf = New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
            Dim fs = New System.IO.MemoryStream()
            bf.Serialize(fs, obj)
            fs.Seek(0, System.IO.SeekOrigin.Begin)
            Dim copy = CType(bf.Deserialize(fs), Object)
            fs.Close()
            Return copy
        Else
            Return Nothing
        End If
    End Function

Though the performance is not very good, for occasional operations it will do the job perfectly. However, I was confronted to the following problem: what if there are events inside the class, to which other objects have subscribed? I found several methods (and functions :-) ) on various places over the Internet; they basically were:

  • Implement ISerializable yourself (meaning you have to update it each time you modify the class);
  • Disconnect from events (retrieved using Reflection), serialize the object, and then reconnect the events (I could not make this working properly);
  • Implement a serialization surrogate;
  • Implement your events in a separate class that is not serialized;
  • Implement your events in a C# base class.

Plenty of potential solutions, but none of them was good enough for me. So I played around with Reflection and found something that nobody else might have done so far. For a cloning interface that does just a shallow copy, like what MemberwiseClone does, but without event, I wrote this:

    Public Function Clone() As Object Implements System.ICloneable.Clone
        Dim cl = New MyClassName(Me)
        'Here we don't capture events, only normal fields, including non public ones (private, protected...)
        Dim FldInfos() As Reflection.FieldInfo = Me.GetType.GetFields(Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Public Or Reflection.BindingFlags.NonPublic)
        For Each FldInfo As Reflection.FieldInfo In FldInfos
            FldInfo.SetValue(cl, FldInfo.GetValue(Me)) 'For serialization purpose we just need not to have events, so no need to perform a deep copy of the fields.
        Next
        Return cl
    End Function

Now if one of your class member is an object with events (or if you want to perform a deep copy), you should call its clone method (to be implemented the same way) when performing the FldInfo.SetValue, like this:

        For Each FldInfo As Reflection.FieldInfo In FldInfos
            If FldInfo.Name <> "MyObjectWithEvents" Then
                FldInfo.SetValue(cl, FldInfo.GetValue(Me)) 'It is not really necessary to clone a possible reference class member here for serialization purpose, we just need not to have events in the clone
            Else
                FldInfo.SetValue(cl, Me.MyObjectWithEvents.Clone())
            End If
        Next

If you have an object that is for example a dictionary of objects with events, you can call this:

        For Each FldInfo As Reflection.FieldInfo In FldInfos
            If FldInfo.Name <> "MyObjectsWithEventsDictionary" Then
                FldInfo.SetValue(cl, MyLib.CloneObject(FldInfo.GetValue(Me)))
            Else
                FldInfo.SetValue(cl, Me.MyObjectsWithEventsDictionary.ToDictionary(Of String, MyObjectWithEvent)(Function(entry) entry.Key, Function(entry) CType(entry.Value.Clone(), MyObjectWithEvent)))
            End If
        Next

Finally, if you intend to use the Clone interface to serialize objects, you should make sure you don’t include class members marked as NonSerialized():

        For Each FldInfo As Reflection.FieldInfo In FldInfos
            If Not FldInfo.IsNotSerialized Then
                FldInfo.SetValue(cl, FldInfo.GetValue(Me))
            End If
        Next

I hope this will give you an insight to build something more tailored to your needs. There are other optimizations I can already think of, such as implementing a recursive Clone function where you would just put your original object and a virgin instance of it as a reference, and get a perfect serializable deep copy, whatever the class members and sub class members are! This could become a universal Clone method…

Human rights: are they absolute?

Undoubtedly, human rights represent a way for people to feel safer in a naturally troubled world. This is why the following clip cannot be deemed as harmful and the Erwin Mayer Foundation eagerly supports the message it conveys:

However, except for those who derive them from their religion, mankind shall not forget that these rights do not arise from anything inherent to being human. No absolute principle might be invoked to justify them; though it obviously makes them less appealing and defendable, they are just a contract which clauses have been drafted by a self-proclaimed majority of human societies (who refer to themselves as the United Nations Organizations), and enforced by all those who believe it can improve the common good.

Therefore, it is important to remain careful on any modification of its arbitrary components. In the the video (1:53), I was particularly suprised to read « Copyright » as a human right (item 27). History shows that people can create and share without such a right. Some human rights are dependent on each other and on the context they target, hence you could easily build alternative civilization models with different rights deemed fundamental. « Social security » is another example: beyond the definition problem, what if a civilization has found a better or alternative approach to tackle the same problem, or has not actually considered it as a problem?

Most importantly, human rights, simply because they are rights, have a meaning only when applied to mankind as a group of consenting individuals. A single human, or even a single family, could not incorporate the concept of right, let alone human right, into their understanding of the world.

Human rights make sense because we live in a society, and this is probably the best proof of their not being inherent to each of us. We have the power to define what they are to make our world better, for they are the root, if not the rules, of a civilization.

Comment financer Wikipédia ?

Depuis plusieurs jours, je ne sais pas trop quoi penser de la manie de Wikipédia à bannir toute publicité, mais à occuper grassement l’espace normalement dédié aux articles pour afficher un bandeau « publicitaire » en vue de sa campagne de dons. Celui-ci restera au moins 1 mois d’après mes estimations. Voici à quoi cela ressemble :

Dons sur Wikipédia

Maintenant, que se passe-t-il si l’on utilise le même espace de manière plus productive ? Si l’on choisit par exemple Google Adwords pour financer Wikipédia durant le même intervalle de temps ? Cela donnerait à peu près ça :

Dons sur Wikipédia

Faisons un rapide calcul sur les bénéfices générés. D’après Tux-planet, en date du 10 octobre 2008, Wikipédia générait 10 milliards de pages vues par mois. Si on prend un CTR (click through rate, c’est à dire le nombre de clics pour 1000 impressions) de 1% (hypothèse pessimiste, vu que la fourchette va généralement jusqu’à 15%), et une moyenne de 5 cts par clic, la recette en un mois est donc de 10^10*0.01*0.05 = 5 millions de dollars (et un peu moins pour Google, qui serait certainement prêt à faire preuve d’une générosité en la matière :-) ). Voilà de quoi faire supporter le coût de Wikipédia à des annonceurs tout contents de toucher cette audience.

Et ça serait même l’occasion de supprimer cet horrible bandeau en haut de page pour plutôt mettre à la fin des articles une section « Liens commerciaux », que je cherche d’ailleurs souvent quand je lis certains articles. Discrétion et performance, encore une fois pour une durée pouvant rester identique à celle des campagnes de dons actuelles.

Ajoutons ma recommandation de longue date, de permettre aux détenteurs de compte de Wikipédia de choisir d’afficher ou non de la pub (pour ceux notamment qui n’ont pas les moyens de faire un don significatif), et la fondation Wikimedia deviendra bientôt aussi riche que sa consoeur de Mozilla…

A vos marques, prêts ? Cliquez !

120V vs. 230V : un concours d’électrocution

Tout a commencé par une question simple : pourquoi 230V ?

Je ne pouvais par la même occasion m’empêcher de me demander : pourquoi est-ce le double que les Etats-Unis ? Pourquoi les tensions électriques domestiques diffèrent-elles suivant les zones géographiques ?

Tensions électriques domestiques dans le monde

Tensions électriques domestiques dans le monde

Chronologiquement, il fallait d’abord se pencher sur le cas des Etats-Unis et a fortiori de l’Amérique du Nord pour trouver quelle fut la première tension électrique domestique choisie, et pourquoi.

« The penalty of leadership »

Les pionniers ont le privilège du choix, mais aussi l’impossibilité de se baser sur l’expérience pour le rendre optimal. Il semblerait que les Etats-Unis en aient ici fait les frais.

L’électricité était tout d’abord destinée à l’éclairage, via les ampoules mises au point par Thomas Edison (alias sa société General Electric), ainsi qu’aux moteurs. C’est ce même Edison qui déploya les premiers réseaux de courants continu (DC) suite à l’obtention d’un brevet en 1882. Ceux-ci avaient pour particularité d’être constitués de générateurs alimentant un réseau de distribution formé d’épais câbles conducteurs, et jamais distants de plus de 1 ou 2 kilomètres des clients. L’ensemble du réseau fonctionnait avec la même tension que celle appliquée aux bornes des appareils électriques finaux. Une lampe de 100V était ainsi reliée à un générateur de 110V, les 10V supplémentaires étant généralement perdus durant le transport. Le voltage (anglicisme pour tension électrique) était donc choisi en fonction des besoins des appareils connectés, en l’occurrence principalement les lampes. Celles-ci avaient été spécialement conçues pour que les filaments de carbone supportent une centaine de volts, afin de fournir un éclairage performant mais surtout compétitif face aux traditionnelles ampoules à gaz. 100V n’étaient en outre pas considérés comme présentant un risque majeur d’électrocution pour les utilisateurs.

Le système de distribution était de type monophasé 3 fils (3-wire, single-phase, mid-point neutral system) à +110V, 0V et -110V, devant ainsi permettre de réduire la quantité de cuivre utilisée à intensité constante. Cependant, cela ne répondait pas à la question de fond. En effet, ce système revenait à répartir l’intensité entre le + et le -, chaque fil ayant une tension absolue de 110V. Avec un seul fil transportant le courant et de tension 220V, la perte est de P = RI² (car P = UI et U = RI), P étant la puissance (donc multipliée par une durée pour obtenir le nombre de joules dissipées), U la tension, I l’intensité et R la résistance du fil. Avec deux fils, la perte est de P = R_2*(I/2)²+R_2*(I/2)² = R_2*I/2. Si R_2 = R_1, on a bien R_2*I²/2 < R_1*I², mais on utilise deux fois plus de cuivre !
Pour diviser au moins par deux la quantité de cuivre utilisée (le câble peut être assimilé à un cylindre), à longueur constante, il faut diviser le diamètre des câbles au moins par la racine carrée de 2.
Or, la résistance d’un fil est inversement proportionnelle à l’aire de sa section, c’est à dire au carré de son diamètre (si le fil a une section circulaire). Par conséquent, à longueur constante, si l’on divise le diamètre de chaque câble par la racine carrée de 2, on multiplie par 2 sa résistance et ayant ainsi R_2 = 2*R_1, on a finalement R_2*I²/2 = R_1*I², c’est-à-dire aucun gain par rapport à un système monophasé 2 fils.

Toujours est-il que les lampes pouvaient fonctionner entre soit +110 soit -110V et le conducteur neutre à 0V, ce dernier ne servant qu’à transporter la différence de courant entre les sources + et – (unbalanced current).

Malgré cette supposée innovation d’un système monophasé 3 fils (dont je ne vois pas l’intérêt), la perte de tension liée à la résistance des fils de cuivre était si haute que les générateurs ne pouvaient être à plus d’1 mile de la charge. Et des voltages plus importants ne pouvaient pas être si facilement utilisés avec le système de courant continu (DC), défendu par Edison durant la Guerre des courants, car il n’existait tout simplement pas de technologie efficace et à prix raisonnable permettant de réduire significativement la tension (transformateur).

Suite à la victoire in extremis de Westinghouse et Nicola Tesla (voir ici les détails de cet épisode épique de l’histoire de l’électricité), instituant le règne du courant alternatif (AC), le paysage électrique américain changea significativement. Un des principaux avantages du courant alternatif était de pouvoir facilement transformer un très haut voltage en un bas voltage, et donc de permettre le transport de l’électricité sur des grandes distances à très haut voltage (jusqu’à 765kV sur certaines lignes) avec des pertes bien moindres (divisées par le carré de l’augmentation du voltage, à courant constant, d’après la loi d’Ohm U=RI²). Mais malgré la préconisation de Tesla d’utiliser un voltage de 240V (suite à des recherches théoriques), presque suivie (220V) par la plupart des pays d’Europe (qui en étaient encore aux balbutiements de l’électricité et ne faisaient donc pas face à un coût rhédibitoire), aux Etats-Unis il était déjà trop tard pour changer la tension domestique de 120V (au total 240V) mise en place par Edison et pour laquelle tous les équipements ménagers avaient été conçus.

On notera toutefois que Westinghouse suivit la recommandation de Tesla concernant la fréquence utilisée (60 Hz, c’est à dire 60 changements de sens du courant par seconde), qui avait été auparavant méprisée par Edison pour lequel Tesla travaillait. Malgré ses 220V (étant aujourd’hui devenus 230V pour réduire encore les pertes et dans un souci d’harmonisation européen), l’Europe et bien d’autres pays n’ont hélas pas adopté cette fréquence, une juste revanche pour les Etats-Unis, vu les conséquences significatives de ce mauvais choix.

When the German company AEG built the first European generating facility, its engineers decided to fix the frequency at 50 Hz, because the number 60 didn’t fit the metric standard unit sequence (1, 2, 5). At that time, AEG had a virtual monopoly and their standard spread to the rest of the continent. In Britain, differing frequencies proliferated, and only after World War II the 50-cycle standard was established. A mistake, however.

Not only is 50 Hz 20% less effective in generation, it is 10-15% less efficient in transmission, it requires up to 30% larger windings and magnetic core materials in transformer construction. Electric motors are much less efficient at the lower frequency, and must also be made more robust to handle the electrical losses and the extra heat generated. Today, only a handful of countries (Antigua, Guyana, Peru, the Philippines, South Korea and the Leeward Islands) follow Tesla’s advice and use the 60 Hz frequency together with a voltage of 220-240 V. Source

Cela étant, les Etats-Unis peuvent tout à fait obtenir du 240V de leurs prises électriques. La plupart des climatisations, frigidaires, et autres appareils grands consommateurs d’électricité sont ainsi reliés aux deux fils de 120V et -120V (soit 240V de différentiel), plutôt qu’à l’un des deux et au neutre. Les appareils peu gourmands quant à eux se satisfont d’une tension de 120V (source). La plupart des appareils européens nécessitant un transformateur AC/DC (ordinateurs portables, lampes halogènes…), puisqu’ils ont de toutes façons un boîtier dédié à la transformation du courant, acceptent généralement le 120V et le 50Hz. Mais ce ne serait probablement pas le cas d’une machine à laver.

Quant aux prises américaines délivrant une tension de 240V, il n’est pas conseillé de brancher des équipements européens dessus car le système de 240V aux Etats-Unis est réparti sur 2 fils de tension opposée contre 1 seul de 230V en Europe (source, une justification théorique serait cependant bienvenue). Attention, malgré cette séparation en deux fils autour du neutre pour le système américain, il reste cependant bien monophasé (2 fils n’impliquent pas du diphasé). D’ailleurs, en Europe la tension maximum disponible est en réalité de 400-460V (230V sur chaque fil) ! Pour l’exploiter (par exemple dans le cas d’une pompe à chaleur), il est généralement nécessaire de passer en triphasé, c’est à dire demander un raccord à l’opérateur d’électricité sur 3 phases et adapter son système électrique domestique en conséquence. Un dispositif vorace pourra ainsi être branché sur 2 phases (différentiel de 400-460V) plutôt que sur une seule et le neutre (différentiel de 230V) (Source).

3-wire monophase system in the USA and in Europe
3-wire monophase system in the USA and in Europe

Dans quelles prises électriques est-il le plus conseillé d’insérer ses doigts ?

Ayant donc constitué une réponse satisfaisante à ma question initiale, et appris de nombreuses choses au passage sur les générateurs et autres sujets liés de près ou de loin (Tyrannie des liens hypertextes), je me devais alors de répondre définitivement à un nouveau problème pour lequel je fus surpris par la pléthore d’informations souvent spéculatives, incomplètes ou erronées : le 120V est-il moins dangereux que le 230V ?

Vous comprendrez qu’un « oui » ou un « non » ne sont pas de nature à combler ma curiosité, pas plus que le fait d’insérer mes doigts dans la prise de courant mexicaine 120V à 40 cm de mon clavier d’ordinateur (mes doigts sont trop gros de toute façon).

Dans mon infinie miséricorde, je vais vous épargner tous les arguments spécieux en faveur du 120V, et vous exposer mes conclusions, que j’espère n’être ni spéculatives, ni incomplètes, ni erronnées. Peut-être sauverai-je ainsi des vies ;-) .

Encore une fois, nous partirons de la loi d’Ohm. Nous savons que lorsqu’un humain relié à la terre touche un conducteur électrique de tension U, la tension traversant son corps est précisément de U. En revanche, le courant le traversant n’est pas nécessairement égal à l’intensité I du conducteur. Comme pour n’importe quel appareil électrique, le courant « tiré » (drawn) du circuit est dérivé de U = RI, où R est la résistance des appareils électriques jalonnant ce circuit. On a I = U/R. Ce qui est sûr ici, c’est que le courant « tiré » ne peut être supérieur à I.

Si la fréquence d’inversion du sens du courant alternatif (50 Hz en Europe, 60 Hz en Amérique du Nord et dans quelques autres pays) est particulièrement néfaste du fait de son entrée en résonance avec le système nerveux, les effets ne varient pas significativement pour 10 Hz de différence (même si 60 Hz est considéré comme plus dangereux). On notera simplement qu’avec un tel courant alternatif, la fibrillation cardiaque peut advenir avec un courant aussi faible que 60 mA, contre 300 à 500 mA pour le courant continu (source). C’était l’un des arguments mis en avant par Edison lors de la Guerre des Courants, allant jusqu’à électrocuter des animaux sur la place publique pour prouver la dangerosité de l’AC, et rebaptiser le terme « électrocuté » en « westinghoused ».

Grâce à la relation I = U/R, et sachant que les dommages subis par un organisme électrocuté augmentent avec l’ampérage le traversant, il ne nous manque plus que R (résistance du corps, fixe) pour calculer I en fonction des différents voltages. Selon des sources concordantes, celle-ci varie entre 1 000 Ohms (peau humide), 10 000 Ohms (peau sèche) et même jusqu’à 100 000 Ohms (peau très sèche).

On obtient ainsi le tableau suivant :


Tension

Intensité de courant traversant le corps

I si R = 1 000

R = 10 000

R = 100 000

120V

120 mA

12 mA

1,2 mA

230V

230 mA

23 mA

2,3 mA

On remarque immédiatement que l’intensité I disponible a en réalité peu d’importance pour évaluer le danger des prises électriques. En effet, même si l’intensité délivrée par le 230V est environ deux fois inférieure à celle délivrée par du 120V, l’ordre de grandeur est toujours l’ampère (A) voire la dizaine d’ampères, ce qui équivaut quasiment à un courant infini disponible pour s’électrocuter (il suffit de quelques dizaines de milliampères pour subir une électrocution létale, ce qui est bien en-dessous du courant disponible, aussi bien avec le système 120V que 230V). Au mieux peut-on peut-être penser qu’avec du 230V, l’ampérage disponible (10A pour une installation domestique standard) serait insuffisant pour tuer un pachyderme à la peau épaisse. Pour l’homme, ce n’est donc pas parce que la division par deux de la tension sur le réseau est compensée par le doublement de l’ampérage disponible que la quantité d’énergie absorbée en cas de choc est identique. On évince là une des assertions spécieuses avancées par de nombreuses bonnes volontés.

Ainsi, pour un ampérage disponible sur le réseau dans les deux cas bien supérieur au courant létal, le 230V est dans l’absolu deux fois plus dangereux que le 120V. Dans la pratique, il convient bien sûr d’apprécier l’effet de seuil (Source) :


Courant électrique (mA)

Effet physiologique

1 mA

Seuil à partir duquel un choc est ressenti, douleur

5 mA

Seuil maximum de courant non dangereux

10-20 mA

Contraction musculaire soutenue. Impossible de lâcher le câble par exemple.

50 mA

Interférences ventriculaires, difficultés respiratoires

100 300 mA

Fibrillation ventriculaire. Létal.

6000 mA

Contraction ventriculaire soutenue suivie d’un rythme cardiaque normal.

Ce sont les paramètres d’un défibrillateur cardiaque. Paralysie respiratoire temporaire et brûlures internes possibles

On peut donc en conclure que si globalement le 120V limite les risques d’électrocution mortelle (dans le cas d’une peau suffisamment sèche), cela ne reste probablement qu’un effet positif statistique, et ne saurait encourager les utilisateurs à moins de prudence avec du 120V qu’avec du 230V. D’autant que les dommages physiologiques dépendent en grande partie de la durée de contact avec le conducteur ! Si votre main, même relativement sèche, enserre un câble américain pendant 10 secondes, vous aurez très certainement la chance de pouvoir vous plaindre directement auprès de M. Edison !

How to sort WordPress posts by modified date instead of published date?

Here is the simple solution. Simply use this:

<?php query_posts($query_string . '&orderby=modified&order=desc'); ?>

before where the Loop checks for posts:

<?php /* If there are any posts: */
if (have_posts()) ...
?>

It basically adds a condition to the Loop. Enjoy!

ASIN to EAN converter

Since I was needing such a product codes converter and I couldn’t find one on the web, I have decided to do it by myself… It’s always a challenge to learn a new API (here I used Amazon Web Services). But when it works fine, you are really API (thanks Youcef for the pun)!

If this tool was helpful for you, don’t hesitate to let me know by posting a comment. If you think you were lucky to find it, don’t forget to thank Good on http://www.kamashanti.org.

Please feel free to report any bug you might encounter, or suggest improvements. The source code is now available here.

You can input several codes by separating them with « ; » (semicolumn). The output will be one column with the original code and another with the converted code.

Comment vendre ses productions musicales sur Itunes, Napster, etc. ?

C’est en voyant à quelle vitesse un jeune artiste plein de talent surnommé Mattrach avait pu diffuser ses oeuvres sur l’Itunes Music Store, Amazon, Napster, Rhapsody & consorts que je me suis dit que ça ne devait pas être si compliqué que ça et ai cherché le pourquoi du comment. La réponse en un URL : http://cdbaby.net/.

CD Baby has helped over 150,000 artists sell over $65 million in physical CDs, digital downloads, and live sales since 1998.
For digital sales, we keep only a 9% cut, paying 91% of all income directly to the artist. For physical CDs, we keep $4 per CD sold.
Your CD will be available to over 2400 traditional retail CD stores in the USA. You get paid full retail price for these sales.

Pour $35 de setup fees, tout artiste qui le mérite (enfin j’espère qu’il font un minimum de sélection) peut accéder à ce canal de diffusion pour le moins conséquent.
Tous mes voeux de succès à Mattrach ! Puisqu’il est gentil, il nous offre ce petit remix de Noël que vous pouvez acheter ici :

Update (08/10/2009) : Je découvre aujourd’hui Routenote.com qui a bien l’air de présenter encore plus d’avantages que les précédents !

Réchauffement climatique : obscurité ou obscurantisme ?

La complaisance dans un consensus mou n’est pas propice à l’établissement d’une vérité scientifique. Qu’on l’oublie, et c’est bientôt tout l’édifice qui s’écroule.

Le professeur Vincent Courtillot, géologue physicien et membre de l’académie des sciences, s’est incidemment intéressé de plus près au réchauffement climatique. Il vient au secours de la climatologie, en apportant aux théories à la mode une réfutabilité aussi essentielle que scandaleusement qualifiée d’hérésie par les médias, les politiciens, mais surtout ceux-là mêmes qui se prétendent en être les plus illustres experts.

Il est temps que la masse bascule. Les leaders d’opinion suivront. Il n’existe pas d’intérêt matériel pour une théorie ou pour une autre, simplement une égotisation massive des enjeux.
Les marchés boursiers nous y ont habitué : malheur à celui qui défie la tendance avant que tout le monde s’accorde à reconnaître que le roi est nu. Nous ignorons quand la bulle explosera, notre seule certitude est qu’une théorie coupée de ses fondements scientifiques finit toujours par tirer sa révérence. Il n’y aura pas de choc, pas de ruines, pas de victimes. La masse ne s’enrichit pas à cultiver son irréaliste culpabilité ; en devenant sa propre victime, elle appauvrit sa capacité à résoudre ses véritables problèmes.

Dans cette conférence donnée à l’Université de Nantes, Vincent Courtillot tente d’apporter une nouvelle lecture aux données brutes dont nous disposons, et qui ont été malmenées par des experts auto-proclamés pendant de si longues années. Loin du sensationnalisme d’un Al Gore ou de Channel 4, c’est ici un discours que l’on peut saluer tant pour sa rigueur que pour sa clarté. En un mot, une contribution véritablement constructive au débat, sans polémique. Ceux qui auront besoin de plus de détails pourront étancher leur curiosité en consultant les nombreuses références sur la page professionnelle de Vincent Courtillot.

  • Ecouter la conférence (durée : 51 min.) :
  •  
    télécharger ce mp3 |ajouter à votre site

  • Visionner la conférence (durée : 51 min.) :

  • ajouter à votre site

Un hébergeur bon marché : 3iX

Vous en avez marre des hébergeurs avec un support client fictif et un support MySQL de complaisance comme OVH, ou qui doublent leurs prix pour ensuite faire 50% de réduction pendant 3 mois à l’occasion de leurs vingtième anniversaire (1and1) ? Vous vous êtes fait avoir par des hébergeurs soit-disant spécialisés pour les « professionnels », mais qui vous facturent allègrement plusieurs centaines d’euros par an pour un site vitrine sans langage serveur ?

Non qu’il soit dans mes habitudes de faire de la publicité, mais parce que je vous souhaite de ne pas faire les mauvais choix que j’ai pu faire au début, je vous invite vivement à aller voir l’offre de 3iX. Au menu, tout ce dont vous pouvez avoir besoin, un support client réactif, et un prix très raisonnable. Je vous conseille même d’opter pour le plan haut de gamme, qui vous permettra d’héberger tous vos sites avec le même hébergement, pour un coût par site défiant toute concurrence.

C’est par ici !

Release of source code for my ASIN to EAN, and EAN to ASIN converter!

Following this post, you were many to ask me for the source code of my ASIN to EAN and EAN to ASIN converter, I have decided to make it publicly available. I only dare ask you to do the same if you improve it or add new functionalities, such as a mass conversion (which is still on my roadmap, but if you do it before I’ll be glad not having to do it).

There are basically 4 files that are doing the job: 1 for the processing (+1 to send the requests), 1 for the UI structure, and 1 for CSS styles.
(Lire la suite…)

WPF or not WPF?

I would not say it is a new paradigm, but the least we have to recognize is that Windows Presentation Foundation helps building more good-looking applications than our beloved Winforms

Stay hungry, Stay foolish!

I would like to share with you this very insightful commencement address that Steve Jobs, CEO of Apple Computers and Pixar Animation Studio delivered for the Stanford Graduation Ceremony, on June 12, 2005. Stay inspired.

The original text can be found here and a French translation there.

Free 10% discount for United Airlines flights

For anyone who plans to travel with United Airlines, the Erwin Mayer Foundation would like to donate a 10% discount voucher. It is valid till the 27th august 2009 (you are required to buy a ticket before this date, but the date of the flight can be later).

First come, first served, this voucher should be only valid once. If you have used it, please write it as a comment so that this post can be updated.

All the conditions and the code are detailed in the document here: United Airlines 10% Voucher.

If this helped you, don’t forget to thanks Goodness here or to support a cause like this one.

Créer une FAQ facile à mettre à jour en Javascript

Souhaitant implémenter une FAQ basique mais fonctionnelle sur un site, et n’ayant pas envie de réinventer la roue, j’ai cherché rapidement des codes tout faits, sans grand succès. Ce tutoriel (qui ne marchait pas chez moi) m’a donc inspiré et j’ai tout repris à zéro. Le résultat est relativement light (pas de librairie Ajax externe), malgré le workaround que j’ai dû trouver pour pallier la méthode setAttribute(« onclick », »… ») qui ne marche pas sur IE7.

Le principe est simple, à chaque balise h4 correspond un seul et unique paragraphe p (pour sauter des lignes, utiliser <br />). Il suffit d’ajouter des couples (h4,p) à la balise « faqs » pour que le javascript s’occupe du côté dynamique. L’intérêt est de ne pas avoir à recourir à une base de données pour ajouter des entrées (peu pratique lorsque les personnes chargées de la maintenance ne savent pas en gérer une), ni à surcharger chaque entrée de la faq de balises spécifiques. Ajoutons enfin que c’est navigateurement correct puisque ça permet un affichage même si javascript est désactivé.

Une application du code suivant est visible ici ou .

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body><div style="margin: 5px 15px 0px 5px; text-align: justify;" id="faqs">
<h1 align="center">Questions fréquemment posées (FAQ)</h1>

<h3>Courage</h3>
<h4>&amp;#9658; Pourquoi ne faut-il pas avoir peur ?</h4>
<p>La peur est l'ennemie du Bien.<br /><br />
Pour que le Bien vous accompagne dans votre vie, donnez sur <a href="http://www.kamashanti.org">kamashanti.org</a>.
</p>
<br />

<h4>&amp;#9658; Comment puis-je obtenir la rédemption ?</h4>
<p>Donnez sur <a href="http://www.kamashanti.org">kamashanti.org</a>. Remercier le Bien est la source de tout salut.</p>
<br />

<h4>&amp;#9658; J'ai déjà donné, mais je n'ai pas l'impression que le Bien est avec moi, que puis-je faire ?</h4>
<p>Il ne faut pas perdre la foi ! Peut-être votre générosité n'est pas à la hauteur du Bien que vous attendez. <a href="http://www.kamashanti.org">Ouvrez votre coeur</a>.</p>
<br />

<h4>&amp;#9658; Je ne trouve pas réponse à ma question, que faire ?</h4>
<p><a href="http://www.kamashanti.org">Donner !</a>. Les réponses sont transcendantes lorsque l'on est allégé des fardeaux de la vie.</p>

</div>
<br />
<br />

<center><a href="#" onClick="faq_toggle_all('block')"><small>Tout afficher</small></a> | <a href="#" onClick="faq_toggle_all('none')"><small>Tout masquer</small></a> </center>

</body>
<script type="text/javascript">
function faq_toggle(pdiv) {
var action = (pdiv.style.display == "block") ? "none" : "block";
pdiv.style.display = action;
}
function faq_toggle_all(action) {
var faqs = document.getElementById('faqs');
var pfaqs = faqs.getElementsByTagName('p');
for(i=0;i<pfaqs.length;i++) {
pfaqs[i].style.display=action;
}
}

var faqs = document.getElementById('faqs');
var pfaqs = faqs.getElementsByTagName('p');
var hfaqs = faqs.getElementsByTagName('h4');
for(i=0;i<pfaqs.length;i++) {
//hfaqs[i].setAttribute("onclick","faq_toggle(pfaqs["+i+"])"); // Does not work in IE.
hfaqs[i].onclick = function(){
var faqs = document.getElementById('faqs');
var pfaqs = faqs.getElementsByTagName('p');
var hfaqs = faqs.getElementsByTagName('h4');
for(j=0;j<hfaqs.length;j++) {
if(hfaqs[j] === this) {
faq_toggle(pfaqs[j]);
}
}
}
hfaqs[i].style.fontStyle="italic";
hfaqs[i].style.cursor="pointer";
hfaqs[i].style.color="#006699";
pfaqs[i].style.display="none";
}
</script>
</html>

La Fondation Erwin Mayer est maintenant sur Facebook

Retrouvez dès à présent La Fondation Erwin Mayer sur Facebook !

Blog info-trafic, épisode 3

Deux ne venant jamais sans trois, voici quelques perles des recherches que vous avez faites et qui vous ont conduits en ces humbles lieux :

  • bancassurance : solutions à la crise
  • calcul de tension monophasé en fonction de l’unbalance
  • calcul du seuil de rentabilité d’une sandwicherie -> En voilà une question intéressante !
  • chicago tribune erwin mayer
  • comment brancher ma lampe american dj spectrum led sur mon pc -> Je vous en prie
  • comment devenir milliadaire -> Mon préféré !
  • crash team racing vente total wikipedia
  • erwin le ouf -> Yo!
  • erwin mayer artist
  • fondation erwin guadeloupe
  • fraudes difficilement detectable -> Mais bien sûr !
  • je gagne ma vie sur betfair -> Content pour vous
  • longueur doigt testosterone politique sarkozy -> Celui là il fallait le trouver
  • mission premiere de la societe generale -> Quelqu’un l’aurait-il oubliée ?
  • peut on être comme électrocutée pendant une séance énergétique
  • questions que l’on se pose a l’approche de la retraite
  • rachat de vieux cable informatique -> Pas ici, désolé !
  • comment blanchir de l’argent honnêtement -> Non mais !
  • fondation bill gates : complot -> Hahaha, c’était donc trop beau pour être vrai
  • lignes air mayer -> Non, c’est Air Win
  • quel montant en dividendes ne doit on pas dépasser pour etre taxable dans une eurl -> Question typique d’un entrepreneur français
  • être riche en travaillant dans le monde de la finance -> Ou pas ?

Blog info-trafic épisode 2

Une fois de plus, voici les mots-clefs les plus populaires et les plus savoureux cherchés par les visiteurs de ce blog. Commençons par les perles :

new sex pointions -> Faudra-t-il que je mette un bandeau « interdit aux moins de 18 ans » à l’entrée du site ?
fondation+aide au sociologue de tiers monde+2008 -> Voilà une idée pertinente : vendre l’excédent de notre stock de sociologues à des pays pauvres.
société business model innovation entrepreneuriat sociologie -> Décidemment, ils y tiennent à leur sociologie.
quel est le mayer site de rencontre -> Mais oui, vous êtes bien tombé(e), je suis sûr que vous trouverez votre âme soeur au détour d’un commentaire !
mayer avion -> Le mayer avion est l’Airbus A380.
mayer ovni -> Non, je ne suis pas un extraterrestre.
la droite mayer chiffre d’affaire -> C’est un nouveau parti politique ?
kerviel amie -> Non, je ne suis pas l’amie Kerviel.
imc et méthodes d’apprentissage de la lecture -> Voilà un sujet de thèse intéressant : comment l’alphabétisme favoriserait la croissance moyenne de l’indice de masse corporelle dans une population.
how to buy stock early in the day and flip -> Une question intéressante, n’est-ce pas ? Serait-il bien raisonnable de rendre publique une réponse ?
faillite bear stearns lingot d’or -> Quelqu’un préparerait-il un hold-up sur fond de débâcle bancaire ?
logiciel que mostafa belkhayate utilise -> Ou comment découvrir avec une simple recherche Google comment devenir milliardaire.
meilleur placement pour 200000 euros -> Contactez-moi, je peux peut-être vous aider. Honoraires réduits.
enjouy supelec -> Qui jouit à Supélec ? HEC ?
disfonctionnement d’un périphérique usb qui a dépassé les limites -> Je pense qu’un tel périphérique mérite d’être puni.
rediriger routeur espion pro -> Ho ho, y aurait-il des vilains hackers parmi les visiteurs de ce site ?
comment faire s’envoler un avion en papier -> J’aime les visiteurs qui sont aussi philosophes.
choisir prelevement liberatoire a posteriori assurance vie -> Je vais finir par proposer des services de conseil en droit fiscal ma foi.
c’est quoi un prix composition -> Je suis sûr qu’il existe des gens qui pensent que ce sont des personnes qui répondent aux questions posées à travers Google.
‘gaming is the whole thing -> Tu as tout compris !
le toubib est generaliste -> Eh oui.
mathématicien or mathématiques or maths -> Mathématiques, merci.
matrice bcg myspace -> Tiens, MySpace serait-il une nouvelle source d’information pour les marketeurs ?
perle erwin paris boutique -> Il va donc falloir que j’ouvre un store pour mes fans.
monnaies billets banque erwin -> Une raison de plus de créer mon propre pays ! Les gens me veulent en photo sur leurs billets de banque !
email contacts les geants des entreprises 2008 -> Ravi de voir que je fais partie des « geants des entreprises 2008″ :-) .

(Lire la suite…)

Page suivante »