Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Der Code-Schnippsel-Thread
mrshadowtux
Unregistered

 
Beitrag #771
RE: Der Code-Schnippsel-Thread
Oder einfach den watch-Befehl aus den coreutils nutzen:
watch date
03.09.2017 11:20
Diese Nachricht in einer Antwort zitieren
winfreak Offline
アンゲシュテルタ

Beiträge: 10.292
Registriert seit: Aug 2008
Beitrag #772
RE: Der Code-Schnippsel-Thread
(03.03.2017 16:43)DosAmp schrieb:  D-Bus ist Krampf.

D-Bus ist verdammt easy und funzt ziemlich gut. Tipp: Nutze bitte weder Python-dbus noch python-NetworkManager, die nutzen intern libdbus und die ist verdammt buggy und ein einziger Krieg. Stattdessen kann ich pydbus sehr empfehlen.

[Bild: winfreak_32972_14.png]
03.09.2017 11:21
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
DosAmp Offline
Flegkano

Beiträge: 12.067
Registriert seit: Jul 2008
Beitrag #773
RE: Der Code-Schnippsel-Thread
(03.09.2017 11:21)winfreak schrieb:  Stattdessen kann ich pydbus sehr empfehlen.

Danke, python-networkmanager ist sowieso nur ein sehr dünner Wrapper für letzteres, da kann ich gewissermaßen D-Bus gleich „roh“ bedienen bzw. in mein eigenes Modul verpacken.
Und bei der Gelegenheit den Teil „Auf Herstellung der WLAN-Verbindung warten“ sauber mit D-Bus-Signalen statt Polling implementieren.

Gaby wartet im Park Forum, doch sie bleibt heut allein und sie wird dich nie wieder sehn
Gaby wartet im Park am Board, aber du nahmst dir vor du wirst nicht zu ihr gehn
(Dieser Beitrag wurde zuletzt bearbeitet: 03.09.2017 11:38 von DosAmp.)
03.09.2017 11:38
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
winfreak Offline
アンゲシュテルタ

Beiträge: 10.292
Registriert seit: Aug 2008
Beitrag #774
RE: Der Code-Schnippsel-Thread
Jap, das ist deutlich besser. Achte bei pydbus allerdings darauf, dass bei Eingabe von Dictionarys und co. evtl. mit pydbus.GVariant erst ein bisschen was drumrum verpacken musst. Da gilt es auf die Datentypen zu achten, die der NetworkManager hier vorsieht.
Im Zweifel erst mal krachen lassen und gucken, was er als Typ erwartet, und danach den GVariant bauen.

[Bild: winfreak_32972_14.png]
(Dieser Beitrag wurde zuletzt bearbeitet: 03.09.2017 13:26 von winfreak.)
03.09.2017 13:26
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
DosAmp Offline
Flegkano

Beiträge: 12.067
Registriert seit: Jul 2008
Beitrag #775
RE: Der Code-Schnippsel-Thread
Code:
#!/bin/bash
set -e
ZONEFILE="/etc/nsd/zones/secure-cdn.zone"
ENDPOINTS="/etc/secure-cdn-endpoints.list"
MAX_DIRECT=20

today="$(date +%Y%m%d)"
[ -r "$ZONEFILE" ] && serialno="$(awk '/^@ IN SOA/ {print $6 + 1}' "$ZONEFILE")"
[[ "$serialno" =~ ^"$today" ]] || serialno="${today}01"

new_zone="$(mktemp)"
trap 'rm -f "$new_zone"' EXIT
echo ";; created by $0
"'$ORIGIN secure-cdn.dosamp.net.
$TTL 30m
'"@ IN SOA ceres.dosamp.net. maulwurfhuegel.dosamp.net. $serialno 6h 15m 7d 5m
"'@ IN NS ceres.dosamp.net.
@ IN MX 0 .' > "$new_zone"
nmap -n -p 443 --open -oG - -iL "$ENDPOINTS" | \
    awk '/open\/tcp/ { print $2 }' | shuf | \
    awk -v "total_hosts=$(wc -l < "$ENDPOINTS")" -v "max_direct=$MAX_DIRECT" \
    'NR<=max_direct { print "@ IN A " $1 }
    { printf("%x IN A %s\n", NR, $1) }
    END { print "_count IN TXT \"" NR "\""; print "_bad IN TXT \"" (total_hosts - NR) "\"" }' >> "$new_zone"
cp "$ZONEFILE" "${ZONEFILE}.old"
cp "$new_zone" "$ZONEFILE"

if systemctl is-active --quiet nsd.service; then
    kill -HUP "$(</run/nsd/nsd.pid)"
fi

Shell-/Awk-Skript für eine automatisch generierte DNS-Zone (mit DNSSEC müsste man an dieser Stelle noch signieren).

Gaby wartet im Park Forum, doch sie bleibt heut allein und sie wird dich nie wieder sehn
Gaby wartet im Park am Board, aber du nahmst dir vor du wirst nicht zu ihr gehn
19.04.2018 14:37
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
DosAmp Offline
Flegkano

Beiträge: 12.067
Registriert seit: Jul 2008
Beitrag #776
RE: Der Code-Schnippsel-Thread
VBScript, das einen Datums-Befehl in der Form date MMTThhmmJJJJ.ss plus ENTER ausgibt, wie dieser von den GNU coreutils erwartet wird. Anwendungsfall ist z. B. ein Raspberry Pi oder ähnlicher Einplatinencomputer ohne Echtzeituhr, der ohne Internetverbindung betrieben wird, aber von einem anderen Computer aus wenigstens ungefähr sekundengenau nachgestellt werden soll (das Konstrukt ⌈Timer⌉−Timer, wobei Timer für die verstrichenen Sekunden des Tages mit Nachkommastellen steht, sorgt in etwa dafür, dass bis zum Beginn einer vollen Sekunde gewartet wird).

