Posts Tagged ‘Windows’

Sonntag, 3. November 2013

(Aus dem Archiv) Remove Apple-specific files

Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.

.DS_Store contains information on how to display folders; e.g. list view. Such files are of no use for Linux- and Windows-users. The following command finds all .DS_Store-files in the current directory and every subdirectory and deletes it immediately. I put it in a cron-job, which is performed every five minutes.

find . -type f -name .DS_Store -exec rm -f '{}' ';'

The next thing is about these fucking Resource Forks. If I could, I would travel back through time and eliminate the person who created it. Anyway, they’re among us now, and we can’t get rid of’em. Well, at least they serve no needs on a Linux-server, so it’s (usually) safe to delete them. As example, if you drag photos from iPhoto to a Samba-Share, not only the JPGs are stored, but also ._-files with thumbnails in it. Well then, good bye little bastards:

find . -type f -name ._* -exec rm -f '{}' ';'

Tags: , , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 24. Oktober 2013

Mit PowerShell Dateien finden, die eine bestimmte Zeichenkette angehängt haben

Folgendes PowerShell-Script zeigt mir in einem Verzeichnis mit unzähligen PDF-Dateien diejenigen an, für welche es eine Version mit %NAMEN%.pdf sowie %NAMEN%-native.pdf gibt:

$duplicateIndicator = "-native"

function Get-ScriptDirectory {
  $Invocation = (Get-Variable MyInvocation -Scope 1).Value
  Split-Path $Invocation.MyCommand.Path
}

$scriptDir = Get-ScriptDirectory

$pattern = "*" + $duplicateIndicator + ".pdf"
Write-Host "Looking for $pattern ..."
Write-Host ""

$counter = 0
Dir $pattern | ForEach-Object {
	$counter++
	
	$duplicate = $_.name
	$original = $duplicate -replace $duplicateIndicator, ""
	$originalPath = $scriptDir + '\' + $original
	
	#Write-Host $duplicate
	#Write-Host $original
	
	#Write-Host "Looking for original file $originalPath"
	$fileExists = Test-Path $originalPath
	
	If ($fileExists) {
		Write-Host "Found duplicate for "
		Write-Host "    $original"
		Write-Host ""
	}
	
	#Dir $original
}

Write-Host "Scanned $counter file(s)."
Write-Host "Done."
Write-Host ""

Tags: , , , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 24. Oktober 2013

biber findet die Datenquelle nicht mehr

Kürzlich war ich auf einem Windows-Laptop mit folgendem Problem konfrontiert:

data source C:\Users\mario\AppData\Local\Temp\par-476f6e7a616c6f\cache-63038a22a6dc2bcfc65352f2f3a3448ce3f3ab68\recode_data.xml not found in.

Bei biber handelt es sich nicht um das Tier, sondern um ein Hilfstool aus dem LaTeX-Universum zur Verarbeitung von BibTeX Bibliographiedatenbanken.

Zuerst machte ich Microsoft und die kürzlich von mir aktivierten Offline-Dateien verantwortlich. Schlussendlich musste ich aber realisieren, dass das Problem rein von biber selbst zu stammen scheint. Nachdem ich den Ordner C:\Users\mario\AppData\Local\Temp\par-476f6e7a616c6f\ gelöscht hatte, lief auch biber wieder ohne Probleme durch.

Via: biber first aid for “data source not found”

Tags: , , , ,
Labels: Wissenschaft

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 23. Oktober 2013

Mehrere Dateien in einem Rutsch mit PowerShell umbenennen

Dir | Rename-Item –NewName { $_.name –replace ".jpg",".jpeg" }

Tags: , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 7. November 2012

Microsoft Domain Policies mit grep unter Windows filtern

Herkules-Aufgabe am Tag, an welchem Barack Obama zum neuen alten Präsident der USA gewählt wurde: Ich musste aus über 150 Domain Policies im HTML-Format diejenigen Dokumente herausfiltern, welche Passworteinstellungen enthielten. Und dies – wohlgemerkt – unter Windows. Wie macht man das?

Im Grund genommen ist das ganze keine grosse Hexerei:

  1. msysgit herunterladen
  2. msysgit installieren
  3. Git bash starten
  4. Ins Verzeichnis mit den Policies wechseln
  5. Folgenden Befehl ausführen:
    $ grep "Enforce password" *.html

Doch oha! grep liefert keine einzige Datei zurück, welche Kennwortrichtlinien enthält? Ein cat auf eine Beispieldatei zeigt, dass zwischen jedem Buchstaben ein Leerzeichen folgt. Indem man eine Beispieldatei mit Notepad++ öffnet, findet man heraus, dass die Exporte vom Domain Controller mit UCS-2 Little Endian enkodiert sind (der Zeichensatz steht in Notepad++ unten rechts in der Statusleiste).

Was nun? Ich habe mir kurzerhand ein bash-Script geschrieben, um die Dateien on-the-fly in ein für grep verständliches Format (UTF-8) zu konvertieren:

