Cygwin - Installation per Kommandozeile: apt-cyg

Sonntag, 22. Februar, 2015

Mit Cygwin holt man sich Linux Tools auf MS Windows. Nicht nur die Linux-Befehle, auch Dienste lassen sich installieren, wie z.B. OpenSSH.

Allgemein erfolgt die Installation mit der setup.exe und einer Paketauswahl per Mausklick (ja, es gibt natürlich auch einen Filter, wo man seinen Suchtext eingeben kann). Aber dennoch fehlt ein Kommandozeilen-Tool zum Suchen und installieren neuer Pakete, wie bei den Distributionen.

Just getestet und für gut befunden habe ich apt-cyg.

In der Bash ist es mit 2 Kommandos schnell installiert:

$ lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
$ install apt-cyg /bin

Und dann hat man, wie in Ubuntu, ein apt ähnliches Programm.

$ apt-cyg
usage: apt-cyg [command] [options] [packages]

Commands:
   install     Install packages
   remove      Remove packages
   update      Update setup.ini
   download    Download only - do NOT install or unpack archives
   show        Displays the package records for the named packages
   depends     Performs recursive dependency listings
   rdepends    Display packages which require X to be installed,
               AKA show reverse dependencies
   list        List packages matching given pattern. If no pattern is given,
               list all installed packages.
   category    List packages matching given category
   listfiles   List files owned by packages
   search      Search for a filename from installed packages
   searchall   Search for a filename from all available packages

Options:
   -c, --cache <dir>      set cache
   -f, --file <file>      read package names from file
   -m, --mirror <url>     set mirror
   --help
   --version

Nun sind Pakete schneller installierbar … man sucht in der Liste der vorhandenen Pakete

$ apt-cyg searchall [Begriff]

… und installiert es

$ apt-cyg install ncftp

Fertig :-)

apt-cyg selbst ist ein Bash-Skript. Es läuft somit auf der 32-bit und 64-Bit Version von Cygwin gleichermassen.

Weiterführende Links

  1. Cygwin
  2. apt-cyg auf Github
  3. pcwdld.com: Einführung im Cygwin (en)

NTFS: in den ACLs rekursiv einen Benutzer hinzufügen

Donnerstag, 22. Januar, 2015

Auf unserem Firmen-Fileserver sollte ein Benutzer zusätzlich berechtigt werden, das NTFS zu lesen.

Das Problem: Wenn man bei einem Startverzeichnis die Rechte gibt, wird dieses dann soweit nach unten vererbt, bis es auf irgendenem Verzeichnis andere Rechte gibt. So ist im Basisverzeichnis der Zugang für alle Mitarbeiter, einige Ebenen tiefer sind Projektordner, Protokolle, … verschiedenste Ordner halt. Bei jedem einzelnen Projektordner stoppt also der Vererbungsmechanismus und man muss bei jedem dieser Projektordner den Benutzer erneut hinzufügen.

Das wollte ich nicht von Hand und hunderten von Klicks erledigen.

Die nachfolgende Batchdatei sucht ab einem Startverzeichnis rekursiv alle Verzeichnisse (dir /s /b [Verzeichnis]).

Auf jedem Verzeichnis wird iacls aufgerufen (das zeigt die Berechtigungen an) und in der Ausgabe wird geschaut, ob der User bereits drin ist.

Ist der User nicht drin, gibt es einen Aufruf für die subroutine addUser. Dort wird der Benutzer (rekursiv) hinzugefügt und auf ein Return gewartet (aber das nur zur Kontrolle).

@echo off
rem ======================================================================
::
::    Skript zum Hinzufuegen eines einzelnen Users in die bestehenden
::    ACLs
::
::  ----------------------------------------------------------------------
::  2015-01-22  Axel Hahn
rem ======================================================================
set line=-------------------------------------------------------------------------------
 
set mydir=nas-blabla\irgend\wo
set cuser=DOMAIN\newuser
 
echo.
echo %line%
echo user %cuser% hinzufuegen in %mydir%
echo %line%
 
for /F "tokens=*" %%a in ('dir /b /s /a:d %mydir%') do (
      echo ... %%a
      icacls "%%a" | findstr "%cuser%" >nul || call :addUser "%%a"
)
echo.
echo fertig.
timeout /t 100
exit
 
:addUser
echo ...... adding %cuser%
icacls %1 /grant "%cuser%":(OI)(CI)(RX)
set /p dummy=Return

Weiterführende Links

Links in Quicktime

Mittwoch, 10. September, 2014

Mit choco install quicktime ist Apple Quicktime ja schnell installiert…

Startet man Quicktime, gibt es einen Startbildschirm mit viiiieeelen Links:

2014-09-10-quicktime-links.png

Ich habe mir mal erlaubt die Ziel-Links einzuzeichnen:

Nochmal langsam: es werden 20 (in Worten: zwanzig) Verlinkungen gesetzt, die allesamt auf dasselbe Ziel zeigen??
Und was ist das für ein Ziel auf eine Textwüste beim blau markierten Link?
2014-08-15-quicktime-ziel2.png
Was in aller Welt ist der Sinn dieses Links?

Hey Apple, das ist eines euerer Produkte Stand zweitausendvierzehn!?
Was lasst ihr denn da für einen Sch(… rott) auf die Welt los?

Qualität ist etwas anderes.

UPDATE
(*) Link wurde deaktiviert

Aomei Backup: verpasste Backups starten

Mittwoch, 20. August, 2014

Nach meinem Festplatten-Defekt musste ich meinen Rechner neu aufsetzen.
Ich hatte verschiedene Backups, um meine Datern zu sichern. Verloren habe ich nur ganz wenige Daten - aber ich hatte viel Mühe, alle Daten wiederherzustellen, weil verschiedene Mechanismen irgendwo irgendwas abgelegt haben

  • Windows Backup
  • robocopy-Skripte zum Archivieren von Bildern
  • Cobian Backup für inkrementelle Backups von Daten (cool sind hier auch Pre- und Post Skripte)

Das musste einfacher werden! Und so fand ich über Nonags (eine Webseite für kostenfreie Software, die aber keine Werbung, nervende Banner etc anzeigt) das Backup Tool Aomai Backup.

Man kann Backup Jobs definieren und damit Partitionen, Disks als auch Dateien und Ordner sichern.
Cool sind diese Features

  • Sichern ganzer Partitionen, Disks als Image - per bootbarer CD (PE Windows) kann ein Systemimage schnell wiederhergestellt werden (Mein Laufwerk C war in 1/2 Stunde parat - kein Vergleich zum Neuinstallieren per Recovery CD und Nachinstallieren aller Programme)
  • Beim Modus von Dateien/ Ordnern kann man Filter zum ein/ ausschliessen angeben

2014-08-20-aomei-sheduling-01.png

Es gibt ein paar Dinge, die nerven:

  • Das kleine Programmfenster ist fitzelig klein
  • Die Übersicht der Backup-Tasks ist unübersichtlich: hätte man mehr Jobs, sieht man Backup-Typen und Intervall der Backups nicht
  • ich habe keine Pre- und Post-Tasks, wie in Cobian mehr
  • Es gibt kein gescheites Log der letzten Backups (es gibt aber XML-Dateien - die zu parsen und darzustellen - dazu schreibe ich mir gerade etwas; ich stelle es vor, wenn es parat ist)

Unter dem Strich funktioniert das Backup sauber und so oft muss man ja nicht in die GUI, wenn man die Jobs einmal angelegt hat. Und Freeware ist es ja auch.

Ein Feature fehlt in der GUI - das war der Aufhänger für diesen Blogeintrag: wenn der Rechner zur angegebenen Backup-Zeit nicht an ist, wird das Backup nicht gemacht. Sehr unschön. Scheinbar.
[Weiterlesen…]

Chocolatey: Ersatz für choco list mit lokalem Cache

Freitag, 15. August, 2014

Ich habe mich mit Chocolatey angefreundet, verfluche aber die langsame Paketsuche.
Was man da machen kann? Nun, eine Batch-Datei schreiben, die die Paketliste lokal speichern kann und diesen Cache durchsucht.

Die Funktion ist nicht mit choco list [Suchbegriff] identisch, da hier auch Metainformationen gesucht werden - die Suche in meinem Skript geht rein auf Paketnamen, ist dafür aber wirklich massiv schneller!!

Der Cache wird 1 x pro Tag erneuert - oder bei manuellem Aufruf mit Parameter -u (=update).
Die Hilfe erscheint bei Aufruf ohne einen Parameter:


===== CHOCO PACKAGE SEARCH WITH LOCAL CACHE =====

DESCRIPTION:
clist2 is a choco list to search public packages that uses a local cache

SYNTAX:

  clist2 [searchstring]
     searchstring: part of a package, case insensitive,
     regex allowed i.e. "^fire" to find the firefox
     clist2 "^fire"

  clist2 -i
     infos about cachefile

  clist2 -u
     force update of local package list (it takes a while)

[Weiterlesen…]

Schoko Nougat

Mittwoch, 13. August, 2014

Zugegeben, der Titel ist eine schlechte Übersetzung des englischen Originals.
Unter Windows gibt es ein Tool NuGet - ein Paketmanager für Entwicklertools unter MS Windows. Chocolatey NuGet greift die Idee mitsamt Technologie auf und ist ein Paketmanager für (alle möglichen) Windows Applikationen. Quasi ein apt-get, yum oder rpm für MS Windows.

2014-08-13-chocolatey.png

Unter Chocolatey sind über 2000 Pakete (Metabeschreibungen) für die Installation verschiedenster Programme verfügbar: Flashplayer, Skype, Antivirus, Browser, Mailclient, Libreoffice, … Analog zu Linux Paketmanagern kann man per Kommandozeile Pakete suchen, installieren, updaten, deinstallieren …

Das gefällt mir ;-)
[Weiterlesen…]

5.1 surround Wiedergabe mit Apple Quicktime Player?

Samstag, 17. Mai, 2014

Hm, vielleicht gab es ein Update - auf jeden Fall hat sich der Quicktimeplayer als Standard-Anwendung für Audiodateien wieder reingemogelt. Ich wollte gerade etwas ganz Einfaches am Rechner machen. Also: scheinbar was ganz Einfaches: eine Wave Datei abspielen. Das sind unkomprimierte Audio-Rohdaten - ohne jeden Codec.

Die gute Nachricht: der Quicktimeplayer spielt etwas ab.
Die schlechte Nachricht: nicht so, wie er soll.
Nun, dass es keine Fehlermeldung oder Warnung gibt, dieses Verhalten kenne ich bereits von Apple iTunes. Vielleicht, weil es das Benutzererlebnis durch Vorgaukeln einer heilen Welt fördert? Ich weiss es nicht…

Das ist jetzt aber echt mies: nicht mal eine Wave-Datei soll der abspielen können? Sind Apple Produkte wirklich so schlecht?

Ich gehe zunächst einmal von der Annahme aus, die Antwort sollte “nein” sein. Schliesslich ist Apple in Sachen Multimedia eine Grösse und Quicktime ist ja der Player unter der iTunes Haube.

Test 1: erkennt Apple Quicktime die Datei als Wave Datei?
2014-05-17-itunes-wav-datei.png
Hurra, die Antwort ist “ja”. Auch als 5.1 Medium.

Nun stellt sich die Frage, warum wird ein Medium korrekt erkannt und dann falsch abgespielt?
Nach nur kurzem Suchen findet man die Audio-Einstellungen:

  • Bearbeiten -> Einstellungen -> Quicktime Einstellungen
  • Dort auf den Tab “Audio”
  • Unter Tonausgabe gibt es ein Dropdown für die Zahl der Kanäle

2014-05-17-itunes-surround-wiedergabe.png

Hier auf 5.1 gestellt und alle Fenster mit OK geschlossen … und es spielt immernoch nicht in surround ab.

Ich gebe aber nicht so schnell auf. Ich schliesse den Player und starte ihn erneut… tja, das half leider auch nichts. Schnell in die Audio-Einstellungen geschaut: ja, diese hat er sich gemerkt.

Es gäbe im selben Dialog noch die Möglichkeit, die Audio-Wiedergabe von “Direct Sound” umzustellen … auch hier habe ich alle Varianten durchprobiert und Player jeweils neu gestartet. Nix.

Es könnte auch das Audiofile defekt sein! Versuchen wir es mal mit anderen Playern:

  • Wiedergabe mit Windows Mediaplayer: es kommt surround Sound
  • Wiedergabe mit VLC 2: es kommt surround Sound
  • Wiedergabe mit AIMP 3: es kommt surround Sound

Also am Audiofile liegt es wohl nicht.

