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:
parent
4d9cad5b41
commit
719766b933
|
@ -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>
|
||||
|
|
|
@ -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
42
www/blog/archive.gohtml
Normal 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 }}
|
|
@ -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 }}
|
||||
|
|
|
@ -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
95
www/privacy.gohtml
Normal 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
53
www/solar/gruvbox.css
Normal 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 }
|
|
@ -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 Microsoft’s 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 company’s website.
|
||||
>
|
||||
> <https://www.nytimes.com/2020/01/08/technology/tiktok-security-flaws.html>
|
||||
>
|
||||
> Its almost as if Tiktok is China’s 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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
251
www/wiki/Bookmarks/Spirituality.md
Normal file
251
www/wiki/Bookmarks/Spirituality.md
Normal 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.
|
|
@ -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
|
||||
|
|
188
www/wiki/Degoogle/Apps.gohtml
Normal file
188
www/wiki/Degoogle/Apps.gohtml
Normal 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> </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> </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
126
www/wiki/Degoogle/index.md
Normal 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
233
www/wiki/DontBeEvil.md
Normal 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.
|
82
www/wiki/Go-WebAssembly.md
Normal file
82
www/wiki/Go-WebAssembly.md
Normal 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
196
www/wiki/Linux-Phones.md
Normal 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
|
||||
```
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
34
www/wiki/Regexp Basics.md
Normal 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/);
|
||||
```
|
||||