Direkt lassen sich in Python keine Pfade für das import Statement verwenden. Es ist ebenso nur möglich Dateien aus dem selben Ordner oder von Python erkannte Module mit dem import Statement einzubinden. Mit einem kleinen Trick lassen sich beliebige Pfade angeben.

import sys
sys.path.append('/hypatia/')

Das eingefügte Modul muss unbedingt die Datei __init__.py enthalten.

Keine Kommentare »
 

Die größten installierten DEB Pakete zu finden kann sehr nützlich sein, wenn wenig Festplattenkapazität verfügbar ist.

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

Das größte installierte DEB Paket befindet sich ganz unten. Das kleinste folglich ganz oben.

Keine Kommentare »
 

ldd gibt dynamisch gelinkte Abhängigkeiten („dependency“) von ausführbaren Binaries in der Shell aus. Dieser Ausschnitt zeigt welche Bibliotheken catman benötigt um zu funktionieren.

~ ldd /usr/bin/catman
	linux-vdso.so.1 =>  (0x00007fffea5e1000)
	libmandb-2.6.7.1.so => /usr/lib/man-db/libmandb-2.6.7.1.so (0x00007faf0b18a000)
	libman-2.6.7.1.so => /usr/lib/man-db/libman-2.6.7.1.so (0x00007faf0af6a000)
	libgdbm.so.3 => /usr/lib/x86_64-linux-gnu/libgdbm.so.3 (0x00007faf0ad3b000)
	libpipeline.so.1 => /usr/lib/x86_64-linux-gnu/libpipeline.so.1 (0x00007faf0ab2e000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faf0a769000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007faf0a54f000)
	/lib64/ld-linux-x86-64.so.2 (0x00007faf0b59c000)

Wenn ein Programm keine dynamisch gelinkten Bibliotheken / Abhängigkeiten hat gibt es auch keine Ausgabe.

Keine Kommentare »
 

Hin und wieder kommt es vor das veränderte, erstellte Dateien oder Dateien die vor kurzem verwendet wurden ermittelt werden müssen. Mit find ist das ganz gut möglich.

Veränderte Dateien in den letzten 24 Stunden:

find /path -mtime -1 -ls

Erstellte Dateien in den letzten 24 Stunden:

find /path -ctime -1 -ls

Verwendete Dateien in den letzten 24 Stunden:

find /path -atime -1 -ls

Unter anderem können folgende Parameter für die Zeitangabe übergeben werden:

  • -mtime wenn die Datei verändert wurde in Tagen
  • -mmin wenn die Datei verändert wurde in Minuten
  • -ctime wenn die Datei erstellt wurde in Tagen
  • -cmin wenn die Datei erstellt wurde in Minuten
  • -atime wenn die Datei verwendet wurde in Tagen
  • -amin wenn die Datei verwendet wurde in Minuten

Zu beachten ist der erste Buchstabe. a steht für verwendet. c für erstellt und m für modifiziert. Die Zahl die dem Parameter übergeben wird ist immer 1:1 mit der Zeitangabe verbunden. D.h.:

  • -mmin -1 verändert vor einer Minute
  • -mtime -1 verändert vor einem Tag
  • -mtime -0.25 verändert vor 0,25 Tagen bzw. 6 Stunden.
Keine Kommentare »
 

Während dem arbeiten an einer Firefox Extension ist mir aufgefallen, dass keine fertige Funktion zum Schreiben bzw. erweitern / anhängen an Dateien zu finden ist. Generell scheint das Schreiben von Daten auf der Festplatte in Firefox Extensions etwas kompliziert gelöst zu sein. Hier ein kurzer Snippet zum Schreiben von Daten in eine Datei:

var writeFile = function(fileName, data) {
		var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile);  
		file.append(fileName);  
		var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
		// use 0x02 | 0x10 to open file for appending.
		foStream.init(file, 0x02 | 0x10 | 0x08, 00666, 0); // write(only), append, create file
		foStream.write(data, data.length);
		foStream.close();	
}
 
writeFile('Guten Morgen', '/tmp/xxx.txt');
Keine Kommentare »
 

Primfaktorzerlegung ist die Darstellung einer natürlichen Zahl als Produkt aus Primzahlen (=Primfaktoren). Mehr darüber auf Wikipedia.

Primfaktorzerlegung / Primzahlen test

(das Ergebnis befindet sich unter der grauen Linie)

Lässt sich eine Zahl nicht in ihre Primfaktoren zerlegen handelt es sich um eine Primzahl. z.b.: 7 = 7

testen / zerlegen

Keine Kommentare »