Linux: boost performance using „swappiness“

Heute habe ich einen echt ururur-uralten Laptop (ca. BJ 2005) von Lubuntu 16.10 auf Lubuntu 18.04 LTS aktualisiert. Der Laptop wird nur noch von einem „Mittelmäßig fortgeschrittenen Semester“ für Facebook-Spiele verwendet. Damit war es auch ziemlich ausgelastet.

Dann habe ich kurz gegoogelt und bin auf den Begriff „swappiness“ gestoßen. Nach kurzem Testen stellte sich heraus, dass man damit dieses alte Teil (Core2 Duo, 2 GB Ram, 120 GB SSD) doch nochmal spürbar boosten.

Um also die aktuelle Einstellung von „swappiness“ zu kontrollieren:

cat /proc/sys/vm/swappiness

Um den Wert wie gewünscht zu ändern einfach eine Zeile in der /etc/sysctl.conf anhängen (oder die vorhandene Zeile anpassen):

vm.swappiness = 10

Für das erwähnte System habe ich den swappiness-Wert auf 5 gestellt.

VirtualBox Networking

Wenn man VirtualBox installiert und eine VM erstellt ist die Netzwerkkonfiguration nicht ganz unwichtig.

Will man nur von der VM aus Richtung Host bzw. Internet kommunizieren ist es einfach: Ein NW-Adapter in der VM für NAT-ing.

Will man aber vom Host aus auch die VM erreichen ist es nicht mehr ganz so offensichtlich! Um es kurz zu machen: Man braucht einen zweiten NW-Adapter in der VM für ein „Host only“ Netzwerk.
Dieses Interface muss in der VM dann händisch mit einer IP-Adresse versorgt werden, da der HOST ja nur selten einen DHCP-Server laufen hat 😉

WIchtiger Tipp noch: Aufpassen auf die Routen in der VM! Der Host-Only-Adapter kann nämlich wirklich nur mit dem Host kommunizieren!

Sourcen:

Der untere Link zeigt zu einer Präsentation die eigentlich alle Fragen beseitigt.

 

Certificates: Create a certificate with the active directory CA/PKI

Wir hatten den Fall, dass wir für eine Sharepoint-Anwendung ein Wildcard-Certificate benötigten. Und zwar für nur intern genutzte Domäne die wir nicht besitzen. Im Grunde ist das nicht schwer. Wer allerdings noch nie die AD-interne Zertifizierungsdienste dazu genutzt hat braucht eine Anleitung dazu. Hier ist sie 😉

https://www.petenetlive.com/KB/Article/0001128

Kleiner Tipp: Falls beim Schritt „Zertifikat- oder Erneuerungsanforderung einreichen“ die Vorlage „Webserver“ nicht findet liegt das daran, dass ihr den IE mit Admin-Rechten starten solltet.

24.8.2018 Update:
Für selbst erstellte Zertifikate müsst ihr (damit diese auch bei Verwendung des Google Chrome Browsers korrekt funktionieren) folgendes beachten:
Der „Common Name“ (CN) und der „Alternative Subject Name“ (DNS) MÜSSEN übereinstimmen!!!
Details dazu findet ihr hier:
http://www.expta.com/2017/06/fix-for-certificate-error-in-chrome.html
https://www.heise.de/security/artikel/Chrome-blockt-Zertifikate-mit-Common-Name-3717594.html

 

Kleine Randnotiz:
Falls Ihr beim Erstellen der Zertifkatsanforderung die Fehlermeldung erhalten „Fehler bei der Analyse der Anforderung. Der angeforderte Antragstellername ist ungültig oder zu lang“ dann gibt es eine einfache Lösung:
Bei mir war der Grund, dass die Daten für den Eintrag „Lang“ mit „Austria“ zu lang war! Als ich das auf „AT“ geändert hatte war alles wieder OK 😉
Die Lösung fand ich hier im ersten User-Kommentar:
https://mxrnz.wordpress.com/2016/08/18/internal-ca-the-request-subject-name-is-invalid-or-too-long/

 

Javascript: Parsing URL parameters

Ich habe das vor kurzem mal gebraucht und aus den zahlreichen verfügbaren Varianten eine gewählt:

// Parse url params
function parse_query_string(query) {
  var vars = query.split("&");
  var query_string = {};
  for (var i = 0; i < vars.length; i++) {
    var pair = vars[i].split("=");
    // If first entry with this name
    if (typeof query_string[pair[0]] === "undefined") {
      query_string[pair[0]] = decodeURIComponent(pair[1]);
      // If second entry with this name
    } else if (typeof query_string[pair[0]] === "string") {
      var arr = [query_string[pair[0]], decodeURIComponent(pair[1])];
      query_string[pair[0]] = arr;
      // If third or later entry with this name
    } else {
      query_string[pair[0]].push(decodeURIComponent(pair[1]));
    }
  }
  return query_string;
}


// Parse the url param and do some stuff!!
function processCategoryId()
{
    var query = window.location.search.substring(1);
    var qs = parse_query_string(query);

    // If Param "CategoryID" is undefined return!
    if ((qs.CategoryId === undefined) || (qs.CategoryId.length === 0)) {
        //console.log("CategoryId undefined");
        return;
    }
    var categoryId = qs.CategoryId;
    console.log("CategoryId is defined: " + categoryId);

    // Do some stuff 😉
    ....
}

Source: https://stackoverflow.com/questions/979975/how-to-get-the-value-from-the-get-parameters

Ubuntu Terminal: „F10-Problem“

Wer mit dem „mc“ unter Linux arbeitet, wird sicher schon mal auf dieses Problem gestoßen sein: Wenn man in einem Terminal die Taste „F10“ drückt und damit eine Datei (oder den Midnight Commander) schließen möchte, bemerkt, dass stattdessen das Menü „Datei“ des Terminals geöffnet wird.

Wie schon vor JAhren einmal habe ich auch heute wieder gegoogelt und zahlreiche Websites durchforstet bis ich mal auf die Idee gekommen bin mit die Einstellungen richtig anzusehen. Denn was glaubt ihr was ich gefunden habe: Eine Checkbox mit der Beschriftung

Tastenkürzel F10 für das Menü deaktivieren

Fällt wohl in eine der folgenden Kategorien:

  • Wer lesen kann ist klar im Vorteil
  • PEPCAK

OpenWRT: Using USB-Device as Samba-Share

Ich hatte die Aufgabe für einen Multifunktionsdrucker ein Netzlaufwerk für „Scan to folder“ bereitzustellen. Das Probem war nur: Der Drucker verstand sich weder

  • mit einem vorhandenen Windows 7 Share
  • mit einer Samba-Freigabe auf einem Synology-NAS
  • und auch nur kurz mit einer FTP-Freigabe auf dem Synology-NAS

Daher habe ich dann versucht eben auf dem OpenWRT-Router eine Samba-Freigabe einzurichten und dem Drucker diese Freigabe zu präsentieren. Hier die Links, die dazu hilfreich waren:

  • https://wiki.openwrt.org/doc/recipes/usb-storage-samba-webinterface
  • Weil es mit einem USB-Stick Probleme gab (Write-Protect ON) https://wiki.openwrt.org/doc/howto/storage
  • Weil der Share von Windows aus nicht beschreibbar war: https://forum.openwrt.org/viewtopic.php?id=20021
  • Weil der Drucker unbedingt nach User und Pwd verlangt hat: https://wiki.openwrt.org/doc/uci/samba
  • Weil der USB-Stick nach jedem Neustart des Routers neu gemounted werden musste: https://forum.openwrt.org/viewtopic.php?id=28311

Das Ergebnis war Samba-Share der vom Drucker akzeptiert wurde. Der Share war zwar Schnarchlangsam! Aber für den Drucker ausreichend 😉

SSIS: Update variable

Wenn man in einem Sql Server Integration Services Paket eine Variable einsetzt, dann hat man mehrere Möglichkeiten den Wert dieser Variable zu setzen.

Zu aller erst natürlich indem man in den SQL Server Data Tool einfach einen Wert (via Expression) vergibt. Des weiteren kann man den Wert natürlich z.B. aus einer Tabelle, aus einem Textfile usw. auslesen. Hier ein paar Links, die mir hilfreich dabei waren:

Soweit ich gesehen habe, kann man auch mit einer Expression Daten aus einer Tabelle auslesen. Da ich dazu aber nur wenig Info im Internet gefunden habe (ich habe aber auch nicht danach gesucht *ggg*) sei das nur am Rande erwähnt!

Die letzten drei Links dienen mir dazu, den zugewiesenen Wert im „Output“ Fenster des debug-Modus anzeigen zu lassen!

SQL-Server 2016 Reporting Services: Branding

Wer Sharepoint (ab 2013) im Einsatz hat und dann das UI des SQL-Server 2016 Reporting Services (kurz: SSRS) sieht, dem wird eine gewisse Ähnlichkeit auffallen 😉

Nun wollte ich bei uns das SSRS optisch an unser Intranet anpassen.Hier die Links, mit denen ich das gelöst habe:

  1. https://www.mssqltips.com/sqlservertip/4567/sql-server-2016-reporting-services-custom-branding-example/
  2. http://www.victorrocca.com/report-server-2016-custom-branding/
  3. https://craigporteous.com/2016/05/ssrs-2016-brand-package-breakdown/
  4. https://www.qumio.com/Blog/Lists/Posts/Post.aspx?ID=39
  5. https://archive.codeplex.com/?p=ssrsbrandingfileeditor
  6. https://blogs.msdn.microsoft.com/sqlrsteamblog/2016/03/20/how-to-create-a-custom-brand-package-for-reporting-services-with-sql-server-2016/

Hier noch ein Hinweis:
Sollte man mit dem neu hochgeladenen Branding nicht zufrieden sein, kann man das Branding einfach wieder entfernen (gleich neben dem NAmen des aktuell verwendeten Brandings sind die Buttons!). Weil ich das übersehen hatte habe ich recht lange nach dem Link Nr. 6 gesucht! Dort sind ganz oben die originalen Branding-Files verlinkt!