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!

Debian 9: Access to MS-SQL Server

Damit man von einem Debian-System, unter Verwendung von PHP7.0, auf einen Microsoft SQL-Server ( > SQL Server 2008!!) zugreifen kann sollte man diese beiden Anleitungen beachten:

Ganz am Schluss dann noch diesen Befehl und dann den Apache neustarten:

pecl install sqlsrv-5.2.0RC1

und schon sollte das funktionieren!!

Wichtiger Hinweis noch: Fall Ihr auf eine Datenbank in einer benannten Instanz zugreifen wollt müsst ihr den Server-Namen wie folgt zusammenstellen:

server.domain.tld\INSTANCENAME,1111

Wobei Ihr hier anstelle der „1111“ den richtigen Port der Instanz angeben müsst!!

 

 

SQL-Server: Performance-counters

Im Zuge der Spectre und Meltdown-Patch-Orgie stellte sich ja heraus, dass diese die Perfomance der Hardware belasten. Überall waren Zahlen zu den Leistungseinbußen zu lesen/hören im Bereich von 10-20%.

In einem Artikel fand ich dazu eine kurze Liste Windows-Performance-Counters, mit denen man da messen kann bzw. die Auslastung der Server im Auge behalten kann:

  • Processor(_Total)\% Processor Time
  • System\Processor Queue Length
  • PhysicalDisk(_Total)\Avg. Disk sec/Read
  • PhysicalDisk(_Total)\Avg. Disk sec/Write
  • SQLServer:Buffer Manager\Page life expectancy
  • SQLServer:SQL Statistics\Batch Requests/sec
  • SQLServer:SQL Statistics\SQL Compilations/sec
  • SQLServer:SQL Statistics\SQL Re-Compilations/sec

Wobei hier (wie für alle Messungen) gilt:
Wenn man die Bezugsgrößen nicht kennt, dann helfen die schönsten Auswertungen nichts!

Sprich: Wer die Auslastung seiner Rechner VOR der Änderung nicht kennt, kann auch keine Aussagen über die Änderungen treffen 😉

Source:

https://redmondmag.com/articles/2018/01/30/spectre-meltdown-sql-server-impact.aspx

WinSCP + Powershell: How to sync folders via SSH

Wenn man einen Ordner zwischen dem lokalen Rechner und einem SSH-Host online syncen möchte, dann kann man das auch recht schön automatisieren. Dazu kann man WinSCP verwenden. Ich habe das mit Powershell umgesetzt, aber man kann WinSCP auf mit C#, J-Script usw. „automatisieren“.

Hier ein paar Links, die mir geholfen haben: