diff --git a/content/lab-notes/Chess.md b/content/lab-notes/Chess.md new file mode 100755 index 0000000..a602d56 --- /dev/null +++ b/content/lab-notes/Chess.md @@ -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? \ No newline at end of file diff --git a/content/lab-notes/Poketch.md b/content/lab-notes/Poketch.md index ebd0aa3..e2ec224 100755 --- a/content/lab-notes/Poketch.md +++ b/content/lab-notes/Poketch.md @@ -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 diff --git a/content/lab-notes/Toki Pona Hex Encoding.md b/content/lab-notes/Toki Pona Hex Encoding.md new file mode 100755 index 0000000..a71c835 --- /dev/null +++ b/content/lab-notes/Toki Pona Hex Encoding.md @@ -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 \ No newline at end of file diff --git a/content/lab-notes/pkpass.md b/content/lab-notes/pkpass.md index ebd0aa3..4d251d1 100755 --- a/content/lab-notes/pkpass.md +++ b/content/lab-notes/pkpass.md @@ -1,3 +1,2 @@ ---- -{} ---- +https://file-extensions.com/docs/pkpasss +https://developer.apple.com/documentation/walletpasses \ No newline at end of file diff --git a/content/posts/hypercomplex-interest.md b/content/posts/hypercomplex-interest.md index f8d55ca..b42cec5 100755 --- a/content/posts/hypercomplex-interest.md +++ b/content/posts/hypercomplex-interest.md @@ -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$$