<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Olivier Philippot on Medium]]></title>
        <description><![CDATA[Stories by Olivier Philippot on Medium]]></description>
        <link>https://medium.com/@SimplyGreenIT?source=rss-7129dc1c5148------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*ZO8GTXKoFhatu1Dg.png</url>
            <title>Stories by Olivier Philippot on Medium</title>
            <link>https://medium.com/@SimplyGreenIT?source=rss-7129dc1c5148------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 19 May 2026 14:59:49 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@SimplyGreenIT/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Premature optimization ? Did you see your code?]]></title>
            <link>https://medium.com/eco-design-of-software-by-greenspector/premature-optimization-did-you-see-your-code-6483426865bc?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/6483426865bc</guid>
            <category><![CDATA[devops]]></category>
            <category><![CDATA[performance]]></category>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Sun, 20 Nov 2016 12:21:14 GMT</pubDate>
            <atom:updated>2016-11-20T12:21:46.537Z</atom:updated>
            <content:encoded><![CDATA[<p>Throughout my audits, conferences and tool installations, one of the first arguments against eco-design (and overall against the need to optimize the code) is a magic phrase: “premature optimization is the root of all evil.” Two words “premature” and “evil” that reinforce the idea that thinking about code optimization would be a mistake.</p><p>It is necessary to return to the origin of this sentence before taking it as an acquired or a law of programming. Donald Knuth wrote in 1974:</p><blockquote>There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We <em>should</em> forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only <em>after</em> that code has been identified.</blockquote><p>“Programmers waste enormous amounts of time thinking about, or worrying about, the speed” … Maybe in 1974 but not so much in the years 2010! We have many constraints taken into account in devs (functionality, scalability, security …) but not necessarily performance. The weapons race announced with horizontal scalability, vertical, PAAS, cloud … made us even more forget the need to optimize. The message induced by Moore’s law thrusts the nail. If we do not understand that it is not necessary, or counterproductive to optimize, is that we missed a lot of things. So no, in 2016, developers do not spend more time thinking about optimization.</p><p>Far be it from me to say that one does not optimize the software, one optimizes rather in “mode fireman”. Critical client rollback, application unusability … Performance is not seen as an evaluation criterion, but rather as non-performance as a bug. And that’s the problem. Rather than training armies of developers in the culture of performance, experts are trained to analyze performance problems. Results : performance analyzes only in times of crisis, profilling software complex and uncommon, and therefore costly.</p><p>I blacken the trait, yes because the devil is not in premature optimization and it is in our current image of performance. When performance is integrated as a development requirement, it is not necessarily the most ideal. Indeed, performance is a quality of use of the software: display time, transaction in base … If we take the ISO 25000 standard on quality, we speak about efficiency rather than performance:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/717/1*j-JzFCUv9n1RFuy-OcHAHA.png" /></figure><p>And when one looks at what hides efficiency: Temporal behavior and use of resources.</p><blockquote>resources expended in relation to the accuracy and completeness with which users achieve goals</blockquote><p>We see it in the web world: web performance focuses on displaying the page in less than x seconds. Top ! What about the other characteristic of resource consumption? We forget the overall efficiency to focus on an important but not unique characteristic. How many servers are used to display a page? Number of requests? Energy consumption ? And when you take into account the number of queries, it is only to respect the display performance. Why ? Because a too long view of a page is seen by the user as a bug, and that’s normal. But from the point of view of the developer, the display time should be seen as one of the usage characteristics among others in all those covering the efficiency of the software.</p><p>And this observation could be applied to many axes of software optimization. The “bottlenecks” of the software were naturally managed: we optimized the costly requests, we minimized the times of launch of the applications, we will reduce the times of display of the pages … but We will have worked on the overall efficiency of the software? No. We carried out a study with the ADEME called Web Energy Archive and proved that there was no correlation between web performance and efficiency (and in particular energy efficiency). Here is the distribution of the measure on 500 sites:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4H-ZWOcPQoDCG53lq5gPtA.png" /></figure><p>We arrive at a software “uniformly slow”. No sense of non-performance annoying to the user because it accepts the current performance (it does not even believe in an immediate launch time applications), so why go further? Then the software becomes a bit slower:</p><blockquote>that software is getting slower more rapidly than hardware becomes faster. — <a href="http://en.wikipedia.org/wiki/Wirth%27s_law">https://en.wikipedia.org/wiki/Wirth&#39;s_law</a></blockquote><p>We always find arguments for not optimizing:</p><ul><li>Optimization premature: Ouh la, it should not have an impact on performance. All the more so because it would require us to measure performance, something that we do not do … even less for efficiency.</li><li>Moore’s Law: why optimize while in 18 months, we will have platforms even more powerful?</li><li>The price of the equipment is always lower. Indeed, the prices of servers, VM, memory have decreased. OK but what is the real cost of a website knowing that in 2 seconds, 40 servers are contacted? On how many VMs are hosted servers (we intuit that with scalability, micro-services …, the figure increases steadily)?</li><li>There is more to save elsewhere: optimization is good but it is for others. For the dev, it is the infra where there is more fat; For the infra, it is the constructors …</li></ul><p>These brakes are partially understandable: we have been conditioned for more than 20 years on the race to the power of hardware and the immateriality of the software. We are talking about technical debt in development teams, I think technical debt is even greater. The non-optimization of efficiency created an important debt of efficiency. And the effort can be important to solve it: training of developers, tools to set up … It is simpler to push the problem under the mat or in others. One sees it in the GAFA: we speak for several years of Green IT in the data centers (free cooling, recovery of heat …) but what real actions on the consolidation and the efficiency of the software? The actions exist but are still timid. One even sees promoters of the Green IT pass messages according to which eco-design of the software would be a technical and minor axis. I would say major and complex if we were to treat it seriously.</p><p>Virtual, Digital, Digital, Cloud … Applications are not seen as concrete objects, like products … Yes the code has a strong adherence to the hardware, yes a code without hardware will not provide a service. It is simpler for everyone to encompass the problematic in a somewhat blurry that is IT or Digital. However, divide each component, each product can work seriously on each element. I am not saying that a systemic approach is not necessary, just that the issue is complex (debt of efficiency). In addition, the software is a product. Some will try to deny it arguing that there is no software without hardware. Yes an engine can be considered a product, and it does not make sense without chassis and wheel, but it is a product. And we are working on its efficiency. This product classification is also necessary in other areas such as quality. Many countries consider software legally as a product (a somewhat old but always current article)</p><p>Moreover, a bias in our profession does not help to improve this. As a developer, we always aim to improve our productivity. It is normal, the constraints becoming stronger: security, faster development cycle, evolution of technologies to take into account … We therefore make choices according to this. To return to ISO 25000, we prefer more the internal quality of the product that touches us than the quality of use. Internal quality as defined by ISO:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/714/1*maYWN8WvJ6ePmMdItsrVFQ.png" /></figure><p>Maintainability, maintainability, yes but it is only one of the 8 characteristics of internal quality (Portability, Reliability, Compatibility …). Yes it is important but it is necessary to balance our choices and efforts on all the characteristics of our software. The convenience of developers should not be prioritized in relation to the needs of users. It may seem like a constraint, but I have confidence in our efficiency.</p><p>So no, greatly optimize the code is not the cause of all the evils, quite the contrary, it is a solution. No, there is not only 3% critical code, but rather 97% critical code: Heavy frameworks, increasingly used libraries and ultra-used web services. All the experiments I see show: a small effort on any part of the code leads to drastic decreases in resource consumption. The situation in 1974, which was close to the material and where the code was uniformly efficient and efficient, is a long way off. We are now faced with a uniformly slow and inefficient code accelerated by more and more material (s). More heart to run a spreadsheet, more battery capacity to run our mobile applications, more data centers to meet the Iot. This would not be a problem if resource cost and environmental impact did not exist. But this is not the case. It is urgent to forget the obsolete litemotivs of the software industry and not to fall into the “silver bullet” of the cloud (at least on the axis “no need to optimize”). And go beyond simply optimizing performance. And you call it what you want: efficiency, optimization of performance and resources, eco-design software …</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6483426865bc" width="1" height="1" alt=""><hr><p><a href="https://medium.com/eco-design-of-software-by-greenspector/premature-optimization-did-you-see-your-code-6483426865bc">Premature optimization ? Did you see your code?</a> was originally published in <a href="https://medium.com/eco-design-of-software-by-greenspector">Eco-design of software by Greenspector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Moore’s Law is dead ! Yeah !!!!]]></title>
            <link>https://medium.com/eco-design-of-software-by-greenspector/moores-law-is-dead-yeah-b1ba1fb06a3?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/b1ba1fb06a3</guid>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[moores-law]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Tue, 26 Jul 2016 19:01:16 GMT</pubDate>
            <atom:updated>2016-07-26T19:08:15.714Z</atom:updated>
            <content:encoded><![CDATA[<p>According to <a href="http://www.semiconductors.org/clientuploads/Research_Technology/ITRS/2015/0_2015%20ITRS%202.0%20Executive%20Report%20%281%29.pdf">a new report from the International Technology Roadmap for Semiconductors (ITRS)</a> ( Intel and Samsung inside), transistors will stop stop shrinking by 2021. I say yeah!</p><blockquote><strong>Moore’s law</strong> is the observation that the number of <a href="https://en.wikipedia.org/wiki/Transistor">transistors</a> in a dense <a href="https://en.wikipedia.org/wiki/Integrated_circuit">integrated circuit</a> doubles approximately every two years. The observation is named after <a href="https://en.wikipedia.org/wiki/Gordon_Moore">Gordon Moore</a>, the co-founder of <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> and <a href="https://en.wikipedia.org/wiki/Fairchild_Semiconductor">Fairchild Semiconductor</a>, whose 1965 paper described a <a href="https://en.wikipedia.org/wiki/Exponential_growth">doubling every year</a> in the number of components per integrated circuit,<a href="https://en.wikipedia.org/wiki/Moore%27s_law#cite_note-orig_paper-2">[2]</a> and projected this rate of growth would continue for at least another decade.<a href="https://en.wikipedia.org/wiki/Moore%27s_law#cite_note-Moore1965paper-3">[3]</a> In 1975,<a href="https://en.wikipedia.org/wiki/Moore%27s_law#cite_note-4">[4]</a> looking forward to the next decade,<a href="https://en.wikipedia.org/wiki/Moore%27s_law#cite_note-5">[5]</a> he revised the forecast to doubling every two years.<a href="https://en.wikipedia.org/wiki/Moore%27s_law#cite_note-Takahashi-6">[6]</a><a href="https://en.wikipedia.org/wiki/Moore%27s_law#cite_note-Moore_2006-7">[7]</a><a href="https://en.wikipedia.org/wiki/Moore%27s_law#cite_note-Intel_2011-05-8">[8]</a> — <a href="https://en.wikipedia.org/wiki/Moore&#39;s_law">https://en.wikipedia.org/wiki/Moore&#39;s_law</a></blockquote><p>The Moore’s Law was a good law (no not a law, I will talk of that later) to obtain chips with interesting performance. But the counter part was a more and more bloat software layer. This arm race lead “no need to optimize our software, you will have a better hardware at the release of the software”. A one more law <strong>,</strong>Wirth’s law (Law ?)</p><blockquote>that software is getting slower more rapidly than hardware becomes faster. — <a href="https://en.wikipedia.org/wiki/Wirth&#39;s_law">https://en.wikipedia.org/wiki/Wirth&#39;s_law</a></blockquote><p>Moreover, Moore’s Law is not a law. This is a self-fulfilling prophecy : It was an observation and we put R&amp;D and marketing effort to continue the phenomenon. That why <a href="http://www.theinquirer.net/inquirer/news/1014782/gordon-moore-aloha-moore-law">Gordon Moore says</a> aloha to Moore’s Law few year ago.</p><p>Why not say goodbye to the Moore’s Law ? And think to other laws : “Double the efficiency of software every 18 month”, “Put 2 more users on the same server every year”… Lot of things to invent.</p><p>So yes, Moore’s Law is perhaps dead, and it is good for the software world. It is in the constraint that we can be more creative. Yeah !</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b1ba1fb06a3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/eco-design-of-software-by-greenspector/moores-law-is-dead-yeah-b1ba1fb06a3">Moore’s Law is dead ! Yeah !!!!</a> was originally published in <a href="https://medium.com/eco-design-of-software-by-greenspector">Eco-design of software by Greenspector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Raspberry Pi 3 : Is it worth for energy efficiency ?]]></title>
            <link>https://medium.com/eco-design-of-software-by-greenspector/raspberry-pi-3-is-it-worth-for-energy-efficiency-ea0ea969c1c6?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/ea0ea969c1c6</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[raspberry-pi]]></category>
            <category><![CDATA[energy]]></category>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Sun, 29 May 2016 17:24:38 GMT</pubDate>
            <atom:updated>2016-05-29T18:43:31.330Z</atom:updated>
            <content:encoded><![CDATA[<p>The Pi 3 is out. Ok more feature and more performance but energy is important if you want to use on battery.</p><p>Raspberrypi.org release a <a href="https://www.raspberrypi.org/magpi/raspberry-pi-3-specs-benchmarks/">benchmark</a> which show a clear improvement on performance.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/620/1*iQ3v_193XTtTfUo4p_JJlQ.png" /></figure><p>But also a clear increasing of power draw :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/688/1*mo9KIeRxKO5rBTSnyrtGyA.png" /></figure><p>Does it is justify by the performance ?</p><p>We need to add a metric : performance by energy. <a href="https://en.wikipedia.org/wiki/Performance_per_watt">Performance by watt</a> is for example a widespread metric on HPC server.</p><p>On the Raspberry.or benchmark, we have Ampere for power, MIPS and MWIPS for performance (issue respectively of <a href="https://en.wikipedia.org/wiki/Dhrystone">Dhrystone</a> and <a href="https://en.wikipedia.org/wiki/Whetstone_%28benchmark%29">Whetstone</a> benchmark). So we will have MIPS/A and MWIPS/A. Ah or Wh would have be better because they are energy and not power or current.</p><p>It give :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/605/1*Yvxglf42bDDuTVQs-yZHwA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/605/1*F0IBjZhYsq4QfNkgyjkrkQ.png" /></figure><p>Raspberry A+ and Zero are the winner in term of efficiency. Pi3 is a little better in term of floating performance efficiency (MWIPS/A) but almost identical for interger performance.</p><p>And if we watch the idle power, Pi3 is 3 times more consumer that the Model A+ and the Zero.</p><p>So Pi3 seems not to be the best choose if you want a energy efficient solution. I mean that it is not a bad solution, but if the Model A+ and Zero is ok for you for the moment, you can stay with this solutions !</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ea0ea969c1c6" width="1" height="1" alt=""><hr><p><a href="https://medium.com/eco-design-of-software-by-greenspector/raspberry-pi-3-is-it-worth-for-energy-efficiency-ea0ea969c1c6">Raspberry Pi 3 : Is it worth for energy efficiency ?</a> was originally published in <a href="https://medium.com/eco-design-of-software-by-greenspector">Eco-design of software by Greenspector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why you should measure the energy of your software …]]></title>
            <link>https://medium.com/eco-design-of-software-by-greenspector/why-you-should-measure-the-energy-of-your-software-bd75e0d96d09?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/bd75e0d96d09</guid>
            <category><![CDATA[perfmatters]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Tue, 12 Apr 2016 08:13:07 GMT</pubDate>
            <atom:updated>2016-04-12T08:13:07.959Z</atom:updated>
            <content:encoded><![CDATA[<h4>The holy grail : load time.</h4><p>The page load time was the last time the key indicator when talking about optimizing websites. This has improved many sites or at least to structure the domain of web optimization. Good. However, we have taken a first pass and we have not reached the summit optimization.</p><p>When talking about optimization metric, we talk mainly metrics visible to the user. That is why indeed the loading time came first. This is a metric that everyone can understand. I click, the page is not, I expect, it appears! The articles in blogs, best practices… most of the industry is working on this. The GRAIL of the descent behind the second. It’s a good thing because it has optimized the size of some websites. The <a href="https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/rail">RAIL model</a> is a good example of these improvement : reduce response TIME, reduce animation TIME, increase idle TIME, reduce load TIME. Great model…</p><p>However the fight is not finish. We can see it with the bloat of website with <a href="http://httparchive.org/trends.php">HTTP archive</a>. More and more data :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*7qmQgrGbEPzjPNnlD7CKLg.png" /></figure><p>We must continue to improve the performance of web sites and applications. Is that users see and wonder. And to continue to find optimization, we need other metrics. Why ? because a chemist does not work with only litres, but with pH, temperature …</p><p>When we begin to study the classics of software metrics such as CPU or memory, you can not find the user needs, not directly. This is normal because they are metrics “technical” not directly visible to the user. High CPU consumption will create a real slowing of the user computer, but he will not understand it.</p><p>Moreover, profiling CPU and memory is not so simple. I leave specialists (Intel) <a href="https://software.intel.com/en-us/articles/intel-performance-counter-monitor">explains</a> this :</p><blockquote>The current implementation of this metric (the number that the UNIX* “top” utility and the Windows* task manager report) shows the portion of time slots that the CPU scheduler in the OS could assign to execution of running programs or the OS itself; the rest of the time is idle. For compute-bound workloads, the CPU utilization metric calculated this way predicted the remaining CPU capacity very well for architectures of 80ies that had much more uniform and predictable performance compared to modern systems.</blockquote><p>So what ? Don’t forget CPU, just be careful about its usages. No directly related to user. Moreover, CPU is not the only part of devices. Especially on mobile platform : screen, radio cell, GPU… Profiling one metric was difficult, so profiling several will not a realistic way for developers.</p><h4>Energy : Another metrics</h4><p>CPU use energy, radio cell use energy, GPU, use energy… So why not to use energy ? As in a car or speed is important, resource consumption is measured fuel consumption.</p><p>The energy is a little more. If, think about your state of nervousness when you’re lost in the city with your phone without battery and you do not have the address of your next appointment, no Google Maps or GPS …</p><p>The energy measurement is common in the material world but not the software world. Well yes, it’s virtual! 5 years ago when we started talking to measure energy to developer, we heard a lot of argument against! But we done it. Smartphones now embed energy sensors, servers in data centers also … and API software can retrieve this information. The brake is more the lack of tools, knowledge in energy …</p><h4>Energy : Some reminders</h4><p>First there is the power :</p><blockquote>The <strong>watt</strong> (symbol: <strong>W</strong>) is a <a href="https://en.wikipedia.org/wiki/SI_derived_unit">derived unit</a> of <a href="https://en.wikipedia.org/wiki/Power_(physics)">power</a> in the <a href="https://en.wikipedia.org/wiki/International_System_of_Units">International System of Units</a> (SI), named after the Scottish engineer <a href="https://en.wikipedia.org/wiki/James_Watt">James Watt</a> (1736–1819). The unit is defined as <a href="https://en.wikipedia.org/wiki/Joule">joule</a> per <a href="https://en.wikipedia.org/wiki/Second">second</a><a href="https://en.wikipedia.org/wiki/Watt#cite_note-1">[1]</a> and can be used to express the rate of <a href="https://en.wikipedia.org/wiki/Energy_transformation">energy conversion</a> or transfer with respect to time. (<a href="https://en.wikipedia.org/wiki/Watt">Wikipedia</a>)</blockquote><p>Power is a work per unit time. Power is ofter confused with the energy : Watt-hours. For example, a light bulb with a power rating of 20 W will consume 20Wh in 1 hour… or 40Wh in 2 hour. Not to misuse with Watt per hour, used for example to rate a ramp up of a power plant.</p><p>Energy in Wh is most important for the software because power with constantly change and the integration of the power in energy will be the good metric.</p><p>We will also talk of Ampere-hours (especially for the smartphone measure where battery are sized with Ah). But Ah is not a unit of energy.</p><p>Now you are ready to understant the following ;-)</p><h4>How to measure ?</h4><p>In <a href="http://greenspector.com/">Greenspector</a>, we work on energy probe and we try to simply existing tools and API to provide it to developpers. On good exemple is the <a href="https://medium.com/eco-design-of-software-by-greenspector/analyse-of-results-of-green-code-lab-challenge-2015-ed04907c01c5#.woe5uwuzx">Green Code Lab Challenge</a> where we measured energy of Raspberry and server.</p><p>Energy meters are more and more embbeded in hardware. The example is Android where you can find an API since Android 5 to get the hardware information about energy. It is simple :</p><pre>BatteryManager batteryManager =          (BatteryManager)context.getSystemService(Context.BATTERY_SERVICE);<br><br>    mEnergyNWH = BatteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);</pre><h4>The energy is constant in software ?</h4><p>No. We have measure for the projet Webenergyarchive.com, the consumption of web page loading in a smartphone. A first finding is that energy is not constant.</p><p>The sites use an average of 10 mAh. Taking a battery with a capacity of 3200 mAh (like the Nexus 6), so we have a range of 320 views site before discharging the battery.<br>If we take the 20 lowest consumer sites, has an average of 6.8mAh against 16.0mAh 20 for more consumers. It makes a difference of 470 views for least 200 consumer sites against either a passage of 467 minutes of autonomy to 200 mn. The implementation of the sites therefore has a real impact on the battery life of phones.</p><p>We can also analyze energy websites in terms of discharge rate. On average we have a discharge rate of 202 uAh/s for the page loading and 143 uAh/s for the page idle. For information, the consumption of the phone without browser and without site is 100 uAh/s. There is thus a doubling of the load in discharge rate. Similarly, the idle site consumes significant energy (impact 43 uAh/s). This shows the importance of optimizing this state (and not only the page loading). For that, here are some ideas:<br>- unbinding some data from memory<br>- Stopping or limiting scripts during idle<br>- …</p><p>Here the Ah of an android application is Idle in foreground :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/819/1*oSy8J2drFq39-Pc9yI7Ymg.png" /></figure><p>Versus application on background :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/819/1*4Rn7aTQ1pyNmiFlPoJji6g.png" /></figure><p>Energy give us here an important information about domains of optimization : It confirmed that we need to continue to optimize the page loading but we need also to work on the idle of the page.</p><h4>And now ?</h4><p>Measure, measure, measure … <a href="https://t.co/QHSzXs4ZmX">Performance culture</a> need to be known by every developers. Inside this culture, the energy measurement have an important place. Tools are youngs, domain is new… but we need to begin. We begun and i recommended it.</p><p>The current performance models need to be improved. For example, there is this reflexion on the <a href="https://www.smashingmagazine.com/2015/10/rail-user-centric-model-performance/">RAIL </a>model proposed by <a href="https://medium.com/@paul_irish">Paul Irish</a> and <a href="https://medium.com/@aerotwist">Paul Lewis</a> : Add B (for battery) and an M (for memory), turning into BLAIMR, PRIMAL. Good. Like we have a performance budget, we need a energy budget. Your software should not have an impact which double the energy discharge of the battery. Your software should not have an impact which increase by more that 10% the discharge rate of the battery in Idle…</p><p>But before model, we can simply measure. And watch the curve. We will learn a lot of things.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bd75e0d96d09" width="1" height="1" alt=""><hr><p><a href="https://medium.com/eco-design-of-software-by-greenspector/why-you-should-measure-the-energy-of-your-software-bd75e0d96d09">Why you should measure the energy of your software …</a> was originally published in <a href="https://medium.com/eco-design-of-software-by-greenspector">Eco-design of software by Greenspector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Green Code Lab Challenge 2015 Results]]></title>
            <link>https://medium.com/eco-design-of-software-by-greenspector/analyse-of-results-of-green-code-lab-challenge-2015-ed04907c01c5?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/ed04907c01c5</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[gclchallenge]]></category>
            <category><![CDATA[ecodesign]]></category>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Thu, 17 Dec 2015 07:54:53 GMT</pubDate>
            <atom:updated>2015-12-17T12:34:17.216Z</atom:updated>
            <content:encoded><![CDATA[<p>The 3rd Green Code Lab Challenge took place from December 2 to 4. It has helped more than 400 students and 25 professionals to showcase an unsung yet essential topic in the digitalization of our economy, namely eco-design software. Objectives of these 48 hours, optimize team and school in France and eight other countries, a process of communication between a connected object and a server. The Internet Of Things or the connected objects already invaded our lives every day and should explode in the coming years. With a small but significant numbers consumption, there is a strong impact on resources and energy. Indeed, according to an October 2015 study by IDATE, there will be 155 billion objects connected in 2025, with an average annual growth rate of 14%.</p><p>The 85 registered teams have thus worked on an exercise in style to make more efficient a connected object. Only 22 of them managed to have a functional code and measured. Among them, the teams had the choice of language, two teams had the C and C ++ code, other have developed on languages ​​such as JavaScript but mostly Python, probably for reasons of control and implementation speed.</p><p>The first 3 were in average 31 lines of code against 131 for the 22 teams. Simplicity is the friend and eco-design! Another interesting metric that corroborates the interest of sobriety in the quest for efficiency software, these three teams averaging using a single outdoor Library 2 against averages for the 22 functional teams.</p><p>In earnings on energy, if one takes the 1st place on the energy challenge, it was a factor of 421 with the last! This again demonstrates the impact of the developer in its development choices on energy use in fine.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WYYXPw7tMfytdtvXJmsduw.jpeg" /></figure><h3>Ranking</h3><p>The final ranking is as on the <a href="http://www.greencodelab-challenge.org/edition-2015/">Green Code Lab Challenge website</a> . 0 point indicates either that the application was not functional, or that there was no measure or that the code was not shared or that coding was not justified. Indeed, it is difficult to rank team for example simply on a measure without a functional code.</p><p>Lot of teams don’t success in having measures or functional application. The reasons : no agility for certain teams, tunnel effect with a rush the Friday, application not robust…</p><p>Here is an analysis of our partner Sigma on the evolution of functional results of the teams :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Moyl6UfhJ3Pth2t_YESZTQ.png" /></figure><p>20% of teams do not have a log. This corresponds to the teams that give up. We see a progression on improving logs. Until the end of the contest. The fact that all the teams have not led to a functional application is explained below.</p><p>And we have also the evolution of team with measurement ok in Greenspector :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/947/1*yLEx8OHmYf7IOFb-IcIA8A.png" /></figure><h3>Greenspector &amp; dashboard</h3><p>Greenspector was used for the challenge. A single account was used to store the results. A public dashboard and visible was used and allowed to see the rankings</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0irwSqEax16xBcvTGzZvzg.png" /></figure><p>In the dashboard, teams can monitor their consumption:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*efUI2m8ZG1LDcHvyTPfl5A.png" /></figure><p>Throughout the challenge, students can send their code and verify that it was functional. 8500 tests were carried out on the competition via our infrastructure. In Greenspector interface, organizing team had access to detailed measures. For a team, we have the opportunity to see the results of each measure.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*C8xXyw5UZ7lUGfeYiBux5Q.png" /></figure><h3>Infrastructure</h3><p>Greenspector managed a quite particular infrastructure: a 100 Raspberry PI cluster.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*O_bNH_ndWwkHaBicR4tXRQ.jpeg" /></figure><p>We have worked many hours on this introduction with all associated problematic : Power has dimension, hub to distribute food … Thanks lara_hogan for his book Device lab building that has served us. <a href="http://www.fivesimplesteps.com/products/building-a-device-lab">http://www.fivesimplesteps.com/products/building-a-device-lab</a></p><h3>Some figures on the infrastructure and teams</h3><p>Here the energy of the teams leading to a functional application.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/628/1*HBM42cbg9bldpxqF-ZXJyA.png" /></figure><p>The 1st team(5th energy of Raspberry) have a factor of 192 with the latter in term of energy. By cons, if we take the first on the energy classification (above) was a factor 421!</p><h3>Analysis of results</h3><p>Statistics of languages used on the Raspberry:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/481/1*zBfwJCjJm4yErnFMoc933Q.png" /></figure><p>The languages used on the Raspberry for the first 10:</p><p>Classement Langage<br>1 Python<br>2 C++<br>3 Python<br>4 Javascript<br>5 Python<br>6 C++<br>7 Python<br>8 Python<br>9 Python<br>10 Python</p><p>Note on 85 teams, only 22 have managed to have a functional code and measured. Of these 22, only two teams had the C and C ++ code. Does that mean that Python is faster than C? No, our analysis is that the students went on a language they mastered. Moreover within Python lines can make treatment faster. Also C was more difficult to have a functional and stable code in 48 hours. The first 3 were in average 31 lines of code against 131 for the 22 teams. Simplicity is the friend of eco-design. Another metric is used three teams averaging 1 2 External libraries against averages for the 22 functional teams.</p><h3>Return for Greenspector and next actions</h3><p>This is a long history of the Greenspector R&amp;D. Since several year, we have worked on the measure of the software layer. It’s not easy. A first idea is to put a wattmeter on the computer. But after, how to get back the data ? One measure every 1 second is sufficient for software ? And what if I want to measure only one process and not to be pollute by other process ? We put a lot of R&amp;D to solve these questions. And we work also with a lot of great partners. The infrastructure we mount for the Green Code Lab Challenge contains the essence of this work.</p><p>The challenge for us was a technical challenge! We had 85 teams actually measured every 15 minutes. For this we used probes of our partners:</p><ul><li>For Raspberry, the Power API probe. This probe estimates the energy consumption of a process.</li><li>For servers, the DSCope of Easyvirt probe to estimate the energy consumption of a virtual machine.</li></ul><p>This challenge is successful, we used to measure each team. However, this implementation has detected our strengths and weaknesses. We are being integrated in the roadmap of these corrections. In particular, the optimization of the probe which is too Raspberry consuming to our taste.</p><p>For the best practices, several conclusions :</p><p>. The best teams are the team which apply the KISS principle (<strong><em>Keep it simple, stupid)</em></strong></p><p>. So language can be more efficient but you need to master them, and it depend of the context. One language for one need.</p><p>. IoT doesn’t imply naturally an efficient code. We need to apply best practices to make it efficient.</p><p>And now ? We will integrate the Challenge experience feedback in Greenspector and prepare for the next challenge.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ed04907c01c5" width="1" height="1" alt=""><hr><p><a href="https://medium.com/eco-design-of-software-by-greenspector/analyse-of-results-of-green-code-lab-challenge-2015-ed04907c01c5">Green Code Lab Challenge 2015 Results</a> was originally published in <a href="https://medium.com/eco-design-of-software-by-greenspector">Eco-design of software by Greenspector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Software efficiency : know your enemy — case study on mobile data]]></title>
            <link>https://medium.com/eco-design-of-software-by-greenspector/software-efficiency-know-your-enemy-case-study-on-mobile-data-a0836863d1bb?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/a0836863d1bb</guid>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[android]]></category>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Thu, 05 Nov 2015 07:47:25 GMT</pubDate>
            <atom:updated>2015-11-05T07:50:56.244Z</atom:updated>
            <content:encoded><![CDATA[<p>Software ecodesign and efficiency is good sense. But a good sense if you know what to optimize and how your framework is running. We go also go on how the hardware is stimulate by the software.</p><p>For example, send data over the air is simple. With your favourite framework, you can send a file, a stream, a image… in one line. But what happen in the metal of your smartphone ?</p><p>Supposing your 3G radio cell is sleeping, the cell will be wake to be in a state of higher activity and higher energy consumption (The ramp phase). After, data will be send (the transfer phase). Once the transfer done, the cell will not go in the initial step (the sleep) but will stay in an intermediate state : the tail. This state have an energy consumption which is lower than the transfer step but higher than the sleep state. This state permit to have a better latency. Indeed, if a transfer happen after the first transfer, the cell will be ready to send the data (no ramp step to process).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/646/1*ix1SUw5ulp0ujDcMUIkcdw.png" /><figcaption>Energy chart of 3g (From <a href="https://www.eecis.udel.edu/~bohacek/SensorAndDataWirelessNets_2010/Energy/TailEnder.pdf">Energy Consumption in Mobile Phones: A Measurement<br>Study and Implications for Network Applications)</a></figcaption></figure><p>The tail step depend of the network provider but is between 1s and 10s. This step impact more the battery than the transfer step. Indeed, if transfers are intermittent and frequents, cell be more in the tail step than in the transfer step. According to the study <a href="https://www.eecis.udel.edu/~bohacek/SensorAndDataWirelessNets_2010/Energy/TailEnder.pdf">Energy Consumption in Mobile Phones: A Measurement<br>Study and Implications for Network Applications</a>, the average tail<br>energy is 80% of the total energy consumption in HTC phones.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/756/1*A_LtLbP4WU7gsiSmB0P_Wg.png" /><figcaption>Bluetooth Energy Consumption (<a href="http://www.ti.com/lit/an/swra347a/swra347a.pdf">Measuring Bluetooth® Low Energy Power Consumption from TI</a>)</figcaption></figure><p>You can see on the following graph, it is the same thing for the bluetooth… and for a lot of radio protocol. And also for GPS.</p><p>What it give on a real application ? The university of Perdue have study some apps. And tail have a big impact.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/920/1*E3tfgsuSTtXDaw7BLN3kHQ.png" /><figcaption><a href="http://research.microsoft.com/en-us/people/mzh/eurosys-2012.pdf">Fine Grained Energy Accounting on Smartphones with Eprof</a></figcaption></figure><p>For Angry Birds, 50% of the energy is from Net and GPS Tail. Moreover, Net and GPS is for ads and tracking…</p><p>What to do in your app and website to decrease this impact ? Leave your radio cells in sleep mode ! So it mean that it is better to regroup data writing. If you send data every 10s, the cell will be every time in tail state. It is more difficult because it’s easier to send data when it is generate (when you algorithm create the data).</p><p>Asynchronous mechanisms, batch sending, buffering… A lot of mechanisms can be apply. Prefetching for example is a good practices to regroup data downloading of big file (video …). The other advantage will be that radio cell will be ready to send the data and processing of sending will be faster.</p><p><a href="http://developer.android.com/training/efficient-downloads/efficient-network-access.html">Google explains </a>:</p><blockquote>Prefetching data is an effective way to reduce the number of independent data transfer sessions. Prefetching allows you to download all the data you are likely to need for a given time period in a single burst, over a single connection, at full capacity.</blockquote><p>For example, with Volley on Android you can use the requestQueue (<a href="http://developer.android.com/training/volley/requestqueue.html">Source Android</a>) :</p><blockquote>RequestQueue mRequestQueue;</blockquote><blockquote>// Instantiate the cache<br>Cache cache = new DiskBasedCache(getCacheDir(), 1024 * 1024); // 1MB cap</blockquote><blockquote>// Set up the network to use HttpURLConnection as the HTTP client.<br>Network network = new BasicNetwork(new HurlStack());</blockquote><blockquote>// Instantiate the RequestQueue with the cache and network.<br>mRequestQueue = new RequestQueue(cache, network);</blockquote><blockquote>// Start the queue<br>mRequestQueue.start();</blockquote><blockquote>String url =”<a href="http://www.example.com/">http://www.example.com</a>&quot;;</blockquote><blockquote>// Formulate the request and handle the response.<br>StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener&lt;String&gt;() { <a href="http://twitter.com/Override">@Override</a> public void onResponse(String response) { // Do something with the response }<br>}, new Response.ErrorListener() { <a href="http://twitter.com/Override">@Override</a> public void onErrorResponse(VolleyError error) { // Handle error }<br>});</blockquote><blockquote>// Add the request to the RequestQueue.<br>mRequestQueue.add(stringRequest);</blockquote><p>In summary, if we understand the hardware mechanisms, it is easy to integrate software mechanism to reduce the energy consumption. Know your enemy. For mobile data transfer, it is the energy waste during the tail state. Make it your friend by gathering a maximum of data transfer.</p><h4>References</h4><p><a href="http://www.ti.com/lit/an/swra347a/swra347a.pdf">Application Note AN092</a> — Measuring Bluetooth® Low Energy Power Consumption — By Sandeep Kamath &amp; Joakim Lindh TI</p><p><a href="https://www.eecis.udel.edu/~bohacek/SensorAndDataWirelessNets_2010/Energy/TailEnder.pdf">Energy Consumption in Mobile Phones: A Measurement<br>Study and Implications for Network Applications</a> — Aruna Balasubramanian — University of Massachusetts Amherst</p><p><a href="http://research.microsoft.com/en-us/people/mzh/eurosys-2012.pdf">Fine Grained Energy Accounting on Smartphones with Eprof</a> — Purdue University</p><p><a href="http://developer.android.com/training/efficient-downloads/efficient-network-access.html">Optimizing Downloads for Efficient Network Access </a>— Android Developers</p><p><a href="http://greenspector.com/">Greenspector Best pratices</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a0836863d1bb" width="1" height="1" alt=""><hr><p><a href="https://medium.com/eco-design-of-software-by-greenspector/software-efficiency-know-your-enemy-case-study-on-mobile-data-a0836863d1bb">Software efficiency : know your enemy — case study on mobile data</a> was originally published in <a href="https://medium.com/eco-design-of-software-by-greenspector">Eco-design of software by Greenspector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The price of rapid integration of libraries and web services]]></title>
            <link>https://medium.com/eco-design-of-software-by-greenspector/the-price-of-rapid-integration-of-libraries-and-web-services-41246694d904?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/41246694d904</guid>
            <category><![CDATA[ecodesign]]></category>
            <category><![CDATA[performance]]></category>
            <category><![CDATA[libraries]]></category>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Sun, 25 Oct 2015 13:55:23 GMT</pubDate>
            <atom:updated>2015-10-25T13:57:00.367Z</atom:updated>
            <content:encoded><![CDATA[<p>Customer / marketing : I want a google map in the contact web page to indicate my premise to my customer</p><p>Developer : Ok, no problem. 4 hours is sufficient to to this. There are a lot of libraries for your framework to to this.</p><p>Customer / Marketing : And if you can integrate Facebook and Twitter counter, it will be great. Everybody have such counter !</p><p>Developer : OK. It will be integrated with the Google Map.</p><p>These requests are widespread in web and software world. Customers and users use to see a lot of functionalities in other sites, they use to have it rapidly, and developers can integrate is rapidly… Providers of services like Facebook, Google, Twitter… have provided a lot of api and a lot of plugin have been developed to integrate these APIs in websites and applications.</p><p>Good you will said ! But what is the price of theses integrations ? I will said prices because not only there is a price on privacy of users data (tracking, geolocalization…) but there is a price on resource consumption.</p><h3>Youtube Example.</h3><p>Youtube and google map is the same in term of mecanisme. So we have integrated the Youtube embedded video. The aim was simple : integrate a video of presentation of our tool <a href="http://greenspector.com/">Greenspector</a>. Initialy, the site has 25 requests.</p><p>The integration was very simple :</p><blockquote>&lt;iframe width=”320&quot; height=”180&quot; src=”<a href="http://www.youtube.com/embed/LcIytqkbdlo">http://www.youtube.com/embed/LcIytqkbdlo</a>&quot;&gt;<br>&lt;/iframe&gt;</blockquote><p>Good ! the result was great : a responsive video of our product. But after some profiling :</p><ul><li>12 more requests</li><li>400 kB more</li><li>Load time from 350 ms to 1,2s</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vE28iHcbN0SKWmRn4uNLZQ.png" /></figure><p>Why ? Because this integration include a waterfall of extra request :</p><ul><li>Stylesheet</li><li>javascript</li><li>Script for add</li><li>a js which respond 404</li><li>media : Images, fonts…</li></ul><p>The price is high for an video. Moreover, we don’t talk about the weight of video but the weight of integration of the video.</p><p>The price is the same for social media integration and is even more important : we have regular update. If we also watch the request of such api, the requests are not generally cache and they are download every reload of the page.</p><h3>How to optimize ?</h3><p>Developer : There is a problem. The integration of google map add extra requests. The page is more heavy.</p><p>Customer / marketing : hmmmm… You said me you were the best ! Do your best !</p><p>Developer : No problem. This will delay a little the delivery</p><p>So what to do … We need to enter in the great side of integration : the optimization and the understanding of the library (Yes some people like this part !). The optimization is possible but require a little effort.</p><p>For example, for our case of video, we can use a sort of lazy loading mecanism. If the user want to see the video, he click on the image and then, all needed elements are download. More details : <a href="http://www.labnol.org/internet/light-youtube-embeds/27941/">http://www.labnol.org/internet/light-youtube-embeds/27941/</a></p><h3>It is all ?</h3><p>It’s not only optimization but also a rethinking about the functionality and the need for the user. What the user need in term of functionality ? He want to have a map or a link to a social network. Not all the time to have all the functionality of google map. Indeed, if we analyze what we embed : possibility to zoom, to go full screen, to make itinary …</p><p>If we will only integrate the need ? Just a map, not all extra functionality. It is feasible : we can integrate a image which is a copy of the map (google, open street map…) with a link to the service. On our <a href="http://kaliterre.fr/eng/Contact-us">company web page</a>, it give :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7dos1gmIG9ECSSyQt0TReA.png" /></figure><p>And the functionality is better on the real service page than on our page (not full page…)</p><h3>Resource budget ?</h3><p>We can go further in the reflexion : Every functionality, every part of the software can have a resource budget : it consume a part of the platform resource (CPU, memory, time…). This notion begin to be used in the performance domain. <a href="https://twitter.com/tkadlec">tkadlec </a>explains this in this <a href="https://www.youtube.com/watch?v=yqejmZrtmNg">video</a>.</p><p>We also work on this notion on the eco-design. Like a typical budget, we can allocate a global budget to the software or the website. If you integrate a library or a functionality, the global budget is increased by the library budget. And if you have decided of a max budget (50mWh for the energy of a webpage, 1Mo for the page size…), with the library integration, you can exceed your budget.</p><p>This notion is simple in some way because we now this notion on our company or heaven at home. But on other way, it can be complexe. how to know the budget and the impact of the library ? We need to integrate it to know it.</p><p>With this notion, we can now discuss with our customers and users. What is the extra budget of integration of such functionality. Without this notion, we can not discuss and management the final consumption.</p><p>It is a work of day by day, of knowledge of libraries mecanisms… It is the price if you want not to pay a hidden price : the price of rapid integration of web services and libraries.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=41246694d904" width="1" height="1" alt=""><hr><p><a href="https://medium.com/eco-design-of-software-by-greenspector/the-price-of-rapid-integration-of-libraries-and-web-services-41246694d904">The price of rapid integration of libraries and web services</a> was originally published in <a href="https://medium.com/eco-design-of-software-by-greenspector">Eco-design of software by Greenspector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Weekly revue from Olivier Philippot — Issue #6]]></title>
            <link>https://medium.com/eco-design-of-software-by-greenspector/weekly-revue-from-olivier-philippot-issue-6-ab8656fc7855?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/ab8656fc7855</guid>
            <category><![CDATA[android-app-development]]></category>
            <category><![CDATA[android]]></category>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Sun, 27 Sep 2015 15:34:19 GMT</pubDate>
            <atom:updated>2015-09-27T15:35:20.369Z</atom:updated>
            <content:encoded><![CDATA[<p><a href="https://www.getrevue.co/profile/Olivier_Philippot">Subscribe </a><a href="https://www.twitter.com/share?url=https://www.getrevue.co/profile/Olivier_Philippot/archive/6245&amp;via=getrevue&amp;text=Olivier%20Philippot%20-%20Issue%20%236&amp;related=getrevue">Share</a></p><p><em>Originally published at </em><a href="https://www.getrevue.co/profile/Olivier_Philippot/archive/6245"><em>www.getrevue.co</em></a><em>.</em></p><p><a href="https://www.youtube.com/watch?v=BkbHeFHn8JY&amp;list=PLWz5rJ2EKKc_QykqcDSoMrY7Dhcv98iEN&amp;index=6">DO NOT LEAK VIEWS (Android Performance Patterns Season 3 ep6) — YouTube</a><br>I have find a lot of these leaks in my analyzes of application with Greenspector. Difficult a lot of times to find the reasons of these leaks.</p><p><a href="http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants">Gradle Plugin User Guide — Android Tools Project Site</a><br>One binary for all… no, it’s better to make a binary by platform.</p><p><a href="https://speakerdeck.com/rejasupotaro/improving-ux-through-performance">Improving UX through performance // Speaker Deck</a><br>One thing is important : library are good but sometimes there costs is high. To communicate in Android, Volley use HttpUrlConnection which use OkHttp. Keep it simple, use OkHttp</p><p><a href="http://carymillsap.blogspot.com/2015/09/the-fundamental-challenge-of-computer.html">Cary Millsap: The Fundamental Challenge of Computer System Performance</a><br>Great article from <a href="http://twitter.com/CaryMillsap">@CaryMillsap</a> : “Give your people time to fix inefficiencies in your code. An inexpensive code fix might return many times the benefit of an expensive hardware upgrade”</p><p><a href="http://addyosmani.com/blog/removing-unused-css/">Spring-cleaning Unused CSS With Grunt, Gulp, Broccoli or Brunch</a><br>Unused CSS bloat the network, so interesting article to optimize your web site.</p><p><a href="http://developers.slashdot.org/story/15/09/22/2145258/cassandra-rewritten-in-c-ten-times-faster?utm_source=rss1.0mainlinkanon&amp;utm_medium=feed">Cassandra Rewritten In C++, Ten Times Faster — Slashdot</a><br>Sometimes changing of technology is necessary.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ab8656fc7855" width="1" height="1" alt=""><hr><p><a href="https://medium.com/eco-design-of-software-by-greenspector/weekly-revue-from-olivier-philippot-issue-6-ab8656fc7855">Weekly revue from Olivier Philippot — Issue #6</a> was originally published in <a href="https://medium.com/eco-design-of-software-by-greenspector">Eco-design of software by Greenspector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[7 reasons to make your website or application more efficient (In one word : Eco-design)]]></title>
            <link>https://medium.com/eco-design-of-software-by-greenspector/7-reasons-to-make-your-website-or-application-more-efficient-in-one-word-eco-design-35250116b578?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/35250116b578</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Sun, 27 Sep 2015 15:13:50 GMT</pubDate>
            <atom:updated>2015-09-27T15:15:29.960Z</atom:updated>
            <content:encoded><![CDATA[<p>Originally publish in <a href="https://www.linkedin.com/pulse/7-reasons-make-your-website-application-more-one-word-philippot">linkedin</a></p><p>This post aims to respond to a recurrent question of developers, customers and students that I met during last years about eco-design of software: why eco-design my software or website?</p><p>The software is not virtual, it stimulates the material. Thus, any line of code will act directly on hardware resources: CPU, memory, network interfaces, disk … we imagine very easily that some programming practices will consume more resources than others. For the answer to the same need, then we will have an unnecessary resource consumption which will have several negative impacts: energy consumption, loss of independence for mobile devices, a computer obsolescence phenomenon … all the more important that the software will consist of several layers and bookstores. We call this phenomenon the bloatware.</p><p>Eco-design software is the application of good practices to reduce hardware resource consumption while meeting the needs of the user and maintaining performance. The areas of action will be many: optimization features, working on architecture, benchmark libraries, code efficiency, efficiency measurement.<br>A question is often asked: the efficiency of software or eco-design is such that performance? No, the performance will often go the way of eco-design but not prompted systematically. First, we must clarify the term performance: display’s performance, processing’s performance? For a performance such website display, we implement mechanisms to ensure that the user sees the page as quickly as possible. These mechanisms will potentially consume resources.</p><p>So why you need to apply eco-design and to make your software green ?</p><h3>1 — Free lunch is over !</h3><p>For 20 years, when we need CPU, memory… We can have it. Needs an additional server to increase the performance? No problem, you have just to click. Why to optimize software if i know that i will have more power next year ? And moreover, there is a law for this : <a href="https://en.wikipedia.org/wiki/Moore%27s_law">Moore’s Law</a> ! Something in the performance of CPU (MHz, power…) will double every 18 months!</p><p>The problem is that Moore’s Law is not a scientific law. It was an observation and it is more a goal for the industry. It can be seen as a <a href="https://en.wikipedia.org/wiki/Self-fulfilling_prophecy">self-fulfilling prophecy</a>.</p><p>Moreover, IT has a real environmental impact : obsolescence, energy consumption, rare earth metals… This last item is for example a big problem.<a href="http://www.theguardian.com/sustainable-business/rare-earth-mining-china-social-environmental-costs">Rare earth metal</a>s are used to manufacture our computers, smartphones and other gadgets are… rare, have an environmental and social cost. We need to take care about the stock of such metals.</p><p>So manufacturers have begun the eco-design of IT, software actors need now to make their work !</p><h3>2 — Mobility means autonomy</h3><p>One big reason to go to eco-design is the new usage of IT and especially the mobility. Smartphones and tablets are the most used platforms <a href="http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketing-statistics/">nowadays</a> for website consultations for example. The energy was not a problem with computer platform, but it is not the case today. So mobile platforms are more and more stimulated and so it drain more and mode energy.</p><p>The increase of the battery capacity of these platforms is not a solution. What if for our cars to increase autonomy, car manufacturers will just increase the capacity of the petrol tank. Not a solution, better efficiency is needed.</p><p>This is a need for the users because they don’t want to reload their smartphone every day. The problem is not simple because the energy drain by every application and websites is generally small but there is a lot of applications used !</p><h3>3 — Users need performance</h3><p>Users need battery autonomy, but moreover, need performance for their applications. More than 2 seconds to load a website is too long! 5 seconds to open an application, I will not use one more time this application. An interface to complex, lot of users will not like and use the application.</p><p>So applications and websites need to be efficient. Eco-design aim is to reduce the resource consumption, so automatically applications will be more efficient. We need to take care of hardware if we are in the software world.</p><h3>4 — Not everybody has a fiber access</h3><p>Not everybody is a geek, a hipster and have a fiber access. A lot of country, for example in Africa have not a good network. In the same way, a lot of people have a quota in the usage of data.</p><p>A website or an application need to be developed for everybody, no matter the location or the capacity. Facebook, for example, have worked in this way to provide <a href="https://code.facebook.com/posts/485459238254631/improving-facebook-on-android/">an optimal application</a>.</p><p>The more an application will be optimized, the more users it will have. To understand this, take your old smartphone and use website of today, it is very probable that you will not be able to see the website.</p><p>We need to think and to develop softwares that run with few data and not to design it to run with the future 5G or 6G!</p><h3>5 — IoT or IT everywhere</h3><p>Buzzword or not, Internet of Thing will be everywhere… And is today everywhere: smartphone, webcam… And tomorrow, it will be more. So even if we think that IoT are little object and so little software, it is not the case. IoT in general are little smartphone : Generic hardware with Android or Linux OS, more and more memory… As smarphone are the computer of yesterday, IoT of tomorrow will be the computer of today.</p><p>So, optimization and important care on the resource consumption (CPU, mémory, data…) are crucial. Otherwise, IoT will be just big computer and will be everywhere. The impact of such a phenomenon can be bigger that the actual impact of data center. The devil is in the detail… and for the moment IoT is a detail in term of size comparable to data center and computer. Without talking of the data generated by IoT.</p><h3>6 — Developers need to change the world… For a better world</h3><p>Thinking of Software and impact on software without talking about developers make no sense. Developers have an import impact on the world today because they bring new solutions to people (Think to Uber, to AirbnB…) but I think generally it is a mirage.</p><p>As explained by <a href="http://www.evgenymorozov.com/">Evgeny Morozov</a>, the people of the Sillon Valley have no time to change the world. Indeed, we need to focus more on the real impact of IT on the world : does this functionality will bring us more happiness, what is the price of the application in term of resources… A lot of questions that developers have not in mind. But if we give us the time, they will be also happy.</p><p>I have discussed a lot with developers with the work associated on eco-design and<a href="http://www.greenspector.com/">Greenspector</a>, and when we take time to talk about impact on the environment and optimization, they have great solutions. Developers need to integrate Eco-design, and not only security of code, maintenability…</p><h3>7 — Frameworks and tools are more and more complex</h3><p>As we ask developers, to go faster on writing code and adding functionality, frameworks and tools are becoming more and more flexible and efficient. The problem is that it brings a lot of layers and external code. Dozen of external servers for a website (Google analytics, ad servers…), several libraries in mobile applications, abstraction software for database management…</p><p>Developers have lost the view on the hardware, they don’t know what their codes do on hardware. It is the price for flexibility and fast developing. We integrate library but we don’t care of their efficiency and who has developed it.</p><h3>And after ?</h3><p>I can provide you several arguments to begin eco-design, you will provide me also more arguments to continue to not take into account the resources. “Hardware will be more and more efficient”, “ Middleware are conceived to optimize the software and are improving every day”, “It’s not our job, it is the job of Microsoft, Apple and Google…”. I prefer to believe that software development is craftsmanship and is important. So if we don’t take care of the impact on the material resources and on the environments, we are wrong. Moreover, eco-design is just good sense.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=35250116b578" width="1" height="1" alt=""><hr><p><a href="https://medium.com/eco-design-of-software-by-greenspector/7-reasons-to-make-your-website-or-application-more-efficient-in-one-word-eco-design-35250116b578">7 reasons to make your website or application more efficient (In one word : Eco-design)</a> was originally published in <a href="https://medium.com/eco-design-of-software-by-greenspector">Eco-design of software by Greenspector</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[dsd]]></title>
            <link>https://medium.com/@SimplyGreenIT/dsd-540d5900ccbe?source=rss-7129dc1c5148------2</link>
            <guid isPermaLink="false">https://medium.com/p/540d5900ccbe</guid>
            <dc:creator><![CDATA[Olivier Philippot]]></dc:creator>
            <pubDate>Sun, 27 Sep 2015 15:06:16 GMT</pubDate>
            <atom:updated>2015-09-27T15:06:16.176Z</atom:updated>
            <content:encoded><![CDATA[<p>sdsd</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=540d5900ccbe" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>