Qlik Luminaries 2017 announced – yay!

And guess what? I am one of them! ūüôā

I value this quite high. Being part of the 2016 Luminary program too, I know how much value it brought both in terms of great networking opportunities with fellow Luminaries (and others), as well as more and closer contacts with Qlik themselves.

The one thing that makes Sense stand out (IMHO) is the fact that it is a very solid platform, on top of which you can build all kinds of interesting apps.
Qlik’s own user-facing standard Sense client is great, but there are for sure times when you want something else. The APIs very nicely enable that kind of development.

On the other hand, with so much great work happening in the open source field (around back-end technologies, visualisations etc), it is also extremely promising to see Qlik open sourcing some of their tech.

2017 has indeed started in an interesting way for Sense, can’t wait what’s in store for the rest of the year.

Qlik Sense app duplicator 1.2: User interface included


For a long time I wanted to learn more about client side development.

Javascipt, CSS, reactive frameworks etc – all those¬†concepts that make today’s web sites tick. I really think backend developers can benefit from having at least a basic understanding of how the front-end works – this will make the finished¬†app better as a whole.

Couple this with a desire to learn Vue.js specifically, and we get a user interface for the Qlik Sense app duplicator service.

Continue reading “Qlik Sense app duplicator 1.2: User interface included”

App duplicator service for Qlik Sense

 

I worked on a small node.js server during the past couple of weeks. The idea came from the fact that

  1. I over and over again find myself creating Sense apps that are almost identical, and
  2. people starting out as Sense developers spend too much time learning the basics. I wanted to bootstrap their learning process by providing well written skeleton apps for them.

This could of course be achieved by just duplicating apps using the QMC, but it¬†would be way better if there was a nice¬†little web app that listed the available Sense app templates, and allowed anyone (with permissions to create apps) to create new apps based on them. Or maybe this feature could even be integrated into one of the different Sense hubs that are now available…

Continue reading “App duplicator service for Qlik Sense”

The beauty of script autocompletion in Qlik Sense

Such a simple thing – but oh how useful.

One of the recent versions (3.0? 3.1? 3.1.1?) of Sense added much improved syntax color coding of the load scripts, as well as autocompletion of function names, field names, variables etc.

What might seem like a small change is at least to me super, super useful.¬†I can suddenly keep my hands on the keyboard, and don’t have to switch to another browser tab to check in the app data model to check the exact name of some field – I just type a couple of characters¬†and a list of suggestions pop up.¬†Productivity is up and frustration down – that is a very good combo.

Continue reading “The beauty of script autocompletion in Qlik Sense”

Butler for Qlik Sense version 2.0

Butler 2.0 is out!

Champagne

A summer project is over, and Butler  has been released in a version that is a total rewrite of Butler version 1.x. Butler 2.0 includes features such as

  • Real-time monitoring of¬†what users are active on a Sense Enterprise system
  • Real-time monitoring of failed reload tasks, with notifications sent as emails, to Slack channels and as MQTT messages
  • Starting Sense reload tasks from the load script or from external systems, using a REST API
  • Posting messages to Slack from the reload script. Great for sysadmin notifications as well as notifying end users that new data is available in an app
  • Sending MQTT pub-sub messages from the load script
  • Get full metadata, including load script, for any app
  • Getting free disk info¬†for the Sense server
  • …and more

All in all, Butler 2.0 includes a set of features that offers greatly enhanced features for anyone involved in the operation of a Sense Enterprise environment.

Butler is available via Qlik Branch, with all source code hosted on GitHub.
Documentation is available on github.io. That documentation is the best starting point for learning more about what Butler does and how to use it.

Some sample screen shots shows what is possible to achieve:

Continue reading “Butler for Qlik Sense version 2.0”

Qlik Sense data model of the year

Qlik-Sense-Logo1Long overdue, but during last few months I have finally started to play around with the various APIs available on the Qlik Sense platform.

It has been said before, but it is worth repeating: those APIs are really, really powerful. They are one of the main reasons why I think Qlik have some good years ahead of them.

Anyway Рa recent experiment involved serialising apps to JSON text files, so they can be stored in Git in an effective way. Works really well and is surprisingly simple to achieve thanks to the groundwork done by members of the Qlik developer community.
So far so good, but the JSON blob describing a Sense app is extremely large and hard to navigate. Continue reading “Qlik Sense data model of the year”

Qlik Sense REST connector log file overload

Qlik-Sense-Logo1I recently investigated a strange behaviour of the Qlik Sense REST connector, where it would become slower and slower executing REST queries, the longer the server had been running. RAM or CPU consumption was not unusually high, but something was clearly eating away some kind of resources from the system. Turned out it was disk access that was the bottleneck.

Continue reading “Qlik Sense REST connector log file overload”

Butler for Qlik Sense – connecting Sense to the world

QlikLogoThe goal of the¬†previously described Slack proxy project was to allow posting of messages from Qlik Sense load scripts to Slack (great¬†instant messaging platform!). The project has however¬†developed into something larger and slightly more ambitious, integrating other connections than Slack.¬†The original project name “Slack proxy”¬†has become less and less relevant, and the project has thus been renamed to “Butler”.

As of right now (May 2016), Butler’s feature set include

  • Send messages from Sense load script to Slack
  • Send/publish¬†MQTT messages from Sense load script (i.e. outbound MQTT).
  • Sense reload failures as emails, and to Slack.
  • Sense audit events (session start/stop and connection open/close) to Slack and to MQTT messages.
  • Create new directories on the Sense server’s (where Butler is running) disks.
  • Get disk space info, for disks on the Sense server where Butler is running.

Butler version 1.1 was just released, please refer to the Butler GitHub repository for further information.¬†Feel free to fork it and contribute if you feel some feature is missing –¬†¬†the node.js app¬†should be pretty easy to understand and extend upon.

URL encoding in Qlik Sense and QlikView

URLWith so much cool data available online, tools like QlikView and Sense becomes real Swiss Army knives of data integration.

Pull in some data from company internal databases, some data from previously created QVDs, and more and more commonly also from various online sources, both public and private. Depending on how you call those online APIs you might get away with just sending in query parameters as they are, but in other cases Рand this is especially true if you need to send more complex text strings to the API Рyou need to URL encode the query parameters.

Over the years I have run into this numerous times, but the other weekend¬†I realised it’s actually very easy. Just create a mapping table using an online source for the utf8-to-URL encoded mapping, then use MapSubstring to convert each character in the URL parameter to its hex counterpart.

Code for this found over at GitHub, it’s just 10 or so lines of code.

Occam’s razor holds true again – the easy solutions prevail and are usually preferred!