Problemlösung ‚Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 78BD65473CB3BD13‘

Problem:

Du versuchst, die aktuellen Paketlisten unter Linux mit apt update oder apt-get update zu aktualisieren, aber siehst diese Fehlermeldung:

W: GPG-Fehler: http://dl.google.com/linux/chrome/deb stable InRelease: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 78BD65473CB3BD13

Lösung:

Importiere den öffentlichen Schlüssel mit

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 78BD65473CB3BD13

und dann versuche nochmal

sudo apt update

 

Posted by Uli Köhler in Unkategorisiert

Wie berechnet man die Anzahl der Tage in einem Jahr mit pandas?

In unserem vorigen Post haben wir gezeigt, wie man mithilfe der Pendulum-Bibliothek die Anzahl der Tage ein einem Jahr berechnen kann.

Dieser Post zeigt, wie man die Anzahl der Tage in einem Jahr mit pandas berechnet:

import pandas as pd
def number_of_days_in_year(year):
    start = pd.Timestamp(year, 1, 1)
    end = pd.Timestamp(year + 1, 1, 1)
    return (end - start).days)

Beispiel:

print(number_of_days_in_year(2020)) # Gibt 366 aus
print(number_of_days_in_year(2021)) # Gibt 365 aus

Detailierte Beschreibung:

Zuerst definieren wir das Startdatum als den 1. Januar des zu berechnenden Jahres:

start = pd.Timestamp(year, 1, 1)

Das Enddatum ist dementsprechend der erste Januar des darauf folgenden Jahres

end = pd.Timestamp(year + 1, 1, 1)

Der Rest ist einfach: Wir können die Daten voneinander subtrahieren und im resultierenden pd.Timedelta-Objekt .days aufrufen, um die Anzahl der Tage zu erhalten.

(end - start).days

 

Posted by Uli Köhler in pandas, Python

Anzahl der Tage in einem Jahr mit Python berechnen

Wir können die pendulum-Bibliothek benutzen, um die Anzahl der Tage in einem Jahr zu bestimmen:

import pendulum

def number_of_days_in_year(year):
    start = pendulum.date(year, 1, 1)
    end = start.add(years=1)
    return (end - start).in_days()

Usage example:

print(number_of_days_in_year(2020)) # Gibt 366 aus
print(number_of_days_in_year(2021)) # Gibt 365 aus

Erklärung:

Zuerst definieren wir das start-Datum als das erste Datum (1. Januar) des Jahres, für das wir die Anzahl der Tage berechnen sollen:

start = pendulum.date(year, 1, 1)

Nun können wir die add-Funktion aus pendulum verwenden, um exakt ein Jahr zu diesem Datum zu addieren. Dies resultiert immer im ersten Januar des darauf folgenden Jahres.

end = start.add(years=1)

Der Rest ist einfach: Wir benutzen in_days(), um die Anzahl der Tage in (end - start) zu erhalten:

(end - start).in_days()

 

Posted by Uli Köhler in Python

Was tun bei Angular ng Die Datei „C:\Users\…\AppData\Roaming\npm\ng.ps1“ kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist

Problem:

Du möchtest ein Angular-Kommando wie ng serve ausführen, aber siehst diese Fehlermeldung:

ng : Die Datei "C:\Users\myuser\AppData\Roaming\npm\ng.ps1" kann nicht geladen werden, da die Ausführung von Skripts auf diesem System    
deaktiviert ist. Weitere Informationen finden Sie unter "about_Execution_Policies" (https:/go.microsoft.com/fwlink/?LinkID=135170).      
+ ng serve
+ ~~
    + CategoryInfo          : Sicherheitsfehler: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

Lösung:

Lösche die Datei C:\Users\BENUTZERNAME\AppData\Roaming\npm\ng.ps1 ,zum Beispiel mit dem Folgenden Befehl:

rm "C:\Users\$env:username\AppData\Roaming\npm\ng.ps1"

Danach sollte ng serve etc sofort funktionieren.

Posted by Uli Köhler in Windows

TSV-Dateien (tab-separierte Werte) in C++ einlesen

