<?xml version="1.0" encoding="UTF-8"?><!-- buildBlog(Normal_0)-->
<!-- CmsBlog::Modul[Blog.5.0] // Feed XML // --><?xml-stylesheet type="text/xsl" href="/api/xsl/atom/"?>
<!--
Copyright Information 
__________________________

All rights reserved, especially the right to reproduction, the right to distribution and right to translation. No part of this website may be reproduced, and/or processed and distributed by using electronic systems and other means in any form without the written consent of Mr. Stastka. This explicitly applies also for all pictures and videos on this website. True Link for more Information: http://www.stastka.ch/impressum/ 
(c)2000 D. Stastka/Zürich  email: webmaster 'at' stastka.ch 
 
-->
<feed xmlns="http://www.w3.org/2005/Atom">
<author>
<name>Copyright 2011, Zurich Dany Stastka</name>
<email>blog@stastka.ch</email>
<uri>https://stastka.ch</uri>
</author>
<generator  version="2.0">komorebiCMS v5.0.1</generator>
<title>Blog-iT - Der gelbe Blog</title>
<logo>https://stastka.ch/_cdn/v10/img/icon/80x80/icon_logo.png</logo>
<subtitle>Mein Blog der sich anfühlt wie die die kleinen gelben Merkzettel </subtitle>
<id>urn:uuid:1de5ecd5-76d3-ea9a-3790-1c63f8285631</id>
<rights>Copyright 2011, Zurich Dany Stastka</rights>
<updated>2026-05-09T19:00:00Z</updated>
<link rel="self" href="https://stastka.ch/blog/feed/atom" type="application/rss+xml"/>
<entry>
<title>Matomo die beste Alternative zu Google Analytics</title>
<link href="https://stastka.ch/blog/Matomo-die-Alternative-zu-Google-Analytics/story/10a5680c"/>
<id>urn:uuid:13dc06a8-861b-ff9c-40b2-0e063a593820</id>
<updated>2023-07-10T16:11:05Z</updated>
<summary type="html"><div class="white"><img title="Matomo" src="https://stastka.ch/_media/cms/library/matomo/matomo-logo.png" /></div>
<p>Matomo ist eines der besten Webanalyse-Tools und die beliebteste Alternative zu Google Analytics.Aufgrund der immer höhreren Datenschutzbestimmungen (EU: DSGVO, Schweiz: <a href="https://www.kmu.admin.ch/kmu/de/home/fakten-trends/digitalisierung/datenschutz/neues-datenschutzgesetz-rev-dsg.html">revDSG</a> per 1.9.2023, Art. 19 nDSG bzw. Art. 60 nDSG) in den verschiedenen Ländern ist es eine gute Möglichkeit Gesetzteskonform seine Besucher zu analsyieren.</p>
<p>Bis Januar 2018 <a href="https://stastka.ch/0x825ccbc4">hiess Matomo Piwik</a>. Eines der grössten Vorteile von Matomo ist, dass man es selbst hosten kann. Damit behält man die vollständige Kontrolle über die Tracking-Daten und kann somit eine Webpräsenz vollkommen datenschutzkonform ausstatten.</p>
<p>Ich nutze Matomo schon seit 2008 und will kurz beschreiben wie man die Software nutzen kann</p></summary>
<content type="html">Full:<p>Matomo ist eines der besten Webanalyse-Tools und die beliebteste Alternative zu Google Analytics.Aufgrund der immer höheren Datenschutzbestimmungen (EU: DSGVO, Schweiz: <a href="https://www.kmu.admin.ch/kmu/de/home/fakten-trends/digitalisierung/datenschutz/neues-datenschutzgesetz-rev-dsg.html">revDSG per 1.9.2023</a>, Art. 19 nDSG bzw. Art. 60 nDSG) in den verschiedenen Ländern ist es eine gute Möglichkeit Gesetzeskonform seine Besucher zu analysieren.</p>
<p>Bis <a href="https://stastka.ch/0x825ccbc4">Januar 2018 hiess Matomo Piwik</a>. Eines der grössten Vorteile von Matomo ist, dass man es selbst hosten kann. Damit behält man die vollständige Kontrolle über die Tracking-Daten und kann somit eine Webpräsenz vollkommen datenschutzkonform ausstatten.</p>
<p>Ich nutze Matomo schon seit 2008 und will kurz beschreiben wie man die Software nutzen kann.</p>
<p>Wenn man sich entscheidet das man Matomo nutzen will, d.h. Selfhosting oder als Cloudlösung, sollte man Vor- und Nachteile Bescheid wissen. Ich beziehe mich hierfür auf das Selfhosting:</p>
<h3>Vorteile</h3>
<ul>
<li>Vollständige Kontrolle über die Tracking-Daten</li>
<li>Keine Limationen der API/Requests</li>
<li>Keine Softwarelizenzkosten</li>
<li>Grosse Community: Fehler können gemeldet werden</li>
<li>Weniger Adblocker Meldungen</li>
<li>Einfaches einpflegen des Matomo Code</li>
<li>Erweiterung durch Plugins (Marktplace)</li>
</ul>
<h3>Nachteile</h3>
<ul>
<li>Software muss gewartet werden (Updates)</li>
<li>Plugins müssen aktuell gehalten werden, ggf. inkompatibel</li>
<li>Behebung Fehler kann dauern</li>
<li>Grosse Instanzen brauchen:
<ul>
<li>Know-How in Bezug
<ul>
<li>MySQL Tuning, PHP Tuning</li>
<li>Cronjobs für Archivierung</li>
</ul>
</li>
<li>Grössere Zeitanalysen dauern länger</li>
</ul>
</li>
<li>Datenbankbeschände müssen selber gepflegt werden (Archivierung)</li>
<li>Fehlende Funktionen wie Headmap sind Kostenpflichtig (Abokosten)</li>
</ul>
<h2>Grundfunktionen</h2>
<p><img src="/_media/cms/library/matomo/matomo-4-15-browser.png" title="Matomo Browser" class="blog" />Matomo bietet ein Vielfalt an Tracking-Funktionen. Mithilfe des Tools kann man Statistiken erstellen, welche eine genaue Analyse des Nutzerverhaltens der Websitenbesucher und deren Gesamtperformance ermöglicht.</p>
<p>Mit Matomo kann man Besucherprofile erstellen wie z.b. wie lange ein Besucher auf einer Seite verweilt und an welcher Stelle diese wiederum diese verlassen hat. Spannend finde ich die Rangliste der meist besuchten Seiten nach Datum filterbar. Out of the Box kann man schnell einen Überblick verschaffen wer die Besucher einer Webseite sind.</p>
<p><span style="color: #3399ff;"><strong>Tipp</strong>: Das A und O für eine gute Analyse ist, wenn man auf seiner Webseite Ordnung hat und eine gute Struktur hat. Dies ist nicht nur für SEO nötigt, sondern auch für die Analsyse. Was immer vermieden soll ist Doppelter Content, d.h. Texte/Blogeinträge mehrmalig verwendet wird.</span></p>
<h2>Advanced Features</h2>
<h3>Campaigns</h3>
<p>Sehr nützlich sind die Analsyse-Funktionen im Zusammenhang von Kapagnen. So können Schlüsselwörter für das Tracking genutzt werden wenn man z.b. Newsletter versendet. So kann man Nachweisen welche Links in einem E-Mail auch schlussendlich ein kauf erzeugte.</p>
<ul>
<li><a href="https://matomo.org/faq/reports/what-is-campaign-tracking-and-why-it-is-important/">https://matomo.org/faq/reports/what-is-campaign-tracking-and-why-it-is-important/</a></li>
</ul>
<h3>Performance, woher und wohin</h3>
<p>Spannend ist es wenn man die Anaylse betreibt woher die User kommen und wie sie auf einer Webseite traversieren. Hier ein Beispiel eines Excel-Tipp:</p>
<p><img src="/_media/cms/library/matomo/matomo-4-15-Evolution.png" title="Matomo Evolution" width="750" height="398" /></p>
<ul>
<li><a href="https://matomo.org/faq/page-performance-metrics/">https://matomo.org/faq/page-performance-metrics/</a></li>
</ul>
<h3>Sitesearch</h3>
<p>Eine interne Suche ist eine spezielle Art von Aktion, und wenn eine Aktion als Site Search verfolgt wird, zählt sie nicht als Pageview. Es gibt drei Möglichkeiten, wie Sie eine Site Search-Aktion verfolgen können:</p>
<h4>1) Website-Suche mit URL-Parametern verfolgen (Standard)</h4>
<p>Der einfachste Weg, interne Suchbegriffe zu verfolgen, ist die Angabe des URL-Parameternamens, der den Suchbegriff enthält. Standardmässig liest Matomo die URL und sucht nach einem Parameter mit einem der folgenden Namen: q, query, s, search, searchword, k, keyword</p>
<h4>2) Website-Suche mit der Javascript-Funktion trackSiteSearch() verfolgen</h4>
<p>Wenn die Verfolgung der Suchergebnisse über die URL nicht möglich ist (z.B. wenn Sie eine umgeschriebene URL ohne Abfrageparameter verwenden, z.B. /search/keyword), oder wenn auch die Anzahl der Suchergebnisse verfolgen möchten, können man die folgende Javascript-Funktion verwenden:</p>
<pre class="syntax brush-javascript">piwikTracker.trackSiteSearch(keyword, category, searchCount)</pre>
<p>Der Aufruf der Funktion zeichnet den Suchbegriff, die Suchkategorie und die Anzahl der Ergebnisse auf der Suchergebnisseite auf. Dies kann auf Suchergebnisseiten verwendet werden, anstatt piwikTracker.trackPageView() aufzurufen.</p>
<h4>3) Website-Suche mit der Tracking-API verfolgen</h4>
<p>Mann kann sich mittels API von Matomo das Tracking selber Programmieren. Dies empfehle ich aber nur versierten Benutzer die über Programmierkenntnisse verfügen.</p>
<ul>
<li><a href="https://matomo.org/faq/reports/tracking-site-search-keywords/">https://matomo.org/faq/reports/tracking-site-search-keywords/</a></li>
</ul>
<h2>Fazit</h2>
<p>Als KMU oder privater Webseitenbetreiber hat man mit Matomo eine kostenlose Alternative zu Google Analytics. Man erhält ein Strauss voll Funktionen und eine einfache Installation hat man schon eine gute Möglichkeit seine Besucher zu analysieren. Für mich seit 2008 eine gute Wahl und jedes Update hat ohne grössere Probleme geklappt.</p></content>
</entry>
<entry>
<title>Synology Drive Server, Synology Drive App mit Synchronisation [Beta]</title>
<link href="https://stastka.ch/blog/Synology-Drive-mit-Synch-%5bBeta%5d/story/55943a18"/>
<id>urn:uuid:9ffe19e3-8374-5825-bedf-ce9efea46144</id>
<updated>2022-04-20T17:30:35Z</updated>
<summary type="html"><p><img class="blog" title="Synology Drive" src="https://stastka.ch/_media/cms/library/synology/synology-drive-andoid.png" />Als ich 2021 meine Synology NAS auf die Version 7.0 aktualisert habe wurde die Android App "<a href="https://play.google.com/store/apps/details?id=com.synology.dscloud">Synology DS Cloud</a>" inkompatible. Ich testete die NextCloud und OwnCloud als Ersatz und es zeigte sich das zwar der Synch funktionierte, aber hatte seine Nachteile, insbesondere wenn man bei den synchronisierte Daten via Filepiker zugreifen wollte musste man sich jeweils durch die Pfade durchhangeln. </p>
<p>Spezielle Apps die nur den Ordner Synchronisieren musste man gesondert installieren, waren aber seit Monaten nicht mehr aktualisert.</p>
<p>Mit der Beta-Version der Synology Drive App 3.0.0-602 ist nun endlich der Synch zurückgekehrt. Musste man in der letzten Beta ein pkg Packet installieren kann man jetzt das Beta-Programm Beitreten.</p></summary>
<content type="html">Full:<p><img src="/_media/cms/library/synology/synology-drive-andoid-app-synch.png" title="Synolog Drive Beta" class="blog" width="300" height="312" />Damit die App funktioniert muss folgendes erfüllt sein:</p>
<ul>
<li>Synology Drive Server mit mindestens Version 3.0.2.</li>
<li>Port weiterleitung
<ul>
<li><em>80 (Link-Freigabe)</em></li>
<li>443 (Link-Freigabe)</li>
<li><em>5000 (HTTP)</em></li>
<li>5001 (HTTPS)</li>
<li>6690 (Dateisynchronisierung)</li>
</ul>
</li>
</ul>
<p>Ich habe mich dagegen entschieden die Synology DSM (Port 5001) direkt ins Internet zu stellen. Ich begnüge mich damit das ich mich über VPN in mein Netzwerk einwähle und so die Daten aktuell halte.</p>
<p>Wo findet man den Synch?</p>
<ul>
<li>More&gt;Mobile Tasks&gt;Sync Tasks</li>
</ul>
<p>Was geht was geht nicht:</p>
<ul>
<li>Das der Synch über das Internet funktioniert muss man entweder VPN oder den Port 5001/tcp &amp; 6690/tcp als NAT Regel implementieren</li>
<li>Synch geht nur im 2-Way Mode</li>
<li>Man kann nicht spezifische Dateitypen Filtern sodnern nur Kategorien:. Fotos, Videos, Audio, Dokumente oder "Anderes"</li>
</ul>
<h3>Fazit</h3>
<p>Synology hat vieles "richtig" gemacht. Ein Ersatz zur Synology Cloud ist es allemal und bietete Ordner zu Order Synchronisation und funktioniert stabil. Es wäre schön wenn man zukünftig nur die Synchronisations-Port freigeben muss anstatt die ganze DSM, den das ist aus meiner Sicht ein security no-go.</p>
<p></p></content>
</entry>
<entry>
<title>Matomo 4.0.0 das nächste Major Release</title>
<link href="https://stastka.ch/blog/Matomo-400-Major-Release/story/67a2589a"/>
<id>urn:uuid:8a74b2c0-bacd-9d91-6120-74fedf022b4a</id>
<updated>2020-10-23T15:46:33Z</updated>
<summary type="html"><p>Matomo 4.0.0, das nächste Major Release ist da.</p>
<p>Nach 10 Monaten arbeit des Matomo Teams wurde die Finale Fassung der neuen Version veröffentlicht.</p></summary>
<content type="html">Full:<p>Matomo 4.0.0, das nächste Major Release ist da. Nach 10 Monaten arbeit des Matomo Teams wurde die Finale Fassung der neuen Version veröffentlicht.</p>
<h3>Was ist neu?</h3>
<p>Matomo 4.0.0 ist seit Januar 2020 in Arbeit.</p>
<p>Es gibt viele Änderungen, darunter Verbesserungen der Sicherheit und des Datenschutzes und andere wichtige Änderungen, vor allem:</p>
<ul>
<li>Matomo 4.0.0 benötigt PHP 7.2.5 (bessere Sicherheit und Leistung)</li>
<li>Der Log-Importer benötigt jetzt Python 3.x (Log-Analytik)</li>
<li>Auth-Tokens, die zur Authentifizierung von API-Aufrufen verwendet werden, müssen nun generiert werden und können widerrufen werden. Alle bestehenden token_auth in Matomo 3.x werden migriert, so dass alle token_auth, die Sie bereits verwenden, weiterhin funktionieren</li>
<li>Die Metriken für die Seitengenerierungszeit sind nun veraltet und werden durch neue Seitenleistungsberichte ersetzt</li>
<li>Unterstützung für Offline-Tracking in JS Tracker (beta)</li>
<li>Das LoginHttpAuth-Plugin wird nicht mehr unterstützt (Matomo würde sich freuen, wenn jemand das Plugin in Zukunft weiterführt und pflegt)</li>
<li>Seitentitel, Ereignisnamen, Ereigniskategorien, Seiten-URLs usw. werden jetzt nach 4096 Zeichen abgeschnitten (weitere Informationen) und Referrer-Urls auf 1500 Zeichen begrenzt</li>
<li><strong>Sicherheit</strong>: Sicherere Speicherung von Token: Die `token_auth` und die Session-ID werden nicht mehr im Klartext in der Datenbank gespeichert.</li>
<li><strong>Sicherheit</strong>: Beim Einbetten von Berichten (Widgets) in eine andere Site ist es nicht mehr möglich, Authentifizierungs-Token von Benutzern mit mindestens Schreibrechten zu verwenden (mehr Info)</li>
<li>Segmente: "Not contains" und "Not equals" Segmentvergleiche verhalten sich jetzt anders</li>
<li>PHP-Tracker-Client: Ausnahmen werden jetzt bei Fehlern ausgelöst</li>
<li>Wenn Sie die JavaScript-API oder die Reporting-API verwenden, oder wenn Sie Plugins für Matomo erstellen, lesen Sie bitte das Changelog für Entwickler, um eine vollständige Liste der Änderungen in der Plattform zu erhalten, die Sie betreffen könnten.</li>
<li>Datenbanktabellen verwenden jetzt UTF8-Kodierung (utf8mb4), was zum Beispiel bedeutet, dass Emojis jetzt korrekt in URLs verfolgt werden. Bestehende Matomo 3.x <strong>Datenbanken müssen manuell auf utf8 umgestellt werden.</strong></li>
<li>Der JS-Tracker trackt nun standardmässig mit "navigator.sendBeacon". Wenn Sie einen Content-Security-Policy-Header verwenden, passen Sie diesen bitte so an, dass er auch "connect-src" zulässt, siehe das Beispiel in unserer FAQ. Alternativ können Sie "sendBeacon" auch mit der JS-Tracker-Methode _paq.push(["disableAlwaysUseSendBeacon"]); deaktivieren.</li>
<li>Ältere Browser wie IE6 oder IE7 werden vom JS Tracker nicht mehr getrackt (Browser, die JSON API nicht unterstützen)</li>
<li>Der Browser IE 10 wird in der Benutzeroberfläche der Matomo App nicht mehr unterstützt (IE 10 wird weiterhin unterstützt und im JS-Tracking verfolgt)</li>
</ul>
<h3>Sicherheit</h3>
<p>Diese Version ist als kritisch eingestuft.</p>
<p>Es wurden zwei mögliche Schwachstellen (Stored XSS und Reflected XSS) behoben, die von den Sicherheitsforschern dhbd (Hung Dao) und lboy mitgeteilt wurden.</p>
<h3>Download</h3>
<ul>
<li><a href="https://builds.matomo.org/piwik-4.0.0.zip"></a><a href="https://builds.matomo.org/piwik-4.0.0.zip">https://builds.matomo.org/piwik-4.0.0.zip</a><a href="https://builds.matomo.org/piwik-4.0.0.zip"></a></li>
<li><a href="https://builds.matomo.org/matomo-latest.zip">https://builds.matomo.org/matomo-latest.zip</a></li>
</ul></content>
</entry>
<entry>
<title>HP Aruba 2920 Switch CLI: USB-Konsole, SSH Server einrichten, NTP, VLAN</title>
<link href="https://stastka.ch/blog/HP-Switch-2920-CLI-SSH-Server-einrichten/story/82bb73e9"/>
<id>urn:uuid:6a487557-4a62-4be3-8529-fe06d3e5950f</id>
<updated>2018-10-09T05:30:00Z</updated>
<summary type="html"><img class="blog" title="HP Aruba 2920" src="https://stastka.ch/_media/cms/library/network/hp/hp2920.png" />
<p>Die Aruba 2920 Switch-Serie ist eine sichere, skalierbare und benutzerfreundliche Lösung für Netzwerke in Unternehmensperipherien, Zweigstellen und kleinen und mittelständischen Unternehmen. Diese Layer 3-Switches können mit erweiterten Tools für Sicherheit und Netzmanagement wie Aruba ClearPass Policy Manager, Aruba AirWave und cloudbasiertem Aruba Central unproblematisch bereitgestellt und verwaltet werden. Der 2920 unterstützt modulares Stacking, 10 GbE, RIP- und Access-OSPF-Routing, getunnelte Knoten, PoE+, ACLs, sFlow, solide Servicequalität und IPv6. Mit REST APIs und OpenFlow-Unterstützung ist er bereit für das softwaredefinierte Netzwerk.</p></summary>
<content type="html">Full:<h3>Das Gerät</h3>
<img title="HP Aruba 2920" src="/_media/cms/library/network/hp/hp2920.png" />
<p>Die Aruba 2920 Switch-Serie ist eine sichere, skalierbare und benutzerfreundliche Lösung für Netzwerke in Unternehmensperipherien, Zweigstellen und kleinen und mittelständischen Unternehmen. Diese Layer 3-Switches können mit erweiterten Tools für Sicherheit und Netzmanagement wie Aruba ClearPass Policy Manager, Aruba AirWave und cloudbasiertem Aruba Central unproblematisch bereitgestellt und verwaltet werden. Der 2920 unterstützt modulares Stacking, 10 GbE, RIP- und Access-OSPF-Routing, getunnelte Knoten, PoE+, ACLs, sFlow, solide Servicequalität und IPv6. Mit REST APIs und OpenFlow-Unterstützung ist er bereit für das softwaredefinierte Netzwerk.Tipp</p>
<p>Bevor man anfängt einen HP Switch produktiv einzusetzen empfielt es sich die Firmware anzuheben. Insbesondere die HP Aruba Switches sind mit der <a href="https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J9728A&amp;lang=&amp;cc=&amp;prodSeriesId=">Firmware 16.x</a> sehr schick geworden.</p>
<h3>Konsolen Verbindung</h3>
<p>Wie so oft sind funktionen erst auf der Konsole einrichtbar. Daher muss man den Umweg über die USB-Konsole oder einer "Serielen Schnittstelle" gehen. Die neuste Generation hat hierführ ein USB-Port. Sobald man den USB-Treiber von HP installiert hat kann man mit einem Notebook sich auf die Konsole verbinden. Das beste Programm hierfür ist KiTTY. Tipp:</p>
<ul>
<li>Mit Tab kann man Linux-Like die Befehle vervollstädigen</li>
<li>Mit <strong>menu</strong> kann man in ein Interaktives Menü wechseln.</li>
</ul>
<h3>SSH Server einrichten</h3>
<p>Man will ja nicht immer via USB-Kabel auf den Switch zugreifen. Die sicherste Methode ist der SSH Server. Zuerst müssen wir die Schlüssel generieren. Ohne das kann der SSH Server auf dem Switch nicht betrieben werden. Wir wechseln nach dem Login in den Konfigurationsmodus:</p>
<pre>hp# config</pre>
<p>Erstellen des Schlüssels</p>
<pre>hp(config)# <strong>crypto key generate ssh rsa bits 1024</strong></pre>
<p>Nach einem Moment ist der Schlüssel erstellt. Nun können wir den Server einschalten</p>
<pre>hp(config)# <strong>ip ssh</strong></pre>
<p>Jetzt ist der SHH Server aktiv und kann mit einem SSH Client wie z.b. putty verbunden werden</p>
<p>Um den Schlüssel anzuschauen kann man folgende Befehlszeile ausführen:</p>
<pre>hp(config)# <strong>show crypto host-public-key</strong></pre>
<p>Zum Schluss kann man sich die Konfiguration anzeigen lassen</p>
<pre>hp(config)#<strong>show ip ssh</strong><strong> </strong></pre>
<h3>VLAN Einrichten</h3>
<p>Um ein neues VLAN mit der ID 100 zu erstellen reicht folgender Befehl:</p>
<pre>vlan 100</pre>
<p>Um ein VLAN zu löschen tippt man z. b. für die ID 100 folgendes ein:</p>
<pre>no vlan 100</pre>
<p>Um die Ports den jeweiligen VLAN zuzuweisen ist es am einfachsten ins interaktive Menü und dann ins VLAN Menü zu gehen. Dort kann man bequem die VLAN zuweisen.</p>
<pre> Port   DEFAULT_VLAN    VLAN5         VLAN6       
  ---- + ------------  ------------  ------------ 
  1    | <strong>Untagged     </strong> Forbid        Forbid       
  2    | <strong>Untagged     </strong> Forbid        Forbid     
  3    | Forbid        Forbid        <strong>Untagged      </strong> 
  4    | Forbid        Forbid        <strong>Untagged    </strong> 
  5    | Forbid        <strong>Untagged     </strong> Forbid       
  6    | Forbid        <strong>Untagged     </strong> Forbid       
  7    | Forbid        <strong>Untagged     </strong> Forbid  </pre>
