Parallele Ausführung von Prozessen mit xargs

Ein guter Startpunkt ist -P 4 -n 1 um 4 Prozesses parallel laufen zu lassen (-P 4), aber jeder Instanz des auszuführenden Prozesses nur ein Argument zu geben (-n 1)

Dies sind die xargs-Optionen für die parallele Ausführung aus der xargs-manpage:

-P, --max-procs=ANZAHL       höchstens diese ANZAHL Prozesse zugleich ausführen

-n, --max-args=ANZAHL        höchstens diese ANZAHL Argumente in der
                                 Befehlszeile verwenden

Beispiel:

cat urls.txt | xargs -P 4 -n 1 wget

Dieser Befehl führt bis zu 4 wget-Befehle parallel aus, bis jede der URLs aus urls.txt heruntergeladen wurde. Die Folgenden Prozesse würden parallel ausgeführt:

wget [URL #1]
wget [URL #2]
wget [URL #3]
wget [URL #4]

Benutzt man stattdessen die Parameter -P 4 -n 2 dann würden die Folgenden Prozesse parallel ausgeführt:

wget [URL #1] [URL #2]
wget [URL #3] [URL #4]
wget [URL #5] [URL #6]
wget [URL #7] [URL #8]

Ein größerer Wert für -n könnte die Effizienz leicht erhöhen, da nicht für jede URL ein eigener Prozess initialisiert werden muss. Allerdings funktioniert ein Wert von n > 1 für manche Befehle nicht.

Posted by Uli Köhler in Linux

Wo kann man in der Fritz!Box statische IP-Routen setzen?

Die statischen IP-Routen findet man unter

  • Heimnetz
  • Netzwerk
  • Tab Netzwerkeinstellungen
  • Ganz nach unten scrollen, dort steht Statische Routingtabelle
  • Rechts unten davon sind die beiden Buttons zum setzen von statischen IPv4-Routen und IPv6-Routen !

Sollten diese Einträge nicht vorhanden sein => Erweiterte Ansicht ganz rechts oben aktivieren.

Posted by Uli Köhler in Netzwerk

How to fix PowerShell The term ‚Remove-Service‘ is not recognized as the name of a cmdlet, …

Problem:

You want to remove a Windows service using the Remove-Service cmdlet. However, you see an error message like

Remove-Service : The term 'Remove-Service' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
At line:1 char:63
+ Remove-Service
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Remove-Service:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Solution:

The Remove-Service cmdlet was introduced in PowerShell version 6.x.

When you run

Get-Host | Select-Object Version

in your PowerShell, you will see that you are running an older PowerShell version, e.g.

Version
-------
5.1.19041.610

However, you can use this one liner in order to install PowerShell

iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"

Source for the one-liner: thomasmaurer.ch

Posted by Uli Köhler in PowerShell, Windows

Howto: PowerShell-Fehlerausgabe auf Englisch umstellen

Falls du eine PowerShell-Ausgabe für ein Kommando oder ein Cmdlet lieber in Englisch statt in Deutsch sehen möchtest, kopiere dies vor dein Kommando:

[Threading.Thread]::CurrentThread.CurrentUICulture = 'en-US';

Zum Beispiel wäre dies die Kommandozeile, um My-Cmdlet -Arg 1 mit einer Ausgabe in Englisch aufzurufen:

[Threading.Thread]::CurrentThread.CurrentUICulture = 'en-US'; My-Cmdlet -Arg 1

[Threading.Thread]::CurrentThread.CurrentUICulture betrifft ausschließlich das aktuelle Kommando und hat keinen Effekt auf weitere Kommandos. Du musst diese Zeile daher vor jedes deiner Kommandos kopieren, dessen Ausgabe du auf Englisch statt auf Deutsch sehen möchtest!

Unter Umständen musst du auch die englische Hilfe installieren um mehr Nachrichten in Englisch zu sehen, dazu führe in einer PowerShell als Administrator diese Zeile aus:

Update-Help -UICulture en-US

 

Posted by Uli Köhler in PowerShell, Windows

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