initial commit

This commit is contained in:
Fabian Montero 2024-08-03 15:30:31 -06:00
commit 7a32292dda
Signed by: fabian
GPG key ID: 1FFAC35E1798174F
91 changed files with 3095 additions and 0 deletions

View file

@ -0,0 +1,2 @@
+++
+++

View file

@ -0,0 +1,35 @@
+++
title = "about"
+++
name: Fabián Montero
bio: Linux Embedded Engineer
projects: [https://sr.ht/~fabianmv/](https://sr.ht/~fabianmv/)
email: fabian [at] posixlycorrect [dot] com
gpg key:
```txt
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZHlROBYJKwYBBAHaRw8BAQdAhzA1JCghQ6KoHOuf6JPQhEmchHLVXFVye4I2
pRUOUMO0KkZhYmlhbiBNb250ZXJvIDxmYWJpYW5AcG9zaXhseWNvcnJlY3QuY29t
PoiUBBMWCgA8FiEEeqJ35gSkFzkWu7TpH/rDXheYF08FAmR5UTgCGwMFCQlmAYAE
CwkIBwQVCgkIBRYCAwEAAh4FAheAAAoJEB/6w14XmBdPP2EA/i9ugFxpIFF6oOQs
clMfr+sNj6Il0OUTJK0dqpp4mGorAP0awa6nfhU8T1Ju7UWr6cfSmnL4bM6M/4Z3
D+AF/L5PBokCMwQQAQoAHRYhBOd6gIv5qVXWaO7qZHP6nJy18CSbBQJkeVKDAAoJ
EHP6nJy18CSbzTkP/Reio0ObRrRW+QSw62ZXrUG0mFcNeeoM9amldCToFRyGnSDu
wtZ9nqwLiTJ01VPBOsEZLsl4VonO3rdadqnMTZ3XqKK9VHBl6UNot3DQ8INDAcko
GW1zvEdxNkpMxhtAja0JkcBdG7+zxc2aEGeKfEna2qDXA+xtYw5+pssOWYMip7hm
jQ2NzYMYav2KYRBC7eXTkAIIIJi/l9pR1IwHtY3a0gfbkQymgCyt5wVG6LneYFIR
+ycNVCObwyP8gFASdId0bWnA23rkilc9ZBOCps/cGfDLM+KQ+sLAWBFBQyQeEjcv
tU+pLXncAEvWy/SFmprVSLDQMMooFaEJMZChojGcCkwAPG1twsihqIA3E44Q3/+G
K0gZN57jGMnfvuQiuLuttOMdu27KwEu++t3YUt0P6S4kARpx51zZJ7A2Yj2u22aM
7EL8qq6KTNdNoS7FgwQkrWbokdDZIl0HV+5TeMQfylPqOPhuFK/1A9qztqknBPVY
QUx2t6FZUgH9sT7uD+5gXxyeqmEIFo2i6D8G/4TEPbKtWivJfeOqDEBn4QEY2nvE
zgJLLU5XCv9xPz5rizRCa+h+kg+i4mH6fLCBCCAPXsbAAo0gUlGJvX4slPh7uPOa
T2r7A/7uezResBzP/L/vostlmjO5c8cOl9Wc6D1kRZq17/AjMUgy6+KR3iVnuDgE
ZHlROBIKKwYBBAGXVQEFAQEHQPRbCS2p8xpt3fRxfyRnDOdH9pULY4NtGmZUS0ve
ZGkTAwEIB4h+BBgWCgAmFiEEeqJ35gSkFzkWu7TpH/rDXheYF08FAmR5UTgCGwwF
CQlmAYAACgkQH/rDXheYF0/65AD+LtDeedCYv9zs+1Ia3DvejVZM256WEH+dRH5h
Pm3RzQ8A/2+bXRnfsgGqacj/kKEL3spuos95ngRNRkrQ39nc1koP
=PAxr
-----END PGP PUBLIC KEY BLOCK-----
```

View file

@ -0,0 +1,12 @@
+++
title = "analog_photography"
+++
My main hobby is analog photography. I own a couple of *point and shoots* but I
mainly use a Nikon F2 (with the DP-1 meter) and a Minolta XG7.
Here are some decent photos I have been able to take.
<a data-flickr-embed="true" data-footer="true" data-context="true" href="https://www.flickr.com/photos/195498995@N08/53200811755/in/dateposted-public/" title="F353"><img src="https://live.staticflickr.com/65535/53200811755_e59b308a45_b.jpg" width="696" height="1024" alt="F353"/></a><script async src="//embedr.flickr.com/assets/client-code.js" charset="utf-8"></script>
A bunch of photos missing, gotta add more later.

View file

@ -0,0 +1,25 @@
+++
title = "art_collection"
+++
I own a very small art collection. Here are some photos of the pieces in it and
some info about them.
# La tertulia
Screen Printing
35x45cm
2021
La Tertulia is a screen printing ("serigrafía", in spanish) by Costa Rican
artist Rafa Gutierrez.
![La Tertulia](../art_collection/la_tertulia1.jpg)
![La Tertulia](../art_collection/la_tertulia2.jpg)
This is how I framed it:
![La Tertulia](../art_collection/la_tertulia3.jpg)
This piece has a "sister" which I gifted to my father. It's called "Caribe":
![Caribe](../art_collection/caribe.jpg)

View file

@ -0,0 +1,6 @@
+++
title = "blog_posts"
+++
## [2023-06-02: building a site with zola and sourcehut](@/blog/building_a_site_with_zola_and_sourcehut.md)
## [2023-09-19: introduction to gpg key usage](@/blog/introduction_to_gpg_key_usage.md)
## [2024-05-22: Stellaris virtual rush build](@/blog/stellaris_tall_virtual_build.md)

View file

@ -0,0 +1,137 @@
+++
title = "building a site with zola and sourcehut"
date = 2023-06-02
+++
# Introduction
The following is a small tutorial on how to build a static webpage using
<a href="https://www.getzola.org/" target="_blank">Zola</a> and
<a href="https://builds.sr.ht/" target="_blank">Sourcehut's build service</a>.
This guide is kindof redundant since Zola's documentatioin is already very
clear, but I want to write a first post in order to test this site.
<br>
# Prerequisites
First off, download Zola using your package manager.
<a href="https://www.getzola.org/documentation/getting-started/installation/"
target="_blank">Installation instructions</a> can be found on their site.
After that, <a href="https://builds.sr.ht/"
target="_blank">create an account</a> on Sourcehut. I paid for the
"Amateur Hackers" tier as I'm just getting started with this project.
<br>
# Creating a static webpage
All commands assume you are on the root of your project.
<br>
### Zola
Once you've downloaded Zola, create an empty dir, initialize you site and
initialize a git repo:
```bash
$ mkdir www && cd www
$ zola init posixlycorrect.com
$ git init
```
Test everything is fine:
```bash
$ zola serve
```
If it is, download a theme:
```bash
$ mkdir -p themes
$ cd themes
$ git clone https://github.com/pawroman/zola-theme-terminimal.git
```
Add content to your site:
```bash
$ mkdir -p content
$ cd content
$ nvim _index.md ## add to this whatever your theme needs in order to work
## usually this is detailed on the theme's docs
$ nvim blog.mb ## landing page for posixlycorrect.com/blog
$ mkdir blog && cd blog
$ nvim building_a_site_with_zola_and_sourcehut.md ## your first post
$ cd ..
$ nvim about.md ## your about page
```
Check that everything looks good:
```bash
$ zola serve
```
<br>
### Sourcehut
Your site is now ready to be published! In order to do that, commit your changes
and add a remote repo from sourcehut:
```bash
$ git add .
$ git commit
$ git remote add origin git@git.sr.ht:~fabianmv/posixlycorrect.com
```
Add a build manifest so sourcehut knows how to publish your site:
```bash
$ nvim .build.yml
```
My manifest looks like this:
```yaml
image: alpine/edge
packages:
- hut
- zola
oauth: pages.sr.ht/PAGES:RW
environment:
site: posixlycorrect.com
sources:
- https://git.sr.ht/~fabianmv/posixlycorrect.com
tasks:
- build: |
cd posixlycorrect.com
mkdir -p templates
zola build
- package: |
cd posixlycorrect.com
tar -C public -cvz . > ../site.tar.gz
- upload: |
hut pages publish -d $site site.tar.gz
```
Add and commit your changes and push your repo:
```bash
$ git add .
$ git commit
$ git push
```
Your website now should be visible! Updating it is a matter of making changes
and pushing to your repo.
Good luck!
If you have any questions, feel free to email me.
<br>
---
Good luck!
If you have any questions, feel free to email me.

View file

@ -0,0 +1,318 @@
+++
title = "introduction to gpg key usage"
date = 2023-09-19
+++
# Introduction
The following is an introductory tutorial on how to use GPG keys to send secure
and trusted messages across the internet.
GPG it is widely used to send secure an verified messages all over the internet,
including in the Linux Kernel project!. In order for it to work, everyone has to
have a key-pair.
Key pairs consist of two cryptographic keys: a public key and a private key.
The public key is used to encrypt data or verify digital signatures, and it can
be freely shared with others. Conversely, the private key is kept secret and is
used to decrypt data encrypted with the corresponding public key or to create
digital signatures. When someone wants to send you an encrypted message, they
use your public key, which only you can decrypt using your private key.
Similarly, when you digitally sign a file, others can verify its
authenticity using your public key. This asymmetric key pair system ensures
secure communication and data integrity in various applications, such as email
encryption and software distribution.
More info on <a href="https://www.gnupg.org"
target="_blank">the official website</a>.
In this guide, the following topics will be covered:
- Generate your personal key pair
- Export your public key with --armor so you can easily share it
- Upload your public key to various key servers so you can even more easily
share it
- Encrypt and decrypt a file
- Setup thunderbird to send and receive encrypted emails (cominng soon)
- Setup (neo)mutt to send and receive encrypted emails (coming soon)
<br>
# Prerequisites
All you are going to need is the
<a href="https://distrowatch.com/dwres.php?resource=package-in-distro&pkg=gnupg"
target="_blank">gnupg</a> package. Get it using your distro's package manager.
Lets get started.
<br>
# Generating your personal key pair
To create a key pair, run the following command:
```bash
$ gpg --full-gen-key
```
You should get something like this:
```bash
Please select what kind of key you want:
(1) RSA and RSA
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(9) ECC (sign and encrypt) *default*
(10) ECC (sign only)
(14) Existing key from card
Your selection?
```
Select option 9 (which is the default anyways), then you'll get something like
this:
```bash
Please select which elliptic curve you want:
(1) Curve 25519 *default*
(4) NIST P-384
(6) Brainpool P-256
Your selection?
```
Select the default option again.
Then, choose an expiration date:
```bash
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for?
```
I normally choose a couple of years. It's not a good idea to have a key never
expire.
Now GPG will create an identity for you:
```bash
GnuPG needs to construct a user ID to identify your key.
Real name:
Email address:
Comment:
```
Enter a name to identify yourself (usually first and last name), your email and
optionally a comment. Normally the comment is left blank.
After that, GPG will ask you to add a passphrase to protect your key. Enter a
secure passphrase and GPG will have generated your key!
You should see output similar to this:
```bash
pub ed25519/0x1FFAC35E1798174F 2023-06-02 [SC] [expires: 2028-05-31]
Key fingerprint = 7AA2 77E6 04A4 1739 16BB B4E9 1FFA C35E 1798 174F
uid [ultimate] Fabian Montero <fabian@posixlycorrect.com>
sub cv25519/0xEA4F0B28F9C039EB 2023-06-02 [E] [expires: 2028-05-31]
```
This is the typical way in which gpg displays keys. Lets understand this output.
<br>
### Overview of the anatomy of a GPG key
This will only be a quick overview, if you want more information on this, check
out the following links:
- <a href="https://github.com/gpg/gnupg/blob/master/doc/DETAILS"
target="_blank">GPG docs</a>
- <a href="https://davesteele.github.io/gpg/2014/09/20/anatomy-of-a-gpg-key/"
target="_blank">Anatomy of a GPG Key, by David Steele (much more detailed than
this section)</a>
- <a href="https://unix.stackexchange.com/questions/613839/help-understanding-gpg-list-keys-output"
target="_blank">A question on stack exchange that overviews this topic</a>
Lets take a look at the first line of the output:
```bash
pub ed25519/0x1FFAC35E1798174F 2023-06-02 [SC] [expires: 2028-05-31]
```
This tells us the ***type of entry*** that we're looking at. And it tells us a couple
of things:
- `pub`: This is a public key
- `ed25519`: This key uses a <a href="https://en.wikipedia.org/wiki/Curve25519"
target="_blank">elliptic curve DiffieHellman (ECDH) key agreement scheme</a>
(I have no clue what that is, but as I understand it, this is most secure key
technology developed thus far)
- `0x1FFAC35E1798174F`: is the key id of your key, this is derived from the
key's fingerprint
- `2023-06-02` date in which the key was generated
- `[SC]` means that this key has the following two capabilities: ***sign*** and
***certify***
- `[expires: 2028-05-31]` expiration date of the key
The next line looks like this:
```bash
Key fingerprint = 7AA2 77E6 04A4 1739 16BB B4E9 1FFA C35E 1798 174F
```
This is the fingerprint of your key (more on what this is in a moment).
The next line looks like this:
```bash
uid [ultimate] Fabian Montero <fabian@posixlycorrect.com>
```
This is the uid that corresponds to this key. The `[ultimate]` string means that
this key is ultimately trusted. Normally this means that the private key is also
available.
Finally, the last line looks like this:
```bash
sub cv25519/0xEA4F0B28F9C039EB 2023-06-02 [E] [expires: 2028-05-31]
```
This is a subkey of your key. This subkey is bound to your normal key.
- `sub`: This is a subkey
- `cv25519`: This key uses a <a href="https://en.wikipedia.org/wiki/Curve25519"
target="_blank">elliptic curve DiffieHellman (ECDH) key agreement scheme</a>
- `0xEA4F0B28F9C039EB`: is the key id of your subkey, this is derived from the
key's fingerprint
- `2023-06-02` date in which the key was generated
- `[E]` means that this key has the following two capability: ***encrypt***
- `[expires: 2028-05-31]` expiration date of the key
<br>
# Exporting your key with --armor
One way to export your public key is to export its armor. To do that, run the
following command:
```bash
$ gpg --export --armor 7AA277E604A4173916BBB4E91FFAC35E1798174F
```
Replacing the fingerprint with your key's fingerprint, of course.
This will output something like this:
```bash
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZHlROBYJKwYBBAHaRw8BAQdAhzA1JCghQ6KoHOuf6JPQhEmchHLVXFVye4I2
pRUOUMO0KkZhYmlhbiBNb250ZXJvIDxmYWJpYW5AcG9zaXhseWNvcnJlY3QuY29t
PoiUBBMWCgA8FiEEeqJ35gSkFzkWu7TpH/rDXheYF08FAmR5UTgCGwMFCQlmAYAE
CwkIBwQVCgkIBRYCAwEAAh4FAheAAAoJEB/6w14XmBdPP2EA/i9ugFxpIFF6oOQs
clMfr+sNj6Il0OUTJK0dqpp4mGorAP0awa6nfhU8T1Ju7UWr6cfSmnL4bM6M/4Z3
D+AF/L5PBokCMwQQAQoAHRYhBOd6gIv5qVXWaO7qZHP6nJy18CSbBQJkeVKDAAoJ
EHP6nJy18CSbzTkP/Reio0ObRrRW+QSw62ZXrUG0mFcNeeoM9amldCToFRyGnSDu
wtZ9nqwLiTJ01VPBOsEZLsl4VonO3rdadqnMTZ3XqKK9VHBl6UNot3DQ8INDAcko
GW1zvEdxNkpMxhtAja0JkcBdG7+zxc2aEGeKfEna2qDXA+xtYw5+pssOWYMip7hm
jQ2NzYMYav2KYRBC7eXTkAIIIJi/l9pR1IwHtY3a0gfbkQymgCyt5wVG6LneYFIR
+ycNVCObwyP8gFASdId0bWnA23rkilc9ZBOCps/cGfDLM+KQ+sLAWBFBQyQeEjcv
tU+pLXncAEvWy/SFmprVSLDQMMooFaEJMZChojGcCkwAPG1twsihqIA3E44Q3/+G
K0gZN57jGMnfvuQiuLuttOMdu27KwEu++t3YUt0P6S4kARpx51zZJ7A2Yj2u22aM
7EL8qq6KTNdNoS7FgwQkrWbokdDZIl0HV+5TeMQfylPqOPhuFK/1A9qztqknBPVY
QUx2t6FZUgH9sT7uD+5gXxyeqmEIFo2i6D8G/4TEPbKtWivJfeOqDEBn4QEY2nvE
zgJLLU5XCv9xPz5rizRCa+h+kg+i4mH6fLCBCCAPXsbAAo0gUlGJvX4slPh7uPOa
T2r7A/7uezResBzP/L/vostlmjO5c8cOl9Wc6D1kRZq17/AjMUgy6+KR3iVnuDgE
ZHlROBIKKwYBBAGXVQEFAQEHQPRbCS2p8xpt3fRxfyRnDOdH9pULY4NtGmZUS0ve
ZGkTAwEIB4h+BBgWCgAmFiEEeqJ35gSkFzkWu7TpH/rDXheYF08FAmR5UTgCGwwF
CQlmAYAACgkQH/rDXheYF0/65AD+LtDeedCYv9zs+1Ia3DvejVZM256WEH+dRH5h
Pm3RzQ8A/2+bXRnfsgGqacj/kKEL3spuos95ngRNRkrQ39nc1koP
=PAxr
-----END PGP PUBLIC KEY BLOCK-----
```
That string is what is known as the armor of your key. It can be saved into a
file: `fabian.gpg`, for example and be imported by others like this:
```bash
$ gpg --import fabian.gpg
```
More info on armor in <a href="https://unix.stackexchange.com/questions/623375/what-is-the-armored-option-for-in-gnupg"
target="_blank">this Unix Stack Exchange question</a>.
<br>
# Uploading your public key to the internet
You can also upload your key to various key servers, so other people can search
for it and download it. To do this, run the following command:
```bash
$ gpg --send-keys 7AA277E604A4173916BBB4E91FFAC35E1798174F
```
Again, replacing my fingerprint for yours.
You can also upload it manually to <a href="https://keys.openpgp.org/"
target="_blank">https://keys.openpgp.org/</a>
<br>
# Encrypting and decrypting a file
Now that you have your key pair and you have published your public key, you
can start encrypting and decrypting stuff. This is extremely easy:
To encrypt a file called `secrets.txt`, run:
```bash
$ gpg -e secrets.txt
```
GPG will ask you to enter recipients:
```bash
You did not specify a user ID. (you may use "-r")
Current recipients:
Enter the user ID. End with an empty line:
```
Enter the email address of the recipient, so that the file is encrypted using
their public key. This way only they will be able to decrypt the file using
their corresponding private key.
You can add more than one recipient. It is common to add yourself as a
recipient, that way you can also decrypt the file.
This will produce a file called `secrets.txt.gpg`, which is encrypted. You can
now send this file safely to the recipient.
To decrypt an encrypted file, run:
```bash
$ gpg -d secrets.txt.gpg
```
GPG will print something like this:
```bash
gpg: encrypted with cv25519 key, ID 0xEA4F0B28F9C039EB, created 2023-06-02
"Fabian Montero <fabian@posixlycorrect.com>"
gpg: using "7AA277E604A4173916BBB4E91FFAC35E1798174F" as default secret key for signing
```
And the content of the decrypted file will be printed in standard output.
<br>
# Setting up thunderbird to send and receive encrypted emails
I'm still working on this part of the guide.
<br>
# Setting up (neo)mutt to send and receive encrypted emails
I'm still working on this part of the guide.
<br>
---
Good luck!
If you have any questions, feel free to email me.

View file

@ -0,0 +1,194 @@
+++
title = "Stellaris virtual rush build"
date = 2024-05-22
+++
# Introduction
This is a written version of [a video](https://youtu.be/jEf0JmFRkK4?si=xeTsbCpk_8HCt_SJ)
by [Montu Plays](https://www.youtube.com/@MontuPlays). All credit goes to them.
It is a tall empire which leverages the new features from The Machine Age DLC.
As far as I know, the only other necessary DLC for this build is Humanoids and
Astral Planes.
</br>
</br>
# Build
- **Species:**
- Machine
- **Origin:**
- Voidforged
- **Government:**
- Democratic
- **Ethics:**
- Egalitarian
- Militarist
- Spiritualist
- **Civics:**
- Parliamentary System
- Sovereign Guardianship
- **Traits:**
- Machine (you get this by chosing the any machine portrait)
- Zero G Optimized (you get this by chosing the Voidforged origin)
- Adaptive Frames
- Mass-Produced
- Bulky
- High bandwidth
- Art Generator
- **Leader Trait:**
- Charismatic
- **Starting Solar System:**
- Void Dwellers (Sol)
</br>
</br>
# Opening
- **Unemploy researchers** in your starting habitat
- **Unemploy enforcers** in your starting habitat
- Change **Diplomatic Stance** to **Isolationist**
- Change **Subjugation War Terms** to **Benevolent Vassalage**
- Change **First Contact Protocol** to **Proactive**
- Start an automatic trade to **buy of 20 minerals/month**
- Build **2 Industrial districts** in your starting habitat
- Build **1 Reactor district** in your starting habitat
- Send Science Ship to **survey Alpha Centauri**
- Turn on the **Veneration of Saints** Edict
- Turn on the **Encourage Political Thought** Edict
- **Promote** your **Egalitarian Faction**
- If you don't have an Egalitarian leader in your council, hire one and place
them there
- Send your **Military Fleet** to try and make **first contact** ASAP with as
many empires as possible
- Build a **second Science Ship** to scout around and try and make first contact
ASAP with as many empires as possible
- Build a **second Construction ship** to build as many **Minor Orbitals** on
your capital system
</br>
</br>
# Traditions & Ascension Perks
1. Prosperity
1. Standard Construction Templates
2. Everything else
3. **One Vision Ascension Perk**
2. Enmity
1. Complete the whole tradition tree
2. **Consecrated Worlds Ascension Perk**
3. Mercantile
1. Adaptive Economic Policies
2. Everything else
3. **Synthetic Age Ascension Perk**
4. Virtuality
1. Complete the whole tradition tree
2. Whatever Ascension Perk you want
5. Supremacy
</br>
</br>
# Council Agendas
1. Whatever you start with
1. Expand The Council
2. Evolving Society
3. Give and Take
</br>
</br>
# Post-opening
- **Build** as many **Temples** as possible on your **starting habitat**
- Build a **second habitat** on **Alpha Centauri**
- Search for another **system with the most planets** possible in your vicinity
in order to place your **third habitat** there
- **After starting your third habitat**, turn on the **Inner Focus** Edict
- Get **Planetary Unification Technology** ASAP
- If you find an **Archeological Site**, complete it and get **Celebration of**
**Diversity** or **Proclaim Religious Revelation**
</br>
</br>
# Mid-game
- After year 10, an election will come up. Make sure your **current leader does
not get re-elected**
- After completing the Emnity Tradition, change **Diplomatic Stance** to
**Antagonistic**
- Build an **Autocothon Monument** on your **second habitat**
- Build **1 Habitation District** on your **second habitat**
- Upon making first contact with other empires, **trade alloys** for their
**communications**
- After trading communications with an empire, **declare them your rival**
- **UNLESS** they are your neighbor. In that case, improve relations and try
to form a non-aggression pact in order to prevent them from attacking you
- After getting the Consecrated Worlds Ascension Perk, **consecrate any
habitable planets you find**
- If you don't have habitable planets, consecrate non-habitable ones
- After meeting another empire, **reform your government** into an **Oligarchy**
- **BEFORE SWITCHING** **un-employ** all **politicians** on all your habitats
- Get the **Exalted Priesthood Ethic**
- **Re-employ** all **politicians** after switching
- Use your **extra council slot** you got from the Evolving Society Agenda to
place an **Archpriest** in your Council
- Your council should have as many Governors as possible
- Change **Resettlement** policy to **Allowed**
- Make sure your Egalitarian Faction stays over 80% approval after this
- **Resettle worker class pops** towards your **new habitats**
- If necessary, start an automatic trade to **sell of 10 alloys/month**
- Slight loss in consumer goods is ok
- After getting Adaptive Economic Policies Tradition, Change **Trade Policy** to
**Consumer Benefits**
- Build **Zero-G Districts** on **Alpha Centauri**
- **Un-employ** all **researchers** on Alpha Centauri
- **Build** as many **Temples** as possible on your **second habitat**
- Switch it's **specialization** to **Ecclesiastical Station**
- **Build** as many **Temples** as possible on your **third habitat**
- Switch it's **specialization** to **Ecclesiastical Station**
- If necessary, start an automatic trade to **buy more minerals/month** in order
to build more districts
- Employ a **Governor with the Unifier Trait** on your **capital**
</br>
</br>
# Post mid-game
- Your **second habitat** should focus on **research**, build as many Zero-G
districts as possible, but don't employ any pops on research
- Your **third habitat** should focus on **alloys**, build as many industrial
districts as possible, but don't employ any pops on them
- After getting the Synthetic Age Ascension Perk, your **transformation** will
begin
- Select the **Real Time Approach**
- The idea is to **save up unity** until you adopt Virtuality and then
**unlock the whole tree at once**
- **Embrace the virtual world** when prompted to chose **A New Form**
- After adopting the whole Virtuality Tradition, change **Virtual Economy**
**Focus** to **Research**
- After ascending, **Restore Jobs** on all your **habitats**
- You may need to click it a couple of times
- After the month ends, you should be getting a large amount of all resources
- Switch your **alloy habitat** to be a **Foundry World**
- Switch your **research habitat** to be a **Research Station**
- **Switch** all your **Reactor Districts** in your **capital** into
**Astro-Mining Districts**
- **Replace** all your **Temples** in your **capital** for **Research labs**
- Build **Major and Minor Orbitals** **everywhere** you can
- As soon as you can, build an **Arc-Furnace** on your capital system
- Mercury is a great place to do this
</br>
</br>
# End-game
- Build a massive fleet
- Vassalize everyone

View file

@ -0,0 +1,8 @@
+++
title = "lib"
+++
### [Art collection](@/art_collection.md)
### [Safire memo](@/safire_memo.md)
### [Places to eat out (outdated)](@/places_to_eat_out.md)
### [Two hard things](@/two_hard_things.md)
### [Visual thinking](@/visual_thinking.md)

View file

@ -0,0 +1,25 @@
+++
title = "meet"
+++
<style>
#meeting-button {
background: none;
border: none;
color: rgb(252, 147, 0);
text-decoration: bold;
cursor: pointer;
padding: 5px;
font-size: 16px;
border: 1px solid rgb(252, 147, 0);
border-radius: 0;
font-family: Liberation Mono;
}
</style>
<button id="meeting-button" onclick="window.open('https://meet.posixlycorrect.com/', '_blank')">
Start meeting!
</button>
---
If you haven't been granted access, <a href="https://wiki.posixlycorrect.com/wiki/Requesting_meet_access" target="_blank">click here to request access</a></li>

View file

@ -0,0 +1,76 @@
+++
title = "places_to_eat_out"
+++
<ul id="randomize-list">
<li>Olive Garden</li>
<li>La Hacienda Mexicana</li>
<li>Wings on Fire</li>
<li>La 45</li>
<li>El Higuerón</li>
<li>La Casona de Laly</li>
<li>Pizza Hut</li>
<li>Spoon</li>
<li>Casa Rojas</li>
<li>Neko Sushi</li>
<li>Fitos</li>
<li>Cosí</li>
<li>La Caverna de Monto</li>
<li>Cantón</li>
<li>Ichiraku Sushi</li>
<li>Taquería Taquitos</li>
<li>95 Grados</li>
<li>Ciros</li>
<li>Family Pizza</li>
</ul>
<script>
// Function to randomize an array using the Fisher-Yates algorithm
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
// Get the list element by its ID
const listElement = document.getElementById('randomize-list');
// Function to randomize the list
function randomizeList() {
// Get the list items from the list element
const listItems = Array.from(listElement.getElementsByTagName('li'));
// Randomize the order of list items
const randomizedList = shuffleArray(listItems);
// Clear the existing list
listElement.innerHTML = '';
// Append the randomized list items back to the list element
randomizedList.forEach((item) => {
listElement.appendChild(item);
});
}
// Create a button element
const button = document.createElement('button');
button.textContent = 'Randomize!';
button.style.background = 'none';
button.style.border = 'none';
button.style.color = 'rgb(252, 147, 0)';
button.style.textDecoration = 'bold';
button.style.cursor = 'pointer';
button.style.padding = '5';
button.style.fontSize = '18px';
button.style.border = '1px solid rgb(252, 147, 0)';
button.style.borderRadius = '0';
button.style.fontFamily = 'Liberation Mono';
button.addEventListener('click', randomizeList);
// Insert the button before the list element
listElement.parentNode.insertBefore(button, listElement);
// Randomize the list initially
randomizeList();
</script>

View file

@ -0,0 +1,54 @@
+++
title = "safire_memo"
+++
```txt
To : H. R. Haldeman
From: Bill Safire July 18, 1969.
-----------------------------------------------------------------------
IN EVENT OF MOON DISASTER:
Fate has ordained that the men who went to the moon to
explore in peace will stay on the moon to rest in peace.
These brave men, Neil Armstrong and Edwin Aldrin, know
that there is no hope for their recovery. But they also know that there
is hope for mankind in their sacrifice.
These two men are laying down their lives in mankind's
most noble goal: the search for truth and understanding.
They will be mourned by their families and friends; they
will be mourned by their nation; they will be mourned by the people of
the world; they will be mourned by a Mother Earth that dared send two
of her sons into the unknown.
In their exploration, they stirred the people of the world to
feel as one; in their sacrifice, they bind more tightly the brotherhood
of man.
In ancient days, men looked at stars and saw their heroes in
the constellations. In modern times, we do much the same, but our heroes
are epic men of flesh and blood.
Others will follow, and surely find their way home. Man's
search will not be denied. But these men were the first, and they
will remain the foremost in our hearts.
For every human being who looks up at the moon in the
nights to come will know that there is some corner of another world
that is forever mankind.
PRIOR TO THE PRESIDENT'S STATEMENT:
The President should telephone each of the widows -to-be.
AFTER THE PRESIDENT'S STATEMENT, AT THE POINT WHEN NASA
ENDS COMMUNICATIONS WITH THE MEN:
A clergyman should adopt the same procedure as a burial at
sea, commending their souls to "the deepest of the deep," concluding
with the Lord's Prayer.
```

View file

@ -0,0 +1,10 @@
+++
title = "two hard things in Computer Science"
+++
```txt
There are only two hard things in Computer Science: cache invalidation and
naming things.
-- Phil Karlton
```

View file

@ -0,0 +1,21 @@
+++
title = "visual thinking"
+++
```txt
When I was a kid growing up in Far Rockaway, I had a friend named Bernie Walker.
We both had "labs" at home, and we would do various "experiments".
One time, we were discussing something - we must have been 11 or 12 at the time -
and I said, "But thinking is nothing but talking to yourself inside."
"Oh yeah?" Bernie said. "Do you know the crazy shape of the crankshaft in a car?”
"Yeah, what of it?"
"Good. Now tell me: how did you describe it when you were talking to yourself?"
So I learned from Bernie that thoughts can be visual as well as verbal.
-- Richard Feynman
```