<h3>Zeitserver</h3>
<p>Einen NTP Server auf dem Switch muss man über die Konsole gehen. Die Zeitzone ist hier in Minuten anzugeben. So ist die Schweiz in der Zeitzone 60 (MEZ).</p>
<pre>time timezone 60
time daylight-time-rule western-europe
timesync sntp
sntp unicast
sntp server priority 1 192.168.0.100</pre>
<pre>show sntp
show sntp statistics</pre>
<pre>write memory</pre>
<h3>Reset und Restart</h3>
<p>Am HP2920 hat es jeweils 2 Löcher mit der man mit einer Klammer reindrücken kann:</p>
<ul>
<li>Nur Clear: Löscht das Passwort</li>
<li>Nur Reset: Für eine Sekunde drücken und der Switch startet neu</li>
</ul>
<h4>Zurücksetzen (Werkeinstellung)</h4>
<ol style="list-style-type: upper-roman;">
<li>Reset drücken und halten</li>
<li>Bei gedrücktem <strong>Reset</strong> den <strong>Clear</strong> drücken</li>
<li><strong>Reset</strong> loslassen, <strong>Test-LED</strong> leuchtet</li>
<li>Sobald der <strong>Test-LED</strong> beginnt zu blinken <strong>Clear</strong> loslassen</li>
</ol></content>
</entry>
<entry>
<title>GnuPgP Public Key (FCC6 83C F54D 49AF AD55 5BFA5 CB83 0FE0 4A32 0000)</title>
<link href="https://stastka.ch/blog/GnuPgP-Public-Key-4A32-0000/story/9ba042a8"/>
<id>urn:uuid:8d27a37f-2f65-a3c3-1634-7047c2c98e17</id>
<updated>2018-04-19T18:30:00Z</updated>
<summary type="html"><img class="blog" title="Pgp Key" src="https://stastka.ch/api/qrcode/?key=8tTrAyPlbLIdhzZdpkTHET1+swXEnWezeYcP7A8Pk3tODHQ7aaC4WM3ybMMejn5GR0FV/R5Iw6g=&amp;size=200&amp;fg=Black&amp;bg=White&amp;cor=M&amp;ct=png" />Nach 5 Jahren habe ich meinen PGP Schlüssel erneuert. Neu habe ich meine Key mit RSA 4096 Bit verschlüsselt und ist bis 31.12.2023 gültig. Zudem habe ich die Möglichkeit eingerichtet das man mittels Kontaktformular mir eine PGP Nachricht <strong>direkt</strong> zu senden. Dabei wird die Nachricht mit openpgp.js Clientseitig verschlüsselt und danach an den Mailserver übermittelt.</summary>
<content type="html">Full:<p>Nach 5 Jahren habe ich meinen PGP Schlüssel neu erzeugt und die älteren Schlüssel wiederrufen. Neu habe ich meine Key mit RSA 4096 Bit erstellt der bis 31.12.2023 gültig ist.</p>
<h3>PGP ohne Installation nutzen</h3>
<p>Mit openpgp.js ist es jetzt möglich mit einfach mitteln PGP-Nachrichten zu erstellen oder zu lesen. Mit dem neusten Update meiner Seite habe ich openpgp integriert und die Möglichkeit erschaffen das man mir PGP-Nachrichten mittels Kontaktformular zusenden kann. Dabei wird die Nachricht im Browser direkt verschlüsselt und erst danach an den Mailserver versendet.</p>
<h4>Formular mit openpgp.js</h4>
<div class="box" style="width: 70%; padding-top: 1em;">Jetzt kann man mittels Javascript-Library (openpgp.js) mir direkt eine Pgp Nachricht schicken: <a class="cb7 cboxElement btn-pluto-default btn btn_p100" title="Pgp Nachricht schicken" href="/app/cryptography/encrypt-and-decrypt/hybrid/openpgp-js3-0-0-mail/">Jetzt eine Pgp Nachricht schicken</a></div>
<h3>Pgp Public-Key (4A32 0000):</h3>
<pre class="box" style="font-family: 'Courier New', Courier, monospace;"><span style="font-family: 'Courier New', Courier, monospace;">-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFp68QcBEADF1xJP6mGvJ8eGr+NUcifNjGZRh8zqs4bvZPYy5LKyRFaw
DhKfgZTG0scE8wuhkccMYpiUfjm2JaSJt58eelljnt+oc94JeGE9tTmDZ2bw
Bg5yGtIcGM/L+bvQm6BjiDoEHbfUSbxBZPYSearQV5lWIiKnmMmVXIdZuxBG
sQNn0QJkDNNJCmzK56qFnWt9hTFGwIKkg9oIW8XE+QT2lltk5NhqCpR5+BfB
pan8BMZU7OIPjFxarYvW/AdBpzU6ZbtRvP0ZOYiDOB7xvdpVJZtL8z3CA6GB
W/qQChGGS7RMu42nt5rU6vOru6Qm44qp/X9RY3WugeIKrv2gde8Uo1Dlqrya
/TCGvXKagIA5qCm/9qTvV84rBupGpa+adL0SCm6Zy5tkVEZ8L/E9F3gMAWWu
ncZuRnn+VJOmhZr80zzpj6pBax6wgfEh3emQ36a5BncFhHEJ0uxLGXYfhDh6
18cQkVrpU944M1YIdrQcpJ2PtTgiz2LrpU1WBrARHRWH1p1mQ/NCH9ZkA5EW
c0wDCPLjgdury+XJS4cRcc8MrmDenXnnQHweuJvegGs0NSV5o9dKd+sQKNwG
xvhfttRe+AhSIuvTgCPrlzSy6oojjXbSARIrInuAT+E0K8QvcZvLXByMxYkL
LiyI3oluxEgX0taFbcfuzEmOq4yfTwPMqo3sPQARAQABzSBEYW5pZWwgU3Rh
c3RrYSA8aW5mb0BzdGFzdGthLmNoPsLBkgQQAQgAPAYLCQcIAwIEFQgKAgMW
AgECGQECGwMCHgEWIQT8xoPPVNSa+tVVv6XLgw/gSjIAAAUCWseE8wUJCxZY
qQAKCRDLgw/gSjIAALiFEACZAi/q1Y2C7a4/XwZSttEyllCPUKdy2hh5P4x1
6pP3Fg6vSEXomjrghU+imBdcF2cKQ7VvYULczbRBsX0oYQ4fz5WpGib4FYlx
TP0A9lZ5T3aeOhFVeJ5fOdoqz0E0fzlD74jQztE2SD+P2lUfY55giMjeYUPi
Uf8uB+XczZP+e8aTegbsPcJZ/+4+m4j1HpVF+xnABxjyIJ93ibmz3QS5ARjn
6oNAuRzW5rJAPPctk6ggoiOqe358k9uOyQZEj9CMnTRsDg3OuN/vrcMkawmh
q09B1Dckgom0TdZfOWYjE88hvuIBFihIRSse/3ligSc8zHBKriPSyV93mC9E
PW4ITql7sOgNL/5+xutkrzY9bQs3zNpy7xU2YcCdDuc6o9+ncmEdennidzpC
TTIG+fPYHwRVQdG+xT1WtJrSe0gYDHwe3V474PrRbjYjPUXLXisn57h71Oti
fnY3GwZJS0fz3VKsgiTzqJzLIwPHAkvhoX1c7UOnu+rrUra4UgYRw2Hqx72/
rWrgRAWdHyrQc8vvwbv/fghpyMQ/pBblCBDdTpDSi3H9fJAwFWuVJYwnwv1N
aZ2DKgSJI7ajqi9SFuKIm/vWW67FCCqH/v4khGWxWeQu8UQPcv2eaGn0YRu1
6UxDyiFs4mdky9Y2LwwX9j5TcA/jTKc35RAu+4hGFehNgc7BTQRaevEHARAA
zGPTxyfZhvj/XAOHACX1ghpDx/24glCkUGG6bDt1ciolnK0PhC7o9s+pAUYS
U0F8/alI5zcKtUYcbCUVaUfh6FNggNaw6W+pR8mAxJIMROwBvCkQOmO98+lg
IwgmqJbSjtKruY5QN84IsrREnnG52r08vqGQ6gA8KaZcZnciolOgSt9UA6Xp
6/EKBZVPgKP36mKNxzTUyH2HCIqg2UFqUq+L7p7WA0Tx7zmRkEULLJ7E+q9q
weRJjElh4jYhHPRu2vhpi0HjXQzQmJEswfrcNMBjo5Mj6xL41xLEGQbjtuG4
UXrq7mKnEcqtTXJ88IlwvMx/5pUO6CqP1DEHbYm4tGDt1srk16P1sI2Lsbw6
5KfzLtsheZFi/wgFTNBq9/50mU+hN1Rv3h5g2GWEuAur6SzcKLmzU8OJcsEw
63WcigYRgQB3vQSz/t9i5fXgGjrpJu+KHDIOhEFcfA98SO7DiJo11DacvkxF
GMkDpIvBkcJhqJ8hYmVpHkm1T9aeR8MYtjfJI+XAfU1uphenGI2FqIPLHxSH
YESWjvbeLGKBFd9kB2GObhCXx2iLqIRe8kcUJXXBPL94lHveA1NIMPyxNASM
ptnNBKQkpHa2mhihYQb0LyEfH4p/zZO58aFdpn0oL+2My/2SQg4C1Fr6H8+p
Ojb3mvquQPIXECzbgvFtBc8AEQEAAcLBXwQYAQgAEwUCWnrxDwkQy4MP4Eoy
AAACGwwAAH3QD/91ybfUmWGnKAnQ7onH1twR6JHsCZUMepXyvnd1TPMZA5Et
dtEb9eazlUpx70Ea/TJIoEz7pNUSfDPyW2AkXMHgczXwYyBPtbK6+iBGKU8w
3H0/VtE4GI3/loAAt1rlk7XL9HGuasbWaC9kAWxbVwZchMneSUBF2FD1ARb+
GZleBp9wBAk5f1c4cpWTK9zayUWpehv/XWb9JxIPRNCr7G9Wt3P6WHXNZRD0
lIosFYS65S4+NcsZstM5N/OKaRM1ea8WrUs5T4V6N1jTL0/4Cc+r78U/tJAo
Vjpw5aGidh2rb/qaoZq7KrzPSyKj7ULK48Uq2ja0RoT2zhP4MYMo3b23RC/M
1hgHUxykX75TSCACj5kX3YvC3haf0IZs2HYNId8igSNkz2XUmAR14wrB54aI
57GPxEcZwFagcovc5lVg7+peJNraeNIL+j1MA4pzBBJmOd+GdK952vwSZjDN
vEkv8GJ4wfTxwIRwPF1Z4WPi27nx5ZNIpuIOndzJJodJtIiKBfsxOhpU6qT1
4rDB+hLKMGGShc9KpkFnKbskXLUUGeNR4BZnJRajEvEeJVewySmFHRytG8Ve
WaOHQ7dYKMSftsciJP2VPg3MzVPpOZqGk9tnV+Iu+TOTsQqWPCR2D0YPxCcX
MoQxZlPFn9ZqJuzkBwPDhbmTaxb+QRucnOs1EQ==
=gQJ7
-----END PGP PUBLIC KEY BLOCK-----</span>
</pre></content>
</entry>
<entry>
<title>MySQL .NET Connector: Ungwöhnliche Timeout Probleme (Connection Attributes)</title>
<link href="https://stastka.ch/blog/MySQL-NET-Connector-Ungwohnliche-Timeout-Probleme-Connection-Attributes/story/eca7723e"/>
<id>urn:uuid:3e3e93d7-0e82-5b90-0bdb-49cee7696da3</id>
<updated>2018-04-06T21:00:00Z</updated>
<summary type="html">Der MySQL .NET Connector ist der einfachste Weg um C# einen MySQL Server abzufragen. Ich hatte bis anhin die Version 6.6.4 im Einsatz. Beim aktualiseren hatte ich aber unerklärliche Timesouts bei der ersten Verbindung.<img class="blog" src="https://stastka.ch/_media/cms/library/csharp/mysqlclass.png" /></summary>
<content type="html">Full:<p>Der MySQL .NET Connector ist der einfachste Weg um in C# einen MySQL Server abzufragen. So habe ich mein gesamtes CMS darauf aufgebaut und eine Klasse dafür geschrieben. Ich hatte bis jetzt die Version 6.6.4 im Einsatz. Beim aktualisieren hatte ich aber unerklärliche Timeouts bei der ersten Verbindung.</p>
<h3>Das Problem lokalisieren</h3>
<p>Ich konnte das Problem schlussendlich identifizieren das lediglich schon die Datenbankzugriffe ohne Polling immer ~5'000ms auf dem LIVE Server dauerte. Ohne Polling war die erste Verbindung auch über ~8'000ms danach aber sehr schnell bei ~25ms. Ich konnte das Problem mit meinem Hoster relativ schnell verifizieren.</p>
<h3>Die Ursache</h3>
<p>Seit der Version 6.6.5 bez. MySQL Server Version 5.6.6 wurden die so genannten Connection Attributes eingeführt. Dabei wird eine langsame WMI Abfrage erzeugt welche den ganzen Delay erzeugt.</p>
<ul>
<li>MySql Server ab Version 5.6.6</li>
<li>MySql Connector/Net ab Version 6.6.5</li>
</ul>
<h3>Die Behebung</h3>
<p>Im MySQL Forum bin ich auf einen Eintrag gestossen der genau meine Problematik behebt. So habe ich den Patch erfolgreich bei der Version 6.9.10 angewendet. Danach waren die Verbindungen alle bei ~15ms.</p>
<ul>
<li>Forum: <a href="https://bugs.mysql.com/bug.php?id=80030" target="_blank" rel="noopener">https://bugs.mysql.com/bug.php?id=80030</a></li>
<li>Patch: <a href="https://bugs.mysql.com/file.php?id=24406&amp;bug_id=80030&amp;text=1" target="_blank" rel="noopener">https://bugs.mysql.com/file.php?id=24406&amp;bug_id=80030&amp;text=1</a></li>
</ul>
<pre class="syntax brush-csharp">From e057f0de5b8507ba758f5811c75fe737c658bf6e Mon Sep 17 00:00:00 2001
From: szalicil &lt;szalicil@gmail.com&gt;
Date: Wed, 7 Sep 2016 11:56:52 +0200
Subject: [PATCH] client properties performance

---
 Source/MySql.Data/MysqlDefs.cs | 209 ++++++++++++++++++++++++-----------------
 1 file changed, 125 insertions(+), 84 deletions(-)

diff --git a/Source/MySql.Data/MysqlDefs.cs b/Source/MySql.Data/MysqlDefs.cs
index d8ed0da..92db977 100644
--- a/Source/MySql.Data/MysqlDefs.cs
+++ b/Source/MySql.Data/MysqlDefs.cs
@@ -423,132 +423,173 @@ namespace MySql.Data.MySqlClient
 
   internal class MySqlConnectAttrs
   {
-    [DisplayName("_client_name")]
-    public string ClientName
+#if !RT
+    static string pid;
+    static string version;
+    static string platform;
+    static string name;
+    static string os;
+    static string osDetails;
+    static string thread;
+
+    static MySqlConnectAttrs()
     {
-      get { return "MySql Connector/NET"; }
+      InitPid();
+      InitVersion();
+      InitPlatform();
+      InitName();
+      InitOs();
+      InitOsDetails();
+      InitThread();
     }
 
-#if !RT
-    [DisplayName("_pid")]
-    public string PID
+    private static void InitPid()
+    {
+      pid = string.Empty;
+      try
+      {
+        pid = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
+      }
+      catch (Exception ex)
+      {
+        System.Diagnostics.Debug.WriteLine(ex.ToString());
+      }
+    }
+
+    private static void InitVersion()
+    {
+      version = string.Empty;
+      try
+      {
+        version = Assembly.GetAssembly(typeof(MySqlConnectAttrs)).GetName().Version.ToString();
+      }
+      catch (Exception ex)
+      {
+        System.Diagnostics.Debug.WriteLine(ex.ToString());
+      }
+    }
+
+    private static void InitPlatform()
+    {
+      platform = Is64BitOS() ? "x86_64" : "x86_32";
+    }
+
+    private static void InitName()
+    {
+      name = Environment.CommandLine;
+      try
+      {
+        string path = Environment.CommandLine.Substring(0, Environment.CommandLine.IndexOf("\" ")).Trim('"');
+        name = System.IO.Path.GetFileName(path);
+        if (Assembly.GetEntryAssembly() != null)
+          name = Assembly.GetEntryAssembly().ManifestModule.Name;
+      }
+      catch (Exception ex)
+      {
+        name = string.Empty;
+        System.Diagnostics.Debug.WriteLine(ex.ToString());
+      }
+    }
+
+    private static void InitOs()
     {
-      get
+      os = string.Empty;
+      try
       {
-        string pid = string.Empty;
-        try
+        os = Environment.OSVersion.Platform.ToString();
+        if (os == "Win32NT")
         {
-          pid = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
+          os = "Win";
+          os += Is64BitOS() ? "64" : "32";
         }
-        catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); }
-
-        return pid;
+      }
+      catch (Exception ex)
+      {
+        System.Diagnostics.Debug.WriteLine(ex.ToString());
       }
     }
 
