Archiv ‘Uncategorized’

Mittwoch, 29. April 2015

Mit Python eine URL-enkodierte URL lesbar machen

Ein sehr nützliches kleines Script, welches ich mir aus aktuellem Bedarf zusammengeschuster habe:

import urllib.parse
urlEncoded = input("Enter URL to decode: ")

urlDecoded = urllib.parse.unquote_plus(urlEncoded)

print("")
print(urlDecoded)
print("")

elements = urlDecoded.split("?")

print("Base URL: " + elements[0])
print("")

elements = elements[1].split("&")

for element in elements:
    items = element.split("=")

    print(items[0] + ' = ')
    print('    ' + items[1])
    print("")

Tags: , , ,
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Montag, 16. März 2015

Das WiFi-Passwort einer Withings WiFi-Waage WS-30 anpassen

Kürzlich habe ich die WLAN-Infrastruktur zu Hause umgestellt und betreibe nun einerseits ein Legacy-Netz mit 802.11n auf 2.4 GHz sowie ein 802.11ac/n-Netzwerk, welches auf 5 GHz funkt.

Um Geräte zu finden, welche kein 5 GHz funken können, benannte ich das Legacy-Netz um („…-LEGACY“). Und siehe da, der ZyXel-Adapter des Raspberry Pi Dashboards musste umkonfiguriert werden wie auch der Fujitsu ScanSnap-Scanner. Erst einige Tage nach der Umstellung realisierte ich beim Wägen meines Gewichts dann auch, dass die Withings WS-30 offenbar auch keinen 5 GHz-Funkchip verbaut hat.

Doch wie setze ich das WiFi-Passwort der Waage neu? Nach dem vielmaligen Betätigen der Setup-Taste an der Unterseite der Waage, viel pröbeln mit der Smartphone App, einem Besuch des cloud-basierten Web-Dashboards des Herstellers und dem Download eines Mac OS X-Clients fand ich dann endlich die Lösung, vergraben in Withings Knowledgebase:

I want to update the Wi-Fi configuration on my Wireless Scale, WS-30

Kurz: Man tut so, als würde man die Waage über die Smartphone-Applikation neu installieren, beachtet dann aber die Angaben auf dem Smartphonebildschirm und zweigt im Konfigurationsdialog am richtigen Zeitpunkt ab. Damit klappte die Verbindungsaufnahme der Waage mit dem WiFi dann innert wenigen Sekunden.

Tags: , , , , , ,
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Montag, 16. März 2015

Ein MP4-Video mit ffmpeg stumm machen und eindampfen

Seit einigen Wochen besitze ich eine GoPro Hero
und erarbeite mir entsprechende Einsatzmöglichkeiten dieses kleinen Wunderdings.

Kürzlich wollte ich ein Video, welches ich probehalber in unserer Wohnung mit der GoPro und dem dazu gekauften GoPro Kopfband Plus Quick-Clip, ACHOM-001 aufgenommen hatte, verschiedenen Personen bereitstellen, ohne aber die im Hintergrund telefonierende Stephanie mitsenden.

Wie immer kommt das Wunderding ffmpeg zu Hilfe:

$ ffmpeg -i GP020002.MP4 -an -vcodec copy GP020002.MUTE.mp4

Der Switch -an sagt ffmpeg, dass die Audiospur nicht in die Zieldatei übernommen werden soll.

Quelle: How to remove an audio track from an mp4 video file? sowie Remove audio from video file with FFmpeg

Das nächste Problem war nun nur noch, dass die Videodatei fast annähernd ein GB gross war. Folgendermassen dampfte ich das Video dann auf handliche 50 MB ein:

$ ffmpeg -i GP020002.MUTE.mp4 -vf scale=iw/2:-1 GP020002.MUTE.SCALED.mp4

Via:

Tags: , , , , ,
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Freitag, 6. März 2015

Depression? Nein, Schwede!

Vor einigen Wochen habe ich zusammen mit Stephanie die in Schweden produzierte Fernsehserie Welcome to Sweden entdeckt, in welcher der US-Amerikaner Bruce Evans (gespielt von Greg Poehler, dem Bruder von Amy Poehler) mit seiner — selbstverständlich — blonden und gefühlten zwei Meter grossen Schwedin Emma Wiik (Josephine Bornebusch) von New York nach Schweden übersiedelt.

Die Serie empfinde ich als nette Unterhaltung, da man doch einige Parallelen mit der Übersiedlung von den USA in die Schweiz erkennen kann.

Die beste Konversation in der ersten Staffel war folgendes Gespräch zwischen Bruce und seiner künftigen Schwiegermutter Viveka Börjesson, einer Psychologin:

„Wait, do you think I’m depressed?“

„Well, aren’t you?“

„No. I just was … trying to act more Swedish. Trying to be more like them. Think like them, be like them …“

„Wow. Ok, I see. But sometimes it’s hard to tell the difference between depressed and Swedish …“

Quelle: Welcome to Sweden, S01E07 — „Homesick Lagom“, 08:08 bis 08:54

Schnitt

Das Video habe ich mir übrigens folgendermassen zurechtgeschnitten:

$ ffmpeg -i "Welcome to Sweden (2014) - S01E07 - Homesick Lagom.mp4" -ss 488 -t 47 -acodec copy -vcodec copy "homesick.mp4"

Tags: , , , , , ,
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 20. Januar 2015

SQL-Query-Editor in Microsoft Access mit einer anderen Schrift

Microsoft Access richtet sich an den sog. Klickibunti-Datenbankentwickler (der Bruder des Klickibunti-Systemadministrators), weshalb es nicht verwundert, dass das Produkt zwar einen SQL-Editor für Datenbankabfragen mit sich bringt – dieser einem gestandenen Datenbankentwickler der alten Schule aber die Haare zu Berge stehen lässt.

Nicht nur kennt der Editor weder Syntax-Highlighting, noch Autovervollständigung – nein, er wird auch standardmässig mit einer Schrift in Schriftgrösse 8 Punkt angezeigt. Das ist wahrscheinlich Microsofts Art zu sagen, was man in Redmond von den SQL-Puristen wirklich denkt …

Immerhin die Schriftgrösse lässt sich anpassen. Bei mir ist dies Consolas, eine Monospace-Schrift, mit Schriftgrösse 18. Irgendwie muss man die 22 Zoll Bildschirmfläche im Büro ja füllen …

Microsoft Access Optionen

Tags: , , , , , ,
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 2. November 2014

mencoder unter Debian neu installieren

Vor knapp einem Monat habe ich meinen Linux-Server mittels apt-get dist-upgrade auf eine neue Version gelüpft. Dabei wurde mencoder deinstalliert. Gestern Abend biss ich mir die Zähne aus, mencoder wieder zu installieren.

Damit dieses Paket auf ein Debian-System kommt, muss man dieses über ein inoffizielles Repository beziehen:

/etc/apt/sources.list

...
# mplayer
deb		http://www.deb-multimedia.org squeeze main non-free
deb-src		http://www.deb-multimedia.org squeeze main non-free

Wenn ich in der Folge aber das Paket mencoder erneut installieren wollte, erhielt ich folgende Fehlermeldung:

# apt-get install mencoder
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mencoder : Depends: libdvdnav4 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Was zum Teufel … dann installieren wir halt dieses ominöse libdvdnav4 nach — denkste:

# apt-get install libdvdnav4
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libdvdnav4 is already the newest version.
libdvdnav4 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 577 not upgraded.

Nach einigen Recherchen hatte ich dann die Lösung — ganz simpel, im Grunde:

# apt-get install -t squeeze mencoder
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libdirac-decoder0 libtwolame0 libx264-112
Suggested packages:
  w32codecs libdvdcss mplayer-doc nvidia-vdpau-driver
The following packages will be REMOVED:
  libdvdnav4
The following NEW packages will be installed:
  libdirac-decoder0 libtwolame0 libx264-112 mencoder
0 upgraded, 4 newly installed, 1 to remove and 576 not upgraded.
Need to get 6,198 kB of archives.
After this operation, 13.3 MB of additional disk space will be used.
Do you want to continue? [Y/n]
...

Via: How to only install updates from a specific repository?

Mittels des Switches -t squeeze sage ich apt, das Paket aus dem Repository www.deb-multimedia.org zu beziehen und nicht von den offiziellen Debian-Repositories.

Und nun generiert mencoder wieder ganz brav animierte Slideshows von Radardaten.

Weiterführende Links

How to install the transcoding tools on Debian 7 „Wheezy“?

Tags: , , ,
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 29. Juni 2014

PHP kann unter Mac OS X nicht mit MySQL kommunizieren

Da war ich am Donnerstag in den beeindruckenden neuen Räumlichkeiten meines ehemaligen Arbeitgebers Liip und nahm am Hackday teil, wo ich mich anfänglich mit der Konfiguration von Docker befasste — und war dann auf meinem MacBook Air in einem anderen Zusammenhang mit Verbindungsproblemen zwischen PHP und der MySQL-Datenbank konfrontiert.

PHPs mysqli meldete:

Error: 2002 - No such file or directory

Das Problem lag gemäss dieser Diskussion auf Stack Overflow darin begründet, dass ich nach dem Upgrade auf Mavericks die mitgelieferte php.ini unter /etc/php.ini verwendete, welche für Mac OS X nicht anwendbare Standardwerte für die Verbindung zu MySQL enthielt.

Nachdem ich die Einträge

...
pdo_mysql.default_socket=/var/mysql/mysql.sock
mysql.default_socket = /var/mysql/mysql.sock
mysqli.default_socket = /var/mysql/mysql.sock
...

in

...
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
...

geändert hatte und Apache mittels

# apachectl graceful

neugestartet hatte, sprach PHP problemlos mit MySQL.

Solche Handstände sind künftig nicht mehr nötig, da ich nun endlich meine Vagrant-Installation vom Mac mini hier auf das MacBook transferiert habe.

Tags: , , , ,
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 25. Mai 2014

Einem mit puPHPet aufgesetztem Vagrant schreibenden Zugriff auf das synchronisierte wwwroot des Host-Systems geben

Das Web ist voll von Diskussionen zu diesem Thema, und einige Tipps erfordern zeitintensive Eingriffe in die Konfiguration:

Folgende Konfigurationsanpassung in der Vagrantfile-Konfigurationsdatei hat bei mir das Problem gelöst, dass Apache im VMBox-Container nicht in das synchronisierte wwwroot auf meinem Mac OS X-Host schreiben konnte:

...
data['vm']['synced_folder'].each do |i, folder|
    if folder['source'] != '' && folder['target'] != ''
      nfs = (folder['nfs'] == "true") ? "nfs" : nil
      if nfs == "nfs"
        config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: nfs
      else
        config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", id: "#{i}", type: nfs,
          group: 'www-data', user: 'www-data', mount_options: ["dmode=777", "fmode=777"]
      end
    end
  end
...

Mit dem Parameter mount_options: ["dmode=777", "fmode=777"] schreiben die Web-Applikationen ihre Cache-Dateien munter und fröhlich in das wwwroot des Host-Systems.

Und ja, mir ist ehrlich gesagt schnurz, wenn die Entwickler ideologisch-religiöse Gründe vorbringen, wieso dies eine ganz, ganz schlechte Idee ist … ich verwende Vagrant, um genau solchen Konfigurationsalpträume aus dem Weg zu gehen und innert Minuten auf all meinen Entwicklungssystemen eine homogene Entwicklungsumgebung zu haben.

Etwas gutes hatten die Probleme aber: Ich habe eine meiner Web-Applikationen so angepasst, dass sie nun beim Starten auch prüft, ob sie überhaupt Schreibberechtigung auf das Cache-Verzeichnis hat.

Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 9. Juni 2013

SNMP unter Mac OS X 10.8 Mountain Lion aktivieren

Mac OS X 10.8 (Mountain Lion) bringt Out-of-the-box alles mit, um einen SNMP-Server bereitzustellen. In Verbindung mit cacti zeichne ich so in Echtzeit Systeminformationen meines Mac minis, MacBook Airs und Stephanies Mac mini auf.

