;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- | |
;; Place your private configuration here! Remember, you do not need to run 'doom | |
;; sync' after modifying this file! | |
;; Some functionality uses this to identify you, e.g. GPG configuration, email | |
;; clients, file templates and snippets. It is optional. | |
(setq user-full-name "Todd Pickell" | |
user-mail-address "[email protected]") |
From April 10 to May 2, 2024, I did all the work myself to get SOC 2 Type II certified. I'm now half way through the observation period to get Type II. The observation period is easy, you just have to babysit the controls. Getting to Type I is much harder. It took me somewhere around 100 hours.
SOC 2 is a security framework that, for many customers, eliminates the need to have you, as a vendor, fill out a lengthy security questionnaire. The SOC 2 controls and audits ask pretty much all the questions you'd get from a customer's security team. In fact, that is a great way to think about SOC 2. It's essentially a very thorough questionnaire you fill out once, an independent auditor forms an opinion of it in a report, and you share with all your customers.
There are two parts to SOC 2. The initial audit, where an auditor writes a Type I report sharing their opinion of your current setup. Then there's a 3 month observ
const webSocket = new WebSocket('wss://echo.websocket.org'); | |
//Event listeners are the pillars upon which WebSockets are built. This event fires when the WebSocket is considered 'OPEN', | |
//which means that it has connected successfully. | |
webSocket.addEventListener('open', function(event) { | |
console.log('websocket connected successfully') //log this into the browser console so we can check if the websocket connected | |
}); | |
//This is a global reference to the websocket that we created. We need this because otherwise multiple JS |
{ | |
"title": "Erlang Atoms", | |
"description": "", | |
"visuals": [ | |
{ | |
"title": "Atom usage", | |
"description": "Usage of atoms in Erlang and the configured limit.", | |
"line_label": "%name% %hostname%-%type%", | |
"display": "LINE", | |
"format": "number", |
-module(all_atoms). | |
-export([all_atoms/0]). | |
atom_by_number(N) -> | |
binary_to_term(<<131,75,N:24>>). | |
all_atoms() -> | |
atoms_starting_at(0). |
SPC | |
SPC: find file | |
, switch buffer | |
. browse files | |
: MX | |
; EX | |
< switch buffer | |
` eval | |
u universal arg | |
x pop up scratch |
```erlang | |
-module(fact). | |
% fact module | |
-export([run/1]). | |
-spec run(integer()) -> integer(). | |
run(N) when N > 0 -> | |
N * run(N-1); |
Print file names | |
``` | |
for f in *.jpg; do echo ${f}; done; |
α - Α → alpha | |
β - Β → beta | |
γ - Γ → gamma | |
δ - Δ → delta | |
ε - Ε → epsilon | |
ζ - Ζ → zeta | |
η - Η → eta | |
θ - Θ → theta | |
ι - Ι → iota | |
κ - Κ → kappa |