-    [DisplayName("_client_version")]
-    public string ClientVersion
+    private static void InitOsDetails()
     {
-      get
+      osDetails = string.Empty;
+      try
       {
-        string version = string.Empty;
-        try
+        var searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
+        var collection = searcher.Get();
+        foreach (var mgtObj in collection)
         {
-          version = Assembly.GetAssembly(typeof(MySqlConnectAttrs)).GetName().Version.ToString();
+          osDetails = mgtObj.GetPropertyValue("Caption").ToString();
+          break;
         }
-        catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); }
-        return version;
+      }
+      catch (Exception ex)
+      {
+        System.Diagnostics.Debug.WriteLine(ex.ToString());
       }
     }
 
+    private static void InitThread()
+    {
+      thread = string.Empty;
+      try
+      {
+        thread = System.Diagnostics.Process.GetCurrentProcess().Threads[0].Id.ToString();
+      }
+      catch (Exception ex)
+      {
+        System.Diagnostics.Debug.WriteLine(ex.ToString());
+      }
+    }
+
+    [DisplayName("_client_name")]
+    public string ClientName
+    {
+      get { return "MySql Connector/NET"; }
+    }
+
+    [DisplayName("_pid")]
+    public string PID
+    {
+      get { return pid; }
+    }
+
+    [DisplayName("_client_version")]
+    public string ClientVersion
+    {
+      get { return version; }
+    }
+
     [DisplayName("_platform")]
     public string Platform
     {
-      get { return Is64BitOS() ? "x86_64" : "x86_32"; }
+      get { return platform; }
     }
 
     [DisplayName("program_name")]
     public string ProgramName
     {
-      get
-      {
-        string name = Environment.CommandLine;
-        try
-        {
-          string path = Environment.CommandLine.Substring(0, Environment.CommandLine.IndexOf("\" ")).Trim('"');
-          name = System.IO.Path.GetFileName(path);
-          if (Assembly.GetEntryAssembly() != null)
-            name = Assembly.GetEntryAssembly().ManifestModule.Name;
-        }
-        catch (Exception ex)
-        {
-          name = string.Empty;
-          System.Diagnostics.Debug.WriteLine(ex.ToString());
-        }
-        return name;
-      }
+      get { return name; }
     }
 
     [DisplayName("_os")]
     public string OS
     {
-      get
-      {
-        string os = string.Empty;
-        try
-        {
-          os = Environment.OSVersion.Platform.ToString();
-          if (os == "Win32NT")
-          {
-            os = "Win";
-            os += Is64BitOS() ? "64" : "32";
-          }
-        }
-        catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); }
-
-        return os;
-      }
+      get { return os; }
     }
 
     [DisplayName("_os_details")]
     public string OSDetails
     {
-      get
-      {
-        string os = string.Empty;
-        try
-        {
-          var searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
-          var collection = searcher.Get();
-          foreach (var mgtObj in collection)
-          {
-            os = mgtObj.GetPropertyValue("Caption").ToString();
-            break;
-          }
-        }
-        catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); }
-
-        return os;
-      }
+      get { return osDetails; }
     }
 
     [DisplayName("_thread")]
     public string Thread
     {
-      get
-      {
-        string thread = string.Empty;
-        try
-        {
-          thread = System.Diagnostics.Process.GetCurrentProcess().Threads[0].Id.ToString();
-        }
-        catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); }
-
-        return thread;
-      }
+      get { return thread; }
     }
 
-    private bool Is64BitOS()
+    private static bool Is64BitOS()
     {
 #if CLR4
       return Environment.Is64BitOperatingSystem;
-- 
2.9.0.windows.1


</pre>
<p> </p>
<p>[#f]syntax|null[/#f]</p></content>
</entry>
<entry>
<title>Aus Piwik wird Matomo, piwik ist tot, es lebe Matomo!</title>
<link href="https://stastka.ch/blog/Aus-Piwik-wird-Matomo%2c-piwik-ist-tot%2c-es-lebe-Matomo!/story/825ccbc4"/>
<id>urn:uuid:f26f97d0-e41d-5d57-2a6f-4ebc835cb7db</id>
<updated>2018-01-12T12:42:32Z</updated>
<summary type="html"><p><img class="blog" title="Matomo Anlalytics" src="https://stastka.ch/_media/cms/library/matomo/matomo.png" alt="Open Source Tool" />Seit <strong>24. Oktober 2008</strong> ([#f]datediff|24/10/2008[/#f]) setzte ich Piwik ein. Sie ist die echte alternative zu Google Analytics. Gestartet mit der Beta-Version 0.2 mit einer überschaubaren Funktionsvielfalt wurde daraus ein grossartiges Tool, welches kaum Wünsche übrig lässt. Im Dezember 2017 wurde die letzte Version 3.2.1 veröffentlich.</p>
<p>Am 12. Januar 2018 ist offizell <strong>Matomo</strong> (Jap. für Ehrlichkeit) als neuer Major Release in der Version 3.3.0 erschiehen.</p></summary>
<content type="html">Full:<p><img class="blog" title="Matomo Anlalytics" src="/_media/cms/library/matomo/matomo.png" alt="Open Source Tool" />Seit <strong>24. Oktober 2008</strong> ([#f]datediff|24/10/2008[/#f]) setzte ich Piwik ein. Sie ist die echte alternative zu Google Analytics. Gestartet mit der Beta-Version 0.2 mit einer überschaubaren Funktionsvielfalt wurde daraus ein grossartiges Tool, welches kaum Wünsche übrig lässt. Im Dezember 2017 wurde die letzte Version 3.2.1 veröffentlich.</p>
<p>Am 12. Januar 2018 ist offizell <strong>Matomo</strong> (Jap. für Ehrlichkeit) als neuer Major Release in der Version 3.3.0 erschiehen.</p>
<p>Vieles hat sich zur Version 3.2.1 nicht geändert. Es wurden 53 Tickets geschlossen.</p>
<ul>
<li><a href="https://matomo.org/changelog/matomo-3-3-0/">https://matomo.org/changelog/matomo-3-3-0/</a></li>
</ul></content>
</entry>
<entry>
<title>Tippspiel | Mitmachen und mitfiebern, Icehockey WM in Paris und Köln</title>
<link href="https://stastka.ch/blog/Tippspiel-Mitmachen-mitfiebern-icehockey-wm-paris-koeln/story/c0005dc9"/>
<id>urn:uuid:1c9e3ae3-2bca-03b3-ddb1-551d4f3ceed6</id>
<updated>2017-04-30T22:01:00Z</updated>
<summary type="html">In einer Woche startet die 81. Eishockey-WM in Paris und Köln. Wie schon in den letzten Jahren kann man bei meinem privaten Tippspiel mitmachen. Es winkt zwar kein Preis, dennoch die Ehre Tippkönig oder Tippkönigin zu werden.</summary>
<content type="html">Full:In einer Woche startet die 81. Eishockey-WM in Paris und Köln. Wie schon in den letzten Jahren kann man bei meinem privaten Tippspiel mitmachen. Es winkt zwar kein Preis, dennoch die Ehre Tippkönig oder Tippkönigin zu werden.<br /><br />Hier geht es zum Tippspiel: <a href="https://stastka.ch/m/tippspiel/IIHF-WM2017/">https://stastka.ch/m/tippspiel/IIHF-WM2017/</a></content>
</entry>
<entry>
<title>Piwik 2.17.0: a new major release of Piwik</title>
<link href="https://stastka.ch/blog/Piwik-2170-a-new-major-release-of-Piwik/story/40123d32"/>
<id>urn:uuid:3ffd4123-4219-eb37-9bee-df26d2d821f5</id>
<updated>2016-10-28T06:11:59Z</updated>
<summary type="html"><p><img class="blog sthmuqhjvkyenulomglk" src="https://stastka.ch/_media/blog/blog-it/tools/Piwik-logo1-2.jpg" alt="" />This release brings a big new improvement to Piwik: now you can easily purchase premium paid plugins from the Marketplace directly within your Piwik. Simply purchase one or more plugins, enter your license key, and you’re done! All your Premium plugins can now be downloaded and installed in just one click just like any other free plugins.</p>
<p>7 tickets have been closed by 3 contributors!</p></summary>
<content type="html">Full:<p>This release brings a big new improvement to Piwik: now you can easily purchase premium paid plugins from the Marketplace directly within your Piwik. Simply purchase one or more plugins, enter your license key, and you’re done! All your Premium plugins can now be downloaded and installed in just one click just like any other free plugins.<br /><strong>List of 7 tickets closed in Piwik 2.17.0:</strong></p>
<ul>
<li>    #10737 Marketplace improvements: view, purchase and manage premium plugins [by @tsteur, @mattab]</li>
<li>    #10756 deprecate license_homepage plugin metadata and link to a LICENSE[.md|.txt] file if found [by @mattab]</li>
<li>    #10541 Allow for underscores in plugin names.</li>
<li>    #10755 when a plugin modifies piwik.js the system check will show a warning “File size mismatch: /storage/divezone/www/piwik/piwik.js (expected length: X, found: Y)” [by @tsteur, @mattab]</li>
<li>    #10766 Make sure to format percentages in Scheduled Reports [by @tsteur, @mattab]</li>
<li>    #10718 [automatic translation update] Updated 520 strings in 9 languages (tr, ar, da, de, es, ko, sq, nl, it) [by @sgiehl]</li>
<li>    #10742 [automatic translation update] Updated 395 strings in 32 languages (ko, ar, de, fr, pt-br, sq, bg, ca, cs, da, el, es, et, fa, fi, hi, id, it, ja, nb, nl, ro, ru, sk, sr, sv, ta, tl, tr, uk, vi, zh-cn) [by @sgiehl]</li>
</ul>
<br /><a href="https://piwik.org/changelog/piwik-2-17-0/">https://piwik.org/changelog/piwik-2-17-0/</a></content>
</entry>
<entry>
<title>Mond: Mondberechnungen zum Vollmond</title>
<link href="https://stastka.ch/blog/Mond-Mondberechnungen-Vollmond-Neumond/story/7f395f7a"/>
<id>urn:uuid:98b47d93-fe30-a05d-8dee-069734af9ad1</id>
<updated>2016-09-16T19:04:00Z</updated>
<summary type="html"><img src="https://stastka.ch/_media/astro/100/14.png" alt="Vollmond" width="100" height="100" /><br />Mit C# kann man so allerlei Mathematische Berechnungen anstellen. So habe ich einen Webservice Programmiert der den aktuellen Mondansicht oder die nächsten Mondphasen berechnen kann.</summary>
<content type="html">Full:Mit C# kann man so allerlei Mathematische Berechnungen anstellen. So habe ich einen Webservice Programmiert der den aktuellen Mondansicht oder die nächsten Mondphasen berechnen kann. Die Formeln stammen aus dem Buch "Practical Astronomy with your Calculator". <br /><br />Der Mond ist, ist nach der Sonne das zweithellste Objekt am Himmel. Da der Mond einmal im Monat um die Erde kreist, verändert sich ständig der Winkel zwischen der Erde, dem Mond und der Sonne; man sieht das an den Zyklen der Mondphasen. Die Zeit zwischen zwei auf einander folgenden Neumondphasen beträgt 29,5 Tage (709 Stunden), etwas abweichend von der Umlaufperiode des Mondes, weil sich die Erde in dieser Zeit eine bedeutende Entfernung entlang ihrer eigenen Umlaufbahn bewegt.<br /><br />
<div style="width: 200px;">[#f]moon|mini[/#f]</div>
<br />Hier kann man auf den Webservice zugreifen: <a href="https://stastka.ch/moon/">https://stastka.ch/moon/</a></content>
</entry>
</feed>