Skip to content

Commit

Permalink
Quick save
Browse files Browse the repository at this point in the history
  • Loading branch information
ribalba committed Jan 14, 2024
1 parent 044d5db commit 5d2a569
Show file tree
Hide file tree
Showing 74 changed files with 1,677 additions and 1,114 deletions.
21 changes: 21 additions & 0 deletions .github/workflows/check_string.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Check for String

on: [push, pull_request]

jobs:
check_string:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Check for Deepl string
run: |
if grep -R "Deepl" . ; then
echo "String 'Deepl' found"
exit 1
else
echo "String 'Deepl' not found"
fi
152 changes: 57 additions & 95 deletions content/about.de.md

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions content/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ and human life does too.

However we believe that using software is the way to be more green and more sustainable and digitalizing every sector is one building block to tackle climate change.

As with every technological domain measuring and understanding how much you use
is the most important step to approach any task.
As with every technological domain measuring and understanding how much you use
is the most important step to approach any task.

The next step is to understand the potentials for optimizations. Sometimes this are very low hangig fruits like
[green hosting](https://www.thegreenwebfoundation.org/).
Expand Down Expand Up @@ -54,15 +54,15 @@ After the user interaction software has to do background jobs. Be it cronjobs, M
Even in the age of virtualization machines often have significant idle times. In the user landscape this is often compensated with sleep modes. In the server
world energy saving modes typically do not exist.
#### Process energy
Software can so fast that it is not perceivable if the usage was 10ms or 100ms. Nevertheless the energy difference can be enormous and
Software can so fast that it is not perceivable if the usage was 10ms or 100ms. Nevertheless the energy difference can be enormous and
is hard to estimate if scaled up.


### Our work
To make all of these separate domains visible to the developer we are creating open source tools to make the energy visible.

For user facing applications in the desktop, web and mobile world we are creating a tool to measure the whole application lifecycle based
on the concept of a Standard Usage Scenario: The [Green Metrics Tool](https://github.com/green-coding-berlin/green-metrics-tool)
on the concept of a Standard Usage Scenario: The [Green Metrics Tool](https://github.com/green-coding-services/green-metrics-tool)

By pinning the code version and the usage scenario we can make different softwares comparable to each other.

Expand All @@ -87,18 +87,18 @@ software runs through a Continuous Integration (CI) Pipeline and all the tests a
This process is often very opaque and the true cost hidden from the developer as it takes place in the cloud or on
specialized SAAS platforms.

The understanding the cost of building software and the potential savings when batching the process or even splitting
The understanding the cost of building software and the potential savings when batching the process or even splitting
the Pipeline to only execute relevant parts can be tremendous.

### Our work
As said before: Measuring is the first key to understanding, therefore our main focus here lies in
As said before: Measuring is the first key to understanding, therefore our main focus here lies in
the visiblity and education about the energy cost for developing software.

We develop in-line plugins for Github Actions and badges that make other people aware how much the build costs.

Also we focus in the building process for static sites, which typically have a lower cost of operating but incur a build cost.

Checkout out our [OpenEnergyBadge project](/projects/open-energy-badge), our [Eco CI-plugins for Github](/projects/eco-ci) or our [Case Studies](/case-studies/) on the topic.
Checkout out our [OpenEnergyBadge project](/projects/open-energy-badge), our [Eco CI-plugins for Github](/projects/eco-ci) or our [Case Studies](/case-studies/) on the topic.

Example badge: {{< rawhtml >}} <a href="https://metrics.green-coding.io/stats.html?id=01e4f6e1-318f-4ecb-a19f-041439a50065"><img src="https://api.green-coding.io/v1/badge/single/01e4f6e1-318f-4ecb-a19f-041439a50065?metric=AC"></a>{{< /rawhtml >}}

Expand All @@ -107,7 +107,7 @@ Network
{{</ greenblock >}}


Network transmissions are coming more and more into the focus as one of
Network transmissions are coming more and more into the focus as one of
the main drivers of software carbon emissions.

Great tools like [Websitecarbon.com](https://www.websitecarbon.com/) allow the visiblity of the cost for a typical
Expand All @@ -122,7 +122,7 @@ In the advent of the internet network transfer was typically metered. By introdu
the internet increased its adoption and became ubiquitous.

However flatrates have introduced a decoupling from the nature of network transmissions not really
having a flat carbon emission.
having a flat carbon emission.
This creates a disconnectedness and misunderstandig that every use of network will at some
point lead to an increase in carbon emissions. Sometimes linearly, sometimes in stages. (See [Gigabytes to kWh](/co2-formulas/#gigabytes-to-kwh))

Expand All @@ -136,14 +136,14 @@ way of interacting with it.
We currently address this topic by educating developers through [Meetups](/meetups-and-events/) and through
talks at conferences or coding bootcamps like [WBS Coding School](https://www.wbscodingschool.com/)

On the technical site we highligh the network emissions in our [Green Metrics Tool](https://github.com/green-coding-berlin/green-metrics-tool) and show
On the technical site we highligh the network emissions in our [Green Metrics Tool](https://github.com/green-coding-services/green-metrics-tool) and show
recommendations like
- Moving connection from mobile to fixed-line
- Demand Shifting to do network requests in carbon-friendly times
- Using compression techniques
- Altering connection formats like HTTP -> HTTP2
- NOT delivering content that has no strong benefit
- Reducing update cycles and polling intervals
- Reducing update cycles and polling intervals

{{< whiteblock >}}
Embodied carbon
Expand Down
18 changes: 9 additions & 9 deletions content/blog/adventures-in-dc-measurement.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,22 @@ authorlink: "https://www.linkedin.com/in/arne-tarara"
We finally got our DC measurement setup ready ... sadly around one month later
than expected.

If you wanna see first results go here:
If you wanna see first results go here:
- [Wordpress sample measurement](https://metrics.green-coding.io/stats.html?id=2213b2ec-f96f-4fb4-9fc9-82094bdee1bb)
- [Stress sample measurement](https://metrics.green-coding.io/stats.html?id=f99e563d-2c5c-453d-99fe-5ac9f6f307ac)

If you wann get the details of our journey, why we are integrating it into our tool, some tech specs and the future outlook on when we have the AC measurement ready, then read on :)

## Why?

Current energy measurement in software that works in a small time resolution is mostly done in with
[RAPL](https://01.org/blogs/2014/running-average-power-limit-%E2%80%93-rapl) interfaces.
Current energy measurement in software that works in a small time resolution is mostly done in with
[RAPL](https://01.org/blogs/2014/running-average-power-limit-%E2%80%93-rapl) interfaces.

Typically either [directly](https://web.eece.maine.edu/~vweaver/projects/rapl/) or through tools like [Scaphandre](https://github.com/hubblo-org/scaphandre).

If you want to have more direct DC power readings you can use the [Marcher system from the Texas State University](https://greensoft.cs.txstate.edu/index.php/2018/05/22/marcher-the-need-for-a-fine-grained-software-energy-efficiency-measuring-platform/) with their [Green Code](https://greencode.cs.txstate.edu/) hosted service.
If you want to have more direct DC power readings you can use the [Marcher system from the Texas State University](https://greensoft.cs.txstate.edu/index.php/2018/05/22/marcher-the-need-for-a-fine-grained-software-energy-efficiency-measuring-platform/) with their [Green Code](https://greencode.cs.txstate.edu/) hosted service.

While this last option works generally fine especially with C code, we had some problem to get more complex PHP and Python code running.
While this last option works generally fine especially with C code, we had some problem to get more complex PHP and Python code running.
You can however apply for an SSH access to get more complex code working, we did not try though.
Also the jQuery interface is partially broken and getting a detailed power consumption is not possible anymore.

Expand Down Expand Up @@ -95,7 +95,7 @@ The linux measurement client is a breeze and signals looked directly accurate wi

For inital testing we opted for a simple 0.5 Ohms inline shunt resistor that is measured in the differential measurement mode.

The code for importing the measurements is very simple Python. If you want to have a look at it, you can find it in our [dev branch](https://github.com/green-coding-berlin/green-metrics-tool/blob/dev/tools/dc_converter.py).
The code for importing the measurements is very simple Python. If you want to have a look at it, you can find it in our [dev branch](https://github.com/green-coding-services/green-metrics-tool/blob/dev/tools/dc_converter.py).


## Judgment of the measurement quality
Expand All @@ -112,7 +112,7 @@ Since we are experiencing different voltages on the different 12 V lanes we susp

The next iteration will use special current measurement resistors and also look into reducing the measurement noise a bit by evaluating a single-ended voltage measurement where we feed the analogue ground back to the PicoLog HDR ADC-24.

Another issue we are currently having is that the timestamps of the measurement results are not synchronized with the clock of the reference system. In the current setup we have the software for the PicoLog running not on the System under Test (SUT) but on a separate machine.
Another issue we are currently having is that the timestamps of the measurement results are not synchronized with the clock of the reference system. In the current setup we have the software for the PicoLog running not on the System under Test (SUT) but on a separate machine.

The reason for that is that we initially configured our measurement setup to measure a windows machine, where our tools are not running atm.
Since we are now measuring Linux only there is no reason anymore for it.
Expand All @@ -121,11 +121,11 @@ We will update the measurement setup as well as the measurements on our [Metrics

## Whats next

As soon as we have updated the measurement setup and also falsified with the [Eco KDE Team]() and their DC measurements we will build the linear model out of it and create calibration curves for our other 4 machines
As soon as we have updated the measurement setup and also falsified with the [Eco KDE Team]() and their DC measurements we will build the linear model out of it and create calibration curves for our other 4 machines
we have sitting around.

Also we have ordered two Dell Power Edge Server blades to falsify our measurements with the official readings from the [Spec Power Database](https://spec.org/power_ssj2008/results/)

We hope to make the model robust enough so we can translate it to server environements in a similar
We hope to make the model robust enough so we can translate it to server environements in a similar
fashion that is currently done for instance by [David Mytton](https://github.com/cloud-carbon-footprint/cloud-carbon-coefficients) and the [Cloud Carbon Footprint](https://www.cloudcarbonfootprint.org/docs/methodology/) project.
Only with a better time resolution and more accurate data.
4 changes: 2 additions & 2 deletions content/blog/carbon-aware-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ authorlink: "https://www.linkedin.com/in/dietgerhoffmann/"

While writing the [“Software Life Cycle Assessment done in the wild”](/blog/software-life-cycle-assessment/) article I needed to develop a little server that could do three simple tasks. Because the article became too long I decided to separate the methodology how to develop with environmental impact in mind into a dedicated part. Feel free to head over to the [SLCA](/blog/software-life-cycle-assessment/) article and read the first part to see why we are developing this server.

In this article I want to introduce the new concept of Carbon Aware Development. While there is some prior work on how to measure carbon emissions of software, we at [Green Coding Berlin have loads on the topic](https://www.green-coding.io/blog/), there is no usable and tool based framework, I am aware of, that encourages developers to think about their choices in regards to carbon from the beginning (However there are theoretical ones like for instance [the GREENSOFT model](https://www.umwelt-campus.de/fileadmin/Umwelt-Campus/Greensoft/The_GREENSOFT_Model_A_reference_model_fo.pdf)). The main focus, in this article, is on the **development** phase of the Software Life Cycle Assessment with solutions for the usage phase discussed in the other article. Developing software is an iterative process. Often decisions we take very early on have major consequences later on. The most obvious being the programming language and the underlying architecture everything is based on. While many factors are taken into account early on, carbon is nearly never one.
In this article I want to introduce the new concept of Carbon Aware Development. While there is some prior work on how to measure carbon emissions of software, we at [Green Coding Solutions have loads on the topic](https://www.green-coding.io/blog/), there is no usable and tool based framework, I am aware of, that encourages developers to think about their choices in regards to carbon from the beginning (However there are theoretical ones like for instance [the GREENSOFT model](https://www.umwelt-campus.de/fileadmin/Umwelt-Campus/Greensoft/The_GREENSOFT_Model_A_reference_model_fo.pdf)). The main focus, in this article, is on the **development** phase of the Software Life Cycle Assessment with solutions for the usage phase discussed in the other article. Developing software is an iterative process. Often decisions we take very early on have major consequences later on. The most obvious being the programming language and the underlying architecture everything is based on. While many factors are taken into account early on, carbon is nearly never one.

> **Carbon Aware Development** is a methodology in which resource usage is seen as a first class metric in evaluating software and implementation decisions. It acknowledges that software is always in ongoing development.
>
Expand All @@ -25,7 +25,7 @@ The server we are developing should do three simple things:

Like pretty much with any project we start by creating a docker file and specifying what components we need initially. Details can be found in the GitHub repo:

[https://github.com/green-coding-berlin/SLCA-Code](https://github.com/green-coding-berlin/SLCA-Code)
[https://github.com/green-coding-services/SLCA-Code](https://github.com/green-coding-services/SLCA-Code)

For this example we use a simple setup with a [FastAPI](https://fastapi.tiangolo.com/) and a database in the background. Because I am used to [PostgreSQL](https://www.postgresql.org/) my initial setup includes this but the way we are setting this up we can easily benchmark different backends in the future.

Expand Down
Loading

0 comments on commit 5d2a569

Please sign in to comment.