update
All checks were successful
/ ls (push) Successful in 20s

This commit is contained in:
Mira Kristipati 2025-04-04 16:23:14 -04:00
parent 1c1c87a375
commit a25a30f90c
5 changed files with 128 additions and 28 deletions

10
content/lab-notes/Chess.md Executable file
View file

@ -0,0 +1,10 @@
# Game Loop
- display board
- check if endgame state
- end game if needed
- get current side
- get move for current side
---
- `Game` struct contains game state
- Refactor to trait?

View file

@ -1,3 +1,71 @@
---
{}
---
# Hardware
- Display Resolution: 192x160
- potentially just upscaled from 96x80
- at 3x scaling that's 576x480, 32px pillarboxes if 640x480
- 384x320
- how small can the screen physically be?
- android guidelines say 48dp @ 160dpi or 0.3"
- android guidelines also say 48dp is about 9mm so who the fuck knows anymore
- apple says 44pt ~~or 44/72" or 0.61"~~
- 44pt is 44px, 88px, 132px depending on device
- 132px on iPhone X @ 448(?)dpi so ~ 0.294"
- 192x160 is 1.2"x1"
- 640x480 is 4"x5" for a 6.4" diagonal
- 28.8" x 24" needed to meet android accessibility guidelines jfc
- tl;dr: Apple and Google seem to want about 0.3"per target
- NDS screen size is 106.666 dpi
- poketch would be 1.8x1.5"
- **640x480 would be 2x1.5" or 2.5" diagonal**
- https://www.adafruit.com/product/2478 should do the trick
- 320x240 2.4"
- we use 288x240 (1.5x)
- 2 Bit grayscale
- Touch screen
- 5:4 aspect ratio
- 1/2 physical buttons
# etc
- will need a font
- sprite based?
- ttf based?
- https://lvgl.io/tools/fontconverter
# stretch goals
- use wifi/ble
- config applet
- also would handle right vs left handed
- mqtt/ntfy.sh
- display notifications using margins?
- android notifications sync
- requires adding to gadgetbridge long term
- pedometer
- needs extra hardware
# Sprites
- [x] Digital Watch
- [x] Calculator
- [ ] Memo Pad
- [x] Pedometer
- [x] Pokemon List
- [x] Friendship Checker
- [ ] Dowsing Machine
- [x] Berry Searcher
- [ ] Day-Care Checker
- [ ] Pokemon History
- [ ] Counter
- [x] Analog Watch
- [x] Marking Map
- [x] Link Searcher
- [ ] Coin Toss
- [ ] Move Tester
- [ ] Calendar
- [ ] Dot Artist
- [x] Roulette
- [ ] Chain Counter
- [x] Kitchen Timer
- [ ] Color Changer
- [ ] Matchup Checker
- [ ] Stopwatch
- [ ] Alarm Clock

View file

@ -0,0 +1,23 @@
| | |
| --- | --- |
| a | A |
| e | E/* |
| i | 1 |
| o | 0 |
| u | 5 |
| n | 7 |
| | |
| j | 3 |
| k | 9 |
| l | 6 |
| m | 4 |
| p | B |
| s | C |
| t | D |
| w | 2 |
| ∅ | F/# |
D091 41 3A7 416A
Ports over to DTMF as well

View file

@ -1,3 +1,2 @@
---
{}
---
https://file-extensions.com/docs/pkpasss
https://developer.apple.com/documentation/walletpasses

View file

@ -11,10 +11,10 @@ You know what, fuck you _rotates your interest rates 90°_
Y'all remember this from like 4th grade right, I barely do so here's a refresh
$$ z = Pe^{rt} $$
- \(P\) is your principal, or how much money you initially put in or took out
- \(r\) is the interest rate, you want this to be low if you're borrowing and high if you're lending
- \(t\) is time, unless you have a TARDIS, this one is pretty out of your control
- \(z\) is how much money you owe/are owed, I know this isn't the standard variable name but bear with me
- $P$ is your principal, or how much money you initially put in or took out
- $r$ is the interest rate, you want this to be low if you're borrowing and high if you're lending
- $t$ is time, unless you have a TARDIS, this one is pretty out of your control
- $z$ is how much money you owe/are owed, I know this isn't the standard variable name but bear with me
Now let's make it spicy
@ -26,13 +26,13 @@ Let's keep things simple for now and just rotate it around 0 like it's a circle
![The quantity $2 rotated 45 degrees about the origin, yielding a complex amount of money](Pasted%20image%2020240926154326.png)
We can represent this as a complex number in the form \(z=Pe^{i\theta}\), where \(\theta\) is some angle.
Hold on a second this looks kinda like the the interest rate formula from earlier. Let's add in time as a factor to get: \(z=Pe^{i\theta t}\).
We can represent this as a complex number in the form $z=Pe^{i\theta}$, where $\theta$ is some angle.
Hold on a second this looks kinda like the the interest rate formula from earlier. Let's add in time as a factor to get: $z=Pe^{i\theta t}$.
Okay so we can see that this is basically just compound interest with an interest rate of \(\theta\).
Okay so we can see that this is basically just compound interest with an interest rate of $\theta$.
What does this even mean, can I use this to get out of student loans? Do I owe MOHELA imaginary money?
Well I left out an important detail, \(Pe^{i\theta}=P\cos(t\theta)+iP\sin(t\theta)\)
Well I left out an important detail, $Pe^{i\theta}=P\cos(t\theta)+iP\sin(t\theta)$
The proof is trivial and would be left as an exercise to the reader but unfortunately I need to use it later on so here's why this works:
@ -42,7 +42,7 @@ So let's say I owe 1,000 USD at a 5% interest rate (I wish lmao), that would loo
> [!TODO] Todo
That makes sense, but now let's look at what happens if we do \(5i\%\)
That makes sense, but now let's look at what happens if we do $5i\%$
![A graph of compound interest at 5% vs 5i% interest rates](Pasted%20image%2020240926123001.png)
Well the real part ends up being
$$\Re(z)=P\cos(\frac\pi 2rt)$$
@ -66,32 +66,32 @@ Normally when you rotate something you move it in a circle, which is cool and al
![The quantity $2 hyperbolically rotated about the origin by 45 degrees, yielding a split-complex value](Pasted%20image%2020240926154245.png)
Introducing: the Hyperbola
![The unit circle (red), alongside the unit hyperbola(green)](Pasted%20image%2020240926154035.png)
So with the unit circle we had an equation like \(x^2+y^2=1\), well there's a unit Hyperbola too and the equation for that is \(x^2-y^2=1\).
So with the unit circle we had an equation like $x^2+y^2=1$, well there's a unit Hyperbola too and the equation for that is $x^2-y^2=1$.
There's actually a lot more stuff that circles have that have a hyperbolic equivalent.
Remember \(\sin\) and \(\cos\)? There's also a \(\sinh\) and \(\cosh\), don't ask me to explain these because we didn't cover them at all in high school.
Remember $\sin$ and $\cos$? There's also a $\sinh$ and $\cosh$, don't ask me to explain these because we didn't cover them at all in high school.
Here's the big one that we care about though, we know multiplying something by \(i\) rotates it around a circle, there's actually a \(j\) that rotates something around a hyperbola.
Here's the big one that we care about though, we know multiplying something by $i$ rotates it around a circle, there's actually a $j$ that rotates something around a hyperbola.
But what exactly is this mysterious \(j\)?. It's shrimple as really, \(j=\sqrt{1}\).
But what exactly is this mysterious $j$?. It's shrimple as really, $j=\sqrt{1}$.
> [!QUOTE] Isn't that just 1?
No. don't think about it too hard
> [!QUOTE] So what does \(e^{\theta j}\) break down into, if anything?
> [!QUOTE] So what does $e^{\theta j}$ break down into, if anything?
I wouldn't be asking this rhetorical if there wasn't a semi-interesting answer
It's actually \(Pe^{j\theta t} = P\cosh(t\theta)+jP\sinh(t\theta)\)
It's actually $Pe^{j\theta t} = P\cosh(t\theta)+jP\sinh(t\theta)$
# Dual Interest rates
Okay this one isn't as interesting but I want to include it for completeness,
We have \(i=\sqrt{-1},\ j=\sqrt{1}\), now get ready for \(\varepsilon=\sqrt{0}\). I guess was taken when they invented this one?
We have $i=\sqrt{-1},\ j=\sqrt{1}$, now get ready for $\varepsilon=\sqrt{0}$. I guess was taken when they invented this one?
> [!Todo] todo
while we're on the topic of dual numbers, lets try shoving \(x+\varepsilon\) into some functions for shits and giggles:
while we're on the topic of dual numbers, lets try shoving $x+\varepsilon$ into some functions for shits and giggles:
$$(x+\varepsilon)^2=x^2+2x\varepsilon+\varepsilon^2=2x\varepsilon$$
> [!quote] Okay that was a waste of time, was that supposed to be interesting?
@ -100,9 +100,9 @@ Yes. I'm getting there
$$\sin(x+\varepsilon)=(x+\varepsilon)-\frac{(x+\varepsilon)^3}{3!}+\frac{(x+\varepsilon)^5}{5!}\ldots$$
Okay now lets expand that out
$$=(x+\varepsilon)-\frac{x^3+3x^2\varepsilon+3x\varepsilon^2+\varepsilon^3}{3!}+\frac{x^5+5x^4\varepsilon+10x^3\epsilon^2+10x^2\varepsilon^3+5x\varepsilon^4+\varepsilon^5}{5!}\ldots$$
of course \(\varepsilon\) to powers higher than 1 just ends up being zero so we can simplify this monstrosity down to
of course $\varepsilon$ to powers higher than 1 just ends up being zero so we can simplify this monstrosity down to
$$=x+\varepsilon-\frac{x^3+3x^2\varepsilon}{3!}+\frac{x^5+5x^4\varepsilon}{5!}$$
...except this still doesn't mean too much, lets try factoring \(\varepsilon\) out
...except this still doesn't mean too much, lets try factoring $\varepsilon$ out
$$(x-\frac{x^3}{3!}+\frac{x^5}{5!}+\ldots)+\varepsilon(1-\frac{x^2}{2!}+\frac{x^4}{4!})$$
$$=\sin(x)+-\cos(x)\varepsilon$$
@ -110,10 +110,10 @@ $$=\sin(x)+-\cos(x)\varepsilon$$
Yeah actually. If you remember back to 8th grade,
$$f'(x)=\frac{d}{dx}f(x)=\lim_{h\to0}\frac{f(x+h)-f(x)}{h}$$
We can kinda replace \(h\to 0\) here with \(\varepsilon\) since it's basically an infinitely tiny number that's not zero or negative, which gives us
We can kinda replace $h\to 0$ here with $\varepsilon$ since it's basically an infinitely tiny number that's not zero or negative, which gives us
$$f'(x)=\frac{f(x+\varepsilon)-f(x)}{\varepsilon}$$
> [!note] Dividing by is sus as fuck, but just bear with me here
> [!note] Dividing by $\varepsilon$ is sus as fuck, but just bear with me here
$$\varepsilon f'(x)=f(x+\varepsilon)-f(x)$$
$$f(x+\varepsilon)=f(x)=\varepsilon f'(x)$$
@ -123,12 +123,12 @@ There you go, typesetting this was a bitch.
## Matrix Representations
Fun fact, you can also represent \(i,j,\varepsilon\) as matrices too
Its already kinda standard to use \(\begin{bmatrix}1&0\\0&1\end{bmatrix}\) to cast real numbers into 2D matrices, but there's two zeros in there doing nothing, maybe we can yoink those for real estate.
Fun fact, you can also represent $i,j,\varepsilon$ as matrices too
Its already kinda standard to use $\begin{bmatrix}1&0\\0&1\end{bmatrix}$ to cast real numbers into 2D matrices, but there's two zeros in there doing nothing, maybe we can yoink those for real estate.
Introducing:
$$i=\begin{bmatrix}0&1\\-1&0\end{bmatrix},\ j=\begin{bmatrix}0&1\\1&0\end{bmatrix},\ \varepsilon=\begin{bmatrix}0&1\\0&0\end{bmatrix}$$
These versions actually obey the same multiplication rules as our original derivations of the hypercomplex numbers. Now we can turn something like \(6+3j\) into \(\begin{bmatrix}6&3\\3&6\end{bmatrix}\)
These versions actually obey the same multiplication rules as our original derivations of the hypercomplex numbers. Now we can turn something like $6+3j$ into $\begin{bmatrix}6&3\\3&6\end{bmatrix}$
## Colors
@ -136,7 +136,7 @@ As somewhat of a convention, I use red, green, and blue in this post to differen
## Honey, I broke the concept of division!
Yeah... division doesn't really work right when you bring \(j\) and \(\varepsilon\) into the mix since you can multiply non-zero stuff and get zero out
Yeah... division doesn't really work right when you bring $j$ and $\varepsilon$ into the mix since you can multiply non-zero stuff and get zero out
$$\frac{1}{1+j}\cdot\frac{1}{1-j}=\frac{1}{1-j^2}=\frac{1}{1-1}=\frac10$$
$$\frac 1\varepsilon \cdot \frac 1\varepsilon=\frac 1{\varepsilon^2}=\frac 10$$