Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f883213931 | |||
| d5e60b5677 | |||
| 78c5ff810a | |||
| c29945b98b | |||
| ad11d9cd06 | |||
| d929ec6967 | |||
| 31c6eaa172 | |||
| 7566b3c279 | |||
| f1c480411b | |||
| 8eb2974aa3 | |||
| 04e43ba524 | |||
| bd96a6cdb5 | |||
| 758e8ed5db | |||
| c70353a78a | |||
| b3ccf9c163 | |||
| 1fad54824d | |||
| 5e279c9176 | |||
| 5770640a2d | |||
| 91e7cf4451 | |||
| faab02438c | |||
| 908ed2e356 | |||
| 8d6eac3272 | |||
| 8f375f5348 | |||
| d92ddb7975 | |||
| 2eaab09328 | |||
| 70dd4cd0a2 | |||
| f1a346ea2a | |||
| 27d9650cb1 |
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Generated Files
|
||||||
|
*.pdf
|
||||||
|
export
|
||||||
|
|
||||||
|
# Working Files
|
||||||
|
build
|
||||||
15
content00-intro.md
Executable file
15
content00-intro.md
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Problem Statement
|
||||||
|
|
||||||
|
> "If it's free, you're the product."
|
||||||
|
>
|
||||||
|
> -- *some guy* [TBD/TODO]
|
||||||
|
|
||||||
|
## Privacy vs Security
|
||||||
|
|
||||||
|
There is a distinct difference between two methods of hardening (making more protected) a device. One focuses more on keeping your metadata safe, and the other your data. Many [TBD/TODO: solutions?] handle both at the same time, such as using a VPN.
|
||||||
|
|
||||||
|
`Privacy` is the first; it means that you would like to prevent others from seeing what you are doing, keeping others' **eyes** off your data. You would like your web browsing experience to be *confidential*. `Privacy` involves using browsers which delete sensitive data, messengers which use `end-to-end encryption` (`E2EE`), etc.
|
||||||
|
|
||||||
|
`Security` is the latter; ensuring that your device and its content are not accessible from others. This is more related to keeping others' **hands** off your data. Having proper `security `prevents your devices from being hacked and your online accounts from being breached. This would be more related to using a `passcode` on your device, having strong passwords, and [TBD/TODO].
|
||||||
67
content05-email.md
Normal file
67
content05-email.md
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Email
|
||||||
|
|
||||||
|
Changing email services is actually much easier than most people think.
|
||||||
|
It's really only a few steps.
|
||||||
|
|
||||||
|
1. Create a new account.
|
||||||
|
2. Set up your old account to forward to the new account.
|
||||||
|
3. Begin using your new account, exclusively using it to read and reply.
|
||||||
|
4. Commit to only using the new account consistently.
|
||||||
|
|
||||||
|
## Recommended Mail Providers
|
||||||
|
|
||||||
|
This article from 2015 lists two of the same hosts that I'd recommend, showing that they've been around for a while and likely aren't going anywhere.
|
||||||
|
|
||||||
|
[How private is your email? Not very | Hacker News : `https://news.ycombinator.com/item?id=9811311`](https://news.ycombinator.com/item?id=9811311)
|
||||||
|
|
||||||
|
### Proton
|
||||||
|
|
||||||
|
A highly popular choice in today's world. When emailing other Proton users the messages are E2EE, meaning that even Proton cannot read the contents.
|
||||||
|
|
||||||
|
The service must be used from their website or app, they do not provide IMAP/SMTP to the general public. Their interface is actually pretty good though, and using it means less setup in the long run.
|
||||||
|
|
||||||
|
They also offer enterprise email hosting solutions if you have your own domain.
|
||||||
|
If only set up for yourself it's actually quite affordable, starting around $60 USD in 2025.
|
||||||
|
|
||||||
|
Other than email, Proton offers a respectable VPN, a 2 factor authenticator (2FA), a password manager, and many other solutions that people tend to look for.
|
||||||
|
|
||||||
|
[Sign-In : `mail.proton.me`](https://account.proton.me/mail)
|
||||||
|
|
||||||
|
[Information : `proton.me/mail`](https://proton.me/mail)
|
||||||
|
|
||||||
|
[Other Services: `proton.me`](https://proton.me)
|
||||||
|
|
||||||
|
### Riseup
|
||||||
|
|
||||||
|
## Mail Forwarding
|
||||||
|
|
||||||
|
Below are links on how to set up mail forwarding in common service providers.
|
||||||
|
|
||||||
|
Proton provides an explanation with easy to follow instructions when migrating from any of the Big Three below.
|
||||||
|
|
||||||
|
[Switching : `proton.me/easyswitch`](https://proton.me/easyswitch)
|
||||||
|
|
||||||
|
### Google: @gmail.com
|
||||||
|
|
||||||
|
[TBD/TODO]
|
||||||
|
|
||||||
|
### Yahoo: @yahoo.com, @myyahoo.com, @ymail.com, @yahoo.*
|
||||||
|
|
||||||
|
1. Log in to your Yahoo Mail account.
|
||||||
|
2. Click the gear icon in the upper-right corner and select "More Settings".
|
||||||
|
3. In the left-hand menu, click on "Mailboxes".
|
||||||
|
4. Under the "Mailbox list," select your primary Yahoo mailbox account.
|
||||||
|
5. Scroll down to the "Forwarding" section and enter the email address where you want your messages to be forwarded.
|
||||||
|
6. Click "Verify." Yahoo will send a verification email to the address you entered.
|
||||||
|
7. Log in to the destination email account, open the verification email from Yahoo, and click the verification link to confirm ownership.
|
||||||
|
8. Return to your Yahoo Mail settings, enable forwarding, select the verified address, and click "Save" to activate the feature.
|
||||||
|
|
||||||
|
[Enable automatic email forwarding in New Yahoo Mail : `https://help.yahoo.com/kb/SLN36684.html`](https://help.yahoo.com/kb/SLN36684.html)
|
||||||
|
|
||||||
|
[Enable automatic email forwarding in Yahoo Mail : `https://help.yahoo.com/kb/auto-forwarding-address-sln29133.html`](https://help.yahoo.com/kb/auto-forwarding-address-sln29133.html)
|
||||||
|
|
||||||
|
### Microsoft: @outlook.com, @hotmail.com, @live.com, @msn.com
|
||||||
|
|
||||||
|
[TBD/TODO]
|
||||||
303
content10-mobile.md
Executable file
303
content10-mobile.md
Executable file
@@ -0,0 +1,303 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Mobile
|
||||||
|
|
||||||
|
`Android` is the only mobile environment covered here. `iOS` is complicit in data harvesting and cannot be liberated. Some may argue that it's secure, and that may be true, but it is most definitely not private.
|
||||||
|
|
||||||
|
There are also `Linux` phones out there, such as the `Pinephone` and `Librem 5`, but they will not be covered in this document. Below are their respective websites if they are of interest to you.
|
||||||
|
|
||||||
|
[`pine64.org/devices/pinephone/`](https://pine64.org/devices/pinephone/)
|
||||||
|
|
||||||
|
[`puri.sm/products/librem-5/`](https://puri.sm/products/librem-5/)
|
||||||
|
|
||||||
|
## Operating Systems
|
||||||
|
|
||||||
|
To have a private and secure mobile experience it will require a degoogled ROM.
|
||||||
|
|
||||||
|
Degoogling a phone has two steps and ***cannot*** be done without wiping the device, so be sure to make a backup.
|
||||||
|
|
||||||
|
1. Install a custom ROM (operating system).
|
||||||
|
- At this point you may choose to root the device or not by flashing `Magisk`.
|
||||||
|
2. Do not install `GApps` (Google Apps).
|
||||||
|
- `microG` can be installed instead and is covered later in this document.
|
||||||
|
|
||||||
|
Alternatively, a degoogled phone can be purchased online or from a friend.
|
||||||
|
|
||||||
|
### LineageOS
|
||||||
|
|
||||||
|
My favorite ROM, and time tested as the successor to `CyanogenMod` which I was using back in the early 2010's. The design is simple and sticks mostly to stock Android with optional extra features. After trying other ROMs I always end up coming back to this one, mostly for the network indicator and seconds which can be displayed in the status bar.
|
||||||
|
|
||||||
|
[`wiki.lineageos.org/devices/`](https://wiki.lineageos.org/devices/)
|
||||||
|
|
||||||
|
### GrapheneOS
|
||||||
|
|
||||||
|
A good ROM, especially if you already have a Pixel device. Their web-based installation process is super quick and easy once you get your computer and web browser to recognize your device. An admirable feature of this ROM is asking at install time whether an app should be allowed network access. This can also be an annoyance. ;)
|
||||||
|
|
||||||
|
[`grapheneos.org/install/web`](https://grapheneos.org/install/web)
|
||||||
|
|
||||||
|
### CalyxOS
|
||||||
|
|
||||||
|
One of the best ROM installation experiences I have ever had. It suggests a list of apps as alternatives to get you [TBD: on the ground running?] much faster. The supported device list is larger than Graphene's and smaller than Lineage's.
|
||||||
|
|
||||||
|
[`calyxos.org/install/`](https://calyxos.org/install/)
|
||||||
|
|
||||||
|
## microG
|
||||||
|
|
||||||
|
An alternative to Google Play Services which mimics the proprietary services Google provides without actually hitting their endpoints [TBD/TODO SOURCE?].
|
||||||
|
|
||||||
|
This is flashed after a custom ROM is installed and can be added later if desired without wiping your device. [TBD/TODO Once it is installed, it cannot be removed?.]
|
||||||
|
|
||||||
|
Useful if you need to use proprietary apps which depend on non-free networks.
|
||||||
|
|
||||||
|
[TBD/TODO app location]
|
||||||
|
|
||||||
|
## App Stores
|
||||||
|
|
||||||
|
There are many ways to install an application (app) on Android, including downloading the APK (TBD/TODO) manually and running it. This section covers the most common and practical methods.
|
||||||
|
|
||||||
|
### F-Droid
|
||||||
|
|
||||||
|
Open-source app store hosting open-sourse apps! Easy to use and helps to manage any
|
||||||
|
|
||||||
|
Table: F-Droid \label{stores-fdroid}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
### Obtainium
|
||||||
|
|
||||||
|
Not an app store in itself, but an app manager. Add the location of the APKs you commonly use and it will manage installing and updating them as needed. The configuration can be copied between devices, and makes wiing and restoring a phone much quicker. It does ***not*** handle backing up local app data though, only installing the applications.
|
||||||
|
|
||||||
|
If any apps listed in this document can be used with Obtaiumiun, a URL to its APKs (installation files) will be provided so that it may be added to the app manager.
|
||||||
|
|
||||||
|
Table: Obtainium \label{stores-obtainium}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
For a video explanation of using Obtainium, please see this:
|
||||||
|
|
||||||
|
[`TBD/TODO Cahlen's URL`](https://cahlen.org/obtainium)
|
||||||
|
|
||||||
|
### Aurora Store
|
||||||
|
|
||||||
|
An open source and anonymous front end for the Google Play Store. This allows installing normal apps like any other Android device can. Please be aware that if you did not opt for microG that some apps installed from here may fail to work, such as Planet Fitness or Whatsapp.
|
||||||
|
|
||||||
|
If you use this store, be sure to blacklist any apps which have been installed via F-Droid or Obtainium. Otherwise if the app is updated from this store it may prevent the other app stores from keeping it up to date properly.
|
||||||
|
|
||||||
|
Table: Aurora Store \label{stores-aurora}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO ???] |
|
||||||
|
|
||||||
|
## Navigation
|
||||||
|
|
||||||
|
For a list of definitions used in this section, please see see table \ref{} below.
|
||||||
|
|
||||||
|
Table: Common Abbreviations \label{nav-abbr}
|
||||||
|
|
||||||
|
| Abbreviation | Meaning | Definition |
|
||||||
|
| -- | --- | ------- |
|
||||||
|
| OSM | Open Street Maps | Online database of open source map elements. |
|
||||||
|
| POI | Point of Interest | A spot on the map, such as a park or business. |
|
||||||
|
|
||||||
|
### Magic Earth
|
||||||
|
|
||||||
|
While not open source, this is the recommendation for those who simply want a new map app without much of a learning curve. It uses OSM as well as a few other sources [TBD/TODO which ones?]. The user interfac is very simple and clean.
|
||||||
|
|
||||||
|
This is the best option of you are navigationg to addresses, such as *123 Oak Street*, as OSM alone does not have a complete list of building numbers.
|
||||||
|
|
||||||
|
Table: Magic Earth Sources \label{nav-magic-earth}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | N/A |
|
||||||
|
| F-Droid | N/A |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
### Organic Maps
|
||||||
|
|
||||||
|
Simple app with a few moderate and advanced features.
|
||||||
|
|
||||||
|
This is the best option if you want a simple experience while purely using OSM data.
|
||||||
|
|
||||||
|
Table: Organic Maps \label{nav-organic}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
### OSMAnd[TBD/TODO: +]
|
||||||
|
|
||||||
|
Quite an advanced application. This app is even worse at navigating to building numbers, as it seems to have a preference for finding intersections. Searching for POIs.
|
||||||
|
|
||||||
|
Table: Open Street Maps Android \label{nav-osmand}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | Not Free Here |
|
||||||
|
|
||||||
|
## Map Editors
|
||||||
|
|
||||||
|
There are mobile apps availabl for adding to and editing Open Streep Maps, which is what all of the navigation apps above are based on.
|
||||||
|
|
||||||
|
### StreetComplete
|
||||||
|
|
||||||
|
Probably the most fun on the list, this app creates "quests" for completing information in your immediate areas.
|
||||||
|
|
||||||
|
Obtainium URL : [`github.com/streetcomplete/StreetComplete/releases`](https://github.com/streetcomplete/StreetComplete/releases)
|
||||||
|
|
||||||
|
F-Droid : [`f-droid.org/packages/de.westnordost.streetcomplete`](https://f-droid.org/packages/de.westnordost.streetcomplete/)
|
||||||
|
|
||||||
|
Aurora : [`play.google.com/store/apps/details?id=de.westnordost.streetcomplete`](https://play.google.com/store/apps/details?id=de.westnordost.streetcomplete)
|
||||||
|
|
||||||
|
Table: StreetComplete \label{edit-street-complete}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [`github.com/streetcomplete/StreetComplete/releases`](https://github.com/streetcomplete/StreetComplete/releases) |
|
||||||
|
| F-Droid | [`f-droid.org/packages/de.westnordost.streetcomplete`](https://f-droid.org/packages/de.westnordost.streetcomplete/) |
|
||||||
|
| Aurora | [`play.google.com/store/apps/details?id=de.westnordost.streetcomplete`](https://play.google.com/store/apps/details?id=de.westnordost.streetcomplete) |
|
||||||
|
|
||||||
|
### Organic Maps
|
||||||
|
|
||||||
|
This navigation app also allows adding and editing businesses! It is a very easy to use interface with minimal fields. Advanced level editing is not possible, such as adding the Suite# to an address or tagging a house number to a building.
|
||||||
|
|
||||||
|
Table: Organic Maps (again!) \label{edit-organic}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
### Every Door
|
||||||
|
|
||||||
|
A more advanced editor, only handles points though, no drawing of ways or regions.
|
||||||
|
|
||||||
|
Table: Every Door \label{edit-every-door}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
### Vespucci
|
||||||
|
|
||||||
|
Fully functional map editor, allowing roads to be mapped and regions to be added. Can move locations around as well, which is not as easy or even possible in most other mobile editors.
|
||||||
|
|
||||||
|
Table: Vespucci \label{edit-vespucci}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
## Messengers
|
||||||
|
|
||||||
|
Apps are rated on three concepts:
|
||||||
|
|
||||||
|
1. End-to-end Encryption (E2EE)
|
||||||
|
1. Private Conversation List
|
||||||
|
1. No "Know Your Customer" (KYC)
|
||||||
|
|
||||||
|
### Simplex
|
||||||
|
|
||||||
|
- [x] End-to-end Encryption
|
||||||
|
- [x] Private Conversation List
|
||||||
|
- [x] No "Know Your Customer" (KYC)
|
||||||
|
|
||||||
|
Has `E2EE`, does not require a phone number, and who you are contacting is `private`.
|
||||||
|
|
||||||
|
May be considered difficult to use by some users, but as of 2025 it has made large strides towards become more user-friendly compared to back in 2023.
|
||||||
|
|
||||||
|
Somewhat small user base, not very well known.
|
||||||
|
|
||||||
|
Table: Simplex \label{msg-simplex}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
### Signal
|
||||||
|
|
||||||
|
- [x] End-to-end Encryption
|
||||||
|
- [ ] Private Conversation List
|
||||||
|
- [ ] No "Know Your Customer" (KYC)
|
||||||
|
|
||||||
|
Requires a phone number. Service provider may snoop at who is contacting who, and may provide this information to inquirers, which would be enough to build webs of influence that could get someone convicted. Otherwise, message content is `private` and `secure`.
|
||||||
|
|
||||||
|
Pretty well known. You likely already know people using this!
|
||||||
|
|
||||||
|
Table: Signal \label{msg-signal}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
There's also an alternative frontend to the `Signal` protocol which is said to be more `secure`.
|
||||||
|
|
||||||
|
Table: Molly \label{msg-molly}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
### Telegram
|
||||||
|
|
||||||
|
[TBD/TODO is there an option other than blank box or x'd box for E2EE here?]
|
||||||
|
|
||||||
|
- [ ] End-to-end Encryption
|
||||||
|
- [ ] Private Conversation List
|
||||||
|
- [ ] No "Know Your Customer" (KYC)
|
||||||
|
|
||||||
|
This app does not use `E2EE` by default, you must initiate a Secret Chat for that, and unfortunately that is only only allows 1-on-1 conversations. Normal chats and group chats are server-side encrypted, meaning the service provider could decrypt message content, so they should not be considered `private`.
|
||||||
|
|
||||||
|
Very well known, large user base.
|
||||||
|
|
||||||
|
Table: Forkgram \label{msg-forkgram}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | [TBD/TODO] |
|
||||||
|
| F-Droid | [TBD/TODO] |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
Table: Telegram Official \label{msg-telegram}
|
||||||
|
|
||||||
|
| App Source | URL |
|
||||||
|
| -- | --------- |
|
||||||
|
| Obtainium URL | N/A |
|
||||||
|
| F-Droid | N/A |
|
||||||
|
| Aurora | [TBD/TODO] |
|
||||||
|
|
||||||
|
## Document Editors
|
||||||
|
|
||||||
|
### Collabora
|
||||||
|
|
||||||
|
## Text Editors
|
||||||
|
|
||||||
|
### Markor
|
||||||
|
|
||||||
|
### Squircle CE
|
||||||
27
content20-desktop.md
Executable file
27
content20-desktop.md
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Desktop
|
||||||
|
|
||||||
|
## Operating Systems
|
||||||
|
|
||||||
|
### Debian / Ubuntu / Mint / etc
|
||||||
|
|
||||||
|
### Fedora / Red Hat
|
||||||
|
|
||||||
|
### Arch / Manjaro
|
||||||
|
|
||||||
|
## Cloud Storage
|
||||||
|
|
||||||
|
### Nextcloud
|
||||||
|
|
||||||
|
## Office Suites
|
||||||
|
|
||||||
|
### LibreOffice
|
||||||
|
|
||||||
|
### Collabora
|
||||||
|
|
||||||
|
### Collabora (via Nextcloud)
|
||||||
|
|
||||||
|
# Offline Solutions
|
||||||
|
|
||||||
|
## Pen & Paper!
|
||||||
9
content30-server.md
Executable file
9
content30-server.md
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Server
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
## Office
|
||||||
|
|
||||||
|
### Nextcloud
|
||||||
16
content70-offline.md
Executable file
16
content70-offline.md
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Offline Solutions
|
||||||
|
|
||||||
|
There are also alternatives to consider that avoid using electronics completely!
|
||||||
|
|
||||||
|
## Pen & Paper
|
||||||
|
|
||||||
|
A small notepad and a set of good pens can cost under $5 USD.
|
||||||
|
|
||||||
|
Some may consider this wasteful, but at the end of the day, it saves:
|
||||||
|
- time from the lack of distractions,
|
||||||
|
- energy since it is easier to focus on, and
|
||||||
|
- electricity since devices need power to run.
|
||||||
|
|
||||||
|
Even though your electronic may not waste any physical resources, it requires power to run, which needs to be fueled somehow.
|
||||||
11
content90-conclusion.md
Executable file
11
content90-conclusion.md
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
|
||||||
|
# Conclusion
|
||||||
|
|
||||||
|
Making the jump to alternative technologies is not something which happens overnight.
|
||||||
|
|
||||||
|
Leaving large platforms such as Google's suite can take weeks if not months to completely migrate from.
|
||||||
|
The important part is that progress is being made.
|
||||||
|
Eventually it will happen in full if the commitment is taken seriously.
|
||||||
|
|
||||||
|
Then once it's over, you're done! Other privacy and security minded people will respect that you've taken the time to improve your tech stack while respecting their time and data.
|
||||||
155
convert.sh
Executable file
155
convert.sh
Executable file
@@ -0,0 +1,155 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 2024-03-06 Hyperling
|
||||||
|
# PanDoc Usage: https://pandoc.org/MANUAL.html#general-writer-options
|
||||||
|
|
||||||
|
## Setup ##
|
||||||
|
|
||||||
|
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
|
||||||
|
DIR="`pwd`"
|
||||||
|
echo "$DIR"
|
||||||
|
|
||||||
|
date
|
||||||
|
|
||||||
|
|
||||||
|
## Global Variables ##
|
||||||
|
|
||||||
|
header="header.md"
|
||||||
|
work_dir="$DIR/build"
|
||||||
|
export_dir="$DIR/export"
|
||||||
|
ebook_prefix="TechnologyAlternatives"
|
||||||
|
|
||||||
|
|
||||||
|
## Functions ##
|
||||||
|
|
||||||
|
function log {
|
||||||
|
echo -e "*** $1 ***"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Start Log Section
|
||||||
|
function logs {
|
||||||
|
echo -e "\n***** $1 *****"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Finish Log Section
|
||||||
|
function logf {
|
||||||
|
echo -e "***** $1 *****\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copy a file into another file.
|
||||||
|
function insert {
|
||||||
|
input="$1"
|
||||||
|
ebook="$2"
|
||||||
|
log "Adding '$input' to '$ebook'."
|
||||||
|
cat "$input" >> "$ebook"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Compile all the snippets into one Markdown file.
|
||||||
|
function combine {
|
||||||
|
ebook="$1.md"
|
||||||
|
logs "Combining documents to create '$ebook'."
|
||||||
|
shift
|
||||||
|
for addition in "$@"; do
|
||||||
|
insert "$addition" "$ebook"
|
||||||
|
done
|
||||||
|
logf "Done!"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create the PDF and booklets them move them back to the project directory.
|
||||||
|
function convert {
|
||||||
|
source="$1"
|
||||||
|
version="$2"
|
||||||
|
|
||||||
|
out_dir="$export_dir"
|
||||||
|
ebook="${source//.md/.pdf}"
|
||||||
|
|
||||||
|
logs "Creating '$ebook' from '$source'."
|
||||||
|
|
||||||
|
book="${ebook//.pdf/-book.pdf}"
|
||||||
|
booklet="${ebook//.pdf/-Booklet.pdf}"
|
||||||
|
rotated="${ebook//.pdf/-Rotated.pdf}"
|
||||||
|
|
||||||
|
log "Set VERSION to '$version'."
|
||||||
|
if [[ -z "$version" ]]; then
|
||||||
|
log "Version is null, removing the extra space."
|
||||||
|
space=" "
|
||||||
|
else
|
||||||
|
space=""
|
||||||
|
fi
|
||||||
|
sed -i "s/$space{VERSION}/$version/g" "$source"
|
||||||
|
|
||||||
|
log "Compiling '$source' to '$ebook'."
|
||||||
|
pandoc "$source" \
|
||||||
|
-s -N --toc-depth=4 \
|
||||||
|
-o "$ebook" \
|
||||||
|
>/dev/null
|
||||||
|
status=$?
|
||||||
|
|
||||||
|
log "Creating booklet of '$ebook'."
|
||||||
|
pdfbook2 -n "$ebook" >/dev/null
|
||||||
|
mv -v "$book" "$booklet"
|
||||||
|
|
||||||
|
log "Creating rotated booklet of '$ebook'."
|
||||||
|
pdfbook2 -ns "$ebook" >/dev/null
|
||||||
|
mv -v "$book" "$rotated"
|
||||||
|
|
||||||
|
log "Moving '$ebook' and its booklets to '$out_dir'."
|
||||||
|
mkdir -p "$out_dir"
|
||||||
|
mv -v *.pdf "$out_dir"/
|
||||||
|
|
||||||
|
logf "Complete!"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## Cleanup ##
|
||||||
|
|
||||||
|
logs "Clean PDFs"
|
||||||
|
echo "Old:"
|
||||||
|
find "$DIR" -name "*".pdf -exec du -h {} \; -delete | sort -h
|
||||||
|
|
||||||
|
logs "Clean working directory '$work_dir'"
|
||||||
|
if [[ -e "$work_dir" ]]; then
|
||||||
|
rm -rv "$work_dir"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
## Main ##
|
||||||
|
|
||||||
|
mkdir -pv "$work_dir"
|
||||||
|
cd "$work_dir"
|
||||||
|
cp -v "$DIR/$header" ./
|
||||||
|
sed -i "s/{REVISION_DATE}/`date +'%Y-%m-%d'`/g" "$header"
|
||||||
|
|
||||||
|
# Primary, All In One (AIO)
|
||||||
|
name="$ebook_prefix""_AllPlatforms"
|
||||||
|
combine "$name" "$header" `ls "$DIR"/content*.md`
|
||||||
|
convert "$name.md" ""
|
||||||
|
|
||||||
|
# Secondary, Mobile
|
||||||
|
name="$ebook_prefix""_MobileOnly"
|
||||||
|
combine "$name" "$header" "$DIR/content0"* "$DIR/content1"* \
|
||||||
|
"$DIR/content7"* "$DIR/content9"*
|
||||||
|
convert "$name.md" "(Mobile Only)"
|
||||||
|
|
||||||
|
# Secondary, Desktop
|
||||||
|
name="$ebook_prefix""_DesktopOnly"
|
||||||
|
combine "$name" "$header" "$DIR/content0"* "$DIR/content2"* \
|
||||||
|
"$DIR/content7"* "$DIR/content9"*
|
||||||
|
convert "$name.md" "(Desktop Only)"
|
||||||
|
|
||||||
|
# Secondary, Server
|
||||||
|
name="$ebook_prefix""_ServerOnly"
|
||||||
|
combine "$name" "$header" "$DIR/content0"* "$DIR/content3"* \
|
||||||
|
"$DIR/content7"* "$DIR/content9"*
|
||||||
|
convert "$name.md" "(Server Only)"
|
||||||
|
|
||||||
|
|
||||||
|
## Finish! ##
|
||||||
|
|
||||||
|
cd "$DIR"
|
||||||
|
|
||||||
|
echo "New:"
|
||||||
|
find "$DIR" -name "*".pdf -exec du -h {} \; | sort -h
|
||||||
|
|
||||||
|
date
|
||||||
|
|
||||||
|
exit 0
|
||||||
51
header.md
Executable file
51
header.md
Executable file
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
# Font sizes can only be 10pt-12pt (https://pandoc.org/MANUAL.html#fonts)
|
||||||
|
fontsize: "12pt"
|
||||||
|
geometry: "margin=0.5in"
|
||||||
|
|
||||||
|
#title-meta: "Template Project"
|
||||||
|
date-meta: "\\date{\\today}"
|
||||||
|
author-meta: 'Chad Michael "Hyperling" Greenwood'
|
||||||
|
subject: 'Big Tech Alternatives {VERSION} by Chad Michael "Hyperling" Greenwood'
|
||||||
|
|
||||||
|
title: "Big Tech Alternatives {VERSION}"
|
||||||
|
subtitle: "*Projects and services for avoiding data harvesting and technocracy.*"
|
||||||
|
author: 'by `Chad Michael "Hyperling" Greenwood`'
|
||||||
|
date: "Last Revised {REVISION_DATE}"
|
||||||
|
|
||||||
|
keywords:
|
||||||
|
- ebook
|
||||||
|
- hyperling
|
||||||
|
- hypervegan
|
||||||
|
- chad michael greenwood
|
||||||
|
- technology
|
||||||
|
- big tech
|
||||||
|
- android
|
||||||
|
- ios
|
||||||
|
- iphone
|
||||||
|
- samsung
|
||||||
|
- motorola
|
||||||
|
- google
|
||||||
|
- lineageos
|
||||||
|
- grapheneos
|
||||||
|
- calyxos
|
||||||
|
- degoogle
|
||||||
|
- microg
|
||||||
|
- root
|
||||||
|
- hack
|
||||||
|
- crack
|
||||||
|
- privacy
|
||||||
|
- private
|
||||||
|
- security
|
||||||
|
- secure
|
||||||
|
|
||||||
|
comment:
|
||||||
|
- Unsure how to comment the page numbering commands below. Undecided on using them.
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
\pagenumbering{roman}
|
||||||
|
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
|
\pagenumbering{arabic}
|
||||||
8
install.sh
Executable file
8
install.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 2024-03-06 Hyperling
|
||||||
|
|
||||||
|
sudo apt install pandoc \
|
||||||
|
texlive-latex-base texlive-fonts-recommended \
|
||||||
|
texlive-extra-utils texlive-latex-extra
|
||||||
|
|
||||||
|
exit $?
|
||||||
Reference in New Issue
Block a user