AAC+ - diesen Audio Codec mögen Apple Produkte angeblich. Ich habe dann einmal die Wave-Datei nach AAC konvertiert. Ich glaube, ihr ahnt es: auch AAC+ wird nicht in surround abgespielt. Natürlich ebenfalls ohne irgendeine Meldung des Players (um es positiv zu sagen: dies ist wenigstens konsequent).

Dann bleibt wohl im Ausschlussverfahren fast nur, dass es wohl möglicherweise doch am Produkt liegt.
Bloss schnell wieder VLC zum Default-Player machen …

weiterführende Links:

Fundstück: Diskette

Mittwoch, 19. Februar, 2014

Es ist sooo lange her, dass ich meine ersten Programmzeilen geschrieben habe. Das war zu meinen Schulzeiten an einem 8 Bit Computer namens Z9001 und muss so 1987 herum gewesen sein.

Nach der Wende war mein erster Computer ein C-64 … im Studium mein zweiter ein PC. Nicht zuletzt wg. des Informatikkurses bin ich auf Turbo Pascal umgeswitcht und habe unter DOS programmiert. Mein DOS-Highlight war damals ein Freeware-Menüprogramm, das bei einem Programmaufruf aus dem Speicher verschwand - mit Mausunterstützung und Drag and Drop.

Und irgendwann begann MS Windows, sich durchzusetzen. Mein erstes Windows-Programm, was ich mit Delphi zu einem kompletten Projekt gemacht habe - das heisst: mit Installer und Hilfedatei und derlei Drumherum - war jenes auf diesem Plastik-Dings im Bild unten, Diskette genannt. Tja, damals hatte man an an einem Rechner diverse Schlitze, um um dieses Etwas einschieben zu können. Hach damals … *seufz*

2014-02-19-diskette.jpg

Weiterführende Links:

Mysql-connect sehr langsam?

Mittwoch, 28. August, 2013

Für Windows gibt es fixfertige Pakete für die Kombination Apache + Php + Mysql + X, wie z.B. XAMPP oder Wamp.

Für ein kleines Projekt habe ich auf eine solche zurückgegriffen und irgendwie war es langsam. Was genau langsam war, war nach einigem Debugging lokalisiert:

(...)
$iStart=microtime(true);
mysql_connect($hostname . ":" . $hostport, $username, $password);
echo microtime(true) - $iStart."s to open DB $database<br>";
(...)

Das mysql_connect() brauchte regelmässig 1 Sekunde - die anschliessenden Queries 0.00x Sekunden.

Ursache ist der Zugriff mit dem Hostnamen “localhost” auf die Loopback-Adresse. Wenn man den Mysql-Service auf eine IP-Adresse bindet, geht es massiv schneller. Konfiguriert wird dies in der my.ini im Installationsverzeichnis von Mysql. Oder man verbindet sich auf die IP-Adresse 127.0.0.1.
Ach, und unter Windows den Eintrag lower_case_table_names=2 nicht vergessen - daher schiebe ich es mal hinterher:

(...)
bind-address="127.0.0.1"
bind-address = ::1          # fuer ipv6
lower_case_table_names=2 
(...)

Nach Änderung der Konfiguration muss man den Mysql-Dienst neu starten, damit es wirksam wird.

Weiterführende Links:

DNLA: Videos vom PC am TV schauen

Montag, 4. März, 2013

TV Geräte von heute haben einen Internet Anschluss, man hat darauf einen Webbrowser, kann Apps darauf installieren und so Youtube Videos konsumieren und vieles andere mehr.

Wenn zudem noch ein Icon “Allshare” zu finden ist, dann kann man sich Audios, Videos und Fotos auf dem Fernseher reinziehen, die auf anderen Geräten abgelegt sind - sei es auf dem Mobiltelefon oder dem Laptop/ Rechner.

DNLA ist hier das Zauberwort.

Was es zunächst braucht, ist ein DNLA Server, der die Mediainhalte bereitstellen kann. Auf dem Mobilgerät gibt es eine Allhare Funktion, die alle Telefoninhalte per WLAN verfügbar macht.
Auf einem Rechner braucht man einen DNLA Server. Der steckt beispielsweise im DivX-Player (es gibt aber auch noch andere Produkte).

Das TV Gerät mit Allshare Funktion ist ein DNLA Client, der die geteilten Inhalte anzeigen kann.

2013-03-04-dnla.png

Und so schaut man ein Videofile am Rechner am heimischen TV … [Weiterlesen…]