#!/bin/sh

if [ $# -lt 2 ]
then
	echo "Usage: $0 [extension of files to search] [string to search for in files]"
	exit 1
fi

for i in *.$1
do
	RES=`iconv -f UCS-2LE -t UTF-8 "$i" | grep "$2"`
	RET=$?

	if [ $RET -eq 0 ]
	then
		echo "$RET - $i"
		echo $RES
		echo ""
	fi
done

exit 0

Das Script tut folgendes: Zuerst liest es alle Dateien im aktuellen Verzeichnis aus, welche auf .html enden. In einer Schleife wird nun jede gefundene Datei mittels iconv von UCS-2LE nach UTF-8 konvertiert und an grep weitergepipet. grep sucht im Zeichensalat nach „Enforce password“. Die bash-Variable $? speichert das Resultat dieses Befehls; sprich 0 falls die Zeichenkette gefunden wurde, 1 (oder eine andere Zahl ungleich 0), wenn grep gestolpert ist oder einfach nichts gefunden hat. Ist $RET gleich 0, wird der Dateiname ausgegeben.

Schlussendlich fanden sich in den 150 Dateien gerade mal 6 Stück, welche Passworteinstellungen enthalten. Doch statt dem fehleranfälligen manuellen Geklicke habe ich quelloffene Tools, gepaart mit ein wenig Scripting-Wissen für mich arbeiten lassen.

Gut zu Wissen

Wer die Namen der Zeichensätze nicht auswendig weiss, dem wird unter folgendem Link geholfen:

libiconv

Tags: , , , , , , , , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Freitag, 6. Juli 2012

2004, das Jahr in welchem die Windows-Hegemonie zu bröckeln begann

When Windows 95 launched in 1995 it negated most of the advantages of the ease of use of the Macintosh and the PC market took off. The ratio reached 56 in 2004 when 182.5 million PCs were sold vs. 3.25 million Macs. […]

Then, in 2004, something happened.

Quelle: Building and dismantling the Windows advantage

Im März 2004 wurde mein PowerMac G5 geliefert, welcher mir bis zum Anfang dieses Jahres treue Dienste leistete. Ich wechselte also unbewusst just in diesem Moment von der Wintel- in die Apfel-Welt, als Microsoft auf dem Höhepunkt seiner Dominanz angekommen war.

Seit 2004 ging es nur für die Firma nur noch bergab; heute werden pro einem Apple-Geräte (Mac, iPhone, iPad) nur noch zwei Windows-Geräte verkauft. Auch das knacken wir noch …

Für jemanden, der seinerzeit den CD-ROM-Laufwerken keine Zukunft voraussagte und noch im Jahr 2000 felsenfest davon überzeugt war, noch lange ohne Mobiltelefon auszukommen, für einmal ein offensichtlich richtungsweisender Entscheid.

Tags: , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 29. März 2012

Windows Netzwerkverbindungen als Administrator öffnen

Wenn man als Standardbenutzer die Windows Netzwerkverbindungen in den Systemsteuerungen mit Administratorrechten öffnen will, verwendet man folgenden Befehl:

runas /user:<Administratorbenutzer> "explorer.exe /n,::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"

Tags: , , ,
Labels: IT

1 Kommentar | neuen Kommentar verfassen

Mittwoch, 14. März 2012

Titelzeile eines Windows-Fensters ausserhalb der Bildschirmansicht

Wer wie ich gezwungen ist, auf der Arbeit mit Microsoft Windows zu arbeiten, hat im wechselnden Zweimonitorbetrieb vielleicht auch schon einmal das Problem gehabt, dass die Titelzeile eines Fensters ausserhalb der Bildschirmansicht zu liegen kam, wenn man ein maximiertes Fenster verkleinerte.

Es gibt aber tatsächlich eine Möglichkeit, um die Titelzeile wieder innerhalb den angezeigten Bildschirmbereich zu bringen:

  1. Alt + Space (Leertaste)
  2. M
  3. Das Fenster mit den Cursor-Taste verschieben
  4. Enter

Quelle: Move a window when its title bar is off the screen

Tags: , ,
Labels: IT

2 Kommentare | neuen Kommentar verfassen

Donnerstag, 9. Februar 2012

Python-Scripts unter Windows in ausführbare .exe-Dateien umwandeln

Mit Python-Scripts kann man auch in einer Grossfirma wie meinem Arbeitgeber Arbeitsabläufe automatisieren, so beispielsweise das parsen einer Excel-Datei mit dem Modul openpyxl. Ich suche in der Excel-Datei in einer bestimmten Spalte nach Parametern und in derselben Zeile dann nach den auf dem produktiven System eingestellten Werten.

Doch was macht man nun mit dem Python-Script, wenn es als stabil empfunden und zur Distribution unter den Arbeitskollegen freigegeben wurde? Man kann nicht erwarten, dass nur ein einziger Mitarbeiter Python auf seinem Windows-Rechner installiert hat und das Script so ausführen kann.

Zum Glück gibt es eine einfache Möglichkeit, um Python-Scripts in eine .exe-Datei umzuwandeln, welche ausschliesslich aus dieser Datei bestehen und deshalb problemlos herumgereicht werden können.

Hierfür benötigt man den pyinstaller (kompatibel mit Python 2.7), welchen man folgendermassen aufruft:

python C:\Source\pyinstaller-1.5.1\pyinstaller.py C:\Source\emeidi\<script>.py -F

Der Switch -F sagt pyinstaller, dass er das Script in eine einzige, grosse .exe-Datei umwandeln und auf den sonst ebenfalls nötigen .dll-Plunder verzichtet.

Anschliessend findet sich die .exe-Datei unter C:\Source\pyinstaller-1.5.1\<script>\dist\<script>.exe, welche man beispielsweise auf den Desktop kopieren und von dort ausführen kann.

Tags: , , ,
Labels: Allgemein

1 Kommentar | neuen Kommentar verfassen

Sonntag, 31. Juli 2011

TeX Live 2011 sucks

Da wollte ich also gestern schnell mal TeX Live 2011 auf dem Windows-Laptop meiner Freundin installieren, scheiterte schlussendlich aber kläglich …

Zuerst habe ich mir install-tl.zip für Windows heruntergeladen, entpackt und danach die Datei install-tl.bat gestartet. Die Installation lief durch, hing aber schlussendlich bei „Finished downloading“. Erst viel später merkte ich, dass im Hintergrund ein Kommandozeilenfenster geöffnet war und irgendwas von mir wollte.

Der zweite Installationsversuch klappte ebenfalls nicht, obwohl alle erneut Pakete heruntergeladen werden mussten (!). Die Einträge im Startmenu fehlten.

Als ich deshalb den Installer unter C:\texlive\2011\ erneut ausführen wollte (ein zweiter Durchlauf kann nie schaden), erschien folgende Fehlermeldung:

Cannot open 'C:/texlive/2011/tlpkg/installer/texlive.png' in mode 'r' at C:\texlive\2011\tlpkg\tlperl\lib/Tk/Image.pm line 21.

Nach etwas pröbeln kopierte ich kurzerhand den von der Web-Site heruntergeladenen install-Ordner unter ~/Downloads über den Ordner in C:/texlive/2011/tlpkg/installer/. Damit die Pakete dabei aber nicht erneut heruntergeladen werden mussten, startete ich den Installer von der Kommandozeile mit

install-tl.bat -in-place

Die Installation lief nun das erste Mal richtig durch, indem TeX Live auch klar sichtbar konfiguriert wurde. Der Ordner im Startmenu tauchte aber auch hier nicht auf.

Unter C:\texlive\2011\ fand ich eine Taskbar-Applikation, welche mir so Zugriff auf TeXWorks verschaffte. Die Kompilierung einer Beispieldatei schlug grandios fehl, die Fehlermeldung lautete:

kpathsea: Running mktextex latex.ini
 Running: pdftex --ini --jobname=latex --progname=latex
-translate-file=cp227.tcx
*latex.ini  *latex.ini

 (Press Enter to retry, or Control-Z to exit)
 Please type another input file name:
 ! Emergency stop.
 <*> *latex.ini

 No pages of output.
 Transcript written on latex.log.

Offenbar ist dieses Problem im Netz nicht sonderlich bekannt, eine Google-Suche lieferte nur bruchstückhafte Hinweise auf die Ursache (und Lösung) des Problems.

Indem ich

fmtutil --missing

ausführte, erhielt ich die Fehlermeldung präsentiert, dass mangels .ini-Dateien 37 Format-Dateien nicht hätten erstellt werden können. Eine Beispielsuche nach latex.ini zeigte mir, dass die Datei unter C:\texlive\2011\ vorhanden war — doch wieso fand sie fmtutil nicht?!

Über Mailinglistenkommentare führte ich folgenden Befehl aus, welcher aber ohne Output hängen blieb:

tlmgr generate --rebuild-sys language

Die Anpassung auf

tlmgr generate language

lief zwar durch, brachte aber keine Besserung.

Lösungsansätze

Die Ursache allen Übels scheint zu sein, dass folgender Befehl nichts zurückgibt:

kpsewhich latex.ini

Im Mailinglisten-Thread [tex-live] Error : „I can’t find the format file `latex.fmt‘! sind die Fehlermeldungen besprochen, obwohl die Ursache hier eine andere zu sein scheint.

Hellhörig macht mich nur:

Normally the TEX… variables are not set in the shell but by
loading texmf.cnf in the tex-related programs.
You should use kpathsea debugging to see what is really
going on.

Ein anderer Ansatz könnte folgende Unterlassung sein:

Administrator privileges on Vista and Windows 7: even when running as administrator, if you want to install for all users, right-click install-tl.bat and select ‘Run as administrator’. The same is needed when running tlmgr (TeX Live Package Manager).

Quelle: TeX Live Windows installation

Tags: , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen