Screw you Microsoft

Standard

On a scale from 0 to North Korea how much did Microsoft just fuck it up:

Got “We were unable to establish the connection because it is configured for user dweuthen@example.com but you attempted to connect using user DWeuthen@example.com. To connect as a different user perform a switch user operation. To connect with the configured identity just attempt the last operation again.” while trying to re-active my VS license trough ADFS.

Running a limited number of scripts in parallel from Bash

Standard

Imagine you have a text file with a single parameter for another script on each line, but you want to speed things up. Instead of writing an overly complicated wrapper script, as I did a few times in the past, you could just use xargs. It comes equipped with everything needed for this task. The following example assumes, that for each parameter in parameters.txt the command MyFancyScript.py should be executed, with no more than 20 processes at the same time:

cat parameters.txt | xargs -n 1 -P 20 MyFancyScript.py

I guess it’s not hard to figure out that -P is the magic switch to allow multiple instances to be executed at the same time.

 

Wildlachs, Basmati-Reis und Tomaten Senf-Sosse

Standard

Mit Hunger von der Arbeit gekommen und ganz schnell in freestyle Manier etwas zum Essen zubereitet. Die Soße war so überraschend lecker, dass ich das mal besser für die Nachwelt erhalte 😉

Zutaten

  • Wildlachsfilets
  • Uncle Ben’s Basmati-Reis
  • 1 Handvoll Kirchtomaten
  • Tomatenmark
  • 1/2 halbe Zwiebel
  • 1 Esslöffel süßer Senf
  • 1 Teelöffel extra-scharfer Senf
  • 1-2 Teelöffel Honig
  • 1/2 Limette
  • Olivenöl
  • Salz & Pfeffer

Zubereitung

Wildlachs in eine große Pfanne geben und anbraten. Zwiebeln und Kirschtomaten dazugeben. Kirschtomaten leicht zerdrücken und Tomatenmark nach Belieben hinzufügen. Nach ein paar Minuten Olivenöl, Honig, sowie den süßen und extra-scharfen Senf hinzugeben und weiter köcheln lassen. Den Basmati-Reis in der Mikrowelle zubereiten. Währenddessen den Wildlachs und die Soße mit den Saft einer halben Limette beträufeln. Die Soße anschließend mit Salz und Pfeffer abschmecken. Alles auf einem Teller anrichten. Fertig!

 

Why isn’t the full certificate chain provided by my web server?

Standard

Good question, simple answer though: Probably you’re still on Ubuntu 14.04 (Trusty) and thus your Apache version is too old (2.4.7) and does not provide the full certificate chain from the file specified as SSLCertificateFile. The nasty thing: It does not throw a warning nor an error; not on the console nor in the error.log.

Solution: Use the SSLCertificateChainFile option instead to point to the intermediate certificates of your CA.

But watch out when you update your server: SSLCertificateChainFile became obsolete with version 2.4.8, when SSLCertificateFile was extended to also load intermediate CA certificates from the server certificate file.

Citrix Receiver on Ubuntu 15.10

Standard

For anyone who has to access Citrix XenDesktop via web browser from an Ubuntu 15.10 machine:

  1. Download “Receiver for Linux Web Client” from https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/
  2. Install the downloaded DEB package
  3. If the remote site is using its own certificate authority, copy the CA certificate file of the remote end to
    /opt/Citrix/ICAClient/keystore/cacerts/
  4. Rehash the Receiver’s certificate store by executing the following command in the console:
    sudo c_rehash /opt/Citrix/ICAClient/keystore/cacerts/

Xubuntu/XFCE to Ubuntu/Unity

Standard

I finally made it and switched from Xubuntu/XFCE to plain Ubuntu/Unity after I bought a new laptop for my parents, which forced me to finally choose a desktop environment that I want to support for my family and friends in the next years. I have to say that after using Unity a couple of hours, it turns out to be not as bad as I always thought. So basically it’s like every time there is something new that feels like it just wants to break your habits: first you hate it, then you accept it and at some point you begin to love it. Now, after switching my own laptop, my workstation at work and my parents desktop PC to Ubuntu/Unity, I am getting closer to “lovin’ it”.

All that does not mean that I was unhappy with Xubuntu/XFCE ever, but in the last years its main purpose was to provide me a way to stick with a Gnome 2ish desktop environment, just because I did not want to change my own, maybe bad habits. Unity without additional tweaking is great for the normal user and with its lightweight menus and highly integrated apps, it just does its job. With some minor adjustments it works perfectly well for advanced users like me. Compiz Settings Manager and  Unity Teak Tool (PPA version) are very helpful if you want to improve your Unity experience and I highly recommend to have a look at them, even if you think that the defaults already provide a decent user experience.

BTW: There is no need to re-install you system. If you want to switch from any Ubuntu flavor back to pure Ubuntu, check out Psychocats’ Pure Ubuntu 14.04 post

Python’s argparse and lists

Standard

While Python’s argparse allows to declare a command line parameter to be of any supported type, this does neither work nor is it recommended for the “list” type.  A workaround for passing a list of comma separated items is to use your own type, which for argparse means that the value of “type” must be callable as shown in the example below.

def csv_list(string):
   return string.split(',')

parser = argparse.ArgumentParser()
parser.add_argument('-l', type = csv_list)
parser.parse_args()