next 13, remove unused, update incorrect/outdated
This commit is contained in:
parent
797d13fd0d
commit
b5ca20b93d
@ -1,6 +1,6 @@
|
|||||||
MIT License
|
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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
19
README.md
19
README.md
@ -1,5 +1,20 @@
|
|||||||
# PaulW.XYZ
|
# 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
|
||||||
|
@ -9,9 +9,7 @@ function QuickLinks() {
|
|||||||
Object.entries(Pages).map(([title, link], i) => {
|
Object.entries(Pages).map(([title, link], i) => {
|
||||||
const extern = link.match(/^http/) && `blue extern` || '';
|
const extern = link.match(/^http/) && `blue extern` || '';
|
||||||
return (
|
return (
|
||||||
<Link key={i} href={link}>
|
<Link key={i} href={link} className={`${extern} link button`}>{title}</Link>
|
||||||
<a className={`${extern} link button`}>{title}</a>
|
|
||||||
</Link>
|
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -7,17 +7,13 @@ function RecentNotes({ notesMeta }: { notesMeta: INoteMeta[] }) {
|
|||||||
<div className='h2'>Recent Notes</div>
|
<div className='h2'>Recent Notes</div>
|
||||||
{notesMeta?.slice(0, 10)
|
{notesMeta?.slice(0, 10)
|
||||||
.map((note: any) => {
|
.map((note: any) => {
|
||||||
return <Link key={note.slug} href={`/notes/${note.slug}`}>
|
return <Link key={note.slug} href={`/notes/${note.slug}`} className={`button link`}>{note.title}</Link>
|
||||||
<a className={`button link`}>{note.title}</a>
|
|
||||||
</Link>
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
notesMeta.length > 10 &&
|
notesMeta.length > 10 &&
|
||||||
<div>
|
<div>
|
||||||
<Link href='/notes'>
|
<Link href='/notes' className='h5'>More...</Link>
|
||||||
<a className='h5'>More...</a>
|
|
||||||
</Link>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
@ -27,9 +27,7 @@ function RecentPosts({ postsMeta }: { postsMeta: IPostMeta[] }) {
|
|||||||
{
|
{
|
||||||
postsMeta.length > 10 &&
|
postsMeta.length > 10 &&
|
||||||
<div className={style.more}>
|
<div className={style.more}>
|
||||||
<Link href='/posts'>
|
<Link href='/posts' className='h5'>More...</Link>
|
||||||
<a className='h5'>More...</a>
|
|
||||||
</Link>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
@ -14,9 +14,7 @@ function createPathElements(ancestors: Array<{ name: string, path: string }>) {
|
|||||||
currentPath += `/${ancestor.path}`
|
currentPath += `/${ancestor.path}`
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Link key={id + 1} href={currentPath}>
|
<Link key={id + 1} href={currentPath}>{ancestor.name}</Link>
|
||||||
<a>{ancestor.name}</a>
|
|
||||||
</Link>
|
|
||||||
<> / </>
|
<> / </>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
@ -35,7 +33,7 @@ function Title({ name, title, ancestors }: propsObj) {
|
|||||||
</div>
|
</div>
|
||||||
<div className={`${style.nav} h1`}>
|
<div className={`${style.nav} h1`}>
|
||||||
{name
|
{name
|
||||||
? <><Link href='/'><a>PaulW.XYZ</a></Link> / {pathElements}{name}</>
|
? <><Link href='/'>PaulW.XYZ</Link> / {pathElements}{name}</>
|
||||||
: <>PaulW.XYZ /</>}
|
: <>PaulW.XYZ /</>}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
0
next.config.js
Executable file → Normal file
0
next.config.js
Executable file → Normal 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>
|
<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
|
## 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
|
#!/usr/bin/env xdg-open
|
||||||
[Desktop]
|
[Desktop]
|
||||||
Version=1.0
|
Version=1.0
|
||||||
@ -15,18 +22,20 @@ Type=Application
|
|||||||
Name=YouTube TV
|
Name=YouTube TV
|
||||||
GenericName=Online Video Platform
|
GenericName=Online Video Platform
|
||||||
Comment=An online video-sharing, social media 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
|
Terminal=false
|
||||||
MimeType=text/plain;
|
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
|
* Firefox can also be used however the supported command-line options are limited
|
||||||
- Without the user agent change, the above URL is inaccessible.
|
* The URL is https://www.youtube.com/tv
|
||||||
- Adblockers like uBlock Origin, AdBlock Plus (both tested) do not remove ads unlike on the desktop site.
|
* Without the user agent change, the above URL is inaccessible
|
||||||
- Choosing the Xbox user agent is recommended as button prompts match the Steam Deck's `ABXY` button layout.
|
* Adblockers like uBlock Origin, AdBlock Plus (both tested) do not remove ads unlike on the desktop site
|
||||||
- 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)
|
* 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
|
```javascript
|
||||||
const { app, BrowserWindow } = require('electron');
|
const { app, BrowserWindow } = require('electron');
|
||||||
app.whenReady()
|
app.whenReady()
|
||||||
@ -38,12 +47,11 @@ app.whenReady()
|
|||||||
win.maximize();
|
win.maximize();
|
||||||
win.loadURL('https://youtube.com/tv');
|
win.loadURL('https://youtube.com/tv');
|
||||||
const wc = win.webContents;
|
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) => {
|
.catch(()=>{}); // swallow errs
|
||||||
console.error(e)
|
|
||||||
});
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Miscellaneous
|
## 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.
|
|
||||||
|
* 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'
|
last_updated: '2022-09-29T03:15:58.777Z'
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -11,8 +11,11 @@ last_updated: '2022-09-29T03:15:58.777Z'
|
|||||||
- `steam://nav/console`
|
- `steam://nav/console`
|
||||||
- `steam://open/console`
|
- `steam://open/console`
|
||||||
- will not work if the Steam client is running in the background
|
- will not work if the Steam client is running in the background
|
||||||
- The `-console` flag can be used with the client executable.
|
- 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.
|
- 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
|
## Downloading Older Depots
|
||||||
|
|
||||||
@ -44,3 +47,6 @@ download_depot <appid> <depotid> [<target manifestid>] [<delta manifestid>] [<de
|
|||||||
- somewhat broken although it is being migrated and modernized, see [New ITAD](https://new.isthereanydeal.com)
|
- somewhat broken although it is being migrated and modernized, see [New ITAD](https://new.isthereanydeal.com)
|
||||||
- [gg.deals](https://gg.deals)
|
- [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": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
"lint": "next lint"
|
"lint": "next lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dotenv": "^16.0.2",
|
"dotenv": "^16.3.1",
|
||||||
"gray-matter": "^4.0.3",
|
"gray-matter": "^4.0.3",
|
||||||
"js-yaml-loader": "^1.2.2",
|
"js-yaml-loader": "^1.2.2",
|
||||||
"next": "^12.3.1",
|
"next": "^13.5.1",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-markdown": "^8.0.3",
|
"react-markdown": "^8.0.7",
|
||||||
"react-syntax-highlighter": "^15.5.0",
|
"react-syntax-highlighter": "^15.5.0",
|
||||||
"rehype-raw": "^6.1.1",
|
"rehype-raw": "^6.1.1",
|
||||||
"remark-gfm": "^3.0.1",
|
"remark-gfm": "^3.0.1",
|
||||||
"uri-js": "^4.4.1"
|
"uri-js": "^4.4.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@svgr/webpack": "^6.3.1",
|
"@svgr/webpack": "^6.5.1",
|
||||||
"@types/node": "^18.7.23",
|
"@types/node": "^18.17.17",
|
||||||
"@types/react": "^18.0.21",
|
"@types/react": "^18.2.22",
|
||||||
"@types/react-dom": "^18.0.6",
|
"@types/react-dom": "^18.2.7",
|
||||||
"@types/react-syntax-highlighter": "^15.5.5",
|
"@types/react-syntax-highlighter": "^15.5.7",
|
||||||
"eslint": "^8.24.0",
|
"eslint": "^8.49.0",
|
||||||
"eslint-config-next": "^12.3.1",
|
"eslint-config-next": "^13.5.1",
|
||||||
"typescript": "^4.8.4"
|
"typescript": "^4.9.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,11 +9,7 @@ function NotFoundPage() {
|
|||||||
<p>
|
<p>
|
||||||
<strong>Uh oh! The page you are looking for does not exist...</strong><br />
|
<strong>Uh oh! The page you are looking for does not exist...</strong><br />
|
||||||
</p>
|
</p>
|
||||||
<Link href='/'>
|
<Link href='/' className='button green back link'>Go Home</Link>
|
||||||
<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'>
|
<a className='button blue link extern' href='https://en.wikipedia.org/wiki/List_of_HTTP_status_codes'>
|
||||||
More on HTTP status codes
|
More on HTTP status codes
|
||||||
</a>
|
</a>
|
||||||
|
@ -7,14 +7,12 @@ import RecentPosts from '../components/recent-posts';
|
|||||||
import { getNotesMeta, getPostsMeta, INoteMeta, IPostMeta } from '../lib/slug';
|
import { getNotesMeta, getPostsMeta, INoteMeta, IPostMeta } from '../lib/slug';
|
||||||
|
|
||||||
function Nav() {
|
function Nav() {
|
||||||
const nav = {'Posts': '/posts', 'Notes': '/notes', 'About': '/about', };
|
const nav = { 'Posts': '/posts', 'Notes': '/notes', 'About': '/about', };
|
||||||
return (
|
return (
|
||||||
<div className='block' style={{textAlign: 'center'}}>
|
<div className='block' style={{ textAlign: 'center' }}>
|
||||||
{
|
{
|
||||||
Object.entries(nav).map(([k, v], i) => {
|
Object.entries(nav).map(([k, v], i) => {
|
||||||
return <Link key={i} href={v}>
|
return <Link key={i} href={v} className='button green'>{k}</Link>
|
||||||
<a className='button green'>{k}</a>
|
|
||||||
</Link>
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,35 +6,39 @@ import { monokaiSublime as hlTheme } from 'react-syntax-highlighter/dist/cjs/sty
|
|||||||
import remarkGfm from 'remark-gfm';
|
import remarkGfm from 'remark-gfm';
|
||||||
import rehypeRaw from 'rehype-raw';
|
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) {
|
function Note({ note }: any) {
|
||||||
return (<>
|
return (<>
|
||||||
<Layout name={note.title} title={note.title} ancestors={[{ name: 'Notes', path: 'notes' }]}>
|
<Layout name={note.title} title={note.title} ancestors={[{ name: 'Notes', path: 'notes' }]}>
|
||||||
<section className='block'>
|
<section className='block'>
|
||||||
<ReactMarkdown
|
<Markdown content={note.content} />
|
||||||
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>
|
|
||||||
</section>
|
</section>
|
||||||
</Layout>
|
</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%',
|
flex: '1 1 60%',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
fontFamily: `'EB Garamond', 'Garamond', 'Times New Roman', Times, serif`}}>
|
fontFamily: `'EB Garamond', 'Garamond', 'Times New Roman', Times, serif`}}>
|
||||||
<Link href={`/posts/${post.slug}`} >
|
<Link href={`/posts/${post.slug}`} style={{textDecoration: 'none'}}>{post.title}</Link>
|
||||||
<a style={{textDecoration: 'none'}}>{post.title}</a>
|
|
||||||
</Link>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}) ||
|
}) ||
|
||||||
<div className='text center'>
|
<div className='text center'>
|
||||||
<div>**crickets**</div>
|
<div>**crickets**</div>
|
||||||
<div>No posts found...</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>
|
</div>
|
||||||
}
|
}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -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;
|
|
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",
|
"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/
|
|
Loading…
Reference in New Issue
Block a user