No github
This commit is contained in:
parent
283df32afe
commit
1ea3024e4e
13 changed files with 28 additions and 28 deletions
|
|
@ -58,6 +58,7 @@
|
||||||
"loggable",
|
"loggable",
|
||||||
"malloc",
|
"malloc",
|
||||||
"metas",
|
"metas",
|
||||||
|
"mispredictions",
|
||||||
"mixolydian",
|
"mixolydian",
|
||||||
"mlockall",
|
"mlockall",
|
||||||
"mosfets",
|
"mosfets",
|
||||||
|
|
@ -68,6 +69,7 @@
|
||||||
"nums",
|
"nums",
|
||||||
"permacomputing",
|
"permacomputing",
|
||||||
"physarum",
|
"physarum",
|
||||||
|
"piskel",
|
||||||
"pocketbase",
|
"pocketbase",
|
||||||
"powerups",
|
"powerups",
|
||||||
"proptest",
|
"proptest",
|
||||||
|
|
@ -92,6 +94,7 @@
|
||||||
"subvolume",
|
"subvolume",
|
||||||
"syncer",
|
"syncer",
|
||||||
"szintű",
|
"szintű",
|
||||||
|
"tamagotchi",
|
||||||
"tamagotchis",
|
"tamagotchis",
|
||||||
"tarjan's",
|
"tarjan's",
|
||||||
"tidepool",
|
"tidepool",
|
||||||
|
|
@ -99,6 +102,7 @@
|
||||||
"tweakpane",
|
"tweakpane",
|
||||||
"unsets",
|
"unsets",
|
||||||
"vaultlink",
|
"vaultlink",
|
||||||
|
"vtable",
|
||||||
"waveshare",
|
"waveshare",
|
||||||
"waveshare's",
|
"waveshare's",
|
||||||
"webform",
|
"webform",
|
||||||
|
|
|
||||||
|
|
@ -18,15 +18,16 @@
|
||||||
"qa:astro-audit": "node scripts/install-playwright-deps.mjs && node scripts/export-astro-audit.mjs --fail-on-issues",
|
"qa:astro-audit": "node scripts/install-playwright-deps.mjs && node scripts/export-astro-audit.mjs --fail-on-issues",
|
||||||
"qa:no-em-dashes": "node scripts/check-no-em-dashes.mjs",
|
"qa:no-em-dashes": "node scripts/check-no-em-dashes.mjs",
|
||||||
"qa:spelling": "cspell --no-progress \"astro.config.mjs\" \"src/**/*.{astro,ts,md,css}\" \"scripts/**/*.mjs\" \"*.md\"",
|
"qa:spelling": "cspell --no-progress \"astro.config.mjs\" \"src/**/*.{astro,ts,md,css}\" \"scripts/**/*.mjs\" \"*.md\"",
|
||||||
|
"qa:no-github-links": "node scripts/check-no-github-links.mjs",
|
||||||
"qa:links": "node scripts/check-links.mjs",
|
"qa:links": "node scripts/check-links.mjs",
|
||||||
"qa:no-js": "node scripts/check-no-js.mjs",
|
"qa:no-js": "node scripts/check-no-js.mjs",
|
||||||
"qa:overflow": "node scripts/install-playwright-deps.mjs && node scripts/check-overflow.mjs",
|
"qa:overflow": "node scripts/install-playwright-deps.mjs && node scripts/check-overflow.mjs",
|
||||||
"qa:preview-cropping": "node scripts/install-playwright-deps.mjs && node scripts/check-preview-cropping.mjs",
|
"qa:preview-cropping": "node scripts/install-playwright-deps.mjs && node scripts/check-preview-cropping.mjs",
|
||||||
"qa": "npm run typecheck && npm run lint && npm run qa:no-em-dashes && npm run qa:spelling && npm run build && npm run qa:astro-audit && npm run qa:links && npm run qa:no-js && npm run qa:overflow && npm run qa:preview-cropping"
|
"qa": "npm run typecheck && npm run lint && npm run qa:no-em-dashes && npm run qa:spelling && npm run qa:no-github-links && npm run build && npm run qa:astro-audit && npm run qa:links && npm run qa:no-js && npm run qa:overflow && npm run qa:preview-cropping"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/schmelczer/schmelczer.github.io.git"
|
"url": "git+https://git.schmelczer.dev/andras/schmelczer.dev.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"blog",
|
"blog",
|
||||||
|
|
@ -37,9 +38,9 @@
|
||||||
"author": "Andras Schmelczer",
|
"author": "Andras Schmelczer",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/schmelczer/schmelczer.github.io/issues"
|
"url": "https://git.schmelczer.dev/andras/schmelczer.dev/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/schmelczer/schmelczer.github.io#readme",
|
"homepage": "https://git.schmelczer.dev/andras/schmelczer.dev#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@astrojs/check": "^0.9.9",
|
"@astrojs/check": "^0.9.9",
|
||||||
"@astrojs/rss": "^4.0.18",
|
"@astrojs/rss": "^4.0.18",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ const year = new Date().getFullYear();
|
||||||
<address class="footer-contact">
|
<address class="footer-contact">
|
||||||
<a href={`mailto:${site.email}`}>Email</a>
|
<a href={`mailto:${site.email}`}>Email</a>
|
||||||
<a href={site.cv} rel="noopener">CV</a>
|
<a href={site.cv} rel="noopener">CV</a>
|
||||||
<a href={site.github} rel="noopener me">GitHub</a>
|
<a href={site.git} rel="noopener me">Git</a>
|
||||||
<a href={site.linkedin} rel="noopener me">LinkedIn</a>
|
<a href={site.linkedin} rel="noopener me">LinkedIn</a>
|
||||||
</address>
|
</address>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -100,13 +100,7 @@ const mediaSchema = ({ image }: SchemaContext) =>
|
||||||
])
|
])
|
||||||
.refine((item) => item.decorative || (Boolean(item.alt) && Boolean(item.caption)), {
|
.refine((item) => item.decorative || (Boolean(item.alt) && Boolean(item.caption)), {
|
||||||
message: 'Meaningful media needs both alt text and a caption.',
|
message: 'Meaningful media needs both alt text and a caption.',
|
||||||
})
|
});
|
||||||
.refine(
|
|
||||||
(item) => item.type !== 'video' || item.decorative || Boolean(item.transcript),
|
|
||||||
{
|
|
||||||
message: 'Meaningful video needs a transcript.',
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
// A single collection where each entry can carry an `article` facet (a written
|
// A single collection where each entry can carry an `article` facet (a written
|
||||||
// page under /articles/<slug>), a `project` facet (a card in the /projects/
|
// page under /articles/<slug>), a `project` facet (a card in the /projects/
|
||||||
|
|
|
||||||
BIN
src/content/work/_assets/ad-astra-breadboard.jpg
Normal file
BIN
src/content/work/_assets/ad-astra-breadboard.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 389 KiB |
|
|
@ -8,7 +8,7 @@ thumbnail:
|
||||||
alt: The Ad Astra game running on a small OLED display.
|
alt: The Ad Astra game running on a small OLED display.
|
||||||
links:
|
links:
|
||||||
- label: Source
|
- label: Source
|
||||||
url: https://github.com/schmelczer/ad_astra
|
url: https://git.schmelczer.dev/andras/ad_astra
|
||||||
article:
|
article:
|
||||||
tags: ['embedded', 'games', 'systems']
|
tags: ['embedded', 'games', 'systems']
|
||||||
stack: ['C', 'ATtiny85V', 'SPI OLED', 'IR receiver', 'EEPROM', 'KiCad']
|
stack: ['C', 'ATtiny85V', 'SPI OLED', 'IR receiver', 'EEPROM', 'KiCad']
|
||||||
|
|
|
||||||
|
|
@ -8,17 +8,18 @@ thumbnail:
|
||||||
alt: Screenshot of the Avoid web game.
|
alt: Screenshot of the Avoid web game.
|
||||||
article:
|
article:
|
||||||
tags: ['games', 'web']
|
tags: ['games', 'web']
|
||||||
role: Game author
|
|
||||||
stack: ['JavaScript', 'Canvas']
|
stack: ['JavaScript', 'Canvas']
|
||||||
outcome: My first browser game; kept for the timeline, reused for teaching
|
outcome: My first browser game; kept for the timeline, reused for teaching
|
||||||
audience: general
|
project: {}
|
||||||
project:
|
|
||||||
description: My first browser game, kept around so the timeline is honest.
|
|
||||||
thumbnail:
|
|
||||||
alt: Screenshot of the Avoid canvas game.
|
|
||||||
---
|
---
|
||||||
|
|
||||||
January 2018, my first browser game. You're a peach-coloured dot; red dots stream in from the edges and chase you; the score counts how many the game has dared to spawn so far. It isn't good. I keep it here because pretending the older work didn't happen would be revisionism, and because it marks the moment a `<canvas>` element stopped being mysterious to me.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
January 2018, my first browser game. You're a dot; other dots stream in from the edges and chase you; the score counts how many the game has dared to spawn so far. It isn't good. I keep it here because pretending the older work didn't happen would be revisionism, and because it marks the moment a `<canvas>` element stopped being mysterious to me.
|
||||||
|
|
||||||
It had a second job, too. The README isn't documentation; it's the handout for a small JS/Canvas workshop, in Hungarian: what JavaScript is, what a 2D context gives you, why a game loop wants `requestAnimationFrame` and a delta time, why `var` is past tense. The little game turned out to be the right size for explaining things to people who'd never drawn a pixel from code before. The process advice in that handout (write working code first, then make it pretty) is still roughly the only process I follow.
|
It had a second job, too. The README isn't documentation; it's the handout for a small JS/Canvas workshop, in Hungarian: what JavaScript is, what a 2D context gives you, why a game loop wants `requestAnimationFrame` and a delta time, why `var` is past tense. The little game turned out to be the right size for explaining things to people who'd never drawn a pixel from code before. The process advice in that handout (write working code first, then make it pretty) is still roughly the only process I follow.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@ thumbnail:
|
||||||
alt: Placeholder thumbnail for the backup container post.
|
alt: Placeholder thumbnail for the backup container post.
|
||||||
links:
|
links:
|
||||||
- label: Source
|
- label: Source
|
||||||
url: https://github.com/schmelczer/backup-container
|
url: https://git.schmelczer.dev/andras/backup-container
|
||||||
- label: Container image
|
- label: Container image
|
||||||
url: https://github.com/schmelczer/backup-container/pkgs/container/backup-container
|
url: https://git.schmelczer.dev/andras/-/packages/container/backup-container
|
||||||
article:
|
article:
|
||||||
tags: ['systems', 'tools']
|
tags: ['systems', 'tools']
|
||||||
stack: ['Bash', 'BorgBackup', 'BTRFS', 'Alpine', 'Docker', 'SSH', 'zstd']
|
stack: ['Bash', 'BorgBackup', 'BTRFS', 'Alpine', 'Docker', 'SSH', 'zstd']
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ thumbnail:
|
||||||
alt: The decla.red browser game interface showing a space scene.
|
alt: The decla.red browser game interface showing a space scene.
|
||||||
links:
|
links:
|
||||||
- label: Source
|
- label: Source
|
||||||
url: https://github.com/schmelczer/decla.red
|
url: https://git.schmelczer.dev/andras/decla.red
|
||||||
- label: BSc thesis
|
- label: BSc thesis
|
||||||
url: /media/downloads/sdf2d-andras-schmelczer.pdf
|
url: /media/downloads/sdf2d-andras-schmelczer.pdf
|
||||||
download: true
|
download: true
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ thumbnail:
|
||||||
alt: Life Towers goal tracking interface with tower-like visual structures.
|
alt: Life Towers goal tracking interface with tower-like visual structures.
|
||||||
links:
|
links:
|
||||||
- label: Source
|
- label: Source
|
||||||
url: https://github.com/schmelczer/life-towers/
|
url: https://git.schmelczer.dev/andras/life-towers/
|
||||||
article:
|
article:
|
||||||
featuredOrder: 4
|
featuredOrder: 4
|
||||||
tags: ['systems', 'web', 'tools']
|
tags: ['systems', 'web', 'tools']
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ links:
|
||||||
- label: Demo
|
- label: Demo
|
||||||
url: /reconcile/
|
url: /reconcile/
|
||||||
- label: Source
|
- label: Source
|
||||||
url: https://github.com/schmelczer/reconcile
|
url: https://git.schmelczer.dev/andras/reconcile
|
||||||
- label: crates.io
|
- label: crates.io
|
||||||
url: https://crates.io/crates/reconcile-text
|
url: https://crates.io/crates/reconcile-text
|
||||||
- label: npm
|
- label: npm
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ thumbnail:
|
||||||
alt: 'The VaultLink logo: a chain-link mark in a soft gradient.'
|
alt: 'The VaultLink logo: a chain-link mark in a soft gradient.'
|
||||||
links:
|
links:
|
||||||
- label: Source
|
- label: Source
|
||||||
url: https://github.com/schmelczer/vault-link
|
url: https://git.schmelczer.dev/andras/vault-link
|
||||||
- label: Docs
|
- label: Docs
|
||||||
url: https://vault-link.schmelczer.dev
|
url: https://vault-link.schmelczer.dev
|
||||||
article:
|
article:
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ export const site = {
|
||||||
'Notebook of someone who keeps reaching for the same two moves: let the hard constraint pick the data structure, then keep the API small enough to defend.',
|
'Notebook of someone who keeps reaching for the same two moves: let the hard constraint pick the data structure, then keep the API small enough to defend.',
|
||||||
url: 'https://schmelczer.dev',
|
url: 'https://schmelczer.dev',
|
||||||
email: 'andras@schmelczer.dev',
|
email: 'andras@schmelczer.dev',
|
||||||
github: 'https://github.com/schmelczer',
|
git: 'https://git.schmelczer.dev/andras',
|
||||||
linkedin: 'https://www.linkedin.com/in/andras-schmelczer',
|
linkedin: 'https://www.linkedin.com/in/andras-schmelczer',
|
||||||
cv: '/media/downloads/cv-andras-schmelczer.pdf',
|
cv: '/media/downloads/cv-andras-schmelczer.pdf',
|
||||||
};
|
};
|
||||||
|
|
@ -211,7 +211,7 @@ export function buildPersonJsonLd(extra?: Record<string, unknown>) {
|
||||||
name: site.name,
|
name: site.name,
|
||||||
url: site.url,
|
url: site.url,
|
||||||
email: `mailto:${site.email}`,
|
email: `mailto:${site.email}`,
|
||||||
sameAs: [site.github, site.linkedin],
|
sameAs: [site.git, site.linkedin],
|
||||||
description: site.description,
|
description: site.description,
|
||||||
...extra,
|
...extra,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue