This is an anchor-linked version of the excellent, amazing original opus magnum by Michael Tandy.
Counterexample: Royal Opera House, Covent Garden, London, WC2E 9DD, United Kingdom.
Counterexample: 1A Egmont Road, Middlesbrough, TS4 2HT
| #!/usr/bin/env python | |
| """Simple HTTP Server With Upload. | |
| This module builds on BaseHTTPServer by implementing the standard GET | |
| and HEAD requests in a fairly straightforward manner. | |
| """ |
| from BaseHTTPServer import BaseHTTPRequestHandler | |
| import urlparse, json | |
| class GetHandler(BaseHTTPRequestHandler): | |
| def do_GET(self): | |
| parsed_path = urlparse.urlparse(self.path) | |
| message = '\n'.join([ | |
| 'CLIENT VALUES:', | |
| 'client_address=%s (%s)' % (self.client_address, |
| /* | |
| * I add this to html files generated with pandoc. | |
| */ | |
| html { | |
| font-size: 100%; | |
| overflow-y: scroll; | |
| -webkit-text-size-adjust: 100%; | |
| -ms-text-size-adjust: 100%; | |
| } |
This is an anchor-linked version of the excellent, amazing original opus magnum by Michael Tandy.
Counterexample: Royal Opera House, Covent Garden, London, WC2E 9DD, United Kingdom.
Counterexample: 1A Egmont Road, Middlesbrough, TS4 2HT
Not all random values are created equal - for security-related code, you need a specific kind of random value.
A summary of this article, if you don't want to read the entire thing:
Math.random(). There are extremely few cases where Math.random() is the right answer. Don't use it, unless you've read this entire article, and determined that it's necessary for your case.crypto.getRandomBytes directly. While it's a CSPRNG, it's easy to bias the result when 'transforming' it, such that the output becomes more predictable.uuid, specifically the uuid.v4() method. Avoid node-uuid - it's not the same package, and doesn't produce reliably secure random values.random-number-csprng.You should seriously consider reading the entire article, though - it's
| # 使用 wget 下载整个网站解释 | |
| # link: https://www.douban.com/note/536265958 | |
| # wget | |
| # --recursive //回归递推也就是包括所有子目录子文件 | |
| # --no-clobber //不更改已经存在的文件,也不使用在文件名后添加 .#(# 为数字)的方法写入新的文件 | |
| # --page-requisites //下载所有显示完整网页所需的文件,例如图像。 | |
| # --html-extension //将所有text/html文档以.html扩展名保存 | |
| # --convert-links //转换非相对链接为相对链接 | |
| # --no-parent //不要追溯到父目录 | |
| # --level=0 // Specify recursion maximum depth level depth. |
| # List all possible power config GUIDs in Windows | |
| # Run: this-script.ps1 | Out-File powercfg.ps1 | |
| # Then edit and run powercfg.ps1 | |
| # (c) Pekka "raspi" Järvinen 2017 | |
| $powerSettingTable = Get-WmiObject -Namespace root\cimv2\power -Class Win32_PowerSetting | |
| $powerSettingInSubgroubTable = Get-WmiObject -Namespace root\cimv2\power -Class Win32_PowerSettingInSubgroup | |
| Get-WmiObject -Namespace root\cimv2\power -Class Win32_PowerSettingCapabilities | ForEach-Object { | |
| $tmp = $_.ManagedElement |
| import numpy as np | |
| def find_runs(x): | |
| """Find runs of consecutive items in an array.""" | |
| # ensure array | |
| x = np.asanyarray(x) | |
| if x.ndim != 1: | |
| raise ValueError('only 1D array supported') |
| // 1. Open the browser developper console on the network tab | |
| // 2. Start the video | |
| // 3. In the dev tab, locate the load of the "master.json" file, copy its full URL | |
| // 4. Run: node vimeo-downloader.js "<URL>" | |
| // 5. Combine the m4v and m4a files with mkvmerge | |
| const fs = require('fs'); | |
| const url = require('url'); | |
| const https = require('https'); |