Code:
Option Explicit

Function PositiveCeil(FloatNo)
  PositiveCeil = Int(FloatNo)
  If PositiveCeil < FloatNo Then
    PositiveCeil = PositiveCeil + 1
  End If
End Function

Dim WshShell, sleeptime, unixtime, unixstr, secondstr
Set WshShell = WScript.CreateObject("WScript.Shell")

sleeptime = Int(1000*(PositiveCeil(Timer())-Timer())-100)
If sleeptime > 0 Then
  WScript.Sleep sleeptime
End If
unixtime = Now()
Rem MMddHHmmyyyy.ss
unixstr = CStr(Year(unixtime) + 10000 * Minute(unixtime) + 1000000 * Hour(unixtime) + 100000000 * Day(unixtime) + 10000000000 * Month(unixtime))
If Month(unixtime) < 10 Then
  unixstr = "0" & unixstr
End If
If Second(unixtime) < 10 Then
  secondstr = "0" & Second(unixtime)
Else
  secondstr = CStr(Second(unixtime))
End If
unixstr = unixstr & "." & secondstr

WshShell.SendKeys "%{TAB}"
WScript.Sleep 100
WshShell.SendKeys "date " & unixstr & "~"

Ähnlich, aber nur in geänderter Reihenfolge verfährt man bei einem BSD-System, wo der Befehl das Datum in der mehr am internationalen Standard angelehnten Form JJJJMMTThhmm.ss akzeptiert.
Zeile 19 sollte dann wie folgt aussehen, Zeile 20-22 fallen dann weg:

Code:
unixstr = CStr(Minute(unixtime) + 100 * Hour(unixtime) + 10000 * Day(unixtime) + 1000000 * Month(unixtime) + 100000000 * Year(unixtime))

Gaby wartet im Park Forum, doch sie bleibt heut allein und sie wird dich nie wieder sehn
Gaby wartet im Park am Board, aber du nahmst dir vor du wirst nicht zu ihr gehn
(Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2018 11:07 von DosAmp.)
08.11.2018 01:59
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux Offline
borsenrap

Beiträge: 557
Registriert seit: Jul 2019
Beitrag #777
RE: Der Code-Schnippsel-Thread
Nichts wildes, aber evtl für manche praktisch. Schnell nachschauen, wie viel man bei einer bestimmten Länge Tonband bei den üblichen Geschwindigkeiten aufnehmen kann:

Code:
#!/bin/bash
meter=${1}
precision=2 # How much after decimal point
c_b='\e[1m'
c_u='\e[4m'
c_y='\033[1;33m'
c_n='\033[0m'

if test -z "${meter}"
then
    echo -e "Please use the syntax ${c_b}$(basename ${0})${c_n} ${c_y}meter${c_n}"
    echo -e "Example: ${c_b}$(basename ${0})${c_n} ${c_y}549${c_n}"
    exit 1
fi

function calculate()
{
    echo "scale=${precision}; ${*}" | bc
}

function mins()
{
    speedcms="${1}"
    speedms=$(calculate "${speedcms}/100")
    minutes=$(calculate "${meter}/${speedms}/60")
    echo ${minutes}
}

echo -e "${c_b}${c_u}Your tape with ${c_y}${meter}${c_n}${c_b}${c_u} meters can store:${c_n}"
for speed in 4.75 9.50 19.00 38.00 76.00
do
    echo -e "On ${speed}:    ${c_b}$(mins ${speed})${c_n} minutes of audio"
done

[Bild: FJArQGy.png]
(Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2019 00:09 von mrshadowtux.)
05.07.2019 00:07
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux Offline
borsenrap

Beiträge: 557
Registriert seit: Jul 2019
Beitrag #778
RE: Der Code-Schnippsel-Thread
Ich hatte hier einen Ordner mit 360 Bildern, wo jeweils die obersten 26 Pixel abgeschnitten werden sollten, sprich oben ein kleines Stück wegschneiden. Das ist wieder ein schönes Beispiel für Dinge, die auf der Kommandozeile viel viel komfortabler gehen als mit jeder GUI. Ein Befehl und beliebig viele Dateien werden abgearbeitet:
Code:
find . -iname "*.jpg" -print -exec mogrify -gravity North -chop 0x26 "{}" \;

Benötigt installiertes ImageMagick.
11.07.2019 09:50
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Fuexline Offline
Euer Gott und Mittelpunkt

Beiträge: 6.220
Registriert seit: Aug 2012
Beitrag #779
RE: Der Code-Schnippsel-Thread
mach ich per batch Verarbeitung in Paintshop auch in Sekunden

Meine Main Geräte

11.07.2019 13:50
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux Offline
borsenrap

Beiträge: 557
Registriert seit: Jul 2019
Beitrag #780
RE: Der Code-Schnippsel-Thread
Warum soll ich dafür so ein Koloss wie Photoshop installieren, wenn das wenige Kilobyte große Imagemagick das und alle möglichen anderen Bildbearbeitungssachen genauso gut kann? Wíll ja keine detaillierte Retusche machen, sondern nur was croppen, dafür brauche ich doch keine GUI.
11.07.2019 13:56
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste