logo

Willkommen

... auf meiner Homepage. Ich schreibe hier über Dinge die mich interessieren. Sprachlich im Mix von Deutsch und English, je nach Themengebiet.

Blog Posts

Uberspace: .html Dateien als PHP ausführen

Posted on 25 March 2017 by Andy

HTML-Dateien als PHP-Dateien ausführen zu lassen, lässt sich über die .htaccess Datei leicht umsetzen. Dies ist meist folgender Code:

AddType application/x-httpd-php .html

Bei Uberspace funktioniert das leider nicht so. Hier musste ich etwas tüfteln. Funktionieren tut der folgende Code:

AddHandler php-fcgid .html

Hintergrund ist, dass PHP hier als Fast-CGI läuft.

Tagged: Uberspace by Andy


Nikon WU-1a Funkadapter für D3300

Posted on 16 March 2017 by Andy

Vor kurzem habe ich eine Nikon D3300 Spiegelreflexkamera gekauft. Diese macht sehr schicke Bilder. Diese landen auf der Speicherkarte. In einer Zeit in der man gleich alle Erlebnisse über soziale Netzwerke teilen möchte ist es ein untragbarer Zustand, wenn man erstmal daheim das USB-Kabel anschließen, die Bilder auf den Computer übertragen muss und dann erst teilen kann.

WIFI für die Kamera

Der Nikon WU-1a Funkadapter löst das Problem. Dieser wird auf Amazon für die Nikon D3200 ausgewiesen, funktioniert aber ohne Probleme an der D3300. Er kostet knapp 60 Euro.

Der Adapter ist recht klein. Damit er nicht verloren geht, kann er an der Kamera befestigt werden, ohne dass er angesteckt sein muss.

Man muss ihn nur anstecken und schon kann es losgehen. Der Adapter macht einen eigenen Hotspot auf (ungesichert). Zu diesem kann man sich anschließend mit dem Handy oder Tablett verbinden. Dies ist auch gleichzeitig der große Nachteil des Adapters. Während der Verbingung, geht Internet nur noch über das Datennetzwerk. Die Reichweite des Adapters ist eher gering, was aufgrund der ungesicherten Verbindung auch gut ist.

Zur Übertragung der Bilder benötigt man eine spezielle App. Diese gibt es für Android und Apple-Geräte. Mit dieser kann man nun auf die Kamera zugreifen, Bilder verwalten und übertragen. Bilder lassen sich verkleinert oder im Original übertragen. Die Übertragung der großen Originalbilder dauert recht lange. Für den Versand über Whatsapp oder Facebook reichen die kleinen Bilder aber locker aus.

Am Computer kann man die kostenlose Software “qDslrDashboard” nutzen. Hier kann man potentiell auch einfach einen weiteren WIFI-Stick am Computer anschließen und so eine parallele Verbindung aufbauen. Damit bleibt man zumindest im Internet. Außer die nicht änderbare IP-Adresse des Nikon-Adapters macht hier einen Strich durch die Rechnung.

Fazit

Ob sich der Kauf lohnt hängt sehr vom Einsatzzweck ab. Um Bilder schnell ans Smartphone zu übertragen ist der Adapter sehr gut geeignet. Anstecken, WLAN verbinden und die Bilder mit der App übertragen. Hier wäre aber Bluetooth der bessere Standard gewesen, da man so im Internet via WLAN bleiben kann. Allerdings ist Bluetooth auch langsamer.

Der Adapter lässt sich leider nur als extra Hotspot betreiben. Die Verbindung zur heimischen Fritzbox ist nicht möglich. Ideal wäre gewesen, wenn man dies konfigurieren könnte um dann z.B. Bilder automatisch auf eine NAS zu kopieren. So ist man am Computer mit dem normalen USB-Kabel oder SD-Kartenleser wesentlich schneller. Auch benötigt man immer eine extra Software um auf die Bilder zugreifen zu können.

Tagged: Nikon, Foto, Wifi, and WLAN by Andy


Mobilität Februar 2017

Posted on 05 March 2017 by Andy

Das Auto ist mal wieder in der Werkstatt mit seltsamen Symptomen. Das ist ärgerlich und vermutlich auch nicht ganz billig, aber auf die Statistik hat es keinen Einfluss. Etwas frühlingshaftes Wetter konnte ich nutzen um mit dem Brompton ein paar Mal den Heimweg von der Arbeitsstelle anzutreten.

Obwohl das Brompton auch längere Strecken ohne Probleme meistert, kommt man mit den 6 Gängen bei einigen Steigungen an die Grenzen. Die mangelhafte Kondition im Winter tut da ihr übriges. Für die Strecke von 25 km, benötige ich ca 1h 20 Minuten.

Die Statistik ist dadurch wieder etwas mehr aufs Fahrrad verlagert. Beim Auto sind mehr Fahrten bei weniger Kilometer zusammen gekommen.

Fahrrad

  • Gesamt km: 123 km
  • Fahrten: 19
  • Durchschnitt pro Fahrt: 6,47 km

Auto

  • Gesamt km: 277
  • Fahrten: 15
  • Durchschnitt pro Fahrt: 18,46 km
  • Getankt: 30,74 Liter

Tagged: Mobilitaet and Umwelt by Andy


Windows Forms on OSX - Clipboard not working

Posted on 23 February 2017 by Andy

You can run Winforms applications on OSX by using Mono. Its looking sort of ugly, but most stuff works out of box. However there are some bugs, which make the usage of the application an annoyance. For example the clipboard is not working as expected. Copy and paste works in the application itself, but if you copy anything from another application on OSX. This means, that the application has its own clipboard. Setting the clipboard with Clipboard.SetText("schlurps") only sets the application internal clipboard.

This is a known issue (see here) and looking to the reported dates, I would not expect any

The workaround

On Stackoverflow is a proposed and working solution to copy data from the OSX clipboard and also retrieve data from it. It uses the pbcopy command for that.

While that works this is manual action. You can access the clipboard, but you cannot just paste from OSX. I made a workaround which involves a timer. The timer checks every 250ms if the content of the Mac-Clipboard has been changed. In that case the application clipboard is set.

Here is the class:

public class MacClipboard
{
    private static String _osxClipboard = "";

    private static Timer _timer = new Timer();

    public static string OsxClipboard
    {
        get
        {
            return _osxClipboard;
        }

        set
        {
            _osxClipboard = value;
        }
    }
    
    public static void Init()
    {
        _timer.Interval = 250;
        _timer.Enabled = true;
        _timer.Tick += Timer_Tick;
    }

    private static void Timer_Tick(object sender, EventArgs e)
    {
        UpdateClipboard();
    }

    public static void UpdateClipboard()
    {
        String s = Paste();

        if (_osxClipboard != s)
        {
            _osxClipboard = s;
            Clipboard.SetText(s);
        }
    }


    /// <summary>
    /// Copy on MAC OS X using pbcopy commandline
    /// </summary>
    /// <param name="textToCopy"></param>
    public static void Copy(string textToCopy)
    {
        try
        {
            using (var p = new Process())
            {

                p.StartInfo = new ProcessStartInfo("pbcopy", "-pboard general -Prefer txt");
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.RedirectStandardOutput = false;
                p.StartInfo.RedirectStandardInput = true;
                p.Start();
                p.StandardInput.Write(textToCopy);
                p.StandardInput.Close();
                p.WaitForExit();
            }
        }
        catch (Exception ex)
        {
            Trace.WriteLine(ex.Message);
        }


    }

    /// <summary>
    /// Paste on MAC OS X using pbpaste commandline
    /// </summary>
    /// <returns></returns>
    public static string Paste()
    {
        try
        {
            string pasteText;
            using (var p = new Process())
            {

                p.StartInfo = new ProcessStartInfo("pbpaste", "-pboard general");
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.RedirectStandardOutput = true;
                p.Start();
                pasteText = p.StandardOutput.ReadToEnd();
                p.WaitForExit();
            }

            return pasteText;
        }
        catch (Exception ex)
        {
            Trace.WriteLine(ex.Message);
            return null;
        }

    }
}

I am only starting the timer on OSX in my application. If the user copies something into the clipboard it will be made available in the application clipboard. You can also set or the OSX clipboard manually. It should also be easy to extend the code for the other way around. If the application clipboard changes, the content could be copied back to the OSX clipboard.

Its not a very good implementation, but it works.

Tagged: Csharp, OSX, and Winforms by Andy


Letsencrypt bei Hosteurope verlängern

Posted on 20 February 2017 by Andy

Letzte Woche stand nun die Verlängerung des Letsencrypt-Zertifikates an. Die Einrichtung hatte ich in einem anderen Blogartikel beschrieben. Die Einrichtung ist, gelinde gesagt, umständlich. Bei einer Domain ist das Ganze noch überschaubar, bei vielen Domains und Subdomains wirds umständlich.

Man muss sich als Eigentümer der Domain verifizieren. Hierbei hat man zwei Möglichkeiten. Entweder man legt eine spezielle Datei auf dem Webspace an oder man hinterlegt einen TXT-Eintrag im DNS. Ich hatte mich für die erste Variante entschieden. Ich hatte die Hoffnung, dass bei der Verlängerung einfach die gleichen Daten bzw. Dateien nochmals abgefragt werden. Leider ist dem nicht so, man muss sich neu verifizieren. Inklusive neuer Dateien mit neuen Inhalten.

Verlängern über ZeroSSLL

Das Prozedere gleicht dem der ersten Erstellung. Man kann wahlweise seinen Letsencrypt-Key und Domains CSR-Datei einbinden. Damit spart man sich allerdings nur etwas Tipparbeit. Hat man die Dateien nicht mehr, keine Panik, einfach neu einrichten und fertig.

Nach der ganzen manuellen Arbeit mit der Verifikation hat es dann auch schon geklappt. Nach dem Upload wurde das neue Zertifikat von Hosteurope übernommen und nach wenigen Minuten war es aktualisiert. Jetzt habe ich wieder für 3 Monate Ruhe. Bei der nächsten Verlängerung werde ich statt der Dateien versuchen die DNS-Authentifizierung zu verwenden. Vielleicht spart das noch etwas Zeit.

Geht auch besser

Wie es besser geht zeigt der Anbieter Uberspace. Bei dem Webspace dort ist die Einrichtung von Letsencrypt für alle Domains und Subdomains in wenigen Minuten eingerichtet. Außerdem gibt es die Möglichkeit die Erneuerung über einen Cron-Job zu automatisieren.

Bleibt zu hoffen, dass Hosteurope das irgendwann auch anbieten wird. Etwas Verbesserungen gibt es bereits. So kann man jetzt für jede Domain und Subdomain eigene Zertifikate hinterlegen. Kommt eine Domain oder Subdomain hinzu, kann man dieses nun zusätzlich erstellen und einbinden. Vorher musste man das Zertifikat für alle Domains erneuern.

Tagged: LetsEncrypt and SSL by Andy


Blog Posts