new text adn interests page
This commit is contained in:
@@ -1,56 +0,0 @@
|
|||||||
{{define "nav"}}
|
|
||||||
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{define "body"}}
|
|
||||||
<section id="automation">
|
|
||||||
<div class="page-header">
|
|
||||||
<h2 class="page-title">Technical Tools & Automation</h2>
|
|
||||||
<span class="page-sub">engineering/programing</span>
|
|
||||||
</div>
|
|
||||||
<div class="exp-grid">
|
|
||||||
<p class="exp-body">
|
|
||||||
The task here is simple: to reduce work, it's a simple investment. The choice of picking the correct
|
|
||||||
bottleneck is as important as the tool itself, as this gives it use. If it's never used, it never creates
|
|
||||||
value. The same goes for uptime, it's important that stability is almost perfect, as downtime undermines
|
|
||||||
the utility of having the tool. Remember that making and using a tool also creates debt for future
|
|
||||||
maintenance of the tool.
|
|
||||||
<br>
|
|
||||||
To adhere to this, I often choose Golang or Python as they are cheap to maintain. Golang has good
|
|
||||||
stability because it is easy to code and compile checks give early error detection. A word of caution on
|
|
||||||
AI generated tools: while they are cheap to make, the maintenance debt grows exponentially, as the code is
|
|
||||||
often poorly understood by the team and difficult to reason about over time.
|
|
||||||
|
|
||||||
</p>
|
|
||||||
<div class="exp-card" >
|
|
||||||
<div class="exp-header">
|
|
||||||
<span class="exp-title">Portfolio Engine</span>
|
|
||||||
</div>
|
|
||||||
<p class="exp-body">A lightweight portfolio and financial data backend written in Go. Tracks companies,
|
|
||||||
currencies, revenue reports, and trades across configurable time periods — replacing spreadsheets with a
|
|
||||||
proper database, REST API, and interactive shell.</p>
|
|
||||||
<span class="exp-title">Roadmap</span>
|
|
||||||
<ul style="padding: 20px;">
|
|
||||||
<li class="exp-body">Price update endpoint</li>
|
|
||||||
<li class="exp-body">Multi-currency conversion</li>
|
|
||||||
<li class="exp-body">Frontend dashboard</li>
|
|
||||||
<li class="exp-body">Shares outstanding history database table</li>
|
|
||||||
<li class="exp-body">Earnings per share (EPS) based on shares owned</li>
|
|
||||||
<li class="exp-body">First-In, First-Out (FIFO) realized gains</li>
|
|
||||||
<li class="exp-body">Dividends earned and related taxes</li>
|
|
||||||
<li class="exp-body">Total tax obligations</li>
|
|
||||||
</ul>
|
|
||||||
<a class="outlink" href="https://git.samantha42.xyz/samantha/Portfolio-Engine">Git repo</a>
|
|
||||||
</div>
|
|
||||||
<div class="exp-card">
|
|
||||||
<div class="exp-header">
|
|
||||||
<span class="exp-title">Accounting Management</span>
|
|
||||||
</div>
|
|
||||||
<p class="exp-body">
|
|
||||||
A lightweight, SQL-backed, web-based CLI system designed to track assets and liabilities. The goal is to
|
|
||||||
provide a simple, fast, and scalable financial tracking tool that can grow from personal use to more
|
|
||||||
advanced scenarios.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
{{end}}
|
|
||||||
@@ -52,19 +52,39 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<div class="exp-flex">
|
<p class="exp-body">
|
||||||
<p class="exp-body">I love my custom Linux setup. I use Hyprland, which automatically arranges app windows
|
Programming can be a chore, but for me it's a source of joy. It's something I do as a hobby, and I
|
||||||
on my screen so everything stays organized without dragging things around. I also use Quickshell, which
|
don't use LLMs much. It's about having fun and making a fool of yourself. It's not about how good it is,
|
||||||
lets me customize menus, shortcuts, and system controls to work exactly how I want.
|
in this case, I'd rather just listen to music and drink a cup of tea. I enjoy the struggle to debug, the small beauty in understanding why a bug was there in the first place.
|
||||||
My system is based on Arch Linux or Manjaro Linux, which are versions of Linux that give you more
|
|
||||||
control and customization than a typical computer setup. The result is a clean, fast, and super
|
|
||||||
efficient desktop that's hard to go back from.
|
|
||||||
<a class="outlink" href="https://git.samantha42.xyz/samantha/dotfiles">Git repo</a>
|
|
||||||
</p>
|
</p>
|
||||||
<img src="/static/images/sql.png" style="height: 400px; align-self: center;">
|
|
||||||
</div>
|
<img src="/static/images/sql.png" style="width: 70%; padding: 10px 15% 10px; align-self: center;">
|
||||||
|
<p class="exp-body">
|
||||||
|
I chose SQLite3 because it's a SQL-based database that doesn't need a live server, just a single db file.
|
||||||
|
The idea is to use a monolith to control the book records, so no collisions should happen. The IDs and other
|
||||||
|
fields are kept very basic because of SQLite's minimal type support.
|
||||||
|
|
||||||
|
Entries are ints and strings. The history of changes, saved as events, is stored as blobs, since retrieving
|
||||||
|
these should only happen on rare occasions. Mostly the resulting changes are saved, while the more granular
|
||||||
|
event-by-business-action log is timestamped, and its id relates to the resulting entries (account movements).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<img src="/static/images/directory.png" style="width: 60%; padding: 10px 15% 10px; align-self: center;">
|
||||||
|
|
||||||
|
<p class="exp-body">
|
||||||
|
Space can be a concern, so I save attachments in a compressed format. By separating attachments, a linked
|
||||||
|
directory could be saved on a hard disk drive instead, as these will probably almost never get accessed after
|
||||||
|
saving. Only occasionally in an audit scenario.
|
||||||
|
<br>
|
||||||
|
The filename is the id from the db. This way, if there's ever a corruption scare, I could read the db as a
|
||||||
|
text file and find the metadata from the id. It also makes naming irrelevant, so filenames can't collide.
|
||||||
|
</p>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<section id="product">
|
<section id="product">
|
||||||
<div class="section-head">
|
<div class="section-head">
|
||||||
<h2>Web based access</h2>
|
<h2>Web based access</h2>
|
||||||
|
|||||||
+44
-95
@@ -1,140 +1,89 @@
|
|||||||
{{define "nav"}}
|
{{define "nav"}}
|
||||||
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<p class="sidebar-label">pages</p>
|
|
||||||
<div class="sidebar-links">
|
|
||||||
<a href="/automation">automation</a>
|
|
||||||
<a href="/research">research</a>
|
|
||||||
<a href="/bookkeeping">bookkeeping</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<p class="sidebar-label">subjects</p>
|
<p class="sidebar-label">subjects</p>
|
||||||
<div class="skill-list">
|
<div class="skill-list">
|
||||||
<div class="skill-item">movies</div>
|
<div class="skill-item">movies</div>
|
||||||
|
<div class="skill-item">music</div>
|
||||||
<div class="skill-item">games</div>
|
<div class="skill-item">games</div>
|
||||||
<div class="skill-item">linux</div>
|
<div class="skill-item">linux</div>
|
||||||
<div class="skill-item">board games</div>
|
<div class="skill-item">git</div>
|
||||||
|
<div class="skill-item">programing</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|
||||||
{{define "body"}}
|
{{define "body"}}
|
||||||
<section id="interests">
|
<section id="interests">
|
||||||
<div id="interests-body">
|
<div id="interests-body">
|
||||||
<span class="matrix-hidden" id="matrix-hidden">
|
|
||||||
Boy: Do not try and bend the spoon. That's impossible. Instead... only try to realize the truth.
|
|
||||||
<br>
|
|
||||||
Neo: What truth?
|
|
||||||
<br>
|
|
||||||
Boy: There is no spoon.
|
|
||||||
</span>
|
|
||||||
<div class="section-head">
|
<div class="section-head">
|
||||||
<h2>Movie/Show Top list</h2>
|
<h2>Link Tree</h2>
|
||||||
</div>
|
|
||||||
<div class="toplist-group">
|
|
||||||
<h3>Top 5 Movies</h3>
|
|
||||||
<div class="toplist-body">
|
|
||||||
<div class="poster-grid">
|
|
||||||
<div class="poster-item posterhover" onclick="bladerunnerClick()">
|
|
||||||
<img src="/static/posters/bladerunner2049.jpg" alt="Blade Runner 2049">
|
|
||||||
<p>Blade Runner 2049</p>
|
|
||||||
</div>
|
|
||||||
<div class="poster-item posterhover" onclick="cureClick()">
|
|
||||||
<img src="/static/posters/AcureForWellness.jpg" alt="A Cure of Wellness">
|
|
||||||
<p>A Cure of Wellness</p>
|
|
||||||
</div>
|
|
||||||
<div class="poster-item posterhover" onclick="matrixClick()">
|
|
||||||
<img src="/static/posters/matrix.jpg" alt="matrix">
|
|
||||||
<p>The Matrix</p>
|
|
||||||
</div>
|
|
||||||
<div class="poster-item posterhover" onclick="draculaClick()">
|
|
||||||
<img src="/static/posters/Dracula.webp" alt="Dracula: A Love Tale">
|
|
||||||
<p>Dracula: A Love Tale</p>
|
|
||||||
</div>
|
|
||||||
<div class="poster-item posterhover" onclick="dragonTypewriterClick()">
|
|
||||||
<img src="/static/posters/TheGirlwiththeDragonTattoo.webp" alt="Girl with a Dragon Tattoos">
|
|
||||||
<p>Girl with a Dragon Tattoo</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="exp-grid">
|
||||||
|
<div class="exp-card link" onclick="window.location.href='https://letterboxd.com/samantha42/'">
|
||||||
|
<div class="exp-header">
|
||||||
|
<span class="exp-title">Movies</span>
|
||||||
|
<span class="exp-tag">LetterBoxed</span>
|
||||||
</div>
|
</div>
|
||||||
|
<p class="exp-body">film reviews/ratings and watchlist</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="toplist-group">
|
<div class="exp-card link" onclick="window.location.href='https://git.samantha42.xyz/samantha'">
|
||||||
<h3>Top 5 Shows</h3>
|
<div class="exp-header">
|
||||||
<div class="toplist-body">
|
<span class="exp-title">Git repo</span>
|
||||||
<div class="poster-grid">
|
<span class="exp-tag">Gitea profile</span>
|
||||||
<div class="poster-item">
|
|
||||||
<img src="/static/posters/foundation.jpg" alt="foundation">
|
|
||||||
<p>Foundation</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="poster-item">
|
<p class="exp-body">Personal public repos.</p>
|
||||||
<img src="/static/posters/Chernobyl.webp" alt="Chernobyl">
|
|
||||||
<p>Chernobyl</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="poster-item">
|
|
||||||
<img src="/static/posters/Breaking Bad.webp" alt="Breaking Bad">
|
<div class="exp-card link" onclick="window.location.href='https://steamcommunity.com/id/samantha42/'">
|
||||||
<p>Breaking Bad</p>
|
<div class="exp-header">
|
||||||
</div>
|
<span class="exp-title">Games</span>
|
||||||
<div class="poster-item">
|
<span class="exp-tag">Steam</span>
|
||||||
<img src="/static/posters/Avatar.webp" alt="Avatar: The Last Airbender">
|
|
||||||
<p>Avatar: The Last Airbender</p>
|
|
||||||
</div>
|
|
||||||
<div class="poster-item">
|
|
||||||
<img src="/static/posters/Adolescence.webp" alt="Adolescence">
|
|
||||||
<p>Adolescence</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
<p class="exp-body">games and inventory</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<br>
|
||||||
|
|
||||||
<div class="section-head">
|
<div class="section-head">
|
||||||
<h2>Lunix rice</h2>
|
<h2>Lunix rice</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="exp-flex">
|
|
||||||
|
|
||||||
<p class="exp-body">I love my custom Linux setup. I use Hyprland, which automatically arranges app windows
|
<p class="exp-body">I love my custom Linux setup. I use Hyprland, which automatically arranges app windows
|
||||||
on my screen so everything stays organized without dragging things around. I also use Quickshell, which
|
on my screen so everything stays organized without dragging things around. I also use Quickshell, which
|
||||||
lets me customize menus, shortcuts, and system controls to work exactly how I want.
|
lets me customize menus, shortcuts, and system controls to work exactly how I want.
|
||||||
My system is based on Arch Linux or Manjaro Linux, which are versions of Linux that give you more
|
My system is based on Arch Linux or Manjaro Linux, which are versions of Linux that give you more
|
||||||
control and customization than a typical computer setup. The result is a clean, fast, and super
|
control and customization than a typical computer setup. The result is a clean, fast, and super
|
||||||
efficient desktop that’s hard to go back from.
|
efficient desktop that's hard to go back from.
|
||||||
<a class="outlink" href="https://git.samantha42.xyz/samantha/dotfiles">Git repo</a>
|
<a class="outlink" href="https://git.samantha42.xyz/samantha/dotfiles">
|
||||||
|
<button style="background: var(--surface);">Git repo</button>
|
||||||
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<img src="/static/images/rice.png" style="width: 400px; align-self: center;">
|
<img src="/static/images/rice.png" style="width: 95%; align-self: center;">
|
||||||
</div>
|
|
||||||
<div class="section-head">
|
<div class="section-head">
|
||||||
<h2>programing</h2>
|
<h2>programing</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="exp-flex">
|
|
||||||
<img src="/static/images/program.png" style="height: 500px;" alt="program">
|
|
||||||
<div>
|
|
||||||
<p class="exp-body">
|
<p class="exp-body">
|
||||||
Programming can be a task, but for me it's a source of joy. This is something I do as a hobby, and I
|
Programming can be a chore, but for me it's a source of joy. It's something I do as a hobby, and I
|
||||||
don't use AI much. It's about having fun and making a fool of yourself. It's not about how good it is,
|
don't use LLMs much. It's about having fun and making a fool of yourself. It's not about how good it is,
|
||||||
in this case, I'd rather just listen to music and drink a cup of tea. I enjoy the struggle to debug, the
|
in this case, I'd rather just listen to music and drink a cup of tea. I enjoy the struggle to debug, the small beauty in understanding why a bug was there in the first place.
|
||||||
beauty in understanding why a bug is there to begin with.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<p class="exp-body">
|
|
||||||
The text editor I use most is VS Code, but I love the Neovim setup as it enables me to code on a
|
|
||||||
low-level system without a desktop environment being necessary. I do most of my coding on my own
|
|
||||||
desktop, synced with Git to other systems, like the server that hosts this website, which I have built
|
|
||||||
myself. The creation of this website is more of a fun dumb activity for me... go click on one of the
|
|
||||||
movie posters and see.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<div class="section-head">
|
<div class="section-head">
|
||||||
<h2>Games</h2>
|
<h2>Music playlists</h2>
|
||||||
</div>
|
|
||||||
<p class="exp-body" >Game i will play in my free time to wind down.</p>
|
|
||||||
<div hx-get="/static/components/games.html" hx-trigger="load" hx-swap="outerHTML">
|
|
||||||
<span class="spinner">Loading stats…</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/playlist/6cp6fCnsOaNd2WDTPRuOR1?utm_source=generator" width="100%" height="200" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
|
||||||
|
|
||||||
|
<iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/playlist/4aGMTgl6eNMspp37jrQ799?utm_source=generator" width="100%" height="200" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
|
||||||
|
|
||||||
|
<iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/playlist/4yxijQILgLkF0UDCUDAauc?utm_source=generator" width="100%" height="200" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
{{end}}
|
{{end}}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
Reference in New Issue
Block a user