Shared posts

29 Mar 20:15

Rundbrief der GWPF: Meldungen aus dem Ausland zur deutschen Energie­wende

by Chris Frey

Geht Deutschlands Energiewende ihrem Ende entgegen?

Clean Energy Wire und Karl Mathiesen

Link zu einem passenden Bild

Das neue Koalitionsabkommen in Deutschland war eine „bittere Enttäuschung“ für all jene, die nach einer modernen Klima- und Energiepolitik streben. Das sagte der scheidende Staatssekretär im Energieministerium Rainer Baake.

Dieser hat nach vier Jahren als Verantwortlicher der Flaggschiff-Energiewende-Politik des Landes seinen Rücktritt erklärt.

Baakes Ankündigung kam, nachdem der demokratische Stillstand in Deutschland schließlich gelöst werden konnte, 162 Tage nach der Bundestagswahl 2017. Es wird erneut eine große Koalition geben unter Leitung von Kanzlerin Angela Merkel.

Baake, ein Grünen-Politiker, dessen Ernennung durch den damaligen Minister Sigmar Gabriel seinerzeit als Überraschung kam, kritisierte in seinem Rücktrittschreiben, welches Clean Energy Wire einsehen konnte, die Energie- und Klima-Planungen der neuen Regierung.

Die Planungen für die Energiewende im neuen Koalitionsvertrag seien eine „bittere Enttäuschung“, schrieb Baake dem designierten neuen Minister für Energie und Wirtschaft Peter Altmaier.

Die neue Regierung „verpasst die Gelegenheit, die deutsche Wirtschaft von Grund auf zu modernisieren“, sagte Baake und fügte hinzu, dass die Kräfte, welche alte und „das Klima schädigende“ Strukturen erhalten wollen, offenbar stärker waren.

Während seiner Amtszeit steuerte Baake die Reform der zentralen Gesetzgebung zur Energiewende, dem EEG. Darunter war die Änderung von Einspeisetarifen hin zu einem weicheren System – ein Vorgang, der von der Erneuerbaren-Industrie scharf kritisiert worden ist.

Baake, von deutschen Medien wegen seiner Erfahrung und seiner Schlüsselrolle in der Energiepolitik des Landes auch „Mr. Energiewende“ genannt, stellte sich auch wiederholt gegen Versorger und die Gewerkschaft der Kohle-Bergleute. Er brachte eine „Abgabe auf Kohle“ ins Spiel, um Emissionen von Kohlekraftwerken zu reduzieren.

Stattdessen wurden einige Braunkohle-Kraftwerke in eine bezahlte „Sicherheits-Reserve“ transferiert, bevor sie permanent geschlossen wurden.

Von dem Zeitpunkt an, als Merkel beschlossen hatte, das Energieministerium in der neuen Koalitionsregierung den Sozialdemokraten und ihrem engen Vertrauten Altmaier zu übergeben, stand Baakes Zukunft in dem Ministerium in den Sternen. Ministerpräsident Michael Kretschmer von Sachsen forderte vorige Woche den Rücktritt von Baake und sagte, dass er verantwortlich war, „die Energiepolitik ideologisch zu befrachten“.

Ganzen Beitrag lesen.
——————————-
Der Gegner der grünen Lobby Altmaier informiert über Energie

reNews, 5. März 2018

Der ehemalige Umweltminister von Deutschland Peter Altmaier soll Mitte März der neue Minister für Wirtschaft und Energiewende werden.

Die SPD stimmte am Wochenende zu, eine neue „Große Koalition“ zu bilden – fast sechs Monate nach den Wahlen im September.

Die Unterstützung der SPD sichert auch die Wiederwahl von Kanzlerin Merkel.

Altmaier war als Umweltminister von 2012 bis 2013 verantwortlich für das Portfolio erneuerbarer Energie. Er schlug während seiner Amtszeit rückwirkende Änderungen des Einspeise-Tarifsystems vor. Dieser Vorstoß traf die Investitions-Sicherheit der Offshore-Windindustrie und führte zu einem Abschwung in dem Bereich.

Der Vorstoß wurde später von Kanzlerin Merkel offiziell abgelehnt.

Ganzen Beitrag lesen

29 Mar 20:15

Manipulierte Messungen der Schadstoffe

by Admin

Jetzt beginnen auch in München die öffentlichen Diskussionen darüber, wie man Schadstoffe des Straßenverkehrs so misst, dass auch die richtigen schockierenden Ergebnisse herauskommen.

Der Münchner Stachus zählt zu den verkehrsreichsten Plätzen Deutschlands. Autos kommen aus allen Richtungen und kreuzen auf mindestens einem Dutzend Fahrspuren. Keine Frage, dass hier nicht gerade die Bedingungen eines Luftkurortes herrschen.

Wer hier genau am Rande der Straßen möglichst nahe an den Auspuffrohren die Schadstoffe in der Luft misst, bekommt ziemlich genau die Ergebnisse, mit denen er behaupten kann, hier sterben Zehntausende von Menschen pro Jahr.Ein paar Meter weiter sieht die Situation für Messungen anders aus. Stickoxide, Feinstaub und die Phalanx all der anderen bösen Stoffe haben deutlich abgenommen. Leicht verständlich, hält man sich vor Augen, wie die Konzentration der Gase nach allen Seiten hin abnehmen. Die Behauptung, hier sterben Zehntausende von Menschen, ist nicht mehr aufrechtzuerhalten.

Und doch hat genau direkt an der Straßenkreuzung das Bayrische Landesamt für Umwelt eine Messstation aufgebaut – ähnlich wie an der bisher berühmtesten tödlichen Straße Deutschlands in Stuttgart am Neckartor. Hier stehen die Messinstrumente auch so dicht am Straßenrand, dass ständig Messalarme produziert werden.

Wir haben das auch hier bei TE immer wieder beschrieben. Die Vorschriften der Europäischen Union sehen ausdrücklich vor, dass Messungen nichtan den Orten ihrer höchsten Konzentration gemessen werden sollen. Die Werte sollen vielmehr einen breiteren Einzugsbereich repräsentieren. Ein wichtiger Teil der EU-Vorschrift wird in Deutschland gern unterschlagen: Die Messwerte dürfen nicht zum Beispiel in einer engen Straßenschlucht gesammelt werden. Der Luftstrom um den Einlass der Messstelle darf in einem Umkreis von mindestens 270° nicht beeinträchtigt werden. Vermieden werden soll damit, dass zufällige höhere Konzentrationen an einer Stelle den Wert für eine gesamte Stadt manipulieren.Genau das aber tun die grün beherrschten Stadtverwaltungen. In Stuttgart wird gepflegt über den Standort der Messstelle am Neckartor gestritten. Ein paar Meter weiter und etwas von den Häuserfronten entfernt aufgestellt – in der baden-württembergischen Landeshauptstadt müsste kein Alarm ausgelöst werden.
Grünes Motto: Wir lassen uns doch nicht unsere schlimmen Werte kaputtmachen!

Klageaktionen wie die der Deutschen Umwelthilfe wären vermutlich gegenstandslos, würden in Deutschland nach dem Normen der EU Messungen durchgeführt und nicht mit in manipulativer Absicht aufgestellten Messanlagen. Milliarden Werte würden nicht vernichtet werden. Und Millionen von Dieselfahrern könnten sich darauf verlassen, dass das, was bei der Zulassung einmal galt, auch später noch gilt und nicht durch wilde staatliche Wendungen in einer Enteignung ausartet.

Das Erstaunliche: Trotz der manipulierten Messungen nehmen die Schadstoffe deutlich ab. Zahlen des Umweltbundesamtes zeigen, wie deutlich sauberer die Luft gegenüber früher geworden ist. In Stuttgart beispielsweise wurde im vergangenen Jahr genau dreimal der Wert der Stickoxide von 40 µg überschritten – um rund 30 µg. Von den in manipulierender Absicht aufgestellten Messstationen wohlgemerkt. Dies, obwohl sich der Bestand an Diesel Pkw auf unseren Straßen nahezu verdoppelt hat.Gesundheitsrelevant ist davon nichts. Die Weltgesundheitsorganisation, die grün dominierte WHO, sagt selbst, dass es keine robuste Grundlage für für wissenschaftlich belegte Grenzwerte gibt. Klar, dass Luftverschmutzung Auswirkungen auf die Gesundheit haben kann. Aber nicht so richtig klar ist, welche.

NO2 ist ein Reizgas. Wissenschaftler – keine Epidemiologen wohlgemerkt – belegen erst bei deutlich höheren Konzentrationen von Stickoxiden Wirkungen. Professor Martin Hetzel, Chefarzt der Stuttgarter Lungenfachklinik vom Roten Kreuz, erklärt deutlich: „Stickoxide in einer so geringen Konzentration wie in unseren Städten können keine krankmachende Wirkung haben.“ Es sei deshalb „schlicht unmöglich, auch nur einen Todesfall“ darauf zurückzuführen.

 

Prof. Hans Drexler, Präsident der Deutschen Gesellschaft für Arbeits- und Umweltmedizin: „Durch Berechnungen von Stickoxid auf Tote zu schließen, ist wissenschaftlich unseriös.“Nicht umsonst gelten in den USA deutlich höhere Grenzwerte, im streng umweltbewussten Kalifornien zum Beispiel 50 % höhere Werte für Stickstoffdioxid. Dort übrigens müssen Messwerte auch ausdrücklich als Mittelwert für eine bestimmte Fläche genommen werden. Manipulative Messungen, wie sie hier in Deutschland für alarmistische Zwecke ausgeführt werden, gibt es dort nicht.
Robuster sind offenbar die Schweizer. Dort gilt ein doppelt so hoher Grenzwert für NO2 in den Straßen von 80 µg/m3. Am Arbeitsplatz dürfen Schweizer sogar jenem berühmten MAK-Wert von 6000 µg/m3 ausgesetzt sein. Die Gesundheitsgefahr hängt vermutlich vom Pass ab.

Der Beitrag erschien zuerst bei TICHYS EINBLICK hier

15 Mar 22:17

Securing Angular-Based Chrome Extensions Using Azure AD and ASP.NET CORE

by Jakub Kaczmarek

The Azure AD reference documentation delivers tons of examples describing scenarios in which this authorization service can be used. Those examples help to find the answer for the very first question a developer asks when starting to research Azure AD authentication: which kind of solution should I choose for my project? The use case examples provided there are really helpful if you find one of them matching your project requirements.

Unfortunately, Chrome extensions do not seem to be on a list of typical scenarios. The extensions are simple web applications built using HTML and JavaScript. Microsoft provides a ADAL.JS library that allows you to authorize web applications using the OAuth protocol. It simply redirects the user to the login page on Azure. After successful authorization the user is redirected back to the web application. That might seem to be a perfect solution for a Chrome extension. However, there is one technical issue that rules out this approach: Chrome extensions do not use the http/https protocol! They use the chrome-extension:// protocol instead. All attempts of setting up the ADAL.JS configuration using redirect page that doesn’t use http or https protocol result with an error like that shown in Figure 1.

Figure 1: The login error

Find a Way Out

Let’s think about a way out. What if we delegated the authorization process to a web application hosted using standard the http protocol? Its role would be to obtain an authorization token from Azure AD and pass it to the Chrome extension. The diagram shown in Figure 2 presents the flow of a proposed solution. The code with a working solution covered in this article can be found on my GitHub.

Figure 2: Proposed solution workflow

Getting Started

My previous article presented how to build Chrome extensions using TypeScript and Angular CLI. I will use the code developed in that article to demonstrate how to implement Azure AD authentication in this case. The goal is to restrict some content for authorized users only.

Before implementing the authorization solution, register a new application registration in Azure Active Directory module on the Azure portal. More details can be found in the Azure Active Directory documentation. While registering it, you need to provide some details. Here are the settings to use for the test application:

After creating the app registration, copy Tenant ID and Application ID. Application ID can be found in the Essentials blade. Tenant ID is a directory name of your organization on Azure. It’s visible in All settings/Properties/App ID URI field as a part of the url generated by default for the registration, according to the following format:

https://organization-name.onmicrosoft.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

The bolded part of the URL above is your Tenant ID and highlighted in Figure 3.

Figure 3: Setting up the ChromeTestApp properties

Building the Authorization Application

Before making changes in the extension code, you should take care of the middle of the flow – the authorization proxy app. This web application can be developed using any kind of programming language and framework. The only condition is that it should be capable of hosting web pages that can load JavaScript files. This article uses the ASP.NET Core framework.

Firstly, create a new ASP.NET Core web application. Name it AuthorizationApp as shown in Figure 4.

Figure 4: Create an ASP.NET Core Web-Application

Use the Empty template to create it shown in Figure 5.

Figure 5: Use the Empty template

The application should host two pages – one which handles the login action, and the second for logout. Begin by creating the app configuration file (appsettings.json) by adding a new item of type ASP.NET Configuration File:

{
    "AppSettings": {
      "TenantId": "organization-name.onmicrosoft.com",
      "ClientId": "00000000-0000-0000-0000-000000000000"
    }
  }

You will also need the AppSettings model class (Models/AppSettings.cs) covering settings included in the configuration file:

namespace AuthorizationApp.Models
  {
      public class AppSettings
      {
          public string TenantId { get; set; }
          public string ClientId { get; set; }
      }
  }

One of the cool new features in ASP.NET Core is the possibility to map a configuration file to a model class. Combined with another feature – built-in dependency injection container – you can make the AppSettings class injectable to any other class that will be resolved using DI. To use this feature, first install additional NuGet packages to the project:

  • Microsoft.Extensions.Configuration
  • Microsoft.Extensions.Configuration.Json

Now it’s time to enhance the Startup code (startup.cs):

using AuthorizationApp.Models;
  using Microsoft.AspNetCore.Builder;
  using Microsoft.AspNetCore.Hosting;
  using Microsoft.Extensions.Configuration;
  using Microsoft.Extensions.DependencyInjection;
  namespace AuthorizationApp
  {
      public class Startup
      {
          public Startup(IConfiguration configuration)
          {
              Configuration = configuration;
          }
          public IConfiguration Configuration { get; }
          public void ConfigureServices(IServiceCollection services)
          {
              services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
              services.AddMvc();
          }
          public void Configure(IApplicationBuilder app, IHostingEnvironment env)
          {
              if (env.IsDevelopment())
              {
                  app.UseDeveloperExceptionPage();
              }
              app.UseStaticFiles();
              app.UseMvc(routes =>
              {
                  routes.MapRoute(
                      name: "default",
                      template: "{controller}/{action=Index}/{id?}");
              });
          }
      }
  }

Authorization Controller

As you will need to provide some configuration entries for ADAL.JS, create an AuthorizationModel class (Models/AuthorizationModel.cs) that can be passed to the view of the pages:

namespace AuthorizationApp.Models
  {
      public class AuthorizationModel
      {
          public string TenantId { get; set; }
          public string ClientId { get; set; }
          public string ScriptBundleName { get; set; }
      }
  }

Now you’re ready to implement the HomeController class (Controllers/HomeController.cs):

using AuthorizationApp.Models;
  using Microsoft.AspNetCore.Mvc;
  using Microsoft.Extensions.Options;
  namespace AuthorizationApp.Controllers
  {
      public class HomeController : Controller
      {
          private readonly AppSettings _appSettings;
          public HomeController(IOptions<AppSettings> appSettings)
          {
              _appSettings = appSettings.Value;
          }
          public ActionResult SignIn()
          {
              return GetView("signin.js");
          }
          public ActionResult SignOut()
          {
              return GetView("signout.js");
          }
          private ViewResult GetView(string scriptBundleName)
          {
              var model = new AuthorizationModel
              {
                  ClientId = _appSettings.ClientId,
                  TenantId = _appSettings.TenantId,
                  ScriptBundleName = scriptBundleName
              };
              return View("SignInOut", model);
          }
      }
  }

New actions share the same view – SignInOut.cshtml. The reason for this is that both pages have a very similar objective – display no content, just initialize some configurations and include a single JavaScript file.

Implementing the View

Before you can implement the view file, make sure the following JavaScript files are included in wwwroot/js directory:

The application will have only one view file, defined in the Views/Home directory (Views/Home/SignInOut.cshtml):

@model AuthorizationApp.Models.AuthorizationModel
  <!DOCTYPE html>
  <html>
      <head>
          <meta charset="utf-8" />
          <meta name="viewport" content="width=device-width, initial-scale=1.0" />
          <script>
          window.adalConfig = {
              instance: 'https://login.microsoftonline.com/',
              tenantId: '@Model.TenantId',
              clientId: '@Model.ClientId',
              postLogoutRedirectUri: window.location.origin + '/home/signout',
              cacheLocation: 'localStorage'
          };
          </script>
          <script src="~/js/jquery.min.js"></script>
          <script src="~/js/adal.min.js"></script>
          <script src="~/js/@Model.ScriptBundleName"></script>
          <title>Authorization App</title>
      </head>
      <body>
      </body>
  </html>

Use the ADAL.JS Library

You’re finally ready to use the ADAL.JS library. At first, you can develop the signin.js code (wwwroot/js/signin.js):

(function () {
      var adalConfig = window.adalConfig;
      var authContext = new AuthenticationContext(adalConfig);
      var isCallback = authContext.isCallback(window.location.hash);
      authContext.handleWindowCallback();
      if (isCallback && !authContext.getLoginError()) {
          window.location = authContext._getItem(authContext.CONSTANTS.STORAGE.LOGIN_REQUEST);
      }
      if (!authContext.getLoginError() && authContext.getCachedUser() != null) {
          localStorage.setItem('loggedIn', 'true');
      }
      window.onhashchange = function () {
          loadView(stripHash(window.location.hash));
      };
      window.onload = function () {
          $(window).trigger("hashchange");
      };
      function loadView(view) {
          if (!authContext.getCachedUser()) {
              authContext.config.redirectUri = window.location.href;
              authContext.login();
              return;
          }
      }
      function stripHash(view) {
          return view.substr(view.indexOf('#') + 1);
      }
  }());

The Sign out script is even simpler (wwwroot/js/signout.js):

(function () {
      var adalConfig = window.adalConfig;
      var authContext = new AuthenticationContext(adalConfig);
      var user = authContext.getCachedUser();
      if (user) {
          authContext.logOut();
      }
      else {
          localStorage.setItem('loggedIn', 'false');
      }
  }());

That’s it – the web application that will handle Azure AD authorization is ready. Before running it locally, please make sure its URL has a port number matching your Azure AD App Registration. In my case it is port 9100. You can configure it in Visual Studio in Project Properties as shown in Figure 6:

Figure 6: Configuring the App URL

The app can be hosted locally using IIS Express. For production use, it can be deployed in the cloud, e.g. as Azure App Service.

As you can see, the connection between the app and the extension is not implemented on the authorization app side. That’s the part that will be implemented on the extension side.

Enhancing the Extension: Content Script

As the proposed solution assumes that the extension implements the event page and content script, you need at first to make sure that the extension on has those elements.

Chrome extensions can include a content script that runs in the context of web page loaded in the browser tab. That’s the perfect place to implement logic that will communicate with the authorization web app, collect the authorization token, and use it to authorize the extension.

In this example, the ADAL.JS library uses browser local storage to keep authorization details, including the token. A content script running in the context of authorized web application has access to the authorization details, as it can browse the local storage of the authorization app. However, a content script doesn’t have access to the extension’s local storage. On the other hand, the event page script has access to it. You can use the messaging API to send messages from content scripts to event page scripts. You will need to send two such messages:

  • After successful login action
    • Message should include ADAL authorization data
  • After successful logout action.

All new functionality will make use of ADAL.JS and Chrome extensions APIs – functionalities that are not known for TypeScript. However, you can install additional packages to fix that issue:

npm install –s adal-ts
  npm install –s @types/chrome

You will also need a new configuration value stored in the environment collection. It’s necessary to include it in all instances of the environment class (src/environments/environment.ts):

export const environment = {
      production: false,
      authAppBaseUrl: 'http://localhost:9100'
  };

It must also be included here, for example (src/environments/environment.prod.ts):

export const environment = {
      production: true,
      authAppBaseUrl: 'http://localhost:9100'
  };

Some of the new code can be shared between content script and event page. First implement the Angular service that will be common for both (src/app/common/services/common-account.service.ts):

import { environment } from '../../../environments/environment';
  import { Authentication, AuthenticationContext, AdalConfig, User } from 'adal-ts';
  export class CommonAccountService {
      private baseUrl = environment.authAppBaseUrl;
      private loggedInKey = 'loggedIn';
      public userExistsAndIsNotExpired(): boolean {
          const user = this.getAuthorizedUser();
          if (!user) {
              return false;
          }
          const isTokenExpired = this.isAuthorizationTokenExpired(user.exp);
          return !isTokenExpired;
      }
      public isUserLoggedIn(): boolean {
          const loggedInValue = localStorage.getItem(this.loggedInKey);
          const loggedIn = loggedInValue === 'true';
          return loggedIn;
      }
      public getUserName(): string {
          const user = this.getAuthorizedUser();
          let result = '';
          if (user) {
              result = user.name;
          }
          return result;
      }
      public redirectToLoginPage() {
          this.openUrlInCurrentTab(this.getLoginUrl());
      }
      public redirectToLogoutPage() {
          this.openUrlInCurrentTab(this.getLogoutUrl());
      }
      public getLoginUrl(): string {
          return this.getAuthorizationAppUrl('home/signin');
      }
      public getLogoutUrl(): string {
          return this.getAuthorizationAppUrl('home/signout');
      }
      public isAccountKey(key: string): boolean {
          return key.indexOf('adal.') >= 0 || key === this.loggedInKey;
      }
      getAuthorizedUser(): User {
          return this.getAuthenticationContext().getUser();
      }
      getAuthorizationAppUrl(relativePath: string) {
          if (relativePath[0] !== '/') {
              relativePath = '/' + relativePath;
          }
          return this.baseUrl + relativePath;
      }
      openUrlInCurrentTab(targetUrl) {
          chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
              chrome.tabs.update(tabs[0].id, { url: targetUrl });
          });
      }
      getAuthenticationContext(): AuthenticationContext {
          return Authentication.getContext(new AdalConfig('', '', ''));
      }
      isAuthorizationTokenExpired(expirationTimestamp: number): boolean {
          if (!expirationTimestamp) {
              return true;
          }
          const expirationDate = new Date(expirationTimestamp * 1000);
          const currentDate = new Date();
          return currentDate > expirationDate;
      }
  }


As the content script consists of other modules, you can implement an additional one in a separate file (content-script/account-messenger.ts):

import { CommonAccountService } from '../src/app/common/services/common-account.service';
  export class AccountMessenger {
      private commonAccountService: CommonAccountService;
      constructor() {
          this.commonAccountService = new CommonAccountService();
          this.initializeSigninListener();
          this.initializeSignoutListener();
      }
      initializeSigninListener() {
          const loginUrl = this.commonAccountService.getLoginUrl();
          if (window.location.href.indexOf(loginUrl) < 0) {
              return;
          }
          const loggedIn = this.commonAccountService.isUserLoggedIn();
          if (!loggedIn) {
              return;
          }
          const adalData = this.getAdalLocalStorageData();
          const message = {
              'command': 'signInAndRedirectToHomepage',
              'adalData': adalData
          };
          this.performEventPageRequest(message);
      }
      initializeSignoutListener() {
          const logoutUrl = this.commonAccountService.getLogoutUrl();
          if (window.location.href.indexOf(logoutUrl) < 0) {
              return;
          }
          const loggedIn = this.commonAccountService.isUserLoggedIn();
          if (loggedIn) {
              return;
          }
          const message = {
              'command': 'signOutAndRedirectToHomepage'
          };
          this.performEventPageRequest(message);
      }
      getAdalLocalStorageData() {
          const result = {};
          for (const key in localStorage) {
              if (this.commonAccountService.isAccountKey(key)) {
                  result[key] = localStorage[key];
              }
          }
          return result;
      }
      performEventPageRequest(message) {
          chrome.runtime.sendMessage(message);
      }
  }


In my previous article, a content script code was introduced. The implementation was based on the boot.ts script in the content-script folder responsible for launching some classes with content script logic (RuntimeListener and ConnectListener). Since you inherited this solution, you can enhance it now to launch also AccountMessenger logic (content-script/boot.ts):

import { AccountMessenger } from './account-messenger';
  import { ConnectListener } from './connect-listener';
  import { RuntimeListener } from './runtime-listener';
  const runtimeListener = new RuntimeListener();
  const connectListener = new ConnectListener();
  const accountMessenger = new AccountMessenger();

Finally, a provider of CommonAccountService needs to be registered in an Angular application as you’re about to inject it also into some components of the app. A reference to the service should be included in the AppModule class (src/app/app.module.ts):

 import { BrowserModule } from '@angular/platform-browser';
  import { NgModule } from '@angular/core';
  import { AppComponent } from './app.component';
  import { HomepageComponent } from './homepage/homepage.component';
  import { EventPageComponent } from './event-page/event-page.component';
  import { PopupComponent } from './popup/popup.component';
  import { AppRoutingModule } from './app-routing.module';
  import { CommonAccountService } from './common/services/common-account.service';
  @NgModule({
      declarations: [
          AppComponent,
          HomepageComponent,
          EventPageComponent,
          PopupComponent
      ],
      imports: [
          AppRoutingModule,
          BrowserModule
      ],
      providers: [CommonAccountService],
      bootstrap: [AppComponent]
  })
  export class AppModule { }

Enhancing the Extension: Event Page Script

The last missing part of the extension is the authorization messages receiver. It should be able to receive two command messages from the content script:

  • signInAndRedirectToHomepage:
    • On this action store ADAL configuration values in extension local storage.
  • signOutAndRedirectToHomepage:
    • On this action clear ADAL configuration values from extension local storage.

After each action, the user should be redirected to the homepage. Implement this logic in the EventPageComponent class (src/app/event-page/event-page.component.ts).

import { Component, OnInit } from '@angular/core';
import { CommonAccountService } from '../common/services/common-account.service';
  @Component({
      selector: 'app-event-page',
      templateUrl: './event-page.component.html',
      styleUrls: ['./event-page.component.css']
  })
  export class EventPageComponent implements OnInit {
      constructor(private accountService: CommonAccountService) { }
      ngOnInit() {
          this.addMessageListener();
      }
      addMessageListener() {
          chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
              switch (request.command) {
              case 'signInAndRedirectToHomepage': this.signInAndRedirectToHomepage(request.adalData);
                  break;
              case 'signOutAndRedirectToHomepage': this.signOutAndRedirectToHomepage();
                  break;
              default: return;
              }
          });
      }
      signInAndRedirectToHomepage(adalData) {
          this.updateAdalData(adalData);
          this.redirectToHomepage();
      }
      signOutAndRedirectToHomepage() {
          this.clearAdalData();
          this.redirectToHomepage();
      }
      redirectToHomepage() {
          chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
              const tab = tabs[0];
              const homepageUrl = chrome.extension.getURL('index.html#/homepage');
              chrome.tabs.update(tab.id, { url: homepageUrl });
          });
      }
      updateAdalData(adalData) {
          for (const key in adalData) {
              const value = adalData[key];
              localStorage.setItem(key, value);
          }
      }
      clearAdalData() {
          for (const key in localStorage) {
              if (this.accountService.isAccountKey(key)) {
                  localStorage.removeItem(key);
              }
          }
      }
  }

Note: the decorators of the EventPageComponent class were generated automatically by the Angular CLI generate component command. If your project wasn’t created with Angular CLI, you might notice a warning message during the build about questionable support of experimental decorators. To get rid of this warning, you should enable the experimentalDecorators option in the tsconfig.json file. If your project doesn’t have such a file, you should create it in angular app root folder with the following content (tsconfig.json):

{
    "compilerOptions": {
      "experimentalDecorators": true,
      "allowJs": true
    }
  }

Secured Content

It’s time to consume the authorization capability in the extension. Define a place, where the content needs to be visible only for an authorized user. Do this in the homepage component. At first, you will need the piece of html code that renders the login/logout buttons (src/app/homepage/homepage.component.html):

<h1>Homepage</h1>
  <div class="user-status">
      <div class="welcome">
          <p *ngIf="loggedIn">Welcome, {{userName}}!</p>
          <p *ngIf="!loggedIn">Please log in!</p>
      </div>
      <div class="buttons">
          <button *ngIf="loggedIn" (click)="logout()">Log out</button>
          <button *ngIf="!loggedIn" (click)="login()">Log in</button>
      </div>
  </div>
  <div *ngIf="loggedIn" class="content-container">
      <img src='assets/secret.png' />
  </div>

 

The last thing to do is to include the common.account.service module in homepage.component class and implement some logic there (src/app/homepage/homepage.component.ts):

import { CommonAccountService } from '../common/services/common-account.service';
  import { Component, OnInit } from '@angular/core';
  @Component({
      selector: 'app-homepage',
      templateUrl: './homepage.component.html',
      styleUrls: ['./homepage.component.css']
  })
  export class HomepageComponent implements OnInit {
      userName: string;
      loggedIn: boolean;
      constructor(private accountService: CommonAccountService) {
          this.loggedIn = accountService.userExistsAndIsNotExpired();
          if (this.loggedIn) {
              this.userName = accountService.getUserName();
          }
      }
      ngOnInit() { }
      login() {
          this.accountService.redirectToLoginPage();
      }
      logout() {
          this.accountService.redirectToLogoutPage();
      }
  }


Starting from now, the Chrome extension requires authorization of the user simply to show a content of content-container div element. You can enhance this logic to condition access to other interface areas, data-layer or whatever else is needed. After building the app using gulp command and loading it as a chrome extension, you can see the following view on extension homepage shown in Figure 7:

Figure 7: The login page

After logging in, you can see the content available only for authorized users (Figure 8):

Figure 8: Content shown to authorized users

Summary

A powerful Chrome Extensions API allowed us to deal with Azure AD limits regarding URLs that are accepted as reply URL for App Registration. By introducing a middle layer web application responsible for obtaining & sharing the authorization token the initial problem is solved. In addition to that, I also introduced the web API that might be used in future as back-end part of the extension.

The post Securing Angular-Based Chrome Extensions Using Azure AD and ASP.NET CORE appeared first on Simple Talk.

15 Mar 22:16

Analyzing availability patterns in car sharing in Berlin

15 Mar 22:15

Azure Functions – Significant Improvements in HTTP Trigger Scaling

09 Mar 16:43

On its 100th anniversary, the madness of Daylight Saving Time endures

09 Mar 16:40

Zug gegen Flugzeug: Wie geht es schneller von München nach Berlin?

Sind die neuen Turbo-ICES der Deutschen Bahn schneller als das Flugzeug? Auf der Strecke von München nach Berlin erfolgt der ultimative Test - mit verblüffendem Ergebnis. 
09 Mar 15:42

How I Helped Potty-Train My Kid Using Twilio and an AWS IoT Button

09 Mar 15:39

From idea to revenue in 5 working days, thanks to HN

09 Mar 15:38

Rundbriefe der GWPF von Februar/März 2018

by Chris Frey

Chef von Iberdrola: der globale Sektor der erneuerbaren Energien steht vor Zusammenbrüchen im Stil von Enron*

[*Zur Enron-Katastrophe siehe hier bei Wikipedia, wenn man diesem Portal glauben kann. Anm. d. Übers.]

Das Ende der Ära billigen Geldes dürfte zu Zusammenbrüchen von Unternehmen nach Art des Enron-Skandals in dem so hoch gelobten Sektor der erneuerbaren Energie führen. Dies sagt der Direktor von einem des weltweit größten Windenergie-Erzeugers.

Ignacio Galán, Direktor des spanischen Versorgers Iberdrola, sagte, dass nicht industrielle Einsteiger in diesem Sektor mit wenig Erfahrung überaus aggressive Angebote bzgl. Verträgen mit der Einrichtung erneuerbarer Energie machen, und zwar in dem Glauben, dass sich hier ein finanzielles „El Dorado“ auftut.

„Weil Geld so billig ist, haben sich viele Leute, ohne in dem Bereich talentiert zu sein, extrem hoch verschuldet“, sagte er der Financial Times. „Mit der Änderung der Raten wird es zu einer Bereinigung dieses Sektors kommen“.

Vor ein paar Tagen gab das Unternehmen einen Anstieg des Jahres-Profits um 3,6 Prozent auf 2,8 Milliarden Euro sowie Investitionen von 32 Milliarden Euro während der nächsten fünf Jahre bekannt. Vor diesem Hintergrund fügte er hinzu: „Ich denke, dass das, was mit Enron passiert ist, wieder passieren wird. Enron war hoch verschuldet … und sie hatten keinerlei Erfahrung als Versorger oder als Händler. Und was geschah – Enron verschwand“.

Mr. Galán machte keinem der Neueinsteiger – bei Einigen handelt es sich um Eigenkapital-Gesellschaften oder Infrastruktur-Fonds – irgendwelche Vorwürfe von der Art der falschen Angaben seitens Enron, welches zu dem Kollaps dieses US-Energiehändlers im Jahre 2001 führte. Stattdessen hob er hervor, wie billiges Geld ein paar Individuen in einen Geschäftszweig führt, den sie gar nicht verstehen.

Die Warnung bezieht sich auch auf eine breiter gefasste Furcht vor einer potentiellen Störung der globalen Geschäfte, beginnen doch Bankiers damit, ein Multi-Billionen-Dollar-Experiment einer ultra-lockeren Geldpolitik zurückzufahren. Es ist zu befürchten, dass einige hoch verschuldete Investoren und Unternehmen durch den Anstieg der Raten aus dem Geschäft gedrängt werden.

Ganzer Artikel (Zahlschranke)
——————————–
Warnung des UK National Grid: UK geht das Gas aus

UK könnte demnächst das Gas ausgehen, weil die Nachfrage infolge einer ungewöhnlichen Kältewelle stärker gestiegen ist als das Angebot. National Grid, der Betreiber des Gaspipeline-Netzwerkes, hat eine ,Gas-Knappheits-Warnung‘ ausgegeben, nachdem die Thermostate in der Nation hoch gefahren worden waren. Er war gezwungen, von den Versorgern eine stärkere Erzeugung zu fordern, befindet sich doch die Nachfrage auf einem sechs-Jahre-Hoch. – Daily Mail, 1. März 2018

——————————–

Gas-Krise in UK: Fabriken bereiten sich auf Reduktion des Energieverbrauchs vor – mitten in Big Freeze

Britische Fabriken bereiten sich darauf vor, einige ihrer Operationen zu unterbrechen, um National Grid zu helfen, eine nationale Gasversorgungs-Krise zu umgehen, ausgelöst durch eine ungewöhnliche Kältewelle im ganzen Land. Zum ersten Mal seit fast einem Jahrzehnt sagt National Grid, dass die Gasversorgung nicht ausreichen wird, um die Nachfrage zu decken – es sei denn, Energie-intensive Industrien sind bereit, weniger Gas zu verbrauchen und dafür hohe Kompensations-Zahlungen zu erhalten, welche auf die Rechnungen der Verbraucher umgelegt werden. – The Daily Telegraph, 1. März 2018

——————————–

Rufe nach Schiefergas-Maßnahmen werden lauter, nachdem das Beast From The East die Energiesicherheit von UK auf die Probe stellt

UK ist derzeit Schauplatz dramatischer Wettervorgänge, welche den Befürwortern der im Moment sich noch im Embryo-Stadium befindlichen Schiefergas-Industrie Munition liefert. Nach über 24 Stunden Frost und Schnee und nachdem Schulen geschlossen worden waren, hat das das National Grid PLC gewarnt, dass die Versorgung mit Gas sehr angespannt ist. Es rief die Verwaltungen in UK auf, die Schiefer-Gelegenheit zu ergreifen, welche eine bedeutende heimische Quelle von Gas ist. Dies würde die Abhängigkeit der Nation von Importen verringern. – Pro Investors, 1. März 2018

——————————–

Weitere Schlagzeilen:

Hinter jeder Schlagzeile (hier in der Übersetzung) verbergen sich hoch interessante Beiträge, die alle hier zu übersetzen zeitlich nicht möglich ist. Jeder einzelne Beitrag belegt den Irrsinn um den Hype von Klimawandel und Energiewende.

Die Armee wird eingesetzt, nachdem für England und Schottland zum ersten Mal die Alarmstufe rot bzgl. Schnee und Kälte ausgerufen worden ist
Daily Mail, 1. März 2018

James Delingpole: Warnungen der Alarmisten zufolge bedeutet Big Freeze, dass die globale Erwärmung schlimmer denn je ist.


Breitbart, 28. Februar 2018

Britische Schulen verbieten den Schülern, Schnee in die Hand zu nehmen
The Daily Telegraph, 27. Februar 2018

Europäische Minister hören sich wie Donald Trump an: Sie verlangen große Änderungen im Paris-Abkommen
Climate Home, 26. Februar 2018

Ein Richter in Kalifornien könnte soeben alle juristischen Klima-Verfahren gegen Energie-Unternehmen versenkt haben
Daily Caller, 28. Februar 2018

09 Mar 15:38

Doch keine Gefahr durch Klimaerwärmung? – Wissenschaftler fanden Superkolonie von Pinguinen in der Antarktis

by Andreas Demmig

Die Wissenschaftler schätzen die abgelegenen Danger Islands nicht als wichtige Lebensräume für die Pinguine. Bis sie bei einem Besuch im Jahr 2014 auf Tausende von Vögeln stießen, die in der Gegend nisteten. Es erwies sich als die größte jemals entdeckte Kolonie dieser Vögel.

[de.Wiki: Der Adeliepinguin (Pygoscelis adeliae) ist eine antarktisch-subantarktische Art der Pinguine aus der Gattung der Langschwanzpinguine. Charakteristisch für den Adeliepinguin ist der schwarze Kopf, der weiße Ring rund um das Auge und der verhältnismäßig klein wirkende Schnabel. Neben dem Kaiserpinguin ist er die einzige Pinguinart, die auf dem Hauptteil des antarktischen Kontinents vorkommt.]

„Auf den Danger Islands lebt nicht nur die größte Population von Adeliepinguinen auf der Antarktischen Halbinsel, sondern diese haben auch nicht die Populationsrückgänge auf der Westseite der Antarktischen Halbinsel zu spüren bekommen, die mit dem Klimawandel in Verbindung gebracht werden“, sagt Michael Polito, einer der Forscher, in einer aktuellen Veröffentlichung vom 02.März 2018.

Mit einer Drohne fand Woods Hole Oceanographic Institution die 1,5 Millionen starke „Superkolonie“ auf den Danger Islands, einer Kette felsiger Inseln an der Nordspitze der Antarktischen Halbinsel. [anhand starker Kotspuren, die auf eine größere Population hinwiesen]

Die resultierende Studie in Scientific Reports, berichtet, dass „Adélie Pinguin Kolonien in den Danger Islands nicht die Populationsrückgänge erlitten haben, die in der westlichen Antarktis zu sehen sind“.

Zusammen mit Eisbären waren Adélie Pinguine die Symbole für die vom Menschen verursachte globale Erwärmung. Einige Wissenschaftler und Umweltaktivisten haben den Populationsrückgang und den Verlust von Meereis mit der vom Menschen verursachten Erwärmung verbunden.

„In den letzten Jahren hat der Verlust von Meereis in diesem Teil der Antarktis zu einem dramatischen Rückgang des Phytoplanktons geführt hat und den Krill zerstört“ schrieb Al Gore im Jahr 2012: „Deshalb ist die Population von Adeliepinguinen in den letzten 30 Jahren an der nordwestlichen Antarktischen Halbinsel um 80% zurückgegangen.“

Während es nur wenig Beweise gibt, dass die globale Erwärmung einen großen Einfluss auf die Antarktis hat, prognostizieren die Wissenschaftler mehr Gletscher- und Meereisschmelze, wenn die Temperaturen in der Zukunft steigen.

Aber die vergangene Erwärmung scheint an den Danger Islands vorüber gegangen zu sein.

Die Anzahl der [beobachteten] Adelie-Pinguine sind in der Region in den letzten Jahrzehnten um 70 Prozent zurückgegangen, was die Entdeckung einer „Superkolonie“ noch erstaunlicher macht. Wissenschaftler erwarteten nicht, auf den Danger Islands Pinguine zu finden.

In der Studie wird vermerkt, dass die „Danger Islands“ weitgehend von den Umweltveränderungen der Süd-Shetland-Inseln und des nördlichen Teils der Halbinsel verschont geblieben sind, hauptsächlich aufgrund des West-Ost-Erwärmungsmusters.“

Erschienen auf The Daily Caller am 05.03.2018

Übersetzt durch Andreas Demmig

http://dailycaller.com/2018/03/05/scientists-shocked-penguins-antarctica/

 

* * *

Vor dem großen Fund: Klimawandel bedroht die Pinguine

 

https://www.wetter.de/cms/klimawandel-in-der-antarktis-bedroht-die-pinguine-1840416.html

Klimawandel in der Antarktis bedroht die Pinguine

17. März 2014  … Jenaer Polarökologe Hans-Ulrich Peter …

 

https://www.umweltbundesamt.de/themen/pinguine-in-zeiten-des-klimawandels

25.04.2016, Pinguine in Zeiten des Klimawandels

In den Polarregionen ist der Klimawandel am stärksten sichtbar. …

Wissenschaftler vom Thüringer Institut für Nachhaltigkeit und Klimaschutz in Jena….

 

https://www.rnz.de/wissen/wissenschaft_artikel,-Wissenschaft-Welt-Pinguin-Tag-Klimawandel-und-Nahrungsmangel-duestere-Zeiten-fuer-Pinguine-_arid,271172.html

Klimawandel und Nahrungsmangel – düstere Zeiten für Pinguine

26.04.2017, von Eva Krafczyk

 

 

Nach dem Fund in 2017

https://de.wikipedia.org/wiki/Adeliepinguin

Bestand

… 2017 wurde auf denDanger-Inseln eine bis dahin unbekannte Population von rund 1,5 Mio. Adeliepinguinen entdeckt.[13][14]

 

http://www.deutschlandfunk.de/antarktis-anderthalb-millionen-pinguine-von-denen-bisher.2850.de.html?drn:news_id=856824

2. März 2018 Anderthalb Millionen Pinguine, von denen bisher niemand wusste

 

https://www.nature.com/articles/s41598-018-22313-w

Die multimodale Untersuchung der Mega-Kolonien von Adélie-Pinguinen zeigt, dass die Danger Islands ein Hotspot für Seevögel sind

Empfangen:     30. August 2017
Akzeptiert:       20. Februar 2018
Online veröffentlicht: 2. März 2018

 

https://www.sciencedaily.com/releases/2018/03/180302090958.htm

Bisher unbekannte Superkolonie“ von Adélie-Pinguinen in der Antarktis entdeckt.

2. März 2018 [Obige Studie wurde auch hier als Quelle genannt]

09 Mar 15:38

A Career Cold Start Algorithm

09 Mar 15:37

SPD: Olaf Scholz übernimmt Finanzministerium

by ZEIT ONLINE: Deutschland -
Die SPD hat ihre Minister offiziell bestätigt: Hamburgs Bürgermeister Scholz wird Finanzminister und Vizekanzler. Katarina Barley wechselt ins Justizressort.
09 Mar 15:37

Martin Winterkorn: Ist dieser Mann an allem schuld?

by ZEIT ONLINE: Unternehmen - Marcus Rohwetter, Claas Tatje
Martin Winterkorn machte VW zum weltgrößten Autokonzern. Nach dem Dieselskandal trat er zurück, seither schweigt er. Doch die Ermittlungen werden immer heikler für ihn.
09 Mar 15:36

Warum uns seit 144 Jahren bald das Öl ausgeht

by Admin

Als Kronzeuge für die Klimakatastrophe tapert er seit vielen Jahren in medialer Endlosschleife über schmelzende Schollen. Er ist der traurige Star der Symbolbilder aus dem Photoshop, Kategorie Erderwärmung. Eigentlich dürfte er längst nur mehr im Zoo zu finden sein. Zum Glück trotzt Meister Petz dem ihm zugeschriebenen Schicksal auf recht robuste Art. Was den Trauermarsch seiner Totsager natürlich nicht aufhalten kann. Stirbt ursus maritimus nicht heute, dann stirbt er eben morgen.

Mit dem sogenannten „Peak Oil“ verhält es sich ähnlich. Die Botschaft, dass die Ölförderung demnächst ihr historisches Maximum erreichen werde, danach unumkehrbar zurückgehe und folglich die ölbasierte Wirtschaft zum Kollaps brächte, ist ein sogar noch betagterer Bär. 1956 hatte ein US-Geologe prophezeit, die amerikanische Ölproduktion werde in den frühen 1970ern an ihren Höhepunkt (Peak) gelangen und danach immer weiter sinken, wegen der Endlichkeit der Ressource.

1974 setzte er den Peak der weltweiten Ölförderung auf das Jahr 1995 an. Dieser Apostel generierte zahlreiche Jünger, etwa unter den Mitgliedern des für seine ökonomische Treffsicherheit berühmten „Club of Rome“.

Dabei war der Erdwissenschaftler keineswegs der erste Ölstandswarner. Schon 1874 hatte ein Kollege, Chefgeologe im US-Bundesstaat Pennsylvania, Alarm geschlagen. Würde Erdöl weiterhin rasant als Lampenbrennstoff verbraucht, wären die Vorräte der damaligen USA in vier Jahren erschöpft, hatte er errechnet. Sozusagen in der Tradition von Thomas R. Malthus, Begründer der Hochrechnung ohne lästiges Wenn und Aber.

Das Warnen & Raunen läuft wie bei Jehovas Zeugen

Vorhersagen über das nahe Ende der Öl-Flut gab es auch in den 1920ern. Von da an schafften sie es alle paar Jahre prominent in die Gazetten. Zwar blieb die befürchtete Öl-Ebbe regelmäßig aus (es gab allerdings kriegsbedingte Tiefstände), doch ging das Warnen & Raunen unverdrossen weiter. Es lief wie bei Jehovas Zeugen. Knallte es nicht am festgesetzten Doomsday, so wurde Armageddon einfach neu kalkuliert. Immer wieder spannend!

Die „Ölkrise“ von 1973, die Deutschland an einigen Sonntagen leere Autobahnen bescherte, aber nichts mit der Peak Oil-Theorie zu tun hatte (es handelte sich vielmehr um den Versuch des Ölkartells OPEC, den Westen durch ein teilweises Embargo von seiner ehedem noch soliden Unterstützung Israels abzubringen), dieses Krislein hat sich fest ins deutsche Gemüt gebuddelt. Es schuf einen Gründungsmythos der keimenden Öko-Partei.

Letztere wird niemals müde, dem Öl mittels diverser Auftragsstudien das Sterbeglöcklein zu bimmeln. Hängt doch das weiterhin üppige Gedeihen des ökologisch-industriellen Komplexes und seiner Subventionsabgreiferszene maßgeblich auch daran, dem Steuerzahler immerfort das angebliche Finale der Ölvorräte einzubläuen. Wenn schon das Satansgas CO2 manche Bürger*Innen vielleicht nicht mehr jede Nacht im Bett rotieren lässt – der dräuende Zusammenbruch der Ölversorgung müsste es doch schaffen, oder?

Vor genau einem Jahr machte Peak Oil mal wieder Schlagzeilen. Interessanterweise kam die Tatarenmeldung nicht aus dem Grünbereich, sondern von der Internationalen Energieagentur IEA. Sie wurde 1974 von 16 Industriestaaten als Reaktion auf die kurz zuvor stattgefundene OPEC-Erpressung gegründet.

Spätestens seit 2007 warnt die IEA regelmäßig vor „Engpässen“ bei der Ölversorgung, welche ebenso regelmäßig nicht eintreten. Höchstens schlägt der Preis mal Kapriolen, aus sehr unterschiedlichen Gründen. Im Finanzkrisensommer 2008 zum Beispiel schoss das Barrel der Sorte Brent auf 145 Dollar hoch, nur um sechs Monate später auf 34 Dollar abzustürzen. Versorgungstechnisch eng wurde es auf den Ölmärkten damals ebenso wenig wie in den Jahren 1861 bis 1877, einer frühen Hochpreisphase. Nur ungewohnt teuer war der Stoff geworden – für ein Weilchen.

Kein Peak Oil, sondern ein Peak Demand

Wie kam es, dass Ökos und supranationale Ölverweser scheinbar ins selbe Horn stießen? Möglicherweise aus einem simplen Grund. „Das globale Ölangebot wird es nach 2020 sehr schwer haben, mit der Nachfrage Schritt zu halten, wenn nicht neue Förderprojekte sofort genehmigt werden“, zitierte die „Welt“ den IEA-Chef Fatih Birol. Daher also wehte der Wind.

Die IEA-Prognose von 2017 besagte, ab 2022 könnte Öl teuer und knapp werden. Grund: In der vergangenen Niedrigpreisphase hätten die ölproduzierenden Länder zu wenig Geld eingenommen, um in die Erschließung neuer Förderfelder zu investieren. Dieser Umstand werde, bei vorausgesetzt steigendem Verbrauch etwa durch Länder wie China und Indien, den Ölnachschub verringern und folglich den Preis nach oben treiben – jedenfalls temporär.

Klingt zunächst mal logisch. Doch nur, wenn man die Rolle der höchst flexiblen amerikanischen Schieferölproduktion ignoriert, die letzthin immer wieder als Preisstabilisator auf den Ölmärkten fungierte. Rohstoffanalysten wie der Goldman Sachs-Experte Jeff Currie beziehen das Fracking ausdrücklich in ihre Betrachtungen ein. Doch auch aus anderen, ziemlich plausiblen, geopolitischen Gründen glaubt Currie nicht, dass sich der Ölpreis mittel- und langfristig auf ein hohes Niveau einpendeln werde.

Kommt hinzu, dass nicht wenige Beobachter der Ölmärkte davon ausgehen, es werde in voraussehbarer Zukunft keinen Peak Oil bei der Förderung geben, sondern einen Peak Demand, eine geringere Nachfrage. In westlichen Industriestaaten, ja sogar in China sinkt der Ölverbrauch allmählich. Im ersten Fall wegen neuer Technologien, im zweiten aufgrund konjunktureller Abkühlung. Chinas bislang enormer Ölverbrauch wird von manchen Ökonomen als „Anomalie“ betrachtet, geschuldet einem überhitzten, inzwischen durch den Pekinger Staatskapitalismus etwas gezügelten Wirtschaftswachstum.

Könnte also sein, dass uns noch sehr lange einigermaßen erschwingliches Öl angeboten wird. Was die Fans von schnittigen Elektroautos und preiswerten Holzschnitzelheizungen grämen mag. Den Rest der Welt wohl eher nicht.

Was nun den Peak Oil-Glauben betrifft, so haben sich seine Anhänger einen neuen Zeitpunkt ausgeguckt, an dem der allerletzte Tropfen aus der Pipeline rinnen wird. Anfang 2016, als das Barrel Brent bei lächerlichen 30 Dollar stand, schleuderte ein „Taz“-Redakteur den Ölisauriern diese Worte trotzig in ihre fossilen Fratzen: „Freut euch nicht zu früh“. Weil:

„So ist die Endlichkeit der Ressource Öl eine Tatsache, die der gegenwärtige Ölpreiskollaps zwar verdeckt, die aber ihre eigene Gesetzmäßigkeit entfalten wird. Die Förderung wird zurückgehen, auch wenn sich das ein halbes Jahrhundert hinziehen wird“.

Ja, alles hat ein Ende, nur die Wurst hat zwei. Pflegte meine liebe Mutter (*1906, vier Kinder, lebenslang Hausfrau) zu scherzen. Zugegeben, ihr Wissen um globale Ökonomiezusammenhänge war vielleicht limitiert. Aber für einen Job im Peak Oil-Alarmistenbiz hätte es gelangt.

PS: Anfang März 2018 stand Brent bei etwas über 65 Dollar. Ganz okay für die Beteiligten. Weshalb Sie alle Prognosen zum Öl und dessen Preisentwicklung sowieso vergessen können, erklärt dieses Stück.

Der Artikel erschien zuerst in ACHGUT hier

09 Mar 15:30

Fukushima-Kernschmelze: Die Technik tat genau, was sie sollte

Am 11. März 2011 löste ein Tsunami im japanischen Atomkraftwerk Fukushima Daiichi eine Kernschmelze aus - und die Technik reagierte wie geplant. Nur waren die Pläne nicht besonders gut, obwohl es Gesetzgeber und Behörden hätten besser wissen müssen. Von Frank Wunderlich-Pfeiffer (General Electric, Internet)
09 Mar 15:21

Große Koalition: Evaluierungsverweigerer Maas wird Außenminister

Als Justizminister hat Heiko Maas umstrittene netzpolitische Gesetze durchgeboxt, auch gegen seine eigene Überzeugung. Seine Nachfolgerin Katarina Barley erbt einige Themen, die Maas teils jahrelang ausgesessen hat. Von Friedhelm Greis (Heiko Maas, Google)
09 Mar 15:20

Chrome Notifications Could Finally Be Coming to the Windows 10 Action Center

by Mehedi Hassan

Google's Chrome browser could soon start using Windows 10's Action Center for notifications instead of Google's own custom notifications.

The post Chrome Notifications Could Finally Be Coming to the Windows 10 Action Center appeared first on Thurrott.com.

09 Mar 15:19

Microsoft Confirms Next-Gen Surface Hub

by Mehedi Hassan
Thinking About the Future of Surface Hub

Microsoft is coming out with a new version of its hugely successful interactive whiteboard this year.

The post Microsoft Confirms Next-Gen Surface Hub appeared first on Thurrott.com.

09 Mar 15:10

Netzausbau 10/18

Weiter geht's! Die Telekom baut auch in dieser Woche ihr Netz aus. Darum gibt es hier jede Woche eine Übersicht der wichtigsten Meldungen, wo in Deutschland die Netzabedeckung erweitert und Glasfaser verlegt wurde.
09 Mar 15:06

Neue Bundesregierung: Barbara Hendricks scheidet aus Kabinett aus

by ZEIT ONLINE: Deutschland -
Die amtierende Umweltministerin wird keinen Posten in der neuen großen Koalition übernehmen. Sie gehe mit einem guten Gefühl, sagte sie in einem Interview.
09 Mar 15:03

Telemedizin soll Inhaftierten helfen

by Udo Vetter

Die Telemedizin ist ja groß im Kommen. Derzeit ändern die Ärzte ihre Standesregeln für die Fernbehandlung von Patienten, und jetzt entdeckt auch die baden-würrtembergische Justiz den möglichen Nutzen für den Strafvollzug. Im Rahmen eines Modellprojekts sollen dort künftig Gefangene Fachärzte online konsultieren können.

Einzelheiten stehen in diesem Bericht. Interessant ist auch das Argument, dass die Telemedizin die Fluchtgefahr mindern dürfte. In der Tat, das darf ich hoffentlich sagen, sind gerade Ausführungen zu Ärzten oft eine günstige Gelegenheit, wenn sich ein Gefangener aus dem Staub machen will. Aber die Regel ist das natürlich nicht.

Ich persönlich denke in diesem Zusammenhang gern an einen schwer zuckerkranken und auch überdies sehr angeschlagenen Mandanten, der sich auch mal selbst aus der Haft entließ. Aber nur, um im Knast „nicht zu krepieren“, wie er es formulierte. Den Aufenthalt in einer Privatklinik hat ihm seinerzeit sein Bruder finanziert. Nach knapp drei Wochen ging der Mandant dann freiwillig zurück und saß brav seine Reststrafe ab.

Flattr this!

09 Mar 15:02

„Es stimmt, ich war zu schnell“

by Udo Vetter

Wer wegen eines Verkehrsverstoßes angehalten wird, kennt vielleicht die Situation. Der Polizeibeamte nimmt nach einem lockeren Gespräch die Personalien auf. Und später liest man als Betroffener dann in den Unterlagen, dass man den Tatvorwurf eingeräumt hat. Standardformulierung: „Es stimmt, ich war zu schnell.“

Genau hiermit sollte auch ein mutmaßlicher Temposünder überführt werden. Der zuständige Polizeibeamte konnte dem Richter allerdings gar keine konkreten Informationen liefern, um wie viel der Betroffene tatsächlich zu schnell durch eine Tempo-30-Zone gefahren sein soll. Insbesondere blieb der Polizist eine Erklärung schuldig, nach welchem Maßstab er von einer Geschwindigkeitsüberschreitung ausging.

Blieb letztlich nur das vermeintliche Geständnis im Rahmen der Anhörung zum Tatvorwurf. Seine mündlichen Angaben muss der Betroffene in solchen Fällen nicht durch Unterschrift bestätigen. Der Polizeibeamte sagt einem in der Regel auch nicht, wie er einen zu zitieren gedenkt.

Vor diesem Hintergrund will sich der Richter in dem entschiedenen Fall aber nicht alleine auf das angebliche Geständnis verlassen. Ohne nachvollziehbare Fakten, die ihm eine eigene Überprüfung möglich machen, könne er sich nicht auf das Geständnis stützen. Die Pflicht des Gerichts, den Verkehrsverstoß mit den vorliegenden Beweismitteln selbst zu überprüfen, werde durch ein angebliches Geständnis nicht außer Kraft gesetzt.

Überdies hatte der Betroffene in der Hauptverhandlung natürlich auch darauf hingewiesen, dass er den ihm in den Mund gelegten Satz so nicht gesagt hat.

Link zum Beschluss des AG Dortmund

Flattr this!

09 Mar 14:59

Glasfaser: Kanzleramtschef lässt Vectoring-Förderung einstellen

Laut dem künftigen Kanzleramtschef Helge Braun sollen künftig nur noch reine Glasfaser-Ausbauprojekte förderfähig sein - und ausdrücklich keine Fördergelder mehr für den Breitbandausbau mit kupferbasierten Übergangstechnologien wie VDSL (Super-) Vectoring ausgegeben werden. (Breitband, DSL)
09 Mar 12:55

Windows Defender konnte riesige Malware-Kampagne aufhalten

by Albert Jelica

Microsoft hat heute im eigenen Cloud-Blog mitgeteilt, dass man mittels Verhaltensüberwachung bei Schadsoftware und Machine Learning eine enorme Malware-Kampagne aufhalten.

500.000 PCs wären betroffen gewesen

Kurz vor dem 6. März hat der Windows Defender nämlich 80.000 Instanzen von einer Reihe ausgeklügelter Trojaner blockiert. Verhaltensbasierte Signale kombiniert mit Cloud-betriebenem Machine Learning konnte diese neue Infektionswelle aufhalten. In weiteren 12 Stunden wurden mehr als 400.000 Instanzen registriert, von denen 73 Prozent in Russland waren.

Binnen Millisekunden aufgehalten

Der Windows Defender hat ein ungewöhnliches Verhalten eines Programms registriert, woraufhin Microsofts Cloud Protection-Dienst eingeschaltet wurde. Binnen Millisekunden wurde die Schadsoftware dank Machine Learning analysiert und konnte daraufhin automatisch vom Windows Defender blockiert werden.

Microsoft wurde daraufhin automatisch benachrichtigt über eine mögliche „Malware-Epidemie“. Daraufhin wurde die Klassifizierung auch als Schadsoftware angepasst und der korrekte Name für den Virus wurde auch Nutzern angezeigt. In den ersten Minuten sahen betroffene Nutzer nur, dass der Windows Defender neue Viren namens Fuery, Fuerboos, Cloxer oder Azden blockiert hatte. Dies waren Namen, welche die Malware von den Machine Learning-Algorithmen zugewiesen bekam.

Alle PCs mit Defender waren geschützt

Der Angriff hätte eine Malware namens Dofoil verbreiten sollen, welche auf den PCs unwissender Nutzer Cryptocoins abbaut. Dies verbraucht einerseits außerordentlich viel Strom und Beansprucht zudem die Leistung des PCs.

Die Dofoil Malware versucht dabei sehr lange im System unentdeckt zu bleiben, indem die Registry modifiziert wird. Die explorer.exe oder in diesem konkreten Fall die OneDrive Run-Datei wird so modifiziert, dass sie eine andere Datei ausführt, welche versteckt minen kann.

Dank der Sicherheit des Windows Defenders und der implementierten Machine Learning-Technologien kann Microsoft den Ausbruch schwerwiegender Malware wie in diesem Fall häufig im Keim ersticken.


Quelle: Microsoft

Der Beitrag Windows Defender konnte riesige Malware-Kampagne aufhalten erschien zuerst auf WindowsArea.de.

09 Mar 08:44

Building a Content-Based Search Engine II: Extracting Feature Vectors

09 Mar 08:44

Improvements to the protection stack in Azure Information Protection

by Azure Information Protection Team

Were constantly striving to make the process of protecting information easier and simpler for both users and admins. To help with the initial step in protecting your information, we’re happy to announce that starting February 2018 all Azure Information Protection eligible tenants will have Azure Information Protection on by default. Any organization which has Office E3 and above or EMS E3 and above service plans can now get a head start in protecting information through Azure Information Protection.

The new version of Office 365 Message Encryption which was announced at Microsoft Ignite 2017, leveraged the encryption and protection capabilities of Azure Information Protection. We have continued to make significant improvements in the product since its initial launch and are excited to announce new capabilities in both Office 365 Message Encryption and Azure Information Protection.

Protection on by default

Starting February 2018, Microsoft will enable the protection capability in Azure Information Protection automatically for our new Office 365 E3 or above subscription. Tenant administrators can check the protection status in the Office 365 administrator portal.

EMS E3/E5 subscription and Azure Information Protection P1, P2 plans offer standardized and approachable labels and classification taxonomy. The default global policy will now configures Azure Information Protection based encryption and rights management for the following sublabels:

  • Confidential \ All Employees
  • Confidential \ Recipients Only
  • Highly Confidential \ All Employees
  • Highly Confidential \ Recipients Only

Please refer to our documentation for more details.

Office Message Encryption on by default

Along with enabling the protection service, Microsoft has now enabled the Office 365 Message Encryption capabilities by default for any new Office E3 or above subscription.

Richer collaboration specifically for email scenarios

Azure Information Protections powerful classification andlabelling capabilities enabled organizations to easily collaborate within and across organizational boundaries. Administrators could create labels which were backed by protection policies which promoted group-collaboration (e.g finance@contoso.com) and cross company-collaboration (e.g fabrikam.com). However, until now, the groups and users specified in the label definitions (e.g fabrikam.com, finance@contoso.com) needed to be part of the AAD identity fabric.

Since Microsoft Ignite 2017, Office 365 Message Encryption has enabled organizations to send Azure Information Protection encrypted and rights managed emails to anyone with any email address. However, administrators expressed their frustration on their inability to create effective Azure Information Protection labels which was backed with protection that could include non-AAD users and groups. With this month’s update of the Azure Information Protection service, administrators can now include non-AAD domains in the template definition which would specifically assist in cross-company or non-AAD collaboration scenarios of Office 365 Message Encryption. In the snip below, Contosos administrator has defined a custom protection permission for recipients who have a gmail.com address, hotmail.com address and onpremcompany.com address.

New policy Encrypt-Only

Do Not Forward has been the only out-of-box and default policy which was available to our customers. While Do Not Forward is very useful in securing the content (recipients cannot forward, print, edit, copy content), customers have indicated that it is far too restrictive and does not help in todays collaborative environment.

We are releasing a new out-of-the-box policy called Encrypt-only. With this policy, users can send encrypted email to any recipient, whether they are inside or outside the organization, and the protection follows the lifecycle of the email. However, unlike Do Not Forward, recipients can copy, print and forward the email. Encryption will follow the forwarded mail and no one other than the original sender can remove the protection of the email. This new policy provides more flexibility in the type of protection that can be applied to your sensitive emails. You can learn more about the Encrypt-Only policy here.

A few questions you might have:

How does this announcement for enabling Azure Information Protection by default affect existing Office 365 tenants?

There is no impact to existing Office 365 tenant. They would still need to enable Azure Information Protection manually through Office 365 or through PowerShell cmdlets.

However, for tenants who have enabled Azure Information Protection, Office 365 Message Encryption will be enabled by default.

How does it affect tenants who wish to migrate from AD RMS to Azure Information Protection?

Going forward, if you are creating a cloud subscription for migrating from AD RMS to Azure RMS, please manually disable the Rights Management service before starting the migration.

Will SharePoint Online IRM feature also be configured automatically?

No, that still needs to be done manually.

We feel these updates will reduce the work admins need to do to secure emails within organizations. Let us know if you have any feedback and well try our best to improve your experiences. Engage with us on Yammer or Twitter and let us know whats important to you by voting on UserVoice!

09 Mar 08:43

The Quantum Thermodynamics Revolution (2017)

09 Mar 08:42

How to Write CSS That Works in Every Browser, Even the Old Ones

09 Mar 08:41

Olympic Destroyer: Hackerangriff auf die Olympischen Spiele lief unter falscher Flagge

Der Angriff auf die IT-Infrastruktur der Olympischen Spiele in Pyeongchang war wohl nur eine Übung darin, anderen einen Cyberangriff in die Schuhe zu schieben. Das jedenfalls legen neue Erkenntnisse von Forschern nahe, die Zugang zu der Malware hatten.