1. Install nginx
2. Install minio
3. Install mc client
$ mc mb myminio/static
Bucket created successfully ‘myminio/static’.
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParentelem.clientLeft, elem.clientTop, elem.clientWidth, elem.clientHeightelem.getClientRects(), elem.getBoundingClientRect()| sudo wget https://builds.wkhtmltopdf.org/0.12.1.3/wkhtmltox_0.12.1.3-1~bionic_amd64.deb | |
| sudo dpkg -i wkhtmltox_0.12.1.3-1~bionic_amd64.deb | |
| sudo apt-get install -f | |
| sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin | |
| sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin |
Let’s see how to use PostgreSQL to import and export CSV files painlessly with the COPY command.
Import CSV into table t_words:
COPY t_words FROM '/path/to/file.csv' DELIMITER ',' CSV;You can tell quote char with QUOTE and change delimiter with DELIMITER.
| // Takes a URL, param name, and data string | |
| // Sends to the server.. The server can respond with binary data to download | |
| jQuery.download = function(url, key, data){ | |
| // Build a form | |
| var form = $('<form></form>').attr('action', url).attr('method', 'post'); | |
| // Add the one key/value | |
| form.append($("<input></input>").attr('type', 'hidden').attr('name', key).attr('value', data)); | |
| //send request | |
| form.appendTo('body').submit().remove(); |
| qApp->setStyle(QStyleFactory::create("fusion")); | |
| QPalette palette; | |
| palette.setColor(QPalette::Window, QColor(53,53,53)); | |
| palette.setColor(QPalette::WindowText, Qt::white); | |
| palette.setColor(QPalette::Base, QColor(15,15,15)); | |
| palette.setColor(QPalette::AlternateBase, QColor(53,53,53)); | |
| palette.setColor(QPalette::ToolTipBase, Qt::white); | |
| palette.setColor(QPalette::ToolTipText, Qt::white); | |
| palette.setColor(QPalette::Text, Qt::white); |
| qApp->setStyle(QStyleFactory::create("Fusion")); | |
| QPalette darkPalette; | |
| darkPalette.setColor(QPalette::Window, QColor(53,53,53)); | |
| darkPalette.setColor(QPalette::WindowText, Qt::white); | |
| darkPalette.setColor(QPalette::Base, QColor(25,25,25)); | |
| darkPalette.setColor(QPalette::AlternateBase, QColor(53,53,53)); | |
| darkPalette.setColor(QPalette::ToolTipBase, Qt::white); | |
| darkPalette.setColor(QPalette::ToolTipText, Qt::white); | |
| darkPalette.setColor(QPalette::Text, Qt::white); |
| Create 2 classes. | |
| One class for the server: | |
| We call it ex. MyServer, with Base class QTcpServer | |
| Second class, every connection will have a new thread: | |
| We call it MyThread, with Base class QThread |
| from __future__ import with_statement # we'll use this later, has to be here | |
| from argparse import ArgumentParser | |
| import requests | |
| from BeautifulSoup import BeautifulStoneSoup as Soup | |
| def parse_sitemap(url): | |
| resp = requests.get(url) | |
| # we didn't get a valid response, bail |
If you haven't already set your NPM author info, now you should:
npm set init.author.name "Your Name"
npm set init.author.email "[email protected]"
npm set init.author.url "http://yourblog.com"
npm adduser