NEVER.
Got that off my chest.
Your new post is loading...
Your new post is loading...
LKCB est un importateur grossiste d'éoliennes domestiques. Spécialiste de solution hybride solaire/éolien pour site isolé ou injection réseau.
Mickael Ruau's insight:
Le courant produit par une éolienne est il racheté ?
Le courant produit par les éoliennes ne peut être racheté dans le cadre de l’obligation d’achat EDF que si l’installation se trouve dans une Z.D.E. (Zone de développement éolien). De plus le tarif de rachat est assez faible. En pratique, il y a peu de ZDE et pour les petites éoliennes il est beaucoup plus rentable d’auto consommer la production. Néanmoins, certains fournisseurs d’électricité tels qu’ENERCOOP ou DIRECT ENERGIE par exemple peuvent racheter l’électricité produite mais il faut dans ce cas abandonner EDF pour la consommation de l’habitation et de plus faire installer un compteur d’injection par ERDF.
Quelle est la durée de vie d’une éolienne ?
De manière générale, la durée de vie des éoliennes est de 20 à 30 ans. Les générateurs sans contact (à aimant permanents) ont permis d’améliorer très sensiblement la durée de vie des éoliennes.
(...) Peut on installer une éolienne en pignon en ville ?
En ville, les installations d’éoliennes ne sont pas recommandées. Les performances seront sensiblement altérées par les turbulences générées par la densité des habitations.
(...) Puis-je utiliser mon éolienne en auto-consommation électrique ?
Oui, c'est le but. Soit en complément d'un raccordement électrique classique EDF pour diminuer la facture, soit en autonomie totale mais avec des batteries et souvent en couplant à des panneaux solaires. Un dimensionnement précis de la consommation et de l'installation à faire doit être réalisé dans ce dernier cas.
Il existe à ce jour assez peu de fabricants d’éoliennes et d’accessoires d'éoliennes pour particuliers. Mais ce marché pourrait décoler dans les prochaines années, si les chiffres de croissance actuels du petit éolien se poursuivent.
Mickael Ruau's insight:
Les quatre plus gros producteurs, qui totalisent plus de la moitié de la puissance installée à eux seuls, sont : Southwest Windpower : fabricant américain largement distribué en France, qui propose depuis vingt ans des éoliennes de faible et moyenne puissances.Proven Energy : entreprise anglaise créée en 1980, Proven Energy distribue des éoliennes de 2,5 kW, 5,2 kW et 12 kW, pour les sites isolées ou les particuliers reliés au réseau.Northern Power : entreprise américaine ayant une expérience de trente ans dans les éoliennes, Northern Power propose une éolienne de 100 kW, la Northwind 100, conçue pour les entreprises, établissements scolaires, centres hospitaliers et exploitations agricoles.Bergey Windpower : l’entreprise la plus ancienne sur le marché des mini éoliennes, avec des modèles de 1 kW et de 10 kW.Les américains dominent le marché des éoliennes pour particuliers. Ils sont suivis par les Anglais, puis, à l’échelle de l’Europe, par l’Allemagne, la France, l’Espagne et les pays scandinaves. Quelques fabricants français de mini éoliennesLes français sont parmis les premiers producteurs de petites éoliennes en Europe. En voici quelques uns : Aquitaine Aérogénérateurs : l’entreprise fabrique des éoliennes de 0,5 à 20 kW.Celeste : Fabricant et installateur français d'éoliennes, sous licence Wind Simplicity. Cette PME française vante le « 100% Made in France » de ses produits, fabriqués dans ses ateliers de région parisienne. Elle propose des éoliennes assez puissantes : de 2,2 kW à 23 kW.Ecolab energies : fabriquent des éoliennes de pompage.Eole systèmes : ayant commencé en réalisant des projets pour un fabricant français de drones, Eole System s’est lancé ensuite dans le processus de conception/réalisation de pales, puis d’éoliennes. Ils sont en train de développer des modèles de 5, 10 et 20 kW.Eoltec : Eoltec est une entreprise niçoise créée en 2001 par deux ingénieurs. Ils proposent des modèles de 6 kW à 300 kW.Gual Industrie : cette entreprise propose le modèle breveté « Statoéolien », qui se pose sur le toit.Home Energy : cette société basée à Paris fabrique une éolienne curieuse, au design sphérique, appelée « Energy Ball », d’une puissance de 500 Watts.Nheolis : cette entreprise propose des éoliennes en 3 dimensions, de 1,5 kW ou 3,5 kW.(1) CBI Marlet Survey - The EU market for parts for small wind turbines
vincent lecourt's curator insight,
October 16, 2013 2:49 AM
Le Green Lab Center (GLC) est une association créée par des entreprises, écoles, laboratoires de recherche œuvrant dans le domaine du Green IT.
Etude de la consommation mémoire des ressources GD afin de se prémunir des problèmes de saturation mémoire.
Mickael Ruau's insight:
La librairie GD forme aujourd'hui avec PHP un couple apprécié des développeurs web. Elle offre en effet un accès d'une grande simplicité aux traitements d'images, ces opérations obscures qu'on sait truffées de formules mathématiques et autres transformations matricielles, et qu'on devine par conséquent probablement gourmandes en ressources matérielles. Mais sait-on exactement jusqu'à quel point ? Pour ma part non, jusqu'à aujourd'hui...
En PHP une référence est une autre façon d'accéder à une valeur stockée en mémoire. Ainsi, au lieu d'avoir une variable x qui contient une valeur y, nous avons une variable x qui contient une référence vers la valeur y. La documentation officielle de PHP compare les références avec les liens symboliques que l'on trouve sur les systèmes UNIX, l'analogie est intéressante. Ainsi donc, si $A est une référence de la valeur $B alors $A et $B sont des variables qui pointent vers le même contenu.
Mickael Ruau's insight:
En PHP lorsque l'on souhaite passer des arguments par référence, nous utiliserons le caractère &. Soit pour dire « A est une référence vers la valeur de B » : $A =& $B; Attention, si vous provenez du monde du C, ne confondez pas les références enPHP et les pointeurs que vous pourrez trouver en C. Il s'agit juste ici de pouvoir appeler une valeur identique avec des noms différents. Une référence s'utilise ensuite comme n'importe quelle variable. Vous pouvez par exemple utilisez la fonction unset($ref) pour détruire votre référence. Néanmoins, même s'il est très facile de détruire une référence, il deviendra plus complexe de supprimer la valeur stockée en mémoire. C'est pourquoi, la manipulation des références est un des points critique concernant la consommation en ressources mémoire d'un script.
Due to PHP being written in C, for a long time now the only way to extend it was to either rely on the current generation of enthusiastic greybeards, or take up C. For many, the latter wasn't an option.
A programming idiom I often see in managed runtime environments, such as Java, is to return a collection or array from a method that is allocated within the method. Having originally come from a C/C++ language background this always struck me as a bit strange and lazy.
Mickael Ruau's insight:
Another idiom is to let the caller allocate the structure and pass it into the method like in the example below: String str = “Some string that I may want to split”; Collection<String> values = new ArrayList<String>(); str.split(values, “ ”); With this approach the caller has more control and flexibility. Not only can the caller reuse the collection across multiple calls, they can also choose the most appropriate structure for the end needs. For example, it could be a HashSet if finding distinct words, an ArrayList for cache friendly performance, or a LinkedList if memory is a scarce resource. The method can return the collection allowing a fluent coding pattern. In the Java world this idiom becomes critical to performance when large arrays are involved. An array may be too large to be allocated in the young generation and therefore needs to be allocated in the old generation. Besides being less efficient and contended for large object allocation, the large array may cause a compaction of the old generation resulting in a multi-second stop-the-world pause. Now that is a good topic for another blog post... I can hear folk cry out, “but short lived objects are cheap!” While this is true when compared to longer living objects, they are relatively cheap but certainly not free. I’d prefer to use those extra cycles solving the business problem and, in addition, have the flexibility to choose the most appropriate data structure for the task at hand.
I’m often asked, “What is the best way to learn about building high-performance systems”? There are many perfectly valid answers to this question but there is one thing that stands out for me above everything else, and that is modelling. Modelling what you need to implement is the most important and effective step in the process. I’d go further and say this principle applies to any development and the rest is just typing :-)
Mickael Ruau's insight:
When non-functional requirements, such as performance and availability, are critical to success, I’ve found the most important thing is to get the model correct for the domain at all levels. That is, take the principles of DDD and make sure your code is an appropriate reflection of each domain. Be that the domain of business applications, or the domain of interactions with infrastructure, I’ve found modelling is everything.
How often have we all heard that “batching” will increase latency? As someone with a passion for low-latency systems this surprises me. In my experience when batching is done correctly, not only does it increase throughput, it can also reduce average latency and keep it consistent.
Mickael Ruau's insight:
Smart Batching can be employed in concert with the appropriate data structures to achieve consistent low-latency and maximum throughput.
In high-performance computing it is often said that the cost of a cache-miss is the largest performance penalty for an algorithm. For many years the increase in speed of our processors has greatly outstripped latency gains to main-memory. Bandwidth to main-memory has greatly increased via wider, and multi-channel, buses however the latency has not significantly reduced. To hide this latency our processors employ evermore complex cache sub-systems that have many layers.
Mickael Ruau's insight:
Let's start putting the problem in context with some examples. Our hardware tries to hide the main-memory latency via a number of techniques. Basically three major bets are taken on memory access patterns: Temporal: Memory accessed recently will likely be required again soon.Spatial: Adjacent memory is likely to be required soon. Striding: Memory access is likely to follow a predictable pattern.To illustrate these three bets in action let's write some code and measure the results.Walk through memory in a linear fashion being completely predictable.Pseudo randomly walk round memory within a restricted area then move on. This restricted area is what is commonly known as an operating system page of memory.Pseudo randomly walk around a large area of the heap.(...) Conclusion
In my last post I detailed the implications of the access patterns your code takes to main memory. Since then I've had a lot of questions about what can be done in Java to enable more predictable memory layout. There are patterns that can be applied using array backed structures which I will discuss in another post. This post will explore how to simulate a feature sorely missing in Java - arrays of structures similar to what C has to offer.
Mickael Ruau's insight:
If you are willing to do some C style programming for large datasets it is possible to control the memory layout in Java by going off-heap. If you do, the benefits in performance, compactness, and avoiding GC issues are significant. However this is an approach that should not be used for all applications. Its benefits are only noticable for very large datasets, or the extremes of performance in throughput and/or latency.
How should a system respond when under sustained load? Should it keep accepting requests until its response times follow the deadly hockey stick, followed by a crash?
Mickael Ruau's insight:
If we do not consider how our systems will behave when under heavy load then they will most likely seriously degrade at best, and at worst crash. When they crash this way, we get to find out if there are any really evil data corruption bugs lurking in those dark places. Applying back pressure is one effective technique for coping with sustained high-load, such that maximum throughput can be delivered without degrading system performance for the already accepted requests and transactions. |
It’s no news that quicksort is considered one of the most important algorithms of the century and that it is the de facto system sort for many languages, including the Arrays.sort in Java.
Mickael Ruau's insight:
The entire project (along with a few lame implementations of DSA) is available on GitHub here. The quicksort classes alone can be found here.
LKCB est un distributeur d'éoliennes domestiques. Spécialiste de solution hybride solaire/éolien pour site isolé ou injection réseau.
Mickael Ruau's insight:
Windspot 3.5 pour apporter des solutions aux trois problèmes traditionnels du petit éolien : la faible productivité, le manque de fiabilité et la nuisance sonore. Windspot en fait ses trois points forts: La Windspot 3.5 commence à produire de l’énergie avec un vent faible (2,5 m/s) et continue à fonctionner à pleine puissance même lorsque le vent devient fort (plus de 50 m/s), contrairement aux autres éoliennes domestiques qui doivent se déconnecter ou réduire leur rendement pour éviter d’être endommagées au moment même où elles pourraient produire le maximum d’énergie. Ces performances sont dues à la technologie à pas variable de la Windspot 3.5.La Windspot 3.5 est une éolienne robuste, fiable et durable, avec une vie utile d’au moins 25 ans et ne requiert qu'un entretien minime contrairement aux éoliennes concurrentes. Construite avec des matériaux de grande qualité, les composants mobiles de l’éolienne tels que les roulements sont étanches et ne nécessitent aucun entretien. Le rotor à aimants permanents avec de nombreux pôles permet de produire de l’énergie à partir de vents très faibles.Une éolienne bruyante peut devenir une vraie nuisance. Sonkyo Energy a travaillé sur l’aérodynamisme pour faire de la Windspot une des éoliennes les plus silencieuses du marché.La Windspot 3.5 est robuste et esthétique, comporte peu de composants mobiles, utilise des matériaux de qualité. Le faible entretien et la productivité sont les points forts de la Windspot 3.5.La Windspot 3.5 s'installe en général sur un mât de 11 mètres autoportant (basculant en option). Elle comporte un régulateur qui permet de charger des batteries ou d'injecter le courant produit dans le réseau de l'utilisateur grâce à un onduleur SMA ou PowerOne.
FAITES LE CHOIX DU PETIT EOLIEN ET DEVENEZ INDEPENDANTFACE A LA HAUSSE DES PRIX DE L'ELECTRICITE.Avantages du petit eolien :Produisez jusqu'à 100% de votre élétricité,Devenez indépendant face à la hausse du prix de l'électricité,Aucune nuisance sonore,Avantages de l'offre Windeo :Des machines de qualité occidentalePremier installateur d'éoliennes domestiques en EuropeLa meilleure gamme du marchéUne installation garantie 100% clés en mains
Mickael Ruau's insight:
Un fabricant de petites éoliennes. Un choix à considérer face au solaire.
So just capturing the traffic between the server and replaying modified traffic is not that simple.
Plusieurs choses sont à savoir sur cette fonction ; comme par exemple en terme de sécurité. Toutefois cette semaine je vais m'attarder sur un point que le manuel officiel de PHP ne fait qu'effleurer : sa consommation en ressources.
Mickael Ruau's insight:
Le protocole SMTPLa fonction mail() dans une boucleUne alternative à la fonction mail() pour de l'envoi en masse
From
kune
Un snippet rapide pour vous montrer comment utiliser correctement l'API de Wikimedia avec PHP.
Mickael Ruau's insight:
$url = 'http://en.wikipedia.org/w/api.php?action=query&titles=Your_Highness&prop=revisions&rvprop=content&rvsection=0'; $ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch, CURLOPT_USERAGENT, 'MonBot/1.0 (http://www.monsite.fr/)'); $result = curl_exec($ch); if (!$result) { exit('Erreur cURL: '.curl_error($ch));} var_dump($result);
Many applications record a series of events to file-based storage for later use. This can be anything from logging and auditing, through to keeping a transaction redo log in an event sourced design or its close relative CQRS. Java has a number of means by which a file can be sequentially written to, or read back again. This article explores some of these mechanisms to understand their performance characteristics.
Mickael Ruau's insight:
There is a significant difference in performance for the different means of doing sequential file IO from Java. Not all methods are even remotely equal. For most IO I've found the use of ByteBuffers and Channels to be the best optimised parts of the IO libraries. If buffered streams are your IO libraries of choice, then it is worth branching out and and getting familiar with the implementations of Channel and Buffer or even falling back and using the good old RandomAccessFile.
In a series of articles I’ll aim to show the performance impact of processor affinity in a range of use cases.
Mickael Ruau's insight:
The interesting thing I've observed is that the unpinned test will follow a step function of unpredictable performance. Across many runs I've seen different patterns but all similar in this step function nature. For the pinned tests I get consistent throughput with no step pattern and always the greatest throughput.
We all use 3rd party libraries as a normal part of development. Generally, we have no control over their internals. The libraries provided with the JDK are a typical example. Many of these libraries employ locks to manage contention.
Mickael Ruau's insight:
When respecting the single writer principle, biased locking should be your friend. Lately, when using the sockets API, I decided to measure the lock costs and was surprised by the results. I found that my un-contended thread was incurring a bit more cost than I expected from the lock. I put together the following test to compare the cost of the current lock implementations available in Java 6.
When trying to build a highly scalable system the single biggest limitation on scalability is having multiple writers contend for any item of data or resource. Sure, algorithms can be bad, but let’s assume they have a reasonable Big O notation so we'll focus on the scalability limitations of the systems design.
Mickael Ruau's insight:
Summary
Even from highly experienced technologists I often hear talk about how certain operations cause a CPU cache to "flush". This seems to be illustrating a very common fallacy about how CPU caches work, and how the cache sub-system interacts with the execution cores. In this article I will attempt to explain the function CPU caches fulfil, and how the cores, which execute our programs of instructions, interact with them. For a concrete example I will dive into one of the latest Intel x86 server CPUs. Other CPUs use similar techniques to achieve the same ends.
Mickael Ruau's insight:
Returning to the fallacy of "flushing the cache" as part of a concurrent algorithm. I think we can safely say that we never "flush" the CPU cache within our user space programs. I believe the source of this fallacy is the need to flush, mark or drain to a point, the store buffer for some classes of concurrent algorithms so the latest value can be observed on a subsequent load operation. For this we require a memory ordering fence and not a cache flush.
Do you ever wish you could turn a Java object into a stream of bytes as fast as it can be done in a native language like C++? If you use standard Java Serialization you could be disappointed with the performance. Java Serialization was designed for a very different purpose than serialising objects as quickly and compactly as possible.
Mickael Ruau's insight:
In conclusion it is possible to achieve the same native C/C++ like levels of performance in Java for serialising an object to-and-from a byte stream by effectively using the same techniques. The UnsafeMemory class, for which I've provided a skeleton implementation, could easily be expanded to encapsulate this behaviour and thus protect oneself from many of the potential issues when dealing with such a sharp tool. |
Your new post is loading...
This is all fairly fresh in my mind, because I discovered a snippet of code somewhere (not disclosing where, as I'm doing the responsible thing and doing the disclosure properly), that was along the lines of:
var jsonData = eval ("(" + string + ")");
Apparently, JSON.parse() isn't good enough for them.
Horrifying.