Wer Rechner ausschliesslich in seinem heimischen LAN betreibt, kann nachfolgende Minimal-Konfiguration einrichten, damit cacti auf einem Drittserver per SNMP v1 und ohne Passwort darauf zurückgreifen kann:

/etc/snmp/snmpd.conf (Desktop-Rechner)

sysContact  Vorname Nachname 
sysLocation Strasse Strassennummer, PLZ Ort

rocommunity public

includeAllDisks 10%
load    30 10 5

Auf einem portablen Gerät würde ich SNMP abriegeln und den Zugriff nur mittels Benutzernamen und Passwort zugänglich machen. Verwendet man obige Lösung, kann im Flughafen-WiFi oder im Uni-WiFi jedes Script-Kiddie mit nmap-Portscans auf den SNMP-Server aufmerksam werden und mehr oder weniger sensitive Informationen abrufen.

Hierzu eignet sich folgende Konfiguration:

/etc/snmp/snmpd.conf (portabler Rechner)

createUser <username>     MD5 "<password>" DES "<secret>"
authuser   read -s usm  <username> priv  .1

sysContact  Vorname Nachname 
sysLocation Strasse Strassennummer, PLZ Ort

includeAllDisks 10%
load    30 10 5

Sowohl password als auch secret können frei gewählt werden (alphanumerische Zeichenfolge).

Quelle: Setup SNMP V3 USM with encryption.

Daemon (neu) starten

Nach der Konfigurationsanpassung heisst es, den SNMP-Server (neu) zu starten. Dies habe ich mit folgendem Script automatisiert:

#!/bin/sh

echo "Stopping SNMP daemon ..."
sudo launchctl unload /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist

echo "Starting SNMP daemon ..."
sudo launchctl load -w /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist

exit 0

Daemon bei jedem Neustart von Mac OS X laden

Hierzu habe ich die von Apple mitgelieferte plist-Datei /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist angepasst:

	<key>Disabled</key>
	<false/>

Tags: , , , , , , ,
Labels: Linux, Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Samstag, 8. Juni 2013

Mit cacti einen Xerox-Drucker überwachen

Vor Jahren habe ich unter Mit Cacti SNMP-fähige Netzwerkdrucker abfragen cacti-Templates bereitgestellt, mit welchen die Attribute vernetzter HP Laserjet-Drucker per SNMP aufgezeichnet werden können.

Da ich mittlerweile in einer nächtlichen Aktion cacti auf meiner brandneuen Synology DS413j zum Laufen gebracht habe, hiess es heute Samstag-Morgen, meinen Xerox Phaser 3250DN ebenfalls in das Monitoring aufzunehmen. Dies war komplizierter als gedacht, weil zwar offenbar die OIDs für den Page Count standardisiert sind, nicht aber für den Supply Level des Toners. Bei Xerox handelt es sich um die OID 1.3.6.1.2.1.43.11.1.1 respektive 1.3.6.1.2.1.43.11.1.1.9.1.1, um den Füllstand des schwarzen Toners in Prozenten zu eruieren.

Damit ich diesen Wert ebenfalls auslesen konnte, lud ich mir folgende zwei cacti-Template-Sammlungen herunter:

Der Einfachheit halber biete ich hier alle benötigten Dateien in einer einzigen ZIP-Datei an:

SNMP Printer Supplies (27 KB)

Nachdem die XML-Dateien in SNMP Printer.zip über die cacti Web-Oberfläche eingelesen wurden (Import Templates), musste ich die printer_supply.xml aus dem zweiten Download im Web-Server-Verzeichnis von cacti unter cacti/resource/snmp_queries ablegen.

Anschliessend fügte ich beim bestehenden Eintrag des Xerox-Druckers unter Associated Data Queries das Query SNMP – Get Printer Supply ein und erstellte mit Create Graphs for this Host den neuen, zusätzlichen Graphen. Fertig!

Xerox 3250DN Used Level

Labels: Uncategorized

1 Kommentar | neuen Kommentar verfassen