$ pip install click requests
$ python query_export.py --redash-url "https://app.redash.io/" --api-key ""
| ###### development tools | |
| sudo apt-get install build-essential python-dev git nodejs-legacy npm gnome-tweak-tool openjdk-8-jdk | |
| ### Python packages | |
| sudo apt-get install python-pip python-virtualenv python-numpy python-matplotlib | |
| ### pip packages | |
| pip install django flask django-widget-tweaks django-ckeditor beautifulsoup4 requests classifier SymPy ipython |
| pip install streamlit | |
| pip install spacy | |
| python -m spacy download en_core_web_sm | |
| python -m spacy download en_core_web_md | |
| python -m spacy download de_core_news_sm |
| /*! | |
| * Chart.js v2.9.3 | |
| * https://www.chartjs.org | |
| * (c) 2019 Chart.js Contributors | |
| * Released under the MIT License | |
| */ | |
| !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Chart=e()}(this,(function(){"use strict";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function t(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}function e(t,e){return t(e={exports:{}},e.exports),e.exports}var n={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsil |
| /*! | |
| * Chart.js v2.9.3 | |
| * https://www.chartjs.org | |
| * (c) 2019 Chart.js Contributors | |
| * Released under the MIT License | |
| */ | |
| (function (global, factory) { | |
| typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) : | |
| typeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) : | |
| (global = global || self, global.Chart = factory(global.moment)); |
| /*! | |
| * Chart.js v2.9.3 | |
| * https://www.chartjs.org | |
| * (c) 2019 Chart.js Contributors | |
| * Released under the MIT License | |
| */ | |
| (function (global, factory) { | |
| typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) : | |
| typeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) : | |
| (global = global || self, global.Chart = factory(global.moment)); |
| /*! | |
| * Chart.js v2.9.3 | |
| * https://www.chartjs.org | |
| * (c) 2019 Chart.js Contributors | |
| * Released under the MIT License | |
| */ | |
| (function (global, factory) { | |
| typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) : | |
| typeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) : | |
| (global = global || self, global.Chart = factory(global.moment)); |
| /*! | |
| * Chart.js v2.9.3 | |
| * https://www.chartjs.org | |
| * (c) 2019 Chart.js Contributors | |
| * Released under the MIT License | |
| */ | |
| (function (global, factory) { | |
| typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) : | |
| typeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) : | |
| (global = global || self, global.Chart = factory(global.moment)); |
| /*! | |
| * Chart.js v2.9.3 | |
| * https://www.chartjs.org | |
| * (c) 2019 Chart.js Contributors | |
| * Released under the MIT License | |
| */ | |
| (function (global, factory) { | |
| typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) : | |
| typeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) : | |
| (global = global || self, global.Chart = factory(global.moment)); |
I've been using [Backblaze][bbz] for a while now as my online backup service. I have used a few others in the past. None were particularly satisfactory until Backblaze came along.
It was - still is - keenly priced at a flat $5 (£4) per month for unlimited backup (I've currently got just under half a terabyte backed-up). It has a fast, reliable client. The company itself is [transparent about their operations][trans] and [generous with their knowledge sharing][blog]. To me, this says they understand their customers well. I've never had reliability problems and everything about the outfit exudes a sense of simple, quick, solid quality. The service has even saved the day on a couple of occasions where I've lost files.
Safe to say, I'm a happy customer. If you're not already using Backblaze, [I highly recommend you do][recommend].