From 6ecf59b7a764a1ec03289473a9735c10a9896211 Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Mon, 15 Jun 2026 20:25:47 +0200 Subject: WIP --- build.py | 14 +++++++---- site/common.pdf | Bin 0 -> 2306 bytes site/common.typ | 22 +++++++++++------ site/content/software/gnlse_python.typ | 12 ++++++++++ site/content/software/index.typ | 7 ++++++ site/content/software/this_site.typ | 8 +++++++ site/content/software/tremulous.typ | 10 ++++++++ site/index.typ | 42 ++++++++++++++++++--------------- site/refs.bib | 19 +++++++++++++++ static/style.css | 8 +++++-- 10 files changed, 109 insertions(+), 33 deletions(-) create mode 100644 site/common.pdf create mode 100644 site/content/software/gnlse_python.typ create mode 100644 site/content/software/index.typ create mode 100644 site/content/software/this_site.typ create mode 100644 site/content/software/tremulous.typ diff --git a/build.py b/build.py index 799eceb..15fe9b8 100644 --- a/build.py +++ b/build.py @@ -53,6 +53,7 @@ class Builder: ) ) + # FIXME: can we use one field for date? if 'date_year' in metadata: date = datetime( year=metadata['date_year'], @@ -72,13 +73,17 @@ class Builder: return [self._compile_typst_page(path) for path in self.content_dir.rglob('*.typ')] def _compile_index_page(self, pages: list[CompiledPage]) -> None: - # pages.sort(key=lambda page: page.date) - # template = jinja2.Template((self.site_dir / 'index.html').read_text()) - # (self.public_dir / 'index.html').write_text(template.render(pages=pages)) - payload_path = self.temp_dir / 'payload.json' payload_path.parent.mkdir(parents=True, exist_ok=True) + # Maybe sorting/filtering should be done in Typst? + pages = [ + page + for page in pages + if page.date is not None + ] + pages.sort(key=lambda page: page.date, reverse=True) + with payload_path.open('w') as file: payload = { 'pages': [ @@ -90,7 +95,6 @@ class Builder: 'day': page.date.day if page.date else None, } for page in pages - if page.date is not None ], } json.dump(payload, file) diff --git a/site/common.pdf b/site/common.pdf new file mode 100644 index 0000000..923c4e9 Binary files /dev/null and b/site/common.pdf differ diff --git a/site/common.typ b/site/common.typ index 3f2bd61..d724bc0 100644 --- a/site/common.typ +++ b/site/common.typ @@ -63,7 +63,13 @@ } } -#let template(title, header, main) = { +#let template(title, header, main, front_page: false) = { + let body_attrs = if front_page { + (class: "front-page") + } else { + (:) + } + html.html({ html.head({ html.meta(charset: "utf-8") @@ -71,12 +77,14 @@ html.title(title) html.link(rel: "stylesheet", href: static("style.css")) }) - html.header(header) - html.main(main) - html.footer[ - © 2019--2026 Paweł Redman \ - Text and images are licensed under #link("https://creativecommons.org/licenses/by-sa/4.0/")[CC-BY-SA 4.0] unless noted otherwise. - ] + html.elem("body", attrs: body_attrs, { + html.header(header) + html.main(main) + html.footer[ + © 2019--2026 Paweł Redman \ + Text and images are licensed under #link("https://creativecommons.org/licenses/by-sa/4.0/")[CC-BY-SA 4.0] unless noted otherwise. + ] + }) }) } diff --git a/site/content/software/gnlse_python.typ b/site/content/software/gnlse_python.typ new file mode 100644 index 0000000..373a4ec --- /dev/null +++ b/site/content/software/gnlse_python.typ @@ -0,0 +1,12 @@ +#import "/common.typ": post, static, img, link-self + +#show: post.with( + title: "gnlse-python", + date: datetime(year: 2026, month: 6, day: 15), +) + +#link("https://github.com/WUST-FOG/gnlse-python")[gnlse-python] is an open-source program for simulating non-linear light propagation in optical fibers, based on MATLAB scripts from @Dudley2006. It's described in detail in #link("https://arxiv.org/pdf/2110.00298")[this article] @Redman2021, so I won't write about the physics here. + +My main contribution was the initial MATLAB-to-Python rewrite and getting SciPy's integrator to converge. I made sure this became a proper project with a decent layout and documentation, not a bag of random scripts. + +#bibliography("/refs.bib") diff --git a/site/content/software/index.typ b/site/content/software/index.typ new file mode 100644 index 0000000..120421e --- /dev/null +++ b/site/content/software/index.typ @@ -0,0 +1,7 @@ +#import "/common.typ": post, static + +#show: post.with( + title: "My software", +) + +TODO: index \ No newline at end of file diff --git a/site/content/software/this_site.typ b/site/content/software/this_site.typ new file mode 100644 index 0000000..297e95f --- /dev/null +++ b/site/content/software/this_site.typ @@ -0,0 +1,8 @@ +#import "/common.typ": post + +#show: post.with( + title: "This site", + date: datetime(year: 2026, month: 6, day: 15), +) + +Discovering #link("https://typst.app")[Typst] diff --git a/site/content/software/tremulous.typ b/site/content/software/tremulous.typ new file mode 100644 index 0000000..ba586ac --- /dev/null +++ b/site/content/software/tremulous.typ @@ -0,0 +1,10 @@ +#import "/common.typ": post + +#show: post.with( + title: "Tremulous", + date: datetime(year: 2026, month: 6, day: 15), +) + +Tremulous was #footnote[testing the footnote] + + diff --git a/site/index.typ b/site/index.typ index 227485a..b0d5113 100644 --- a/site/index.typ +++ b/site/index.typ @@ -4,9 +4,12 @@ #show: template.with( "redman.xyz", html.h1("redman.xyz"), + front_page: true, ) -I'm Paweł Redman, known online as enneract, a software engineer working on LTE/NR Layer 1 with a #link-self("bsc_thesis")[B.Sc. in Optics and Photonics Engineering]. +I'm Paweł Redman, known online as enneract, a software engineer working on LTE/NR Layer 1 with a BSc in Optics and Photonics Engineering. + +TODO: more content = Latest posts @@ -18,29 +21,30 @@ I'm Paweł Redman, known online as enneract, a software engineer working on LTE/ ) if (datetime.today() - date).days() > 365 { - break + continue } - format-date-en(date) - " " - link(webroot + page.url, page.title) + [ + - #format-date-en(date) #link(webroot + page.url, page.title) + ] } -= Selected projects += Interests -TODO +- #strong[Color science] -= All pages (debug) + - #link-self("gsoc/index")[Colour] --- spectral upsampling and color quality metrics (GSoC 2020) + - #link-self("bsc_thesis")[My bachelor's thesis] --- visible-light spectrometry and color rendering -#for page in payload.pages { - let date = datetime( - year: page.year, - month: page.month, - day: page.day, - ) +- #strong[Computational physics] + - #link-self("software/gnlse_python")[gnlse-python] --- non-linear light propagation in optical fibers + - #link-self("software/cem")[cem] --- my old FDTD wave simulator + - #link-self("software/ray")[ray] --- my old path tracer - format-date-en(date) - " " - link(webroot + page.url, page.title) - "\n" -} +- #strong[Game development] + + - #link-self("software/tremulous")[Tremulous] --- a 3D FPS/RTS hybrid I spent almost two decades playing and modding + - #link("https://unvanquished.net/")[Unvanquished] --- the spiritual successor to Tremulous, to which I've contributed code and assets + - #link-self("software/minitrem")[Minitrem] --- my 2D RTS game inspired by Tremulous + +- #strong[#link-self("math/index")[Mathematics]] diff --git a/site/refs.bib b/site/refs.bib index 5949863..0bb7f34 100644 --- a/site/refs.bib +++ b/site/refs.bib @@ -62,3 +62,22 @@ year = {2019}, doi = {10.1145/3306346.3322964}, } + +@article{Redman2021, + author = {Pawe{\l} Redman and Magdalena Zatorska and Adam Paw{\l}owski and Daniel Szulc and Sylwia Majchrowska and Karol Tarnowski}, + title = {{gnlse-python}: Open Source Software to Simulate Nonlinear Light Propagation in Optical Fibers}, + journal = {arXiv preprint arXiv:2110.00298}, + year = {2021}, + doi = {10.48550/arXiv.2110.00298}, +} + +@article{Dudley2006, + author = {J. M. Dudley and G. Genty and S. Coen}, + title = {Supercontinuum Generation in Optical Fibers}, + journal = {Reviews of Modern Physics}, + volume = {78}, + number = {4}, + pages = {1135--1184}, + year = {2006}, + doi = {10.1103/RevModPhys.78.1135}, +} diff --git a/static/style.css b/static/style.css index 01b992d..9165da6 100644 --- a/static/style.css +++ b/static/style.css @@ -3,12 +3,16 @@ body { margin: 0 auto; padding: 2rem 1rem; line-height: 1.6; -} -body { font-family: sans-serif; } +/* Front page */ + +body.front-page { + max-width: 100ch; +} + /* Header */ h1 { -- cgit