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

Bringing DevOps to Qlik Sense - one tool at a time. Hello SenseOps!
Block or report user

Report or block mountaindude

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
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.