1
0
mirror of https://github.com/kirsle/kirsle.net synced 2024-12-04 14:39:28 +00:00

Latest web files check-in

This commit is contained in:
Noah 2020-08-11 19:59:33 +00:00
parent 4d9cad5b41
commit 719766b933
23 changed files with 1841 additions and 22 deletions

View File

@ -19,7 +19,7 @@
<!-- Kirsle.net Flare -->
<link rel="stylesheet" type="text/css" href="/flare/ui.css">
<link rel="stylesheet" type="text/css" href="/solar/monokai.css">
<link rel="stylesheet" type="text/css" href="/solar/gruvbox.css">
<link rel="stylesheet" type="text/css" href="/solar/vim-syntax.css">
<link rel="alternate" type="application/rss+xml" title="Kirsle's RSS Feed" href="/blog.rss">
@ -31,7 +31,7 @@
<a href="#navbar" class="btn btn-primary"><i class="fas fa-bars"></i></a>
</div>
<div class="brand d-lg-none">
<div class="brand d-md-none">
<a href="/">
<img src="/flare/cjk-48.png" width="48" height="48" alt="Kirsle.net logo">
Kirsle.net
@ -43,7 +43,7 @@
<div class="container-fluid">
<div class="row">
<div class="order-1 order-lg-12 col-12 col-lg-10 col-xl-8">
<div class="order-1 order-md-12 col-12 col-md-9 col-lg-10 col-xl-9" style="min-width: 0; max-width: 1280px">
<div class="content-panel mb-4">
{{ if .SetupNeeded }}
<div class="alert alert-success">
@ -81,7 +81,7 @@
</div>
</div>
<div id="navbar" class="nav-panel order-12 order-lg-1 col-12 col-lg-2">
<div id="navbar" class="nav-panel order-12 order-md-1 col-12 col-md-3 col-lg-2">
<div class="brand">
<a href="/">
<img src="/flare/cjk-48.png" width="48" height="48" alt="Kirsle.net logo">
@ -191,6 +191,22 @@
});
</script>
<!-- Matomo -->
<script type="text/javascript">
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//svc.ckir.net/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
{{ template "scripts" }}
</body>

View File

@ -3,6 +3,10 @@
<h1>About Me</h1>
<blockquote>
<em>Updated: Aug 11 2020</em>
</blockquote>
<div class="row">
<div class="col-12 col-sm-2 markdown">
<img src="https://www.kirsle.net/static/photos/ff7ec4f5.jpg" class="img-responsive portrait" alt="Kirsle"><p>
@ -14,13 +18,36 @@
<h2 class="mt-0">Hello world!</h2>
<p>My name is <strong>Noah</strong> and this is my website, where I primarily keep
my blog. I'm a 30 year-old software engineer living in Los Angeles.</p>
my blog. I'm a 32 year-old software engineer from Portland, OR (previously Los
Angeles for about a decade).</p>
<p>My interests include programming, creative writing, various forms of what could
be loosely defined as "art," including some dabbling with 3D modeling and
Flash animations. I'm a "high functioning introvert," and when I manage to
get out of the house, I like to go hiking with my dog and my partner. For
several years I could be found at Disneyland every couple of weekends.</p>
<p>I've been interested in computers my whole life ever since I was given an
old Tandy MS-DOS machine running Windows 3.1 back when I was in kindergarten.
I taught myself how to create web pages when I was 12, how to program in Perl
by 14, and I've been in love with software development ever since! It's the
closest thing to magick in an otherwise material universe; if you can imagine
it, you can write code to do it!</p>
<p>I'm a 90's kid and a "<a href="https://en.wikipedia.org/wiki/Netizen" target="_blank">netizen</a>"
of the web from the early 2000s, back when the Internet was simple and social
media didn't exist. I purposely designed my website to resemble the good old
classic sites from back then: with a visual wallpaper and lots of color. Only,
now I make sites while keeping them compliant with modern HTML standards and
friendly to view on mobile devices!</p>
<p>Besides computers, I have a pretty wide array of other interests in my
personal life; I'm a "jack of all trades, master of some" and like to dabble
here or there. I love to write and create various forms of what could be loosely
defined as "art." A long while ago I played with <a href="/rendering">3D modeling</a>
and <a href="/flash">Flash animations</a>. I like to learn about all forms of
science, delve into spiritual topics and explore the nature of the universe.
I'm into nudism and nude photography, videogames and board games, hiking
and camping, <a href="https://www.rivescript.com/" target="_blank">chat bots</a>,
and discovering new things.</p>
<p>I'm a "high functioning introvert," where I can go out and socialize from
time to time, and fool people into thinking I'm actually an extravert, but
then I need my alone time to recharge my batteries.</p>
<h3>Music Taste</h3>
@ -65,12 +92,6 @@
and the little bits of JavaScript I add are to enhance the experience slightly.
My website works fine with all scripts disabled.</p>
<p>I somewhat miss the earlier Internet days when websites had background
images rather than racing to the bottom with simplicity. My website has been described as
"hipster," but I like it this way, and it's
<a href="https://validator.w3.org/check?uri=referer">HTML5 standards compliant</a>.
Usually.</p>
<h3>Privacy</h3>
In this post-<a href="https://en.wikipedia.org/wiki/Edward_Snowden">Snowden</a>

42
www/blog/archive.gohtml Normal file
View File

@ -0,0 +1,42 @@
{{ define "title" }}Archive{{ end }}
{{ define "content" }}
<h1>Archive</h1>
{{ $thumbs := .Data.Thumbnails }}
{{ range .Data.Archive }}
<div class="card mb-4">
<div class="card-header">
<h3>{{ .Date.Format "January, 2006" }}</h3>
</div>
<div class="card-body">
<div class="row">
{{ range .Posts }}
{{ $thumb := index $thumbs .ID }}
<div class="col-12 col-sm-6 col-md-4 col-lg-3 mb-4">
<div class="card bg-secondary"
style="height: auto; min-height: 150px;
{{ if $thumb }}background-image: url({{ $thumb }}); background-size: cover{{ end }}
"
title="Tags: {{ range .Tags }}#{{ . }} {{ end }}">
<span class="p-1" style="background-color: RGBA(0, 0, 0, 0.8)">
<a href="/{{ .Fragment }}">{{ .Title }}</a><br>
<small class="blog-meta">
{{ .Created.Format "Jan 02 2006" }}
{{ if ne .Privacy "public" }}
<span class="blog-{{ .Privacy }}">[{{ .Privacy }}]</span>
{{ end }}
</small>
</span>
</div>
</div>
{{ end }}
</div>
</div>
</div>
{{ end }}
{{ end }}

View File

@ -569,6 +569,7 @@ Palette Town. This is what happened...
ideas, feel free to leave me a comment about them. :)
<p>
{{ RenderComments "Sequence Breaking Pokémon FireRed" "article-firered" }}
{{ RenderComments .Request "Sequence Breaking Pokémon FireRed" "article-firered" }}
{{ end }}

View File

