Archiv ‘Uncategorized’

Mittwoch, 3. Juni 2015

Europäischen Stromsteckerkopf von Nikon MH-24 entfernen

Wer wie ich regelmässig in die USA fliegt, schätzt es, wo immer möglich US-Stromsteckerköpfe an Netzteilen einzusetzen. Das Akkuladegerät Nikon MH-24, welches ich mit meiner Nikon D3300 gekauft habe, vereint beide Welten. In der unmodizifierten Fassung verfügt das Ladegerät über einen us-amerikanischen Stromstecker.

Bei in Europa verkauften Kameras legt Nikon dann einen aufsteckbaren Adapter bei, welcher das Ladegerät mit dem zweipoligen, runden Europaanschluss mit unserem Kontinent kompatibel macht.

Tritt man eine Reise nach Nordamerika an, empfiehlt es sich deshalb, den europäischen Aufsteckknopf zu entfernen. Dies ist auf Anhieb gar nicht so einfach. Eine Google-Suche hat mich deshalb auf folgende Forumsdiskussion gelenkt:

First you need to find a small flat screwdriver, you will also need something narrow that will fit into a hole about 3-4mm across (keep it clean guys I found a biro nib was ideal, you’ll have to remove it from the pen casing first though.

Hold the charger with the pins facing away from you like you’re about to put it into a power-socket, slide the flat screwdriver into the gap between the top of the charger and the join between the plug adapter (you’ll notice that there is a small hole here, but its easier to use a screwdriver trust me), slide the screwdriver in as far as you can (just to the side of the hole, as the catch is about 4mm wide either side of the hole) and keep pressure on it. Turn the whole unit 90 degrees so that you’re looking at it sideways; now gently pull the 3 pin adapter from the bottom away from the charing unit, as if you are peeling it off like a sticker.

This should release the catch at the top, however, you still have the catch at the side to deal with, and not much room to manouvre, I managed to release the second catch by twisting the 3 pin adapter towards the catch, however, this could damage the plastic catch a little, so to play safe, use your narrow item to push in the catch….you’ll have to push very hard to release it though.

Quelle: MH-24 plug charger problem?

Obwohl der lange Text auf den ersten Blick hin abschreckt darf ich beruhigen: Es ist wirklich ganz einfach. Man nehme einen kleinen, flachen Schraubenzieher und stosse diesen in Folge unter die beiden Plastic-Klemmen, mit welchen der Europa-Stecker an das Netzteil angemacht ist. Der Adapter löst sich und gibt die US-Stecker frei.

Ich habe das Prozedere nun bereits viele Male durchgeführt, ohne dass das Netzteil oder der Adapter je Schaden genommen hätten.

Tags: , , , , , ,
Labels: Uncategorized

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 3. Juni 2015

PHP erlaubt keine Floats als Array-Schlüssel

Da programmiere ich seit bald 15 Jahren mit PHP, doch erst vor wenigen Wochen habe ich realisiert, dass Arrays keine Floats als Schlüssel unterstützen. Variablen mit Fliesskommazahlen können zwar durchaus als Schlüssel gesetzt werden, werden in der Folge aber in Integer-Werte umgewandelt. Dies führt dazu, dass Schlüssel wie ‚3.3‘ sowie ‚3.4‘ zu ‚3‘ umgewandelt werden und der Variablenwert dementsprechend überschrieben wird:

Working with an array with periods in key values

Wer die Fliesskommazahlen zwingend benötigt, muss diese zuerst in Strings umwandeln:

...
$key = 3.3;
$keyValid = (string)$key;
$array[$key] = 'One';
$array[$keyValid] = 'Two';
var_dump($array);
...

Via: ToString() equivalent in PHP

ergibt:

array(2) {
  [3]=>
  string(3) "One"
  ["3.3"]=>
  string(3) "Two"
}

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

Keine Kommentare | neuen Kommentar verfassen

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