Dieses minimale Beispiel zeigt, wie man tab-separierte Dateien (TSV) in C++ einlesen kann. Unser Beispiel nutzt boost::algorithm::split, um jede Zeile in ihre tab-separierten Werte aufzuspalten.

#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <boost/algorithm/string.hpp>

using namespace std;
using namespace boost::algorithm;

int main(int argc, char** argv) {
    ifstream fin("test.tsv");
    string line;
    while (getline(fin, line)) {
        // Split line into tab-separated parts
        vector<string> parts;
        split(parts, line, boost::is_any_of("\t"));
        // TODO Your code goes here!
        cout << "First of " << parts.size() << " elements: " << parts[0] << endl;
    }
    fin.close();
}

 

 

Posted by Uli Köhler in C++

C++: Datei Zeile für Zeile lesen (minimales Beispiel)

Dieses minimale Beispiel liest eine Datei mithilfe von std::getline und schreibt dann jede Zeile nach stdout.

#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char** argv) {
    ifstream fin("test.tsv");
    string line;
    while (getline(fin, line)) {
        // TODO Hier kannst du die Zeile weiterverarbeiten. Dies ist nur ein Beispiel:
        cout << line << endl;
    }
    fin.close();
}

 

Posted by Uli Köhler in C++

GCC-Fehler ‚Warnung: undefinierter Verweis auf »dlopen«‘ beheben

Wenn GCC beim Linken eine Fehlermeldung wie diese angezeigt wird:

/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/librocksdb.so: Warnung: undefinierter Verweis auf »dlopen«
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/librocksdb.so: Warnung: undefinierter Verweis auf »dlclose«
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/librocksdb.so: Warnung: undefinierter Verweis auf »dlerror«
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/librocksdb.so: Warnung: undefinierter Verweis auf »dlsym«

dann muss zusätzlich noch die dl-Bibliothek gelinkt werden, die die Funktionen zum dynamischen Laden von Symbolen dlopen, dlclose, dlerror & dlsym enthält.

In GCC kann man die dl-Bibliothek mit dem -ldl-Flag linken.

Posted by Uli Köhler in C++

FFT-Frequenzauflösungs-Rechner

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

pt

Hz


f_{Auflösung} = \frac{f_{Samplerate}}{N_{FFT}}

Posted by Uli Köhler in Calculators

Hz in RPM umrechnen

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

Hz


f_{RPM} = f_{Hz} \cdot 60

Posted by Uli Köhler in Calculators, Online-Rechner

RPM in Hz umrechnen

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

RPM


f_{Hz} = \frac{f_{RPM}}{60}

Posted by Uli Köhler in Calculators, Online-Rechner

Körperoberflächen-Rechner

Note about medical information:
This information is presented for informational purposes only and is intended for professionals. While we strive to provide accurate information, this information might be outdated, unintentionally misleading or incorrect. Consult a medical professional and/or read the primary sources cited in our article before basing any decision on this information.
TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

m

kg





Quellen & Formeln:Halls.md

Posted by Uli Köhler in Calculators, Online-Rechner

Gramm-in-Mol-Online-Umrechner

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

g

g/mol

n[mol] = \frac{m[g]}{M_m[\frac{g}{mol}]}
Posted by Uli Köhler in Calculators, Online-Rechner

Reepschnur-Bruchlast-Rechner (EN 564)

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

mm

F_{\text{Bruch,min}}[N] = 0{,}20\frac{\text{kN}}{\text{mm²}} \cdot \text{D[mm]}²
Posted by Uli Köhler in Unkategorisiert

Glühbirnen-Leistungs-Rechner

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

V

A

P_{\text{Glühbirne}} = U_{\text{Glühbirne}} \cdot I_{\text{Glühbirne}}
Posted by Uli Köhler in Elektronik, Online-Rechner

Relais-Spulenstrom-Rechner (aus Spulenleistung und Spulenspannung)

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

V

W

I_{\text{Spule}} = \frac{P_{\text{Spule}}}{U_{\text{Spule}}}
Posted by Uli Köhler in Elektronik, Online-Rechner

Wie erzeugt man eine 3D-Matrix in Octave?

Um in Octave eine X*Y*Z 3D-matrix zu erzeuen, benutze

A = zeros(X, Y, Z);

Beispiel, um eine 5x6x3 Matrix zu erzeugen:

A = zeros(5, 6, 3);

zeros() initialisiert die Matrix auf 0:

>> A = zeros(5, 6, 3);
>> A
A =

ans(:,:,1) =

   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0

ans(:,:,2) =

   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0

ans(:,:,3) =

   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0

 

Posted by Uli Köhler in Unkategorisiert

Was bedeutet ‚+ve‘ oder ‚-ve‘ in der Medizin?

+ve bedeutet positiv (engl. positive)
-ve bedeutet negativ (engl. negative)

Einige Autoren nutzen +ve oder -ve anstatt nur + und -, um zu vermeiden, dass - mit einem Gedankenstrich verwechselt wird und + mit einem und.

Zum Beispiel sagt p53-ve aus, dass p53 negativ ist. Was positiv oder negativ genau bedeutet, hängt vom Kontext ab ; es kann z.B. darauf hinweisen dass p53 in einer Gruppe von Patienten nicht mutiert ist. Dieses Paper enthält ein Beispiel, in dem p53-ve auf diese Weise benutzt wird.

Posted by Uli Köhler in Unkategorisiert

Hat der SAMD21 Pullups an jedem Pin?

Ja, die ATSAMD21-Mikrocontroller-Familie hat integrierte pullup-Widerstände (und auch pulldown-Widerstände) auf jedem Port A bzw. Port B-Pin (z.B. PB03 oder PA14) außer PA24 und PA25. Du kannst die pullup- bzw pulldown-Widerstände in Firmware aktivieren oder deaktivieren.

Der RESET-Pin hat ebenfalls einen internen pullup-Widerstand. Dieser ist jedoch immer aktiv und kann nicht deaktiviert werden.

Posted by Uli Köhler in Elektronik

Wie verbindet man den WP-Pin (Write Protect) eines EEPROMs?

Normalerweise solltest du den WP-Pin mit GND verbinden. Dadurch wird der Schreibschutz abgeschaltet und du kannst im EEPROM sowohl lesen wie auch schreiben.

Der WP-Pin ist bei allen 24xx-EEPROMs active-high, d.h. der Schreibschutz wird aktiviert, wenn der WP-Pin mit VCC verbunden wird (z.B. mit 3.3V). Sieh dir für mehr Informationen das Datenblatt deines EEPROMs an, z.B. das AT24CS04-Datenblatt. Der WP-Pin ist bei allen 24xx-EEPROMs gleich, unabhängig vom Hersteller des Chips.

Falls du den Schreibschutz aktivieren möchtest, um das versehentliche Überschreiben der Daten im EEPROM zu verhindern, verbinde den WP-Pin entweder mit einem Mikrocontroller oder mit einer externen Logikschaltung. Denke daran, dass du den EEPROM ersteinmal mit Daten beschreiben musst, und dafür muss der WP-Pin low sein, d.h. mit GND verbunden.

Das Folgende Bild zeigt einen EEPROM in KiCAD, dessen Pins so verbunden wurden, dass man den Speicher sowohl lesen wie auch schreiben kann.

Posted by Uli Köhler in Elektronik

Beispielcode: Koa.JS mit Router & Body-Parser

Dieser Beispielcode stellt die einfachstmögliche Koa.JS-Applikation dar, die ich als Template für verschiedene Webserver-Projekte verwende.

#!/usr/bin/env node
const router = require('koa-router')();
const koaBody = require('koa-body');
const Koa = require('koa');
const app = new Koa();

app.use(koaBody());

router.get('/', async ctx => {
    ctx.body = "Hallo Welt!";
});

app.use(router.routes());

if (!module.parent) app.listen(3000);

Installiere die Abhängigkeiten mit

npm i --save koa koa-router koa-body

und führe den Code so aus, nachdem du den obenstehenden Code als index.js abgespeichert hast:

node index.js

Während node index.js noch läuft, öffne http://localhost:3000 . Du solltest dort Hallo Welt! sehen. Jetzt bist du bereit, das Beispiel zu deiner eigenen Webapplikation auszubauen.

Posted by Uli Köhler in Javascript, NodeJS