@ -113,7 +113,7 @@ blockquote {
.mobile-nav {
display: none;
}
@media (max-width: 990px) {
@media (max-width: 767px) {
body {
background-image: url("/flare/blue-dust.png");
background-attachment: scroll;
@ -361,7 +361,7 @@ ul.blog-categories li:last-child:after {
color: inherit;
}
@media (max-width: 990px) {
@media (max-width: 767px) {
.content-panel {
margin-left: 0;
margin-top: 20px;

95
www/privacy.gohtml Normal file
View File

@ -0,0 +1,95 @@
{{ define "title" }}Privacy Policy{{ end }}
{{ define "content" }}
<h1>Privacy Policy</h1>
<p>
This page explains some of the privacy features on this website. In
my personal life I'm a privacy and security nut and run adblockers
and privacy guard add-ons in my web browsers and I respect <em>your</em>
privacy too.
</p>
<p>
Two privacy-related aspects of this site are as follows:
</p>
<ol>
<li><a href="#matomo">Matomo Web Analytics</a> is an open source,
self-hosted web analytics tool that I use to understand how my
visitors navigate my site and where they're coming from. You
can safely <a href="#matomo-optout">opt out</a> and your web
browser's privacy settings are respected <em>by default</em>.
</li>
<li><a href="#comments">Comment threads</a> on my blog <em>MAY</em>
be subscribed to by email; this is an optional feature and
unsubscribing is easy.</li>
</ol>
<hr>
<h2 id="matomo">Matomo Web Analytics (Self-Hosted)</h2>
<p>
I'm currently using the open source analytics tool
<a href="https://matomo.org/" target="_blank">Matomo</a> to
learn about how my site is being used and where my visitors are
coming from. This tool is hosted on the same server as my blog
and is using my own database.
</p>
<p>
My Matomo installation anonymizes visitor IP addresses and respects
the <a href="https://en.wikipedia.org/wiki/Do_Not_Track" target="_blank">
Do Not Track (DNT)</a> setting in your web browser. If you use a
browser add-on such as Privacy Badger, Matomo does not track any
information about your visits, as Privacy Badger will enable the
DNT flag automatically.
</p>
<h3 id="matomo-optout">Matomo Analytics Opt-Out</h3>
<iframe
style="border: 0; height: 200px; width: 600px;"
src="https://svc.ckir.net/index.php?module=CoreAdminHome&action=optOut&language=en&backgroundColor=000000&fontColor=ffffff&fontSize=11pt&fontFamily=Verdana"
></iframe>
<hr>
<h1 id="comments">Comments and Email Subscriptions</h1>
<p>
When you leave a comment on my blog, you may <em>optionally</em>
enter your email address as well. If so, your email address is used
for two things:
</p>
<ul>
<li>If you have a <a href="https://gravatar.com/" target="_blank">Gravatar</a>,
it can be displayed alongside your comment.</li>
<li>You may subscribe to get email notifications when future comments are
added to the same page you just commented on (opt-in).</li>
</ul>
<p>
Your email address is not displayed to other visitors of the site and
I will not share it with others. You're also completely free to never
tell me your email address in the first place!
</p>
<p>
Also, the name and email address you most recently entered into a
comment form or Contact Me page is <strong>cached</strong> in a local
session cookie that stays with your web browser (not on the server side).
</p>
<h2>Unsubscribe from Comment Threads</h2>
<p>
To unsubscribe from individual comment threads, you may click the link
in the email notification to do so. You may also unsubscribe from
<strong>ALL</strong> comment threads site-wide by visiting the
<a href="/comments/subscription">Comment Subscription</a> page.
</p>
{{ end }}

53
www/solar/gruvbox.css Normal file
View File

@ -0,0 +1,53 @@
/* Gruvbox highlight theme, converted from
* https://tmtheme-editor.herokuapp.com/#!/editor/theme/Gruvbox
* Using: https://github.com/davinche/pygments-from-tmtheme
*/
.highlight { background-color: #282828; color: #fdf4c1aa; }
.highlight .ge { font-style: italic; }
.highlight .gs { font-weight: bold; }
.highlight .c { color: #928374; font-style: italic; }
.highlight .cp { color: #928374; font-style: italic; }
.highlight .c1 { color: #928374; font-style: italic; }
.highlight .cs { color: #928374; font-style: italic; }
.highlight .cm { color: #928374; font-style: italic; }
.highlight .m { color: #fdf4c1; }
.highlight .mf { color: #fdf4c1; }
.highlight .mi { color: #fdf4c1; }
.highlight .mo { color: #fdf4c1; }
.highlight .se { color: #fdf4c1; }
.highlight .kc { color: #fdf4c1; }
.highlight .k { color: #fa5c4b; }
.highlight .kd { color: #fa5c4b; }
.highlight .kn { color: #fa5c4b; }
.highlight .kt { color: #fabd2f; }
.highlight .s { color: #b8bb26; }
.highlight .sb { color: #b8bb26; }
.highlight .sc { color: #b8bb26; }
.highlight .sd { color: #b8bb26; }
.highlight .s2 { color: #b8bb26; }
.highlight .sh { color: #b8bb26; }
.highlight .si { color: #b8bb26; }
.highlight .sx { color: #b8bb26; }
.highlight .sr { color: #b8bb26; }
.highlight .s1 { color: #b8bb26; }
.highlight .ss { color: #b8bb26; }
.highlight .bp { color: #fdf4c1; }
.highlight .nc { color: #8ec07c; }
.highlight .no { color: #d3869b; }
.highlight .nt { color: #8ec07c; font-weight: bold; }
.highlight .nv { color: #fdf4c1; }
.highlight .vc { color: #fdf4c1; }
.highlight .vg { color: #fdf4c1; }
.highlight .vi { color: #fdf4c1; }
.highlight .ow { color: #fe8019; }
.highlight .o { color: #fe8019; }
.highlight .n { color: #fdf4c1aa; }
.highlight .nl { color: #fdf4c1aa; }
.highlight .nn { color: #fdf4c1aa; }
.highlight .nx { color: #fdf4c1aa; }
.highlight .bp { color: #fdf4c1; }
.highlight .p { color: #fdf4c1aa; }
/* Kirsle.net overrides */
.highlight { background-color: transparent }

View File

@ -7,6 +7,7 @@ corporations over the years.
* [Cisco](#cisco)
* [Facebook](#facebook)
* [Symantec](#symantec)
* [TikTok](#tiktok)
---
@ -58,6 +59,8 @@ entire career in tech.
Facebook has been having a really bad 2018 since the Cambridge Analytica scandal began.
Only started collecting links here 12/6/18, needs some backfilling.
First are some questionable choices by Facebook management:
* [Facebook accused of striking 'secret deals over user data' - BBC News](https://www.bbc.com/news/technology-46456695) leaked internal exec emails about their purposefully privacy-infringing business practices.
* Allowed some companies to retain full access to users' friends' data, *even after* closing the general privacy hole in 2014/2015 as related to the Cambridge Analytica leaks.
* They were aware the Android permission change to log users' call and text history *would be controversial* before they even launched it, and purposefully directed users attention away from the feature.
@ -69,6 +72,11 @@ Only started collecting links here 12/6/18, needs some backfilling.
* [As Facebook Raised a Privacy Wall, It Carved an Opening for Tech Giants](https://www.nytimes.com/2018/12/18/technology/facebook-privacy.html) (NY Times) "Facebook allowed Microsofts Bing search engine to see the names of virtually all Facebook users friends without consent, the records show, and gave Netflix and Spotify the ability to read Facebook users private messages."
* Non-NY Times article: [Facebook let tons of companies get info about you, including Amazon, Netflix, and Microsoft](https://www.cnbc.com/2018/12/19/facebook-gave-amazon-microsoft-netflix-special-access-to-data-nyt.html) (CNBC)
Some bad things that Facebook's platform allowed for (not necessarily the fault
of the Facebook company, but noteworthy nonetheless):
* [A Genocide Incited on Facebook, with posts from Myanmar's Military](https://www.nytimes.com/2018/10/15/technology/myanmar-facebook-genocide.html) (NY Times)
# Symantec
[Symantec](https://www.symantec.com/) is a security company most known for
@ -77,3 +85,60 @@ to **shut the fuck up** and pray that nobody ever finds out about it.
* [Top Voting Machine Vendor Admits It Installed Remote-Access Software on Systems Sold to States](https://motherboard.vice.com/en_us/article/mb4ezy/top-voting-machine-vendor-admits-it-installed-remote-access-software-on-systems-sold-to-states) — In 2006 hackers stole the source code to **pcAnywhere** and the public did not learn of this until 2012, when hackers posted the source code online. Only then did Symantec admit that *they knew about it the entire time.* Not only did this play a role in hacked voting machines but it compromised the security **of all customers of the pcAnywhere software.**
* [Google takes Symantec to the woodshed for mis-issuing 30,000 HTTPS certs](https://arstechnica.com/information-technology/2017/03/google-takes-symantec-to-the-woodshed-for-mis-issuing-30000-https-certs/) — Symantec has **repeatedly** had problems with this; the result is that Symantec has lost all trust by browser vendors and has been revoked from the trusted Certificate Authority Store on Chrome and Firefox. SSL providers are supposed to be among the **most trusted** companies because the security of the Internet rests in their hands. If hackers can trick Symantec into giving them an SSL cert for `google.com` then countries like Iran can [intercept private communications putting lives in real danger](https://en.wikipedia.org/wiki/DigiNotar).
# TikTok
Chinese propaganda social network. I hear buzz about all its problems here and
there on Reddit, here is a comment by [u/surprisedduck26](https://www.reddit.com/r/worldnews/comments/g8yqbw/chinese_internet_users_who_uploaded_coronavirus/forhdwh?utm_source=share&utm_medium=web2x) that sums it up nicely in one place:
> I'm curious why people are supporting the TikTok platform in any way when you could easily just use your phone camera.
>
> I was ban from the reddit sub r/TikTok for posting a single comment about how TikTok censors Tiananmen and Tibet references. Sure would be a shame if others knew about it. <https://www.reddit.com/r/news/comments/d948n2/tiktok_censors_references_to_tiananmen_and_tibet?sort=confidence>
>
> But who cares about that right? It's not like...
>
> TikTok Admits It Suppressed Videos by Disabled, Queer, and Fat Creators. <https://slate.com/technology/2019/12/tiktok-disabled-users-videos-suppressed.html>
>
> TikTok has been accused of secretly gathering "vast quantities" of user data and sending it to servers in China. <https://www.bbc.com/news/business-50640110>
>
> TikTok is paying the FTC a fine of $5.7 million for collecting the data of kids under 13. <https://www.vox.com/the-goods/2019/2/28/18244996/tiktok-children-privacy-data-ftc-settlement>
>
> TikTok censors all reference to the Hong Kong protests. <https://www.washingtonpost.com/technology/2019/09/15/tiktoks-beijing-roots-fuel-censorship-suspicion-it-builds-huge-us-audience/?noredirect=on>
>
> TikTok has had children as young as 8 targeted by sexual predators and Police are urging parents to check the app privacy settings. <http://webcache.googleusercontent.com/search?ie=UTF-8&client=ms-android-google&source=android-browser&q=cache:https:%2F%2Fwww.scotsman.com%2Flifestyle-2-15039%2Ftiktok-privacy-settings-everything-parents-need-to-know-about-the-video-app-1-4872619>
>
> <https://www.dailymail.co.uk/sciencetech/article-6694671/Predators-grooming-children-young-eight-popular-live-streaming-apps.html>
>
> TikTok's privacy page admits to collecting as much data as possible, from meta data, GPS location, and pulls all contact information on someone's Facebook and instagram (if connected) and phone, while allowing themselves to use this data for whatever they want.
>
> <https://www.tiktok.com/legal/privacy-policy?lang=en>
>
> TikTok has been labeled a "threat to national security" by the USA government.
>
> <https://m.youtube.com/watch?v=rU0zzHKHxC8>
>
> <https://m.youtube.com/watch?v=6jOJe9U9Wj8>
>
> <https://www.nytimes.com/2019/11/01/technology/tiktok-national-security-review.html>
>
> TikTok is ban from US Navy mobile devices, as it's been declared a cybersecurity threat.
>
> <https://www.theguardian.com/technology/2019/dec/21/us-navy-bans-tiktok-from-mobile-devices-saying-its-a-cybersecurity-threat>
>
> TikTok had vulnerabilities as recent as last month, which allowed attackers to gain control of users accounts to upload videos or view private videos, while a separate flaw allowed attackers to retrieve personal information from TikTok user accounts through the companys website.
>
> <https://www.nytimes.com/2020/01/08/technology/tiktok-security-flaws.html>
>
> Its almost as if Tiktok is Chinas attempt at pushing their propaganda out to the world while also having massive privacy issues. China has realized that to control the global population you have to control social media and what people see. So for the last year they have been pouring a ton of money into getting their social media app to be accepted and widely used- through a campaign of paid content creation/submission, and vote manipulation. Once they have widescale buy in, their backdoor monitoring and data collection will have free reign.
>
> I find it a worrying trend how easily Reddit is blindly uvoting these videos to the front page and supporting a company with such privacy concerns, and an obvious agenda that is censoring and controlling the information you see.
>
> The Chinese propaganda machine is already being pushed on Reddit threads just like this one.
>
> There are reddit accounts that clearly have a pro-Chinese agendas posting in threads like these daily. I recently called out one of these reddit users via this comment: https://www.reddit.com/r/Unexpected/comments/esks18/z/ffbixet
>
> and low and behold the user u/littleking123 immediately deleted their account. Thankfully you can see a web cache of their pro-TikTok, pro-China, and anti-Hong Kong comments here.
>
> http://webcache.googleusercontent.com/search?ie=UTF-8&client=ms-android-google&source=android-browser&q=cache%3Ahttps%3A%2F%2Fwww.reddit.com%2Fuser%2Flittleking123
>
> It's still not too late to do something. I'm posting this here for exposure so others know what's going on.

View File

@ -123,6 +123,7 @@
* [JavaScript Module Pattern: In-Depth](http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html) — How to write self-contained JavaScript modules in raw ES5.
* [Deploying ES2015+ Code in Production Today](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/) — Using `<script type="module">` and `<script nomodule>` to ship native ES6 code to the browser, with pre-browserified fallback for legacy users.
* [A JavaScript-Free Frontend](https://dev.to/winduptoy/a-javascript-free-frontend-2d3e) — Modals, drop-downs and other <abbr title="Single Page App">SPA</abbr> features in pure HTML and CSS without JavaScript.
* [Everyone has JavaScript, right?](https://kryogenix.org/code/browser/everyonehasjs.html)
## PHP

View File

@ -0,0 +1,251 @@
# Spirituality
Links and resources specifically relating to spirituality, metaphysics and the
nature of existence and reality.
I started writing this page on **Aug 9, 2019** after a couple years reading into
lots of esoteric stuff. The page will grow as I come and backfill in links to
all sorts of things I found, and the purpose of this page is to distill down the
common "fundamental truths" and read between the lines of all religions and magick
while providing links to examples found everywhere.
* [Common Root Phenomena](#common-root-phenomena)
* [Mind Is Everything](#mind-is-everything) (Reality is subjective)
* [Lucid Dreaming](#lucid-dreaming) (Astral Projection)
* [Law of Attraction](#law-of-attraction) (Chaos Magick, Wicca, Dimension Jumping)
* [The Two Cups Method](#the-two-cups-method)
* [The Unknowable God](#the-unknowable-god) (Source, the One Consciousness, the True God)
* [Behind the Veil](#behind-the-veil)
* [The Akashic Records](#the-akashic-records)
* [The Wheel of Time](#the-wheel-of-time)
* [Indra's Net](#indra-s-net)
## My Personal Beliefs
There's a lot of "woo-woo" linked on this page but these are just the examples
to show that a lot of people, with their own varied and crazy belief systems, are
actually talking about the same things and I rather go straight to their source.
* I don't subscribe to horoscopes, chakras, crystals, psychic powers, astral
projection, occult magic, angels or demons, archons or the demiurge as I
have never directly experienced these things.
* However, I believe these things are real _for those who believe_ and reality
is subjective anyway. If you believe in and wish to see angels or spirits or
what have you, I believe you will start to see them. If they help you live
your life and achieve your goals, more power to you.
* [Law of Attraction](#law-of-attraction) is real and there's an infinite number
of methods to use it, from "woo-woo magick" to every self-help book and
motivational speech that I've ever heard. You don't need be religious or believe
in any magic to manifest reality with your thoughts.
* I subscribe and keep tabs on all sorts of spiritual topics. You never know
when a piece of wisdom will come from an unexpected source.
# Common Root Phenomena
Religions and various practices all throughout the world and history have given
many different names, symbols and rituals to some common root phenomena that
have been experienced by different people at different times.
I'm specifically talking about Abrahamic religions (i.e. Christianity, Judaism,
Islam, Gnosticism) as well as Hinduism and Buddhism. Also Wicca, chaos magick
and the occult in general.
## Mind Is Everything
What most of these common phenomena boil down to is that "mind is everything,
reality is subjective, the universe works exactly how you think it does, what
happens when you die is exactly what you think will happen" and there's no
objectively right answers.
A common thing you'll encounter when reading about various forms of magick is
that it mostly only affects your _personal reality_ and you won't be able to
convince anybody else of any of it if they don't want to believe. But what even
_is_ "reality" anyway?
Each of us is living in our own personal reality even while we seem to interact
with other people "out there" in the real world. Even if you take the stark
materialist, scientific approach: you're a brain living in a dark skull that
doesn't see the real world, only the electrical impulses given by your eyes and
ears that your brain uses to re-construct an approximation of reality that lets
you function in the world. [Is your red the same as my red?](https://www.youtube.com/watch?v=evQsOFQju08)
## Lucid Dreaming
> **Other names:** Astral Projection, Out of Body Experience
Lucid dreaming is the act of becoming aware that one is having a dream _while_
in a dream. When you become lucid and you realize the dream world is entirely of
your own creation, you can change it, fly through the air like Peter Pan, summon
any dream character (real or fictional) you want, teleport to new surroundings,
explore distant planets and fantastical environments and so on.
See ["The Phase" - Leave Your Body in 3 Days](https://www.youtube.com/watch?v=YQjAIlFZWWc)
for a good overview of how to lucid dream.
Astral Projection is another word for lucid dreaming. AP'ers will believe they've
left their body and gone to the astral plane and it might be based on real-world
locations of which they are familiar, but they fail to bring back any objective
hard evidence that would convince a skeptic that Astral Projection has anything
to it.
Links:
* Reddit:
* [/r/luciddreaming](https://www.reddit.com/r/luciddreaming)
* [/r/AstralProjection](https://www.reddit.com/r/AstralProjection/)
* ["The Phase" - Leave Your Body in 3 Days](https://www.youtube.com/watch?v=YQjAIlFZWWc)
## Law of Attraction
> **Other names:** Chaos Magick, Dimensional Jumping, various occult magick
> disciplines (Wicca, Voodo, etc.)
The [Law of Attraction](https://en.wikipedia.org/wiki/Law_of_attraction_%28New_Thought%29)
is another common root phenomena that has many different names and belief
systems surrounding it.
The LoA can be summarized as "like attracts like" or "put out positive thoughts
and intention into the world and the world gives you positive results" and the
same goes the opposite way.
**Prayer** and **meditation** are the most common ways people invoke the Law of
Attraction. In the former, you're intently focused on a prayer to your favorite
deity for something to unfold in your life and in the latter you may just be
focused on what you want to achieve. Then you forget about it and go on the rest
of your day, and what you want manifests itself in sometimes improbable ways.
Various techniques and methods are used to help you further visualize and focus
your intentions:
* **Chaos magick**
* This is "non-denominational" magick. It states that all the rituals and symbols
associated with magic use (candles, pentagrams, chants, etc.) are all fundamentally
meaningless but they help you visualize and believe in the magick which is the
root mechanism for the Law of Attraction, to be intently focused on an outcome
and to put the emotional energy and intent behind it for it to manifest.
* [The Complete Psychonaut Field Manual - A Cartoon Guide to Chaos Magick](https://ultraculture.org/blog/2015/11/13/psychonaut-field-manual/)
offers a good introduction and overview in easily digestable webcomic format.
* [Chaos magick on Wikipedia](https://en.wikipedia.org/wiki/Chaos_magic)
* **Dimension Jumping**
* Subreddits: [/r/dimensionjumping](https://www.reddit.com/r/dimensionjumping) and
[/r/dimensionaljumping](https://www.reddit.com/r/dimensionaljumping) - the latter
is archived but has a wealth of information to search.
* The belief system is that The Universe actually consists of a multiverse of infinite
parallel realities -- every reality possible, in fact -- and a countless number of
these realities have _you_ in them. By focusing your intention and performing
chaos magick-like experiments you can "jump" to alternate dimensions to manifest things
you want.
* There's no hard scientific proof of the multiverse and the methods proposed on
these subreddits are similar to ones you find in other magick and LoA practices.
### The Two Cups Method
To evidence the connection between Law of Attraction with various magick and
quantum multiverse theories, I've seen the two cups method come up multiple
times in my research.
The two cups method is basically this:
* Think of something you want to change or manifest into your reality.
* Get two cups and a way to label them (masking tape, sticky note, tape a slip
of paper you can write on, etc.)
* On one cup, summarize the current state you want to change as one word, for
example "Debt" or "Sickness" and fill this cup with water.
* On the other cup, summarize the desired state in the same way, for example
"Wealth" or "Healthy"
* While focusing carefully on your intention, slowly pour the water from the
first cup into the second, the water helping you visualize the transition to
getting what you want.
* Drink the water from the new cup. Remove the labels and put the cups away,
you're done! Don't dwell on it much more, Law of Attraction works best when
you let the universe manifest it in its own way.
Links to where I've seen this under different labels:
* [Dimensional Jumping](https://www.reddit.com/r/DimensionalJumping/comments/3h2yxo/the_act_is_the_fact_part_one_an_exercise/)
* [A site about witchcraft and magick](https://www.shadowharvestwitch.com/blogharvestingshadows/2018/9/20/two-cup-method-spell)
## The Unknowable God
> **Other names:** Source, the One Consciousness, the True God, the Universe Itself,
> The Supreme Self, Brahman, The Father.
The most common fundamental belief at the root of all the religions I've found is
the idea that the universe itself is made of consciousness. Consciousness is **all**
that exists, and the universe wouldn't exist without it. Matter is made from
consciousness. The brain does not create consciousness; consciousness creates the
brain.
"We are just the universe experiencing itself." We are all God, in one way or
another. What are the characteristics of God as defined by most religions?
All-powerful, omniscient, omnipresent. God can't be a subject _inside_ the
universe, for that would imply the universe is greater than God. There can't
be anything _outside_ of the universe, or else God would be contained within
that too.
The Unknowable God therefore is the very fabric of existence itself, the whole
entire universe all at once. Not a humanoid figure that one could know. The
unknowable god is the Source of all consciousness that exists, you and I and all
the animals and creatures and everything is a part of this One Consciousness.
In a way, God is playing that he's _not_ God by imagining that he is each and
every one of us, wearing us all like masks.
This isn't necessarily to imply the universe is [solipsistic](https://en.wikipedia.org/wiki/Solipsism)
(although it very well could be). From one scale of looking at it, we _are_ all
God because God is all that could exist, but if you zoom in to our scale of living
we all might as well be separate individuals with our own private perspectives.
* [Hinduism and the Belief in One God](https://www.hinduwebsite.com/onegod.asp) -
"He exists in all and all beings exist in him. There is nothing other than Him,
and there is nothing that is outside of Him. He is Imperishable, unknowable,
immortal, infinite, without a beginning and without an end."
* [An Unknowable God - What Baháís Believe](https://www.bahai.org/beliefs/god-his-creation/revelation/unknowable-god)
* [**The Egg**](http://galactanet.com/oneoff/theegg_mod.html), a short story by Andy Weir
* [Video adaptation on YouTube](https://www.youtube.com/watch?v=ehRggplMieM)
* [The Unknowable God](http://theforbiddenreligion.com/the-unknowable-god.htm) - from
the Gnostic book "Primordial Gnosis: The Forbidden Religion"
-----
# Behind the Veil
This section of the page and onwards is not a list of things that commonly appear
across a _wide_ range of spiritual disciplines but does have enough of a
recurring theme (experienced by many different people) that it warrants its own
section.
IMHO, the mechanisms of what goes on "behind the veil" are _probably_ none of
our business and you can learn to enjoy "heaven on Earth" with your own outlook
on life. This section details near death experiences, psychedelic trip reports
and other scary things that people have _commonly_ encountered on the other side.
## The Akashic Records
TBD.
## The Wheel of Time
Most commonly reported by people who've consumed Salvia, many have reported
encountering the "wheel of time" or the "wheel of karma," a crazy fractal
wheel-like object that contains the entirety of the universe and all its
possible timelines and realities.
I first heard of it from [a near-death experience report](https://www.reddit.com/r/Psychonaut/comments/6o3233/this_near_death_experience_nde_account_resembles/)
on Reddit and through comments was linked to a
[search for "wheel" on /r/salvia](https://www.reddit.com/r/Salvia/search/?q=wheel&restrict_sr=1)
where I found many trip reports and artist depictions of the wheel.
Links:
* **Near Death Experiences**
* [I fell out of the 3rd dimension into...another dimension?](https://www.reddit.com/r/AskReddit/comments/332k1c/serious_redditors_who_have_been_clinically_dead/cqh5wj2/) - Redditor
describes seeing fractals of realities similar to his own and having to choose
one to return to. Isn't sure he returned to the correct reality.
* [Fatal car wreck and description of a "water wheel" of every conceivable reality](https://www.reddit.com/r/Glitch_in_the_Matrix/comments/60rtm5/meta_near_death_experience_glitch_reveals/)
* **Salvia Trip Reports**
* ["Welcome back, my child"](https://www.reddit.com/r/Drugs/comments/39ciq3/first_trip_report_20x_welcome_back_my_child_xpost/)
* [My first experience with the wheel](https://www.reddit.com/r/Salvia/comments/7ysx69/my_first_experience_with_the_wheel/)
## Indra's Net
TBD.

View File

@ -8,4 +8,6 @@
* [ ] Tour of Linux desktop environments (GNOME, KDE, Xfce, Cinnamon, MATE, Lxde)
* [ ] In-depth how the Domain Name System works, `/etc/hosts`, PiHole
* [ ] In-depth how e-mail systems work
* [x] SMTP servers (connect directly to one and spoof an e-mail)
* [x] SMTP servers (connect directly to one and spoof an e-mail)
* [ ] Cross-site scripting
* [ ] Programming an API server

View File

@ -0,0 +1,188 @@
{{ define "title" }}App Compatibility{{ end }}
{{ define "content" }}
<h1><a href="/wiki/Degoogle">Degoogle</a> / App Compatibility</h1>
<p>
This is my App Compatibility Table for the Play Store apps I use and their
status running on a google-free Android device.
</p>
<p>
My test device is a Pixel (1st gen) running LineageOS 17 without Google Apps
nor microG. Play Store apps were downloaded using
<a href="https://f-droid.org/en/packages/com.aurora.store/" target="_blank">Aurora
Store</a> on F-Droid.
</p>
<p><strong>Legend:</strong></p>
<ul>
<li><strong class="text-success">Green:</strong> app works to an acceptable
level of functionality.</li>
<li><strong class="text-warning">Yellow:</strong> app works at a basic level
<em>OR</em> there is a functional web-app alternative.</li>
<li><strong class="text-danger">Red:</strong> app does not work AND there
is no suitable web-app alternative.</li>
</ul>
<table class="table table-striped">
<thead>
<tr>
<th>App Name</th>
<th>On F-Droid?</th>
<th>Web app?</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td class="bg-success text-light">Alaska Airlines</td>
<td>-</td>
<td>-</td>
<td>
Seems to work. Haven't tested actual flight.
</td>
</tr>
<tr>
<td class="bg-danger text-light">Alltrails</td>
<td>-</td>
<td>-</td>
<td>
Error: app requires Google Play Services to run.
</td>
</tr>
<tr>
<td class="bg-success text-light">Bank of America</td>
<td>-</td>
<td>-</td>
<td>
App works fine. Fingerprint reader supported!
</td>
</tr>
<tr>
<td class="bg-warning text-dark">Buycott</td>
<td>-</td>
<td>-</td>
<td>
Pops up a warning that it requires Google Play Services, but
seems to work anyway.<br>
Product barcode scanning works.
</td>
</tr>
<tr>
<td class="bg-success text-light">Discord</td>
<td>-</td>
<td>-</td>
<td>
Works!
</td>
</tr>
<tr>
<td class="bg-danger text-light">Disneyland</td>
<td>-</td>
<td>-</td>
<td>
App requires Google Play Services to work.
</td>
</tr>
<tr>
<td class="bg-success text-light">Fly Delta</td>
<td>-</td>
<td>-</td>
<td>
Seems to work. Haven't tested actual flight.
</td>
</tr>
<tr>
<td class="bg-success text-light">Hulu</td>
<td>-</td>
<td>-</td>
<td>
No Chromecast support.<br>
Website tells you to get the mobile app.<br>
Desktop-mode website could try and play videos, but failed with
an error. (Fennec F-Droid browser).
</td>
</tr>
<tr>
<td class="bg-success text-light">Kik</td>
<td>-</td>
<td>-</td>
<td>
Works!
</td>
</tr>
<tr>
<td class="bg-warning text-dark">Lyft</td>
<td>-</td>
<td><a href="https://ride.lyft.com/">ride.lyft.com</a></td>
<td>
App won't run without Google Play Services.<br>
Mobile web app works to request a ride.
</td>
</tr>
<tr>
<td class="bg-success text-light">Netflix</td>
<td>-</td>
<td>-</td>
<td>Works, but no Chromecast support</td>
</tr>
<tr>
<td class="bg-success text-light">Nextcloud</td>
<td><a href="https://f-droid.org/en/packages/com.nextcloud.client/" target="_blank">Yes</a></td>
<td>-</td>
<td>&nbsp;</td>
</tr>
<tr>
<td class="bg-success text-light">ProtonMail</td>
<td>-</td>
<td>-</td>
<td>No push notification support w/o Play Services.</td>
</tr>
<tr>
<td class="bg-success text-light">Rivermark Mobile</td>
<td>-</td>
<td>-</td>
<td>Works!</td>
</tr>
<tr>
<td class="bg-success text-light">Twitter</td>
<td>-</td>
<td><a href="https://twitter.com/">twitter.com</a></td>
<td>&nbsp;</td>
</tr>
<tr>
<td class="bg-warning text-dark">Uber</td>
<td>-</td>
<td><a href="https://m.uber.com/">m.uber.com</a></td>
<td>
App runs, but map doesn't load and GPS location not supported
without Google Play Services.<br>
Mobile web app works to request a ride.
</td>
</tr>
<tr>
<td class="bg-danger text-light">Venmo</td>
<td>-</td>
<td>-</td>
<td>
App crashes frequently. There is a web app, but sending/receiving
payments is not supported in the web app.
</td>
</tr>
<tr>
<td class="bg-success text-light">VLC Player</td>
<td><a href="https://f-droid.org/en/packages/org.videolan.vlc/">Yes</a></td>
<td>-</td>
<td>Works! Has FOSS Chromecast support!</td>
</tr>
<tr>
<td class="bg-success text-light">ZOOM Cloud Meetings</td>
<td>-</td>
<td>-</td>
<td>Seems working, haven't tested a video call yet.</td>
</tr>
</tbody>
</table>
{{ end }}

126
www/wiki/Degoogle/index.md Normal file
View File

@ -0,0 +1,126 @@
# Degoogle
My personal checklist and research to de-google my stuff.
## Motivations
* The Cambridge Analytica revelations ([blog post](/withdrawing-from-social-media))
* The [Purism Librem 5](https://puri.sm/products/librem-5/) phone is on my watch
list. If released, it will be a GNU/Linux phone (not Android) so might as well
prepare to leave the Android ecosystem while I wait.
Main things that have been keeping me on the stock Google Pixel 3 Android OS:
* Google Fi as cell carrier, and potential loss of features running an open source
Android like LineageOS (mainly, ability to switch towers between T-Mobile, Sprint,
US Cellular at will; WiFi Assistant I can care less about).
* Unlimited photo storage with Google Photos for a couple years with the Pixel phone
purchase. But if I self-host my own photo cloud this is really a moot point.
## Progress
<table class="table table-striped">
<thead class="thead-dark">
<tr>
<th>Google Service</th>
<th>% Migrated</th>
<th>Replacement Service</th>
<th>Remarks</th>
</tr>
</thead>
<tbody>
<tr>
<td>Photos</th>
<td>100%</td>
<td>Nextcloud (self)</td>
<td>All Google Photos migrated, Camera Backup enabled</td>
</tr>
<tr>
<td>Contacts</td>
<td>100%</td>
<td>Nextcloud (self)</td>
<td>Automatic sync between Android and Thunderbird (desktop)</td>
</tr>
<tr>
<td>Calendar</td>
<td>100%</td>
<td>Nextcloud (self)</td>
<td>Automatic sync between Android and Thunderbird (Lightning Calendar add-on)</td>
</tr>
<tr>
<td>Drive</td>
<td>100%</td>
<td>Nextcloud (self)</td>
</tr>
<tr>
<td>Gmail</td>
<td>80%</td>
<td>Rackspace Mail</td>
<td>Moved kirsle.net from GSuite to Rackspace; minimizing use of Gmail.com account WIP</td>
</tr>
<tr>
<td>Search</td>
<td>100%</td>
<td><a href="https://duckduckgo.com" target="_blank">DuckDuckGo</a></td>
<td>Switched to DDG a long time ago as default search provider in Firefox.</td>
</tr>
<tr>
<td>Maps</td>
<td>0%</td>
<td>n/a</td>
<td>No real competitor to Maps</td>
</tr>
<tr>
<td>YouTube</td>
<td>0%</td>
<td>n/a</td>
<td>No real competitor to YouTube</td>
</tr>
</tbody>
</table>
## Checklist
* [x] Experiment first with old Pixel on LineageOS without Google Play Services
nor microG. Install microG only as a last resort to test the crucial apps that
didn't work otherwise.
* [x] Leave Google Fi for a normal carrier (T-Mobile or Sprint)
* [ ] Install/configure a home server to provide crucial services:
* [x] Nextcloud for Contacts, Calendar, Camera Backup and File/Photo Storage
* [ ] Personal OpenVPN Server
* [ ] ~~Install LineageOS on primary Android phone~~ I can't do without Chromecast
support for Netflix/Hulu, so second best option is to remove Google accounts from
my phone but keep the Google Play Services for Chromecast support.
* [x] Change 2FA methods to TOTP app instead of Google push notification.
* [x] Google Voice: forward text messages to email.
* [x] Add Gmail address to a standard email app (Librem Mail on F-Droid)
* Chromecast from apps still works fine.
* Google Home app can still manage Chromecasts on the local network w/o account.
* **Google WiFi:** requires a Google account to manage the WiFi routers. For this
I installed [Android-x86](https://android-x86.org/) in VirtualBox on my laptop,
if I need to manage my WiFi I can boot that up and use the app.
* [ ] Migrate out of Google's ecosystem
* [x] Download latest export from Google Takeout
* [x] Upload contacts to Nextcloud server
* [x] Purge all photos from Google Photos (move all photos to Nextcloud)
* [x] Clear out my Google Drive of all files (move important ones to Nextcloud)
* [x] Clear all data from Google Assistant and other places
* [x] Opt-out of all data services and ad personalization from Google.
* [x] Move kirsle.net email from Google to an external provider
* [ ] Migrate accounts linked to my Gmail address to Kirsle.net address
* [ ] Wind down usage of Gmail account (unsubscribe from any mailing lists,
get down to Inbox Zero where only Google themselves will ever send me
mail to my Gmail account)
## Google-free Android
See [Self Hosting](/wiki/Self-Hosting) for my experiments running LineageOS
_without_ Google Services and the options for self-hosting crucial web services.
### App Compatibility w/o Play Services
Without Google Play Services some apps won't function correctly. I need to make
sure the apps that are important _to me_ work or have workable solutions.
**See also:** my [App Compatibility Table](/wiki/Degoogle/Apps)

233
www/wiki/DontBeEvil.md Normal file
View File

@ -0,0 +1,233 @@
# Mirror of Project Veritas Google Leak 2019
The folders in this repo came from the "Everything" zip (Don't Be Evil.zip); this README
is my own commentary on what's good in the leak.
# Censorship
* Several conversation threads about Breitbart and InfoWars being blocked for hate
speech and conspiracy theory, respectively.
* A few slides of Google powerpoints suggesting human reviewers of news videos,
maybe taken out of context, not too interesting.
#### youtube_controversial_query_blacklist.pdf
* a list of keywords that Google blacklists
from YouTube searches (or videos? not sure)
* Mass shooting attacks in Las Vegas, New York, Texas etc.
* Conspiracy theories like Crisis Actors
* Porn queries
* Depression? Colgate?
* Abortion
# Election Tampering
* Just some threads (3 PDF files) of googlers wanting to add an easter egg to Google Translate
to say what "covfefe" means, which looks like they had problems adding it and
backed out of the idea altogether.
* Easter egg translates "cov fe'fe" and "covfefe" into `( ̄\_(ツ)_/ ̄)`.
* Had problems with Arabic trying to actually translate it into something else in
their language and had to roll it back.
Not much to see here.
# Fake News
* Lots of documents on how Google is combatting fake news, by withholding AdSense
on sites they deem to be misrepresenting information. Sounds reasonable to me.
* Study end-to-end how a publisher's traffic is promoted (i.e. on social media),
the content of the site, how the publisher represents their content, their
relationship to other scammers, and other properties by manual human review to
see if it falls under the Fake News policy. Sounds reasonable.
* Only AdSense is blocked on these Take News Sites, but DoubleClick ads may still
be used on those sites (global politics and "ads as a platform" standards)
There's also a couple resumes in here of Googlers where they describe the products
they've worked on and the features they've added. Pretty entertaining look at the
"behind the scenes" at Google but nothing crazy jumps out at me. Worked with Google
search ranking algorithms.
#### Fwd_ Fake News-letter 11_27_ Efforts to combat spread of (mis_dis)information - Google Groups.pdf
Some interesting stuff in here:
> Goal: Establish “single point of truth” for definition of “news” across Google products. Mitigate risk of
> low-quality sources and misinformation in Google News corpus.
> Goal: Establish and streamline news escalation processes to detect and handle misinformation across
> products during crises. Install 24/7 team of trained analysts ready to make policy calls and take
> actions across news surfaces including News, News 360 and Feed.
These _could_ be abused maybe? No indication they intend to misuse them.
#### news black list site for google now.txt
```
# Manual list of sites excluded from appearing as Google Now stories to read
# results. The urls are used with a UrlMatcher, and should be in the format
# specified in: webutil/urlutil/urlmatcher.h
```
**Notice:** per the filename and comment at the top of the file, this is a
blacklist for stories appearing in the Google Now app on Android. Some sites
(GTA 5 Mods, APK Mirror) make sense to be suppressed from the feed IMHO.
You also don't want to throw a page from 4Chan on somebody unexpectedly.
Some sites I recognized or have heard of before:
* apkmirror.com: Android app mirror site, not sure why it's on here.
* play.google.com, drive.google.com, docs.google.com
* ebay.com
* torrentfreak.com and several similar (thepiratebay)
* dailystormer.com
* newsbusters.org (pointed out in Veritas interview, I don't otherwise know of it)
* glennbeck.com (know the name, don't know about him though)
* naturalnews.com
* yugiohblog.konami.com: a site about the Yu-Gi-Oh trading card game?
* infowars.com
* smosh.com: YouTuber site
* boards.4chan.org
* queerty.com - LGBT magazine
* voat.co - a Reddit clone, login required now o.O
* ebaumsworld.com
* reddit.com/r/interestingasfuck - oh they even filter by subreddits, how nice
* reddit.com/r/gentlemanboners
* reddit.com/r/exmormon
* dealsplus.com
* gta5-mods.com
Lots of domains that sound like fake news sites, but I didn't check them out myself.
See the file for yourself.
* conservativespirit.com
* toprightnews.com
* hangthebankers.com
This section of the file has what looks like a bunch of fake news sites
(.com.co domain suffix? really?):
```
# START: sites flagged for peddling hoax stories.
abcnews.com.co/
actionnews3.com/
cbsnews.com.co/
channel-7-news.com/
civictribune.com/
drudge-report.co/
independencetribune.com/
nbc.com.co/
neonnettle.com/
now8news.com/
tdtalliance.com/
theracketreport.com/
therightists.com/
thirdestatenewsgroup.com/
tipsforsurvivalists.com/
worldnewsdailyreport.com/
# END: sites flagged for peddling hoax stories.
```
I pinged a few and a lot of them don't even exist anymore.
#### Page level domain restrction 2017_10_02_us_las-vegas-attack-deadliest-us-mass-shooting-trnd_index.pdf
A bug ticket within Google to add "page level domain restriction" on several
links to news articles talking about the Las Vegas attack. Some example pages:
* http://www.cnn.com/2017/10/02/us/las-vegas-attack-deadliest-us-mass-shooting-trnd/index.html
* http://abcnews.go.com/US/wireStory/las-vegas-attack-deadliest-shooting-modern-us-history-50227779
* http://www.foxnews.com/politics/2017/10/02/las-vegas-shooting-lawmakers-condemn-senseless-attack-thank-police.html
* http://www.bbc.co.uk/news/av/world-us-canada-41471532/las-vegas-shooting-witnesses-describe-attack
* http://www.bbc.com/news/av/world-us-canada-41471532/las-vegas-shooting-witnesses-describe-attack
427 URLs in total.
> 3) Are you adding or removing violations?
>
> Add
>
> 4) Which violations would you like to add?
>
> LEGACY_SENSITIVE
>
> 5) Please provide a brief justification for this request.
>
> Las Vegas Mandalay Bay Shooting
Per a commenter in the bug ticket thread this is a "URL takedown request", but
not clear what service. Probably Google Search listing. Could be just adding a
"Sensitive" label to these links too.
#### Realtime Boost.pdf
PowerPoint slide about responding quickly to real-world events.
* Detect real world events
* Is this Query Trending?
* Fast triggering: <5 mins after the event
* Fast serving: 5ms average / 40ms 99% percentile
* They use Twitter as a signal for rapid-fire tweets about breaking news
* Updates Google search autocomplete quickly (type "p" and auto-suggest "prince dead"
as one example in the slides)
Neat!
# Hiring Practices
To be checked.
# Leadership Training
To be checked.
# Machine Learning Fairness
What it seems they're going for at Google:
* Machine learning collects data from the real world and then produces results
based on real world data, which isn't always comfortable with people. Things
like implicit stereotypes or social biases that fully exist in the real world
get reflected "by default" when machine learning studies the real world.
* Google is working on algorithms to try and steer the "actual results" into a
more equal output, so no group of people feel marginalized by the Google
machine learning results.
* Similar in concept to a "random number generator" in many videogames or music
playing programs aren't _actually_ random and have algorithmic bias to seem
more in line with what the user expects. If your music player picks the same
song twice in a row -- that's true randomness and happens, so instead it runs
an algorithm to be more in line with the ideal expectation of the user.
Some people may have a problem with that and expect that Google Search reflects
the world exactly as it is without changing it and I'm sure arguments could be
made for either side.
The folder contains some examples:
* Google search for "american inventors" returns mostly African American
inventors (George Washington Carver, Lewis Howard Latimer...).
* A discussion thread about how it's a bug in the search algorithm.
* Google Image Team is working on forcing diversity into search results
to work around the bug.
> **Quote:**
>
> As is the 'our algorithm isn't actually that smart, it's just that
> "African American" has the word "American" in it'
Other examples of why ML Fairness was needed to intervene in Google Search:
* The term "doctor" would primarily return photos of men.
* Real-world diversity in surgeons: 81% Male, 19% Female
* 89,000 results for "male surgeon" on Google
* 119,000 results for "female surgeon" on Google
Still working through powerpoints on this but so far not very worrisome.
# Partisanship
TBD.
# Psychological Research
TBD.

View File

@ -0,0 +1,82 @@
# WebAssembly and Go(lang)
Some notes, links and tips for working with WebAssembly programs written in Go.
## Example
(from [github.com/mattn/golang-wasm-example](https://github.com/mattn/golang-wasm-example))
Quick synopsis of an example WASM app in Go that fetches a PNG image over HTTP
and draws it into a canvas.
```go
// +build js,wasm
package main
import (
"encoding/base64"
"io/ioutil"
"log"
"net/http"
"net/url"
"syscall/js"
)
func main() {
href := js.Global().Get("location").Get("href")
u, err := url.Parse(href.String())
if err != nil {
log.Fatal(err)
}
u.Path = "/logo.png"
log.Println("loading image file: " + u.String())
resp, err := http.Get(u.String())
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
enc := base64.StdEncoding.EncodeToString(b)
canvas := js.Global().Get("document").Call("getElementById", "canvas")
ctx := canvas.Call("getContext", "2d")
image := js.Global().Call("eval", "new Image()")
image.Call("addEventListener", "load", js.FuncOf(func(this js.Value, args []js.Value) interface{} {
ctx.Call("drawImage", image, 0, 0)
return nil
}))
image.Set("src", "data:image/png;base64,"+enc)
canvas.Call("addEventListener", "click", js.FuncOf(func(this js.Value, args []js.Value) interface{} {
js.Global().Get("window").Call("alert", "Don't click me!")
return nil
}))
select {}
}
```
## Links
### Documentation
* [WebAssembly (Go Wiki)](https://github.com/golang/go/wiki/WebAssembly)
* [MDN - CanvasRenderingContext2D](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D) -
HTML5 Canvas API documentation (general front-end knowledge).
### Examples
* [Cat-o-licious](https://github.com/fiorix/cat-o-licious) is a simple game using
SDL2 and originally targeted toward desktop applications. The author ported the
engine over to WASM using the HTML5 Canvas API in place of SDL2 functions.
* [golang-wasm-example](https://github.com/mattn/golang-wasm-example) at time of
writing shows a simple WASM app in Go that fetches a PNG image and renders it
into an HTML5 Canvas. The Go portion was also copied above.
* [sdl-canvas-wasm](https://github.com/timhutton/sdl-canvas-wasm) is a **C++**
example that natively uses SDL2 and compiles to WebAssembly.
[Live demo here.](https://timhutton.github.io/sdl-canvas-wasm/)

196
www/wiki/Linux-Phones.md Normal file
View File

@ -0,0 +1,196 @@
# Linux Phones
This is a collection of notes about running GNU/Linux operating systems on
smartphones, specifically the [Pine64 Pinephone](https://www.pine64.org/pinephone/)
but also probably applicable to the [Purism Librem 5](https://puri.sm/products/librem-5/)
and similar devices.
The focus of this page is on standard GNU/Linux distros such as postmarketOS,
Debian/Phosh, Fedora and so on. Ubuntu Touch UBports is a different kind of
creature altogether and many notes on this page may not apply there.
Table of Contents:
* [See Also](#see-also)
* [Web Browsers](#web-browsers)
* [GNOME Web (Epiphany)](#gnome-web-epiphany)
* [Firefox](#firefox)
* [Productivity Apps](#productivity-apps)
* [Nextcloud](#nextcloud)
* [KeePass](#keepass)
* [Security](#security)
* [Default Software by OS](#default-software-by-os)
* [GNU Coreutils on postmarketOS](#gnu-coreutils-on-postmarketos)
# See Also
Listings of potential mobile-friendly Linux apps:
* [postmarketOS: Potential apps](https://wiki.postmarketos.org/wiki/Potential_apps)
* [Mobile GNU/Linux Apps](https://mglapps.frama.io/)
* [apps (Mobian Wiki)](https://wiki.mobian-project.org/doku.php?id=apps)
[Librem5](https://source.puri.sm/Librem5) gitlab has patches for some Linux
apps for mobile friendliness:
* [Geary mail client](https://source.puri.sm/Librem5/geary)
# Web Browsers
## GNOME Web (Epiphany)
postmarketOS, Mobian/Phosh and probably others ship with GNOME Web as the
default browser. It's currently the best optimized mobile web browser for
Linux and has built-in support to "Install Site as Web Application" to add
an app launcher for web apps.
Installed web apps run in a mode where the URL bar is replaced by just a
title bar and seems to have a sandboxed profile (no cookie sharing with the
normal GNOME Web sessions).
### User-Agent String
You may want to customize the User Agent to look like mobile Firefox so
that sites like `mobile.twitter.com` will give a more modern front-end UI
instead of one that looks themed after Android 2.x
Run this command to set the User-Agent to appear like Firefox:
```bash
gsettings set org.gnome.Epiphany.web:/org/gnome/epiphany/web/ user-agent "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Safari/537.361"
```
## Firefox
> See also [Firefox on postmarketOS Wiki](https://wiki.postmarketos.org/wiki/Firefox)
Firefox is another _decent_ web browser for mobile Linux. With a few `about:config`
tweaks you can enable better touch controls. Some parts of Firefox UI is not very
mobile friendly and you probably only want to open one tab per window, as the tab
bar doesn't fit on screen very well when you have 2+ tabs open.
To set the necessary about:config tweaks, easiest is to use your prefs.js.
From the postmarketOS wiki:
> Go in your profile directory (.mozilla/firefox/xxxxxxxx.default/) then exec:
```bash
echo 'user_pref("dom.w3c.touch_events.enabled", true);' >> prefs.js
echo 'user_pref("browser.gesture.pinch.in", "cmd_fullZoomReduce");' >> prefs.js
echo 'user_pref("browser.gesture.pinch.out", "cmd_fullZoomEnlarge");' >> prefs.js
echo 'user_pref("general.useragent.site_specific_overrides", false );' >> prefs.js
echo 'user_pref("general.useragent.override", "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Safari/537.361");' >> prefs.js
```
> And restart the browser.
# Productivity Apps
## Nextcloud
I use [Nextcloud](https://nextcloud.com/) as a self-hosted replacement for many
Google services (see my [Degoogle](/wiki/Degoogle) page).
GNOME Online Accounts already has built-in support to use Nextcloud and syncs
your Contacts and Calendar with the respective GNOME apps. You can also browse
your Nextcloud filesystem using the File Browser (Nautilus) app.
The desktop app for Linux is _probably_ not mobile friendly but it has a
command-line program called `nextcloudcmd` which may be usable to set up a
traditional sync to local filesystem. I haven't tested it yet.
## KeePass
I use the [KeePass password manager](https://keepass.info/) and so need to find a
good app for this that I can use from my smartphone.
Currently I haven't found a native app that is mobile-friendly and fits on the
small display of the phone.
As a workaround I found that [KeeWeb](https://keeweb.info/) has a usable enough
mobile interface in the form of a web application. I installed it as a plugin on
my Nextcloud server. For best security you might install it directly onto the
local host of your phone, e.g. with nginx and access it at http://localhost.
Otherwise self-host it on a web server you control.
# Security
At time of writing, GNU/Linux distros don't have a security model as good as what's
available on Android. Linux security mainly boils down to filesystem-level access
controls, but there's very little in the way to prevent two user-space apps from
messing with each other's data.
Like on a desktop Linux system, common sense applies, don't install random dodgy
software from unknown sources, don't `wget | bash` to run unknown scripts without
reading them first and verify what they're doing, etc.
On distros running Phosh your user password is required to be a numeric PIN code
that you unlock the screen with. These sorts of passwords are _very_ weak and
you may want to disable `sudo` access to your account and instead set a very
strong `root` user password.
Some misc tips relevant to Linux on smartphones:
* Use full disk encryption is available. Currently only postmarketOS seems to
support this but is marked as "experimental." The idea being if your phone is
lost or stolen you don't wanna make it easy for somebody to access the
filesystem and steal secrets from Firefox's cookies or saved password store etc.
* Use the GNOME Keyring or similar whenever possible. You can use any complex
password you want for this, the stronger the better.
* If your password is a numeric PIN code, disable sudo access to your account and
either create a secondary sudoer user or configure a root password. Use strong
passwords either way.
* If your phone listens on an SSH server, set up [SSH key-based authentication](https://www.ssh.com/ssh/key/)
and disable login using password. Especially if your password is a numeric PIN
code! Also disable root login over SSH.
* If you generate SSH _client_ keys on your phone, password protect those! In
case your phone is lost/stolen it will buy you time to remove the phone's SSH
keys from your servers' `authorized_keys` files.
# Default Software by OS
Just some notes on what each GNU/Linux distro comes with out of box and some
notes.
* postmarketOS/Phosh:
* Phone, SMS
* GNOME Web
* Cheese photo booth
* Extensions (GNOME)
* Settings
* GNOME Software (not mobile friendly)
* King's Cross (terminal emulator)
* Fedora
* Phone, SMS
* GNOME Web
* GNOME Contacts
* Evolution mail client (not mobile friendly)
* GNOME Software (not mobile friendly)
* Mobian/Phosh
* Phone, SMS
* GNOME Web
* GNOME Contacts
* GNOME Calendar (not mobile friendly)
* GNOME Software (patches to make it mobile friendly)
* Geary (mail client, mobile-friendly patches)
* King's Cross (terminal emulator)
## GNU Coreutils on postmarketOS
postmarketOS is based on Alpine Linux which is a very minimalist distro and
ships with [Busybox](https://www.busybox.net/) by default, meaning standard
CLI tools like `grep`, `less` and `du` are Busybox versions and not the standard
GNU coreutils found on most Linux distros.
So some CLI options to these programs aren't supported in Busybox, like
`grep --exclude` or `du --max-depth` or `less -r` and several of my bash shell
aliases relied on these options.
To install GNU versions (see also [How to get regular stuff working](https://wiki.alpinelinux.org/wiki/How_to_get_regular_stuff_working)
from Alpine Linux wiki):
```bash
apk add coreutils grep less
```

View File

@ -11,7 +11,9 @@ See [the index](/wiki/_pages) for the list of all available pages in this wiki.
* [Python cocos2d Installation](/wiki/Python-cocos2d-Installation)
* [Fedora on Macbook](/wiki/Fedora-on-Macbook)
* [Debian on Macbook](/wiki/Debian-on-Macbook)
* [Linux on Smartphones](/wiki/Linux-Phones)
* [nginx configs](/wiki/nginx-configs)
* [Go WebAssembly](/wiki/Go-WebAssembly)
# Ideas and Notes
@ -22,6 +24,10 @@ See [the index](/wiki/_pages) for the list of all available pages in this wiki.
* [Protocol Buffers Protocol](/wiki/Protocol-Buffers-Protocol)
* [Optimize RiveScript](/wiki/Optimize-RiveScript) - So it can support Alice-sized brains
* [Self Hosting](/wiki/Self-Hosting) - Own your own data + how well Android works in 2018 without Google.
* [Degoogle](/wiki/Degoogle) - Notes on my personal effort to de-google my life.
* [Simple CAS Protocol](/wiki/Simple-CAS-Protocol) - Simple overview of single sign-on with CAS protocol.
* Google-fu examples:
* [Vue.js public path config](/wiki/Vue-DDG-Searches)
# Personal Reference

View File

@ -51,8 +51,8 @@ So each packet would consist of a format like:
2. A fixed size packed integer to indicate the length of the protobuf message (i.e. a 32-bit integer, or 4 binary bytes... or you could probably get away with 16-bit and have a max size of 65K for each protobuf message)
3. The binary-encoded protobuf message.
\* The Message Type byte should reserve one bit for extensibility: for example, reserve the highest bit. This means that initially you can only have up to 128 types of messages in your protocol (using Message Type IDs from 0 to 127 (`01111111`), and if you run out of space you can set the highest bit to `1` (so, `128` for `100000000`) and that could instruct your protocol to read the *next* byte to continue finding the Message Type. [UTF-8 encoding](https://www.youtube.com/watch?v=MijmeoH9LT4) works on a similar principal. The highest bit of every byte would be reserved for extending the length, so you don't run out of space as the protocol grows.
\* The Message Type byte should reserve one bit for extensibility: for example, reserve the highest bit. This means that initially you can only have up to 128 types of messages in your protocol (using Message Type IDs from 0 to 127 (`01111111`), and if you run out of space you can set the highest bit to `1` (so, `128` for `10000000`) and that could instruct your protocol to read the *next* byte to continue finding the Message Type. [UTF-8 encoding](https://www.youtube.com/watch?v=MijmeoH9LT4) works on a similar principal. The highest bit of every byte would be reserved for extending the length, so you don't run out of space as the protocol grows.
If you found you need to extend the length limit (part #2 of the packet format), you could handle this by incrementing the Protocol Version Number from the handshake. Client and server could both switch to larger integers when using the new protocol.
The mapping between Message Type values and your protobuf messages would be done on your own. For example you could arbitrarily say that Message Type 1 is Login, 2 is Register, 3 is Logout, etc.
The mapping between Message Type values and your protobuf messages would be done on your own. For example you could arbitrarily say that Message Type 1 is Login, 2 is Register, 3 is Logout, etc.

34
www/wiki/Regexp Basics.md Normal file
View File

@ -0,0 +1,34 @@
# Regexp Basics
A small reference for some basic things you can do with regular expressions
that you can get a lot of mileage out of without getting too in the weeds with
crazy features.
Recommended links:
* [Regexr](https://regexr.com/), an interactive regexp explorer.
* [perlretut](https://metacpan.org/pod/distribution/perl/pod/perlretut.pod),
where I learned regexp back in the day. It's Perl documentation but the
regexp knowledge inside is universally applicable to other programming languages.
This page includes examples and code snippets in various programming languages.
## String Search (& Replace)
The simplest regexps deal with just plain old raw text.
```javascript
// JavaScript
"Hello world".match(/world/);
```