Skip to content

Instantly share code, notes, and snippets.

Bringing DevOps to Qlik Sense - one tool at a time. Hello SenseOps!

Göran Sander mountaindude

View GitHub Profile

Keybase proof

I hereby claim:

  • I am mountaindude on github.
  • I am goransander ( on keybase.
  • I have a public key ASALuz07T6sfOgcl3OrCJjJQgThJt1-GMqS7ZjNHjwdQLgo

To claim this, I am signing this object:

mountaindude / node-memory.txt
Created Aug 24, 2017
Node.js and PM2 memory limits
View node-memory.txt
# Node
node --max-old-space-size=1024 app.js # 1Gb
# PM2
pm2 start app.js --node-args="--max-old-space-size=1024" # 1Gb
mountaindude / app2json.js
Created Jun 21, 2016 — forked from mindspank/app2json.js
Sample use of serializeapp and buildapp #serializer #engineapi
View app2json.js
var qsocks = require('qsocks')
var serializeApp = require('serializeapp')
var fs = require('fs-extra')
var Promise = require('promise')
function create(docname) {
qsocks.Connect({appname: docname})
.then(function(global) {
return global.openDoc(docname)
View sense_slack_post_1.qvs
General format:
curl -X POST --data-urlencode 'payload={"channel": "#sense-notification", "username": "webhookbot", "text": "This is posted to #sense-notification and comes from a bot named sensebot.", "icon_emoji": ":ghost:"}'<....enter_your_key_here....>
More formatting formatting:
Slack API docs:
Available emojis:
mountaindude / wblGen.bat
Created Oct 16, 2015 — forked from nate-untiedt/wblGen.bat
A simple batch file that automatically generates the wblfolder.wbl for your Qlik Sense visualization extension.
View wblGen.bat
@echo off
REM wblGen.bat - v 1.0.0 - 2015-10-09
REM Description:
REM A simple batch file that automatically generates the wblfolder.wbl for your Qlik Sense visualization extension.
REM Author: Nate Untiedt - Analytics8 -
REM Credit to:
setlocal EnableDelayedExpansion
mountaindude / sense_find_max_value_of_field
Created Oct 11, 2015
Fastest way of finding max/min values of a field in Sense or QV
View sense_find_max_value_of_field
// The obvious way of finding the max/min value of a field might something like this:
// LOAD max(salesDate) Resident dataTable;
// However, if dataTable is very large (hundred of millions of lines or more, with many columns), the above will be
// very slow, as we will end up traversing that entire table.
// Instead, the fastest method of achieving the desired result is to load the FieldValue()s.
// We then only look at the values of the salesDate field itself, and not the entire dataTable table.
// Performance gains by many orders of magnitude can be gained by using this method.
mountaindude / sense_us_state_region_division.txt
Created Oct 7, 2015
QlikView / Sense code mapping US states to regions and divisions
View sense_us_state_region_division.txt
// Load US high level regions (easter, southern, midwest etc) and divisions
// From
// Could also use if more granularity is needed
NoConcatenate Load
[State code],
[US census region],
[US census division]
Inline [
State code,US census region,US census division
mountaindude / sense_set_sum_per_max_date
Last active Oct 24, 2017
QlikView / Sense set expression to pick the data for the last available date
View sense_set_sum_per_max_date
// Sum FieldName per the last available date we have data for, withinin the current selection
Sum( {$<DateNum={$(#=Max(DateNum))}>} FieldName)
mountaindude / sense_set_general
Last active Oct 11, 2015
General set analysis syntax
View sense_set_general
// General syntax for set analysis
{$<Product = Product + {OurProduct1} – {OurProduct2} >}
mountaindude / sense_create_qvd_load_table
Last active Sep 13, 2017
QlikView / Qlik Sense code to create table with all QVDs to load later in a script
View sense_create_qvd_load_table
// List all QVDs that should be loaded
// In this example the QVDs have a filename format of YYYYMMDD.qvd
// The rationale for loading QVDs this way, rather than using something like
// load "/some/path/*.qvd" where date > SomeDate
// is that the latter will have to test the date field of all lines within all QVDs in that directory.
// That might take a long time (and it will become slower over time, if new QVDs are added every day), whereas the method
// used in the code below offers (very close to) constant loading time.
For each Filename in 'D:\path\to\qvds'
You can’t perform that action at this time.