@soasme

Similar to HCL but with more programming semantic elements.
The code looks pretty ugly, but better than Jinja+yaml.
Getting full 4 stars is damn hard.
I just donated to @Wikipedia. Support free knowledge! #iloveWikipedia

> Wikipedia is something special.
MarkSthFun manages recurring payments via Stripe.
It's a very good season to check-in birds nesting on the cliffs of Muriwai Beach.
A lot of gannets have already hatched chicks.
We're lucky enough to see the whole scene of two gannets mating.
BTW, at the ledge of the cliffs below, there are around 20+ white-fronted terns inhabited, a few chicks included. I never found them before. It's probably because they only present in a short period of time here.

A **telescope** is highly recommended.
Never win the Mario Kart over my wife. Sigh.
* go mod init & go.mod
* go mod tidy
* go mod vendor
This tool can decompile py source code from pyc files across all Python versions. Very interesting.
Item: 2019 Nov DigitalOcean Product Usage
NZD: 7.78
Remarks:
* Floating IPs are free to use. However, if the IPs are reserved but unused, DO charges.
* Since this month, Frodo starts serving as our first server in the production environment.
The highest score is 188496 so far and it’s made by swipes interleaving in-between my wife and me.
We both apply the same strategy and discuss on certain critical points.
Underlying concepts: overlay network, IPIP, NAT, NIC, interrupt & softirq (Linux handling packets).
Useful tools: tcpdump, hping3, bcc, cadvisor, perf record.
Lesson Learned: know the full path inside the network and diagnose each hop.
Read this link, you'll get an overview of the cryptography.

* Three Algorithms: Secret Key Cryptography v/s Public Key Cryptography v/s Hash Functions.
* Key Length matters
* Trust Models: PGP, Kerberos, Certificates.
* Some more algorithms: DH Key Exchange, DES, PGP, IPSec, SSL & TLS, ECC, AES, etc.
* Some basic math: XOR, modulo, Entropy.
dep ensure
dep status
小白 & 张若昀 这集玩的非常棒。
MarkSthFun is running on PostgreSQL 12 as of 2019.
Equivalent to chef kitchen, but for ansible.
Both share the same life cycles, such as create, converge, check, cleanup.
If there is anything wrong, don’t cleanup, just ssh into the environment(login)
Item: Domain - marksth.fun: 1-year registration
NZD: 32.00
Item: 2019 Oct DigitalOcean Product Usage
NZD: 0.32
Read the Mattermost administration docs today (https://docs.mattermost.com/). Installing Mattermost seems pretty easy. It's a promising open-source chat platform as a Slack replacement.
1. MarkSthFun is a monolithic app, hosting in a single repo. It'll be deployed as a web app, a worker app, a blog app, etc.
2. Sys dependencies are explicitly specified in ansible/dockerfile. App dependencies are specified in pyproject.toml.
3. Use .env widely. Terraform and ansible shares the same .env file. Docker-compose reads envvars from env_files. Flask reads envvars by `load_dotenv(find_dotenv())`. In production, /var/www/shire/shared/.env contains all envvars app needs.
4. Backing services are merely some envvars for each service.
5. Deploy code in a capistrano-style convention directory.
6. No containers, just processes.
7. Applications are bound to $PORT.
8. Terraform/Ansible provision and setup servers quickly by server roles. A new server will be quickly added to the server pool.
9. Graceful shutdown (gunicorn)
10. Dev env: local docker-compose. Staging env: heroku. Prod env: digitalocean.
11. For troubleshooting, just tail -f.
12. Admin process: poetry run flask shell.
MarkSthFun runs everything in docker-compose locally, using poetry as the dep manager and honcho as the process starter.
There are two birds watching sheds in the park. We observed pukekos and oystercatchers mating, both having males riding on females.
You'll have a high chance to see birds from South Island in spring/summer, such as oystercatchers, wrybills.
Ansistrano comes from Ansible + Capistrano. I made similar stuff, fapistrano, a Fabric-based Capistrano Python-clone two years ago, but ansistrano is much better by leveraging Ansible, which has larger community and ecosystem.
MarkSthFun manages hosts by Ansible.

* It gets a list of hosts by a dynamic inventory python script, an unmodified version of contrib/inventory/digital_ocean.py.
* Host groups are defined as DigitalOcean tags.
* Ansible-galaxy and ansible-console are heavily used on a daily basis.
The crews lost their brains in the space, so they made stupid choices again and again.
Provision cloud services in minutes without clicking this and that. Type `terraform apply`, you get all cloud resources. Type `terraform destroy`, boom, all are gone. Very handy tool in modern days.
MarkSthFun applied Flask factory pattern. It uses a bunch of extensions, such as Flask-SQLAlchemy, Flask-Bcrypt, Whitenoises, etc.
This is a new story that I've never seen. It was awesome.