For educational reasons I've decided to create my own CA. Here is what I learned.
Lets get some context first.
| # Add apt.llvm.org repository and install clang | |
| wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - | |
| sudo apt-add-repository "deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch main" | |
| sudo apt-get update | |
| sudo apt-get install -y clang clang-format clang-tidy lldb libc++-8-dev libc++abi-8-dev | |
| # Check version | |
| clang --version | |
| clang++ --version |
| # The command finds the most recent tag that is reachable from a commit. | |
| # If the tag points to the commit, then only the tag is shown. | |
| # Otherwise, it suffixes the tag name with the number of additional commits on top of the tagged object | |
| # and the abbreviated object name of the most recent commit. | |
| git describe | |
| # With --abbrev set to 0, the command can be used to find the closest tagname without any suffix: | |
| git describe --abbrev=0 | |
| # other examples |
A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."
| # Setting up internet explorer machine with selenium | |
| Download the machine with appropriate windows and IE from microsoft | |
| https://www.modern.ie/en-us/virtualization-tools | |
| Boot it up with GUI | |
| Disable UAC and firewall - its an isolated machine that noone will access anyway(and if they do, theres really nothing there), so why bother | |
| # Copssh |
| # -*- mode: ruby -*- | |
| # vi: set ft=ruby : | |
| # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |
| VAGRANTFILE_API_VERSION = "2" | |
| Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
| # All Vagrant configuration is done here. The most common configuration | |
| # options are documented and commented below. For a complete reference, | |
| # please see the online documentation at vagrantup.com. |
| <% | |
| import java.text.DateFormat | |
| import java.text.SimpleDateFormat | |
| %> | |
| <STYLE> | |
| BODY, TABLE, TD, TH, P { | |
| font-family:Verdana,Helvetica,sans serif; | |
| font-size:11px; | |
| color:black; | |
| } |
| import win32serviceutil | |
| import win32service | |
| import win32event | |
| import servicemanager | |
| import socket | |
| import time | |
| import logging | |
| logging.basicConfig( | |
| filename = 'c:\\Temp\\hello-service.log', |
| Linux - create "Default (Linux).sublime-mousemap" in ~/.config/sublime-text-3/Packages/User | |
| Mac - create "Default (OSX).sublime-mousemap" in ~/Library/Application Support/Sublime Text 3/Packages/User | |
| Win - create "Default (Windows).sublime-mousemap" in %appdata%\Sublime Text 3\Packages\User | |
| [ | |
| { | |
| "button": "button1", | |
| "count": 1, | |
| "modifiers": ["ctrl"], | |
| "press_command": "drag_select", |
| """A simple demonstration of running background tasks with Tornado. | |
| Here I am using a basic TCP server which handles streams and keeps | |
| them open while asynchronously performing a fake task in the | |
| background. In order to test it, simply telnet to localhost port 8080 | |
| and start typing things to see that the server receives the messages. | |
| The advantage to running on an executor instead of conventional | |
| threads is that we can more easily shut it down by stopping the | |
| tornado IO loop. |