next 13, remove unused, update incorrect/outdated
This commit is contained in:
parent
797d13fd0d
commit
b5ca20b93d
@ -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
|
||||
|
19
README.md
19
README.md
@ -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
|
||||
|
@ -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;
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
102
next.config.js
Executable file → Normal 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']
|
||||
},
|
||||
}
|
@ -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
|
||||
|
@ -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
21110
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
60
package.json
60
package.json
@ -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"
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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>
|
||||
</>
|
||||
|
@ -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;
|
@ -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;
|
||||
|
@ -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;
|
@ -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;
|
@ -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 |
@ -1,4 +1,4 @@
|
||||
{
|
||||
"GitHub": "https://github.com/lambdapaul",
|
||||
"Twitter": "https://twitter.com/lambda_paul"
|
||||
"Twitter/X": "https://x.com/lambda_paul"
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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/
|
@ -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/
|
@ -403,4 +403,4 @@ li {
|
||||
.license {
|
||||
background-color: #222222;
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user