next 13, remove unused, update incorrect/outdated

This commit is contained in:
Paul W. 2023-09-20 00:25:34 -04:00
parent 797d13fd0d
commit b5ca20b93d
No known key found for this signature in database
GPG Key ID: 0023B93C0FF1E1D4
28 changed files with 8581 additions and 13741 deletions

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 Paul W.
Copyright (c) 2022-2023 Paul W.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,5 +1,20 @@
# PaulW.XYZ
[![Netlify Status](https://api.netlify.com/api/v1/badges/8128893c-9426-4869-9858-731f3abc96c3/deploy-status)](https://app.netlify.com/sites/lambdapaul/deploys)
A [Next.js](https://nextjs.com) website that mainly involves generating content out of a bunch of markdown files contained in `notes/` and `posts/` which contain rough, unorganized yet useful information and thought-out articles respectively. It's still a work in progress as I have no clear direction I want to take this site toward. However, it is something that I will always keep in check; as I use this as a hub for whatever I work on, especially if it involves a lot of reading.
A [Next.js](https://nextjs.com) website that mainly involves generating content out of a bunch of markdown files contained in `notes/` and `posts/` which contain rough, unorganized yet useful information and thought-out articles respectively. It's still a work in progress as I have no clear direction I want to take this site toward. However, it is something that I will always keep in check; as I use this as a hub for whatever I work on, especially if it involves a lot of reading.
## License
Any trademarks listed on this site are the property of their respective owners. This site neither endorses nor is affiliated with any of the owners. Any source code available on any of the pages is without warranty of any kind and the use of such is at your own risk.
### Third-party
#### Fonts
- [Hack](https://github.com/source-foundry/Hack)
- © 2018 Source Foundry Authors
- MIT License
- [Cantarell](https://github.com/davelab6/cantarell)
- © 2009-2010, [Understanding Limited](mailto:dave@understandinglimited.com)
- Open Font License, Version 1.1
- [EB Garamond](https://github.com/georgd/EB-Garamond)
- © 2010-2013 [Georg Duffner](http://www.georgduffner.at)
- Open Font License, Version 1.1

BIN
bun.lockb Normal file

Binary file not shown.

View File

@ -1,24 +1,24 @@
import Head from 'next/head';
function Meta({name, ancestors}
: {name: string, ancestors?: Array<{ name: string, path: string }> }) {
function path(): string {
if (!ancestors)
return name;
let path = '';
ancestors.forEach((obj) => {
path = `${path}${obj.name} /`;
});
return `PaulW.XYZ / ${path} ${name}`;
}
return (
<Head>
<title>{path()}</title>
</Head>
);
}
import Head from 'next/head';
function Meta({name, ancestors}
: {name: string, ancestors?: Array<{ name: string, path: string }> }) {
function path(): string {
if (!ancestors)
return name;
let path = '';
ancestors.forEach((obj) => {
path = `${path}${obj.name} /`;
});
return `PaulW.XYZ / ${path} ${name}`;
}
return (
<Head>
<title>{path()}</title>
</Head>
);
}
export default Meta;

View File

@ -9,9 +9,7 @@ function QuickLinks() {
Object.entries(Pages).map(([title, link], i) => {
const extern = link.match(/^http/) && `blue extern` || '';
return (
<Link key={i} href={link}>
<a className={`${extern} link button`}>{title}</a>
</Link>
<Link key={i} href={link} className={`${extern} link button`}>{title}</Link>
);
})
}
@ -19,4 +17,4 @@ function QuickLinks() {
);
}
export default QuickLinks;
export default QuickLinks;

View File

@ -7,21 +7,17 @@ function RecentNotes({ notesMeta }: { notesMeta: INoteMeta[] }) {
<div className='h2'>Recent Notes</div>
{notesMeta?.slice(0, 10)
.map((note: any) => {
return <Link key={note.slug} href={`/notes/${note.slug}`}>
<a className={`button link`}>{note.title}</a>
</Link>
return <Link key={note.slug} href={`/notes/${note.slug}`} className={`button link`}>{note.title}</Link>
})
}
{
notesMeta.length > 10 &&
<div>
<Link href='/notes'>
<a className='h5'>More...</a>
</Link>
<Link href='/notes' className='h5'>More...</Link>
</div>
}
</div>
);
}
export default RecentNotes;
export default RecentNotes;

View File

@ -27,13 +27,11 @@ function RecentPosts({ postsMeta }: { postsMeta: IPostMeta[] }) {
{
postsMeta.length > 10 &&
<div className={style.more}>
<Link href='/posts'>
<a className='h5'>More...</a>
</Link>
<Link href='/posts' className='h5'>More...</Link>
</div>
}
</div>
);
}
export default RecentPosts;
export default RecentPosts;

View File

@ -1,45 +1,43 @@
import Link from 'next/link';
import style from '../styles/title.module.css';
type propsObj = {
name: string,
title?: string,
ancestors?: Array<{ name: string, path: string }>
};
function createPathElements(ancestors: Array<{ name: string, path: string }>) {
let currentPath = '';
return ancestors.map((ancestor, id) => {
currentPath += `/${ancestor.path}`
return (
<>
<Link key={id + 1} href={currentPath}>
<a>{ancestor.name}</a>
</Link>
<> / </>
</>
);
});
};
function Title({ name, title, ancestors }: propsObj) {
const pathElements = ancestors && createPathElements(ancestors) || <></>;
return (
<>
<div className={style.container}>
<h1 className={style.title}>
{title || name}
</h1>
</div>
<div className={`${style.nav} h1`}>
{name
? <><Link href='/'><a>PaulW.XYZ</a></Link> / {pathElements}{name}</>
: <>PaulW.XYZ /</>}
</div>
</>
);
}
export default Title;
import Link from 'next/link';
import style from '../styles/title.module.css';
type propsObj = {
name: string,
title?: string,
ancestors?: Array<{ name: string, path: string }>
};
function createPathElements(ancestors: Array<{ name: string, path: string }>) {
let currentPath = '';
return ancestors.map((ancestor, id) => {
currentPath += `/${ancestor.path}`
return (
<>
<Link key={id + 1} href={currentPath}>{ancestor.name}</Link>
<> / </>
</>
);
});
};
function Title({ name, title, ancestors }: propsObj) {
const pathElements = ancestors && createPathElements(ancestors) || <></>;
return (
<>
<div className={style.container}>
<h1 className={style.title}>
{title || name}
</h1>
</div>
<div className={`${style.nav} h1`}>
{name
? <><Link href='/'>PaulW.XYZ</Link> / {pathElements}{name}</>
: <>PaulW.XYZ /</>}
</div>
</>
);
}
export default Title;

102
next.config.js Executable file → Normal file
View File

@ -1,52 +1,52 @@
module.exports = {
i18n: {
locales: ['en-US'],
defaultLocale: 'en-US'
},
webpack: (config, _options) => {
const { cache } = require('./lib/slug');
config.plugins.push(
{
apply: (compiler) => {
compiler.hooks.beforeCompile.tap('cachePostDataBC', _ => {
cache();
});
}
}
)
config.module.rules.push(
{
test: /\.ya?ml$/,
use: 'js-yaml-loader',
},
{
test: /\.svg$/,
use: [{ loader: '@svgr/webpack' }],
},
{
test: /\.md$/,
type: 'asset/source',
},
{
test: /\.otf$/,
type: 'asset/resource',
},
{
test: /\.txt$/,
type: 'asset/source',
},
{
resourceQuery: /raw/,
type: 'asset/source',
},
);
return config
},
images: {
domains: ['avatars.githubusercontent.com']
},
module.exports = {
i18n: {
locales: ['en-US'],
defaultLocale: 'en-US'
},
webpack: (config, _options) => {
const { cache } = require('./lib/slug');
config.plugins.push(
{
apply: (compiler) => {
compiler.hooks.beforeCompile.tap('cachePostDataBC', _ => {
cache();
});
}
}
)
config.module.rules.push(
{
test: /\.ya?ml$/,
use: 'js-yaml-loader',
},
{
test: /\.svg$/,
use: [{ loader: '@svgr/webpack' }],
},
{
test: /\.md$/,
type: 'asset/source',
},
{
test: /\.otf$/,
type: 'asset/resource',
},
{
test: /\.txt$/,
type: 'asset/source',
},
{
resourceQuery: /raw/,
type: 'asset/source',
},
);
return config
},
images: {
domains: ['avatars.githubusercontent.com']
},
}

View File

@ -5,9 +5,16 @@ last_updated: '2022-09-29T03:55:40.476Z'
<a href='https://www.steamdeck.com/' class='link button extern blue'>Official Website</a>
## Third-party Software
* [Decky Plugin Loader](https://decky.xyz/)
* Installer: [decky\_installer.desktop](https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/decky_installer.desktop)
## Access Console-like Youtube in Gaming Mode
- Using Chromium's undocumented command-line options, the user agent can be changed to PlayStation's, Xbox's or Tizen's (Samsung's TV OS) and the application can be launched in full screen by using the `-kiosk` flag. The following XDG Desktop Configuration, for example, can be used and added as a non-Steam game while in Desktop mode for access in gaming mode.
```ini
* Using Chromium's undocumented command-line options, the user agent can be changed to PlayStation's, Xbox's or Tizen's (Samsung's TV OS) and the application can be launched in full screen by using the `--kiosk` flag. The following XDG Desktop Configuration, for example, can be used and added as a non-Steam game while in Desktop mode for access in gaming mode
```cfg
#!/usr/bin/env xdg-open
[Desktop]
Version=1.0
@ -15,18 +22,20 @@ Type=Application
Name=YouTube TV
GenericName=Online Video Platform
Comment=An online video-sharing, social media platform
Exec=/usr/bin/flatpak run --branch=master --arch=x86_64 --file-forwarding org.chromium.Chrome @@ %F @@ --user-agent='Mozilla/5.0 (X11; Linux x86_64; Xbox; Xbox One; Valve Steam Gamepad)' --kiosk 'https://www.youtube.com/tv'
Exec=/usr/bin/flatpak run --branch=master --arch=x86_64 --file-forwarding org.chromium.Chrome @@ %F @@ --user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 Edge/20.02' --kiosk 'https://www.youtube.com/tv'
Terminal=false
MimeType=text/plain;
Icon=com.youtube.tv # $XDG_PATH contains the paths used to fetch icons, extensions for supported formats are optional
# $XDG_PATH contains the paths used to fetch icons, extensions for supported formats are optional
Icon=com.youtube.tv
```
- Firefox can also be used however the supported command-line options are limited.
- The URL is https://www.youtube.com/tv
- Without the user agent change, the above URL is inaccessible.
- Adblockers like uBlock Origin, AdBlock Plus (both tested) do not remove ads unlike on the desktop site.
- Choosing the Xbox user agent is recommended as button prompts match the Steam Deck's `ABXY` button layout.
- The Electron framework can be used to build a wrapper for the URL. This is the preferrable method as it supports exiting from within the application, while browsers only support manual termination from the Steam menu. E.g. (assuming you can build native linux binaries on a device)
* Firefox can also be used however the supported command-line options are limited
* The URL is https://www.youtube.com/tv
* Without the user agent change, the above URL is inaccessible
* Adblockers like uBlock Origin, AdBlock Plus (both tested) do not remove ads unlike on the desktop site
* Choosing the Xbox user agent is recommended as button prompts match the Steam Deck's `ABXY` button layout
* The Electron framework can be used to build a wrapper for the URL. This is the preferrable method as it supports exiting from within the application, while browsers only support manual termination from the Steam menu. E.g. (assuming you can build native linux binaries on a device)
```javascript
const { app, BrowserWindow } = require('electron');
app.whenReady()
@ -38,12 +47,11 @@ app.whenReady()
win.maximize();
win.loadURL('https://youtube.com/tv');
const wc = win.webContents;
wc.userAgent = 'Mozilla/5.0 (X11; Linux x86_64; Xbox; Xbox One; Valve Steam Gamepad)'
wc.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 Edge/20.02'
})
.catch((e) => {
console.error(e)
});
.catch(()=>{}); // swallow errs
```
## Miscellaneous
- When using a dock or a hub to connect to an external display, ensure the display supports the refresh rate set on the device as some TVs and other displays only support refresh rates that are multiples of 30Hz.
## Miscellaneous
* When using a dock or a hub to connect to an external display, ensure the display supports the refresh rate set on the device as some TVs and other displays only support refresh rates that are multiples of 30Hz

View File

@ -1,5 +1,5 @@
---
title: Steam Store
title: Steam Client
last_updated: '2022-09-29T03:15:58.777Z'
---
@ -11,8 +11,11 @@ last_updated: '2022-09-29T03:15:58.777Z'
- `steam://nav/console`
- `steam://open/console`
- will not work if the Steam client is running in the background
- The `-console` flag can be used with the client executable.
- Alternatively, [SteamCMD.zip](https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip), a command-line only version of the Steam client, can be used.
- The `-console` flag can be used with the client executable
- Alternatively, SteamCMD, a command-line only version of the Steam client, can be used
- [Windows Binary](https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip)
- [Linux Binary](https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz)
- [macOS Binary](https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz)
## Downloading Older Depots
@ -43,4 +46,7 @@ download_depot <appid> <depotid> [<target manifestid>] [<delta manifestid>] [<de
- tracks game deals for steam, steam key stores and other platforms
- somewhat broken although it is being migrated and modernized, see [New ITAD](https://new.isthereanydeal.com)
- [gg.deals](https://gg.deals)
- newer than and similar to IsThereAnyDeal with modern UI
- newer than and similar to IsThereAnyDeal with modern UI
- [SteamGridDB](https://steamgriddb.com/)
- custom video game assets for games available and not available on steam

21110
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,32 @@
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"dotenv": "^16.0.2",
"gray-matter": "^4.0.3",
"js-yaml-loader": "^1.2.2",
"next": "^12.3.1",
"normalize.css": "^8.0.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-markdown": "^8.0.3",
"react-syntax-highlighter": "^15.5.0",
"rehype-raw": "^6.1.1",
"remark-gfm": "^3.0.1",
"uri-js": "^4.4.1"
},
"devDependencies": {
"@svgr/webpack": "^6.3.1",
"@types/node": "^18.7.23",
"@types/react": "^18.0.21",
"@types/react-dom": "^18.0.6",
"@types/react-syntax-highlighter": "^15.5.5",
"eslint": "^8.24.0",
"eslint-config-next": "^12.3.1",
"typescript": "^4.8.4"
}
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"dotenv": "^16.3.1",
"gray-matter": "^4.0.3",
"js-yaml-loader": "^1.2.2",
"next": "^13.5.1",
"normalize.css": "^8.0.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-markdown": "^8.0.7",
"react-syntax-highlighter": "^15.5.0",
"rehype-raw": "^6.1.1",
"remark-gfm": "^3.0.1",
"uri-js": "^4.4.1"
},
"devDependencies": {
"@svgr/webpack": "^6.5.1",
"@types/node": "^18.17.17",
"@types/react": "^18.2.22",
"@types/react-dom": "^18.2.7",
"@types/react-syntax-highlighter": "^15.5.7",
"eslint": "^8.49.0",
"eslint-config-next": "^13.5.1",
"typescript": "^4.9.5"
}
}

View File

@ -1,25 +1,21 @@
import Link from 'next/link';
import Layout from '../components/layout';
function NotFoundPage() {
return (
<Layout title='Page Not Found' name='... ??? / 404: Not Found'>
<section className='block text center'>
<h1>Error 404</h1>
<p>
<strong>Uh oh! The page you are looking for does not exist...</strong><br />
</p>
<Link href='/'>
<a className='button green back link'>
Go Home
</a>
</Link>
<a className='button blue link extern' href='https://en.wikipedia.org/wiki/List_of_HTTP_status_codes'>
More on HTTP status codes
</a>
</section>
</Layout>
);
}
export default NotFoundPage;
import Link from 'next/link';
import Layout from '../components/layout';
function NotFoundPage() {
return (
<Layout title='Page Not Found' name='... ??? / 404: Not Found'>
<section className='block text center'>
<h1>Error 404</h1>
<p>
<strong>Uh oh! The page you are looking for does not exist...</strong><br />
</p>
<Link href='/' className='button green back link'>Go Home</Link>
<a className='button blue link extern' href='https://en.wikipedia.org/wiki/List_of_HTTP_status_codes'>
More on HTTP status codes
</a>
</section>
</Layout>
);
}
export default NotFoundPage;

View File

@ -7,14 +7,12 @@ import RecentPosts from '../components/recent-posts';
import { getNotesMeta, getPostsMeta, INoteMeta, IPostMeta } from '../lib/slug';
function Nav() {
const nav = {'Posts': '/posts', 'Notes': '/notes', 'About': '/about', };
const nav = { 'Posts': '/posts', 'Notes': '/notes', 'About': '/about', };
return (
<div className='block' style={{textAlign: 'center'}}>
<div className='block' style={{ textAlign: 'center' }}>
{
Object.entries(nav).map(([k, v], i) => {
return <Link key={i} href={v}>
<a className='button green'>{k}</a>
</Link>
return <Link key={i} href={v} className='button green'>{k}</Link>
})
}
</div>
@ -38,4 +36,4 @@ export async function getStaticProps() {
};
}
export default HomePage;
export default HomePage;

View File

@ -6,35 +6,39 @@ import { monokaiSublime as hlTheme } from 'react-syntax-highlighter/dist/cjs/sty
import remarkGfm from 'remark-gfm';
import rehypeRaw from 'rehype-raw';
function Markdown({content}: any) {
return <ReactMarkdown
remarkPlugins={[remarkGfm]}
rehypePlugins={[rehypeRaw]}
components={{
code({ node, inline, className, children, ...props }) {
const match = /language-(\w+)/.exec(className || '')
return !inline && match
? (
<SyntaxHighlighter
showLineNumbers={true}
language={match[1]}
//@ts-ignore
style={hlTheme}
PreTag='div'
codeTagProps={{ style: { display: 'block' } }}
customStyle={{ padding: '0', borderRadius: '1rem' }}
{...props}
>{String(children).replace(/\n$/, '')}</SyntaxHighlighter>
)
: <code className={className} {...props}>
{children}
</code>
}
}}
>{content}</ReactMarkdown>
}
function Note({ note }: any) {
return (<>
<Layout name={note.title} title={note.title} ancestors={[{ name: 'Notes', path: 'notes' }]}>
<section className='block'>
<ReactMarkdown
remarkPlugins={[remarkGfm]}
rehypePlugins={[rehypeRaw]}
components={{
code({ node, inline, className, children, ...props }) {
const match = /language-(\w+)/.exec(className || '')
return !inline && match
? (
<SyntaxHighlighter
showLineNumbers={true}
language={match[1]}
//@ts-ignore
style={hlTheme}
PreTag='div'
codeTagProps={{ style: { display: 'block' } }}
customStyle={{ padding: '0', borderRadius: '1rem' }}
{...props}
>{String(children).replace(/\n$/, '')}</SyntaxHighlighter>
)
: <code className={className} {...props}>
{children}
</code>
}
}}
>{note.content}</ReactMarkdown>
<Markdown content={note.content} />
</section>
</Layout>
</>

View File

@ -1,33 +0,0 @@
import Layout from '../components/layout';
import { mapChild, toListItem } from '../components/lists';
import pl from '../public/playlists.yaml';
function Playlists() {
return (
<Layout name='Playlists'>
<h2>Music</h2>
{
pl.map((item: Record<string, any>) => {
const lItem = toListItem(item)
if (lItem)
return mapChild(lItem, 0, {
'spotify': (i) => {
return <div>
<a className='extern link button'
href={`https://open.spotify.com/track/${i.id}`}></a>
{i.title}</div>;
},
'youtube-playlist': (i) => {
return <div>
<a className='extern link button'
href={`https://youtube.com/playlist?list=${i.id}`}></a>
{i.title}</div>;
}
})
})
}
</Layout>
);
}
export default Playlists;

View File

@ -22,16 +22,14 @@ function PostsPage({ postsMeta }: { postsMeta: IPostMeta[] }) {
flex: '1 1 60%',
alignItems: 'center',
fontFamily: `'EB Garamond', 'Garamond', 'Times New Roman', Times, serif`}}>
<Link href={`/posts/${post.slug}`} >
<a style={{textDecoration: 'none'}}>{post.title}</a>
</Link>
<Link href={`/posts/${post.slug}`} style={{textDecoration: 'none'}}>{post.title}</Link>
</td>
</tr>
}) ||
<div className='text center'>
<div>**crickets**</div>
<div>No posts found...</div>
<div><Link href='/'><a className='link button green back'>Go Home</a></Link></div>
<div><Link href='/' className='link button green back'>Go Home</Link></div>
</div>
}
</tbody>
@ -46,4 +44,4 @@ export async function getStaticProps() {
};
}
export default PostsPage;
export default PostsPage;

View File

@ -1,23 +0,0 @@
import Layout from '../components/layout';
import rec from '../public/recommended.yaml';
import { toListItem, mapChild } from '../components/lists';
function Recommended() {
return (
<Layout name='Recommended' title='My Recommendations'>
<section className='block'>
<p>This page is really for me to not forget/revisit the good things I have read, seen, heard, and/or experienced. This list may change, just as my opinions.</p>
<p>If the one you are looking for is not on this list, it is most likely I have not had the chance to read/listen to/watch it yet.</p>
</section>
{
rec.map((item: Record<string, any>) => {
const lItem = toListItem(item)
if (lItem)
return mapChild(lItem, 0)
})
}
</Layout>
);
}
export default Recommended;

View File

@ -1,18 +0,0 @@
import Layout from '../components/layout';
import res from '../public/resources.yaml';
import { toListItem, mapChild } from '../components/lists';
function Resources() {
return (
<Layout name='Resources' title='Some Useful Resources'>
{
res.map((item: Record<string, any>) => {
const lItem = toListItem(item)
if (lItem)
return mapChild(lItem, 0)
})
}
</Layout>);
}
export default Resources;

View File

@ -1,93 +1,93 @@
Copyright 2017 The EB Garamond Project Authors (https://github.com/octaviopardo/EBGaramond12)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Copyright 2017 The EB Garamond Project Authors (https://github.com/octaviopardo/EBGaramond12)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -1,4 +1,4 @@
{
"GitHub": "https://github.com/lambdapaul",
"Twitter": "https://twitter.com/lambda_paul"
"Twitter/X": "https://x.com/lambda_paul"
}

View File

@ -1,302 +0,0 @@
- title: Classical
children:
- title: "Antonio Lucio Vivaldi"
type: youtube-playlist
id: PLSU6wJEYct5HslkoJWHQFCttB-lhSwVr2
- title: "Johann Sebastian Bach"
type: youtube-playlist
id: PLSU6wJEYct5HftuY6UunC6zE_QMXOGmhm
- title: "Ludwig van Beethoven"
type: youtube-playlist
id: PLSU6wJEYct5Etx0WAXUQ7YXe84Fp5E142
- title: "Wolfgang Amadeus Mozart"
type: youtube-playlist
id: PLSU6wJEYct5EJsE-9Zh-jWckBuZAmIt8Q
- Große Fuge Op. 133
- KV 387
- KV 448
- KV 626
- Piano Sonata No. 2 Mvmt. 3 (Chopin)
- BWV 1048
- Prelude in G Minor (Op. 23 No. 5)
- String Quartet, Op. 20 No. 2 (Haydn)
- Arabesque No. 1 (Debussy)
- title: Rock
children:
- title: American Pie by Don McLean
type: spotify
id: 1fDsrQ23eTAVFElUMaf38X
- title: American Pie
type: spotify
id: 1fDsrQ23eTAVFElUMaf38X
- title: Don't Stop Believin'
type: spotify
id: 4bHsxqR3GMrXTxEPLuK5ue
- title: Hotel California - 2013 Remaster
type: spotify
id: 40riOy7x9W7GXjyGp4pjAv
- title: Africa
type: spotify
id: 2374M0fQpWi3dLnB54qaLX
- title: Sweet Home Alabama
type: spotify
id: 7e89621JPkKaeDSTQ3avtg
- title: Piano Man
type: spotify
id: 70C4NyhjD5OZUMzvWZ3njJ
- title: Rocket Man (I Think It's Going To Be A Long, Long Time)
type: spotify
id: 3gdewACMIVMEWVbyb8O9sY
- title: Fortunate Son
type: spotify
id: 4BP3uh0hFLFRb5cjsgLqDh
- title: Take on Me
type: spotify
id: 2WfaOiMkCvy7F5fcp2zZ8L
- title: Paradise City
type: spotify
id: 3YBZIN3rekqsKxbJc9FZko
- title: Eye of the Tiger
type: spotify
id: 2HHtWyy5CgaQbC7XSoOb0e
- title: The Final Countdown
type: spotify
id: 3MrRksHupTVEQ7YbA0FsZK
- title: Hold the Line
type: spotify
id: 4aVuWgvD0X63hcOCnZtNFA
- title: Uptown Girl
type: spotify
id: 5zA8vzDGqPl2AzZkEYQGKh
- title: Juke Box Hero
type: spotify
id: 00qOE7OjRl0BpYiCiweZB2
- title: Thunderstruck
type: spotify
id: 57bgtoPSgt236HzfBOd8kj
- title: Baba O'Riley
type: spotify
id: 3qiyyUfYe7CRYLucrPmulD
- title: Billie Jean
type: spotify
id: 5ChkMS8OtdzJeqyybCc9R5
- title: Can't Fight This Feeling
type: spotify
id: 5WwqdeavrQrbeAMDxGawse
- title: Immigrant Song - Remaster
type: spotify
id: 78lgmZwycJ3nzsdgmPPGNx
- title: Beat It
type: spotify
id: 1OOtq8tRnDM8kG2gqUPjAj
- title: Smooth Criminal - 2012 Remaster
type: spotify
id: 2bCQHF9gdG5BNDVuEIEnNk
- title: Thriller
type: spotify
id: 3S2R0EVwBSAVMd5UMgKTL0
- title: The Chain - 2004 Remaster
type: spotify
id: 5e9TFTbltYBg2xThimr0rU
- title: Y.M.C.A.
type: spotify
id: 4YOJFyjqh8eAcbKFfv88mV
- title: Iron Man - 2012 - Remaster
type: spotify
id: 3IOQZRcEkplCXg6LofKqE9
- title: Purple Rain
type: spotify
id: 54X78diSLoUDI3joC2bjMz
- title: Takin' Care Of Business
type: spotify
id: 0lzNXoZINVBLHWNIxKxWOo
- title: American Girl
type: spotify
id: 7MRyJPksH3G2cXHN8UKYzP
- title: Take Me Home, Country Roads
type: spotify
id: 1YYhDizHx7PnDhAhko6cDS
- title: Knockin' On Heaven's Door
type: spotify
id: 6HSXNV0b4M4cLJ7ljgVVeh
- title: Like a Rolling Stone
type: spotify
id: 3AhXZa8sUQht0UEdBJgpGc
- title: Welcome To The Jungle
type: spotify
id: 0eFvoRSTTaR2q8bSWVjwfp
- title: House Of The Rising Sun
type: spotify
id: 61Q9oJNd9hJQFhSDh6Qlap
- title: You Really Got Me
type: spotify
id: 1oG2vWELiGjIqxwqGcyqwF
- title: Low Rider
type: spotify
id: 2fmMPJb5EzZCx8BcNJvVk4
- title: Pony
type: spotify
id: 6mz1fBdKATx6qP4oP1I65G
- title: Hit 'Em Up - Single Version
type: spotify
id: 0Z2J91b2iTGLVTZC4fKgxf
- title: Ambitionz Az A Ridah
type: spotify
id: 3ssX20QT5c3nA9wk78V1LQ
- title: Untouchable Swizz Beatz Remix
type: spotify
id: 3zZ30LpGe1lYzJsIQpyZPw
- title: Poison
type: spotify
id: 6m59VvDUi0UQsB2eZ9wVbH
- title: Hey Julie
type: spotify
id: 7sNlOu2jnVnJ93dj2Q7Wv0
- title: Touching the Untouchables
type: spotify
id: 7pN4S1pLfBKH4q4k7uyA4B
- title: The Power Of Love
type: spotify
id: 2olVm1lHicpveMAo4AUDRB
- title: You Make My Dreams (Come True)
type: spotify
id: 4o6BgsqLIBViaGVbx5rbRk
- title: Happy Together
type: spotify
id: 1JO1xLtVc8mWhIoE3YaCL0
- title: Kung Fu Fighting
type: spotify
id: 40NRm1ZLvZpUSCUXAGGZ8J
- title: 99 Luftballons
type: spotify
id: 6HA97v4wEGQ5TUClRM0XLc
- title: X Gon' Give It To Ya
type: spotify
id: 1zzxoZVylsna2BQB65Ppcb
- title: We Didn't Start the Fire
type: spotify
id: 3Cx4yrFaX8CeHwBMReOWXI
- title: Cold as Ice
type: spotify
id: 7vidktgNZFQylTgH1GEnMs
- title: I Won't Back Down
type: spotify
id: 0Ir0Esfpcg0EB6Kq8VbbAh
- title: Kiss
type: spotify
id: 62LJFaYihsdVrrkgUOJC05
- title: Never Gonna Give You Up
type: spotify
id: 7GhIk7Il098yCjg4BQjzvb
- title: Down Under
type: spotify
id: 46RVKt5Edm1zl0rXhPJZxz
- title: Eminence Front
type: spotify
id: 0LN5gIsS5tQSmRzQrHSaTR
- title: Footloose
type: spotify
id: 6W2VbtvMrDXm5vYeB7amkO
- title: Danger Zone - From "Top Gun" Original Soundtrack
type: spotify
id: 34x6hEJgGAOQvmlMql5Ige
- title: Bohemian Rhapsody - Remastered 2011
type: spotify
id: 7tFiyTwD0nx5a1eklYtX2J
- title: Higher Love - Single Version
type: spotify
id: 2HcokWTBGI5EjGeNVLgd8Q
- title: Ocean Man
type: spotify
id: 6M14BiCN00nOsba4JaYsHW
- title: Free Fallin'
type: spotify
id: 5tVA6TkbaAH9QMITTQRrNv
- title: Still D.R.E.
type: spotify
id: 503OTo2dSqe7qk76rgsbep
- title: Straight Outta Compton
type: spotify
id: 6KIKRz9eSTXdNsGUnomdtW
- title: Harder, Better, Faster, Stronger
type: spotify
id: 5W3cjX2J3tjhG8zb6u0qHn
- title: Around the World
type: spotify
id: 1pKYYY0dkg23sQQXi0Q5zN
- title: Da Funk
type: spotify
id: 0MyY4WcN7DIfbSmp5yej5z
- title: Get Lucky (feat. Pharrell Williams & Nile Rodgers) - Radio Edit
type: spotify
id: 2Foc5Q5nqNiosCNqttzHof
- title: Seven Nation Army
type: spotify
id: 7i6r9KotUPQg3ozKKgEPIN
- title: Killing In The Name
type: spotify
id: 59WN2psjkt1tyaxjspN8fp
- title: Fuck Tha Police
type: spotify
id: 5n8Aro6j1bEGIy7Tpo7FV7
- title: Woke Up This Morning
type: spotify
id: 5aDqmzzXy7KrTElnO8zisV
- title: I Want It That Way
type: spotify
id: 47BBI51FKFwOMlIiX6m8ya
- title: Everybody (Backstreet's Back) - Radio Edit
type: spotify
id: 4rTeOSYqwXNz5qPR2DUTFZ
- title: California Love - Original Version
type: spotify
id: 3ia3dJETSOllPsv3LJkE35
- title: Don't Stop Me Now - Remastered 2011
type: spotify
id: 7hQJA50XrCWABAu5v6QZ4i
- title: Radio Ga Ga - Remastered 2011
type: spotify
id: 1HmzAZUvhQLhLo2z3ocpZI
- title: Come Together - Remastered 2009
type: spotify
id: 2EqlS6tkEnglzr7tkKAAYD
- title: Valerie
type: spotify
id: 3nQuDlaVZApyrG6tdsETe0
- title: Don't Stop 'Til You Get Enough
type: spotify
id: 46eu3SBuFCXWsPT39Yg3tJ
- title: Basket Case
type: spotify
id: 6L89mwZXSOwYl76YXfX13s
- title: 21 Guns
type: spotify
id: 64yrDBpcdwEdNY9loyEGbX
- title: Boulevard of Broken Dreams
type: spotify
id: 5GorCbAP4aL0EJ16frG2hd
- title: American Idiot
type: spotify
id: 6nTiIhLmQ3FWhvrGafw2zj
- title: Kashmir - 1990 Remaster
type: spotify
id: 2nVHqZbOGkKWzlcy1aMbE7
- title: Life Goes On
type: spotify
id: 2bUojZta7GJTjGAqo064jo
- title: Welcome to the Black Parade
type: spotify
id: 5wQnmLuC1W7ATsArWACrgW
- title: Rasputin
type: spotify
id: 5jkFvD4UJrmdoezzT1FRoP
- title: Carry on Wayward Son
type: spotify
id: 4DMKwE2E2iYDKY01C335Uw
- title: Stacy's Mom
type: spotify
id: 27L8sESb3KR79asDUBu8nW
- title: Media OST
children:
- L'Ultima Diligenza by Ennio Morricone

View File

@ -1,82 +0,0 @@
- title: Books
children:
- title: Technology
children:
- title: C programming
children:
- title: The C Programming Language [K&R]
url: https://en.wikipedia.org/wiki/The_C_Programming_Language
- title: Expert C Programming by Peter van der Linden
- title: Practical C Programming by Steve Oualline
description:
Outdated like many the books in this section but it is very helpful
to learn some of the things discussed, especially if you have no exposure
to the language outside of school.
- title: Mastering Algorithms with C by Kyle Loudon
- title: Other Programming
children:
- title: Programming Perl by Larry Wall [Camel Book]
description: One of the first programming
books I have ever used. It probably is outdated but it is written well.
- "Programming Rust: Fast, Safe Systems Development"
- The Rust Programming Language
- Programming in Lua, Fourth Edition by Roberto Ierusalimschy
- title: Operating Systems
children:
- Advanced Programming in the Unix Environment by W. Richard Stevens
- title: "Operating Systems: Design and Implementation by Andrew S. Tanenbaum"
description:
I have not had a chance to read his other books on OS. I am
not a fan of his networking book though.
- title: Computer Engineering
children:
- "Making Embedded Systems: Design Patterns for Great Software by Elecia White"
- "Computer Organization and Design: the Hardware/Software Interface [Patterson
Hennessy]"
- "Computer Architecture: A Quantitative Approach [Hennessy Patterson]"
- title: Compilers
children:
- title: "Compilers: Principles, Techniques, and Tools [Dragon Book]"
description: Discusses theory in detail so it is kind of hard to read.
- title: Other
children:
- title: "Definitive Guide to sed: Tutorial and Reference"
- title: Classics
description: I am not sure I should make a sublist for the ones that were not originally in English.
children:
- Christmas Carol
- A Tale of Two Cities
- The Mayor of Casterbridge
- The Citadel
- Oliver Twist
- Macbeth
- Othello
- Adventures of Huckleberry Finn
- Murder on the Orient Express
- title: Latin Learning
children:
- Lingua Latina per se Illustrata (Both parts)
- Henle's Textbooks
- title: Movies
children:
- title: English language
children:
- Pulp Fiction
- Blade Runner 2049
- The Grand Budapest Hotel
- The Hateful Eight
- Goodfellas
- Inception
- Memento
- Dune (2021)
- Hot Fuzz
- Snatch
- title: Video Games
children:
- "The Legend of Zelda: Breath of the Wild"
- Portal 2
- Factorio
- "The Witcher 3: The Wild Hunt GOTY Edition (Especially the DLCs)"
- Baba is You
- Red Dead Redemption
- Sid Meier's Civilization VI

View File

@ -1,17 +0,0 @@
Programming:
- The Aggregate Magic Algorithms: http://aggregate.org/MAGIC/
- Typing is Hard: https://3fx.ch/typing-is-hard.html
- Atlassian's Git Guide: https://www.atlassian.com/git/
- LearnOpenGL.com: https://learnopengl.com/
- "[PDF] LaTeX Symbols": http://ctan.math.utah.edu/ctan/tex-archive/info/symbols/comprehensive/symbols-letter.pdf
- "[PDF] The Not So Short Introduction to LATEX 2ε": https://tobi.oetiker.ch/lshort/lshort.pdf
- The MIT License, Line by Line by Kyle E. Mitchell: https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html
- Posts:
- How to Make Your Code Reviewer Fall in Love with You by Michael Lynch: https://mtlynch.io/code-review-love/
- What's in the box? by @fasterthanlime: https://fasterthanli.me/articles/whats-in-the-box
- Talks:
- Concurrency is not Parallelism by Rob Pike: https://talks.golang.org/2012/waza.slide
Electrical:
- Common Wire-To-Board, Wire-To-Wire Connectors, And Crimp Tools: http://www.mattmillman.com/info/crimpconnectors/
Other Topics:
- Sight Reading Trainer: https://sightreading.training/

View File

@ -1,34 +0,0 @@
- title: Programming
children:
- url: http://aggregate.org/MAGIC/
title: The Aggregate Magic Algorithms
- url: https://3fx.ch/typing-is-hard.html
title: Typing is Hard
- url: https://www.atlassian.com/git/
title: Atlassian's Git Guide
- url: https://learnopengl.com/
title: LearnOpenGL.com
- url: http://ctan.math.utah.edu/ctan/tex-archive/info/symbols/comprehensive/symbols-letter.pdf
title: "[PDF] LaTeX Symbols"
- url: https://tobi.oetiker.ch/lshort/lshort.pdf
title: "[PDF] The Not So Short Introduction to LATEX 2ε"
- url: https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html
title: The MIT License, Line by Line by Kyle E. Mitchell
- title: Posts
children:
- title: How to Make Your Code Reviewer Fall in Love with You by Michael Lynch
url: https://mtlynch.io/code-review-love/
- title: What's in the box? by @fasterthanlime
url: https://fasterthanli.me/articles/whats-in-the-box
- title: Talks
children:
- title: Concurrency is not Parallelism by Rob Pike
url: https://talks.golang.org/2012/waza.slide
- title: Electrical
children:
- title: Common Wire-To-Board, Wire-To-Wire Connectors, And Crimp Tools
url: http://www.mattmillman.com/info/crimpconnectors/
- title: Other Topics
children:
- title: Sight Reading Trainer
url: https://sightreading.training/

View File

@ -403,4 +403,4 @@ li {
.license {
background-color: #222222;
padding: 1rem;
}
}