{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Paul Taylor Miller",
  "home_page_url": "https://paultaylormiller.com",
  "feed_url": "https://paultaylormiller.com/feed.json",
  "description": "Notes on software, research, and the occasional rabbit hole.",
  "icon": "https://paultaylormiller.com/favicon.jpeg",
  "favicon": "https://paultaylormiller.com/favicon.jpeg",
  "language": "en-GB",
  "authors": [
    {
      "name": "Paul Taylor Miller"
    }
  ],
  "items": [
    {
      "id": "https://paultaylormiller.com/articles/infblade-beyond",
      "url": "https://paultaylormiller.com/articles/infblade-beyond.html",
      "title": "To <i>Infinity Blade</i> and beyond",
      "summary": "I fell in love with <i>Infinity Blade</i> before Epic nixed it from the App Store for good.",
      "content_html": "<figure style=\"margin:0 0 1em\"><img src=\"https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/infblade.webp\" alt=\"Screenshot of the first &lt;i&gt;Infinity Blade&lt;/i&gt; on PC (from Epic Games/ChAIR Entertainment)\" style=\"max-width:100%;height:auto\"></figure><p>In 2013, I got my first ever, wholly owned device at 8 years old: <strong>a first generation iPad mini</strong>. The “brainrot” of the 2020s didn’t quite exist yet – thank God, nor the sanitised and soulless “childrenslop” of big corporations – thank God even more. At the time, we were taken over by free-to-play games, and the rarer pay-to-play gems where you’d get the full game just by forking over some green. Everything else was unlocked just through playing.</p>\n<p>I didn’t get the paid games, of course. The games I got were <em>Temple Run</em>, <em>Super Falling Fred</em>, <em>Pitfall</em> (the 2012 one), the stripped down “lite” editions of <em>Angry Birds</em> and <em>Fruit Ninja</em>, <em>Doodle Jump</em>, among other games I tried to smoosh into my iPad mini’s paltry 8GB.</p>\n<p>Before I knew it, my iPad couldn’t take the games I threw at it. At first, the repair shop attributed the ghost tapping to the full storage due to my heavy mobile gaming, so I had to lose those games in order for it to work again. About 16 years later, I found that people had the same problem, but it wasn’t exclusive to games. That’s another technical discussion we don’t have to talk about, though.</p>\n<p>And in the middle of my games, before I filled up the storage, was Epic’s 2010 mobile masterpiece <em>Infinity Blade</em>. I saw kids on their bigger iPads playing it like crazy, screaming when they’d lose to final boss <strong>Raidriar, the God King</strong>, over and over again. (Cool posthumous name, actually – I didn’t see it until later in <em>Infinity Blade</em>’s lifecycle. I’m using this for the rest of the article.)</p>\n<h3>It was the first paid game I got, ever.</h3>\n<p>When I started my first run, it threw me to the storyline with a language I hadn’t heard of nor understood. (Bless the subtitle team for translating the dialogue.)</p>\n<p>I thought maybe this was some alien language or something I heard from James Cameron’s <em>Avatar</em>. When I looked it up, they were apparently speaking Pangean, which mixed some Latin and Asian traces. By <em>Infinity Blade II</em>, the characters spoke English after a small Pangean part in the beginning. Nice transition, Epic!</p>\n<p>When I started playing after the tutorial, the swipe slashing “<em>just made sense</em>” on a touch screen, so Epic stubbed the button <em>spamfest</em> problem with another one: a <em>swipefest</em>, although it was better than smashing Square since parrying is much more rewarding when you land enough opposing swipes to stun the enemy. Of course, you have blocking and dodging, although I parried a lot to conserve my shield strength, and since dodging had a bit of delay back then.°</p>\n<p><sup>° – Or I just had my first massive skill issue as a kid.</sup></p>\n<p>However, there was one mechanic that increased the fun factor for me. Imagine this: you die in the middle of Raidriar’s boss fight, and you think everything is over, until you fast forward 18-22 years later and a new son wants to try avenging his father again, while having his raiment and equipment recovered from the grave. No other RPG I played by that point allowed me to carry over my old save data to another run, let alone when I’d die in the middle of the current run.</p>\n<p><em>Infinity Blade</em> had two meanings in hindsight: the namesake weapon Raidriar had in-game and the fact that you can try again as many times as you wanted without consequence.</p>\n<p>So after school, I’d play through at least 5-8 bloodlines per session and keep levelling up my character until I could defeat Raidriar. About a few weeks later, I got enough cash to buy the Infinity Blade itself, alongside some more expensive armour and magic ring.</p>\n<h3>And I chose to join his ranks.</h3>\n<p>Yeah, yeah, “it’s a bad idea, don’t do this”. But the game let me try the fight again since joining the “perceived bad guy” wasn’t the canonical choice for some reason. Raidriar <em>did</em> say that there were more dangerous Deathless than just him.</p>\n<p>Anyways, I tried the fight again, this time using every single protection mechanism I can – blocking, parrying, dodging – and nearly died, before I remembered that my new ring could heal with a swipe pattern. So I clutched the pattern before he could hit me with a fatal blow, parried a few more times, <em>comboed</em> my swipes and <em>finally</em>...</p>\n<h3>Raidriar has fallen.</h3>\n<p>He reiterated on more dangerous Deathless before I took over the throne. Well, I’m gonna see it until I got <em>Infinity Blade II,</em> so... you’re the only one I know of, man! However, the first game was enough for 8-year-old me, so meh.</p>\n<p>But the game restarted from there for reasons I didn’t know. So was I stuck in an infinity loop? Turns out, after defeating Raidriar while I had the Infinity Blade on me, there’s this underground section I can enter where I’d place the Infinity Blade and unlock a new area. <strong>So Raidriar wasn’t the final boss at all?</strong></p>\n<p>Short answer: <em>no</em>.</p>\n<p>So I went through that new section, but couldn’t bring myself to actually finish it. This was the end of my <em>Infinity Blade</em> days, because of the games I kept installing after completing what I could. I never saw what true ending the game could have offered.</p>\n<p>Fast forward to 2018, and I never saw <em>Infinity Blade</em> ever again at the same time I also discovered that there was also a finale to the trilogy, <em>Infinity Blade III.</em> But nobody could buy them, only download them if they were still in the purchase history.</p>\n<p>Sadly, I lost the account used for the first <em>Infinity Blade</em>. Childhood gone.</p>\n<h3>Now the saga finally ends.</h3>\n<p>But... that’s not where the story ends. There’s about three or four minutes of reading time left on this article, so let’s fast forward again eight years later to 2026. I suddenly remembered <em>Infinity Blade</em> and just thought maybe my current Apple silicon MacBook Pro can play older iPad games. The only barrier: <em>Infinity Blade</em> was one of many iOS games left behind when Apple dropped 32-bit support as a whole. Though not iOS, macOS 10.15 Catalina closed off 32-bit app support. I’m on macOS 26 Tahoe as of writing. There’s no way that’s gonna run... right?</p>\n<p>Well, enter the world of game preservation. In my <a href=\"https://www.paultaylormiller.com/articles/persona-affinity.html\"><em>Persona</em> affinity article</a>, I mentioned that I managed to play all the games of the modern trilogy: <em>Persona 3 Portable</em> (with PPSSPP), <em>Persona 4 Golden</em> (with Vita3K), and <em>Persona 5</em> (with RPCS3).</p>\n<p>But there were two more methods of preservation that I missed discussing, as they weren’t on the cards for Atlus: <strong>source ports</strong> and <strong>complete ports</strong>.</p>\n<p>An anonymous set of developers have done the latter: they <a href=\"https://archive.org/details/infinity-blade-pc\">ported Infinity Blade for the PC</a> and released it into the Internet Archive for free. Knowing that I had CrossOver, the Windows translation layer, installed on my Mac, I downloaded and installed it into a Windows 10 bottle without much fuss.</p>\n<h3>Childhood revived. We’re on Bloodline 2 now.</h3>\n<p>Everything’s there: the combat, the story, the arena mode, all were kept intact from the original versions, with some PC-specific optimisations. I ended up remapping my controller inputs to correspond to actions in <em>Infinity Blade</em>, like the shoulder buttons for dodging, left analog stick to move the cursor, right analog stick to look and slash, among other controls.</p>\n<p>If the <em>Infinity Blade</em> series were released to consoles first, this is what it would have felt like to play. The touchpad on PlayStation’s DualShock 4 and DualSense might work too – let me know if you manage to get it working.</p>\n<p>But the kicker of all the killer features that PC <em>Infinity Blade</em> brought over was the ability to play at a locked 120 FPS at 4K resolution. Before rediscovering <em>Infinity Blade</em> through the PC port, the only heavy games I had were <em>Watch Dogs</em> (graphically), and <em>The Walking Dead</em>’s Definitive Series (in terms of storage). They all ran at the same locked 4K fidelity at 120 FPS.</p>\n<p><strong>The game itself became Deathless and infinite.</strong></p>\n<p>Remember, this is a <strong>2024 port</strong>, of a <strong>2010 game</strong>, running on Apple silicon hardware that’s <strong>500-1000x</strong> more powerful than my iPad mini. Everything looked sharper and more vibrant than when I first played it in 2013, and it never dropped any frames giving me my childhood back.</p>\n<p>Epic really had their grip back then. Even so, I wouldn’t think that they had the foresight to make it easier for PC ports to crop up later on. Unreal Engine 3 was developed for a simpler time, and that might have contributed to both an easier and performant port.</p>\n<p>And the in-game performance is a witness to this simpler time – I maxed out every setting and my Mac doesn’t max out its CPU and GPU playing <em>Infinity Blade</em>, nor does it max out my RAM – those devs did a great job optimising for PC and faithfulness to the original mobile version.</p>\n<h3>This is for you, 8-year-old me.</h3>\n<p>In my mind, I got better at parrying with a controller, so progress got faster from there – although I switch between the mouse-trackpad pair and controller. After just five bloodlines, I defeated Raidriar again. Of course, I knew that this wasn’t the end of <em>Infinity Blade</em>’s story, so I worked my way up to buy the namesake weapon again to trigger the path to the true ending.</p>\n<p>I won’t spoil, but I’ve finally completed it. 8-year-old me would cheer on from the other side seeing me finish something he couldn’t.</p>\n<p>It’s time for me to beat <em>Infinity Blade II</em> on PC. I’m coming, 8-year-old me.</p>\n",
      "image": "https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/infblade.webp",
      "date_published": "2026-08-03T00:00:00Z",
      "tags": [
        "Games"
      ],
      "authors": [
        {
          "name": "Paul Taylor Miller"
        }
      ]
    },
    {
      "id": "https://paultaylormiller.com/articles/persona-affinity",
      "url": "https://paultaylormiller.com/articles/persona-affinity.html",
      "title": "My <i>Persona</i> life affinity",
      "summary": "Ever since <i>Persona</i>, my perspective and outlook on life has changed a lot.",
      "content_html": "<figure style=\"margin:0 0 1em\"><img src=\"https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@latest/persona5.webp\" alt=\"&lt;i&gt;Persona 5&lt;/i&gt;’s Joker (image from Atlus Co. Ltd.) and Miller cosplaying Joker\" style=\"max-width:100%;height:auto\"></figure><p>A lot of gamers would say that <code>x/y/z</code> game, or perhaps a game series, has helped them go through a difficult set of times in their lives. I would agree, unlike that <em>select few Twitter users</em> who questioned the hobby. (The internet hounded some of these people by questioning <em>their</em> hobbies; <a href=\"https://x.com/LizzieMarbach/status/2051277817535475976\">this</a> is my favourite example.)</p>\n<p>I’d say the same to <em><strong>Persona</strong></em>, my recent favourite set of RPGs from Atlus, at least the “modern” trilogy consisting of 3, 4 and 5. Although I went out of order, they still impacted me in their own “little big” ways.</p>\n<p>So I (re)discovered <em>Persona</em> around the pandemic era, the same time I found my old PSP while also emulating some of its games on my workhorse at the time: a MacBook Pro 16-inch with the old Intel-AMD pair-up. Think <em>God of War: Ghost of Sparta / Chains of Olympus</em>, <em>Grand Theft Auto: Liberty City / Vice City Stories</em>, you know the classics. I was emulating those with a computer that’s about <strong>1000x faster</strong> than my old reliable PSP-3000.</p>\n<p>Among the games that I’ve tried was <em>Persona 3 Portable</em> (<em>P3P</em>). Since I had a lot of storage to play with back in those days, I went around every place I know that carried PSP games, and essentially hoarded as many familiar titles onto my external drive, as well as some interesting new ones. <em>Perfect candidate, really, since I got a controller just a few months before I had that game spree.</em></p>\n<p>During pastimes I’d boot up PPSSPP and pick either a random game or something I haven’t played before. After grinding cash on the <em>GTA</em> games, I decided to try something else. <em>P3P</em> was the lucky pick.</p>\n<p>Its intro video got me with both its music and visuals, the latter I haven’t seen in RPGs before <em>P3P</em>. Imagine this: there’s rock music with near–intelligible lyrics and a catchy rhythm, playing over video of what looks like “mundane-but-hiding-something-dark”, with two characters, who I’m assuming were the ones I could choose later on.</p>\n<p>Immediately I jumped into a new game as the male main character. Before <em>Persona</em>, I <em>disliked</em> turn-based mechanics in RPGs like <em>Pokémon</em> and <em>Final Fantasy</em> because I felt they were too slow for my liking (especially <em>Pokémon</em>).</p>\n<p>But the <em>P</em>ersona series with <em>P3P</em> turned it around with its unfamiliar design language, wide range of actions and even the ability to set up their artificial intelligence to either attack, defend, support, or try to escape. I know you can do stuff like that in <em>Final Fantasy</em> games, but they felt a bit too bland for my tastes. And just the fact that I could remap the extra buttons on my controller* meant that turn-based RPGs brought back their fun for me again.</p>\n<p><sup>* – L2, R2, the right analog stick, L3 and R3 were unused since the PSP didn’t have those.</sup></p>\n<p>Looks like there’s no more turn-based monotony for me thanks to Atlus and their prowess in RPGs since the first <em>Megami Tensei</em> (女神転生) in 1987<sup>•</sup>.</p>\n<p><sup>• – I haven’t actually played the first <em>Megami Tensei</em> game, let alone the main SMT games. Larp!</sup></p>\n<p>I’d have about 17 hours of <em>P3P</em> when my inadvertent addiction to it cropped up when I made good progress traversing Tartarus, the game’s main world. Even if my characters were tired (something that, thankfully, was retired in <em>Persona 3 Reload</em>), I’d still keep pushing them. They’d end up either tired or sick the next day, but for several level ups and thousands of yen garnered in the session, it was worth it.</p>\n<p>Alright, I hear that you might be complaining me looking over the student life balance mechanic in the <em>Persona</em> series, so I’m gonna talk about it now. I <em>love</em> that particular subversion of turn-based RPGs because it’s much closer to real life, even with its obvious fantasy and eldritch elements.</p>\n<p>Beyond <em>P3P</em>’s gameplay, the story, as I went about 57 hours in, was what changed my life. Though technically I haven’t finished it by that point, it doesn’t discount the change itself, because that’s when I understood the backstories of my party members, alongside my player character’s.</p>\n<p>Speaking of, Makoto Yuki (his canonical name) shared some aspects with me:</p>\n<ul>\n<li>I was introverted at the time</li>\n<li>I was indifferent to darker topics</li>\n<li>I observed more than I directly participated in voluntary activities</li>\n<li>I had some natural talents that could help people where they’d need it</li>\n</ul>\n<p>Funny. In a sense, Makoto became my Persona in real life. He’d probably say:</p>\n<blockquote>\n<p>I am thou, and thou art I. The world is filled with strife, it’s time you show them the way to peace!</p>\n</blockquote>\n<p>He wouldn’t be wrong. It’s much better when I realise that he’s been helping my real life Social Links after I met him in <em>P3P</em>.</p>\n<p>And when I finished it (good ending on the first try, no less), that’s when it struck me. Makoto, having done everything in his power, takes a well-deserved rest, even as I’ve come to see it as him passing away. <em>Sayonara</em>, Door-kun‡...</p>\n<p><sup>‡ – I’m not kidding with this, that’s the fanbase’s name for Makoto...</sup></p>\n<p>So after finishing <em>P3P</em>, I wasn’t sure if there’s much more <em>Persona</em> games... until I saw <em>Persona 5</em> (P5) around late December 2025. As I’ve come to remember it, my MacBook Pro was technically capable of emulating PS3 games, so naturally I went to find a copy of it online. Before <em>P5</em>, I tried <em>The Last of Us</em>, jumping through hoops just to get it to run. And it did...</p>\n<h3>...at low double digit frames.</h3>\n<p>Well, it was still playable. Barely. RPCS3 (the PS3 emulator I was using) didn’t support SDL input at the time, so I had to remap my controller for keyboard controls. That goof on my part screwed up stealth. And performance sucked anyway since I couldn’t track down the update file required to make it, at the <em>very</em> least, stable. So I couldn’t handle playing it any further.<sup>»</sup></p>\n<p><sup>» – I had a similar life-changing experience with <em>The Last of Us</em>, and I might write about it soon.</sup></p>\n<p>I felt the same experience playing <em>P5</em>, but at least Atlus got it right first try such that it doesn’t make me jump through hoops. However, I was still playing at the same frame rate I did when playing <em>The Last of Us</em>.</p>\n<p>Anyway, I got through maybe 7 hours of <em>P5</em> before I upgraded my Intel Mac to a more powerful Apple silicon counterpart at around New Year’s 2026. Now playing the game was much better, bolstered by an RPCS3 update that finally allowed me to play at a locked 60 FPS.</p>\n<h3><em>Finally</em>.</h3>\n<p>Oh, I <em>definitely</em> locked in for <em>P5.</em> And I hear you complain again: <em>why aren’t you playing Royal</em>? Well, would <em>Royal</em> run on my Mac without having to deal with Denuvo? I don’t think so. The original version did right by me anyway.<sup>±</sup></p>\n<p><sup>± – I <em>did</em> find myself screaming and fanboying over Violet (Kasumi/Sumire) when I saw her in <em>P5R</em>.</sup></p>\n<p><em>P5</em> took what I liked about <em>P3P</em> and multiplied it by <em>five</em>, 5 times. The turn-based mechanism is much easier to navigate since each button was mapped to an action, so all I had to do was click one and boom, Shadow defeated and Morgana says “<em>Looking cool, Joker!</em>” while I went by stealing hearts.</p>\n<h3>Flashier art design! Bigger set pieces! Actual stealth! Puzzles!</h3>\n<p>Atlus did it again. I clocked in about 118 hours on <em>P5</em> at the time of writing, and this number is sure to increase. JRPGs are really <em>that</em> fun.</p>\n<p>I found a similar affinity to my player character, the aforementioned Joker (not the DC Comics one, please), who’s known as Ren Amamiya in the real world. You might have seen the lead image where I cosplayed him! I’ll talk about that later.</p>\n<p>Anyways, Ren had the closest connection to me out of all the <em>Persona</em> because he shared some elements of my past and present.</p>\n<p>For the past, as a kid, let’s just say I got into some trouble a couple times. I mean, who doesn’t?</p>\n<p>As for the present:</p>\n<ul>\n<li>I’m more calculated, but sometimes driven too much towards a goal</li>\n<li>I’m a wild card of talent</li>\n<li>I tend to think of dramatic decisions, but can’t really execute them in person</li>\n<li>I hold a code of honour in social situations and within a group</li>\n<li>I have a strong sense of justice despite my unpopularity in university – much more prevalent back in elementary and middle school</li>\n</ul>\n<p>Now, how do I describe <em>P5</em>’s story? There’s a lot of layers to it that it seems impossible to describe in just a few words. But the main thing I got was this: if you’re driven to do something that you think is right, don’t let anyone stop you. When I turned my life around during my academy days, there was one girl who commended my whole transformation in this message she sent me:</p>\n<blockquote>\n<p>To be honest, I have no other thought except that I just want to appreciate you and express my admiration for your work and your resilience. Your passion for your craft and the way you continuously advocate for yourself is amazing.<br><br>\nThe way you have grown and learned to go out and see from different perspectives is also worth mentioning. You learned how to acknowledge your past mistakes, make peace, and build healthier connections out of it.</p>\n</blockquote>\n<p>Even in my unruly behaviour back then, she saw that people could change. And she recognised that I’m a new man now.</p>\n<p>I think that’s what happened throughout <em>P5</em>, where Joker <em>knew</em> that something wasn’t right and went out to do something about it, even when he’s unpopular and later hated amongst the crowd. But that didn’t stop him now, did it? He still went on, and even if the world doesn’t remember the Phantom Thieves, what mattered is that they remember the impact they had on the world, and on each other. Even as they split ways.</p>\n<p><strong>I’m not kidding when I say that I bawled at the ending.</strong><br>\n(Yes, I got the good ending first try once again.)</p>\n<p>That relationship between me and <em>Persona</em> apexed around the time my theatre group in university, LIGHT Plays (LIGHTs), had an acquaintance party themed around movie and TV characters. Since <em>P3</em>’s Makoto (or, <em>ahem</em>, “Door-kun”), made appearances in all the <em>P3</em> movies, he was my first choice. So I <a href=\"https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@latest/p3cosplay.webp\">cosplayed</a> him with what I had, and I <a href=\"https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@latest/p3win.webp\">won</a> (for some reason)!</p>\n<p>Asides from the win, I’m happy that people saw me both as myself and as my <em>Persona</em> character, even though some people had better cosplays than I did. That made me love the <em>Persona</em> series much more when people would recognise my characters in university events. Speaking of, you’ve seen the lead image of me cosplaying <em>P5</em>’s Joker, in his full Phantom Thief glory. So far, that’s my greatest cosplay yet. I’ll talk about my journey on that, maybe in another article.</p>\n<p>You’ve also probably noticed that I didn’t talk about <em>Persona 4</em> (P4) yet. I <em>did</em> mention that I played them out of order, though I’m not discounting the current impact that <em>P4</em> has on me, and this section may expand when I end up completing the game. So far, I’m enjoying it in small sessions.</p>\n<p>But unlike <em>P3</em> and <em>P5</em>, I don’t think I’m ready to summarise what <em>P4</em> means to me yet, since I’m still living through its story.</p>\n<p>One thing’s for sure: I’ll be carrying those lessons and morals Atlus got me through the <em>Persona</em> series.</p>\n<p>What a ride.</p>\n",
      "image": "https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@latest/persona5.webp",
      "date_published": "2026-07-31T00:00:00Z",
      "tags": [
        "Games"
      ],
      "authors": [
        {
          "name": "Paul Taylor Miller"
        }
      ]
    },
    {
      "id": "https://paultaylormiller.com/articles/limits-mixed-bag",
      "url": "https://paultaylormiller.com/articles/limits-mixed-bag.html",
      "title": "Limitations are a mixed bag",
      "summary": "Sometimes they force you to think and be creative. Other times they're frustrating.",
      "content_html": "<figure style=\"margin:0 0 1em\"><img src=\"https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/limitations.webp\" alt=\"Multiple question marks inside a speech cloud\" style=\"max-width:100%;height:auto\"></figure><p>For my website’s articles, I set a minimum word count of at least 1,000 words so there’d be some substance in what you’re reading. Actually, note how I limit other things like the title, tagline and summary, so that they’d largely fit on both card preview and card contents. And I also have a tonal limit when writing my stream-of-consciousness into prose for this website.</p>\n<p><strong>Verdict:</strong> I like to keep things as minimalist as I can, while still allowing my stream-of-consciousness to pour out in these articles.</p>\n<p>When I’m working on my own stuff, I feel mixed about limitations. My close friend James told me that they actually help with our work in a theatre group we call <strong>LIGHT Plays</strong> (LIGHTs), in our university.</p>\n<p>Some of the limitations we had by default were:</p>\n<ul>\n<li>prop materials, because they were mostly based on cardboard,</li>\n<li>stage breadth – we either had the large church stage for religious plays, or the more homely “small town” rooms for other plays,</li>\n<li>“small town” stories (speaking of), we couldn’t blow up the scope of stories even if we wanted to,</li>\n<li>and lots of institutional limitations that forced us to be creative.</li>\n</ul>\n<p>(Although some of those limits did come from <em>the money issue</em>.)</p>\n<p>At first, I’d scratch my head over those limitations. I had entered LIGHTs as a music producer, and my first assignment was background music for the second half of a two-play series called <em>Reclaimed</em>, because <em>Prodigal Son</em>, the first half, already had musical numbers. (Unfortunately, <em>Jonah</em>, the second half I was working on, is lost media thanks to Facebook’s 30-day live stream retention policy. Sorry!)</p>\n<p>Since I was so used to making experimental music under my old <strong>Poppin Brown</strong> moniker, without any “hard” or “soft” limits, being introduced to this environment that had such limits kind of stifled me a bit. <em>Dead Sea</em>, one of <em>Jonah</em>’s defining tracks, went through several revisions, mainly because it was <strong>too loud</strong> and <strong>too boomy</strong>, with the percussions I was spamming. <em>And it didn’t even get played!</em></p>\n<p>Looking back, I was <em>glad</em> that it didn’t play because of the church sound operators, but at the time, I was disheartened to see that large orchestral magnum opus go unheard. I had to max out the volume on my mixer software, even overcompensating the gain, and it <em>still</em> didn’t play! I thought the speakers were broken, but...</p>\n<h3>Turns out they actually muted my laptop input to the main mixer!</h3>\n<p>Honestly, I don’t like to look back and say “they sabotaged us”. They might have been going with instinct, or through watching the cast. Thinking about it, they inadvertently saved me (and LIGHTs) from potential doom via admin arbitration.</p>\n<p><em>That’s</em> a limitation I don’t really mind any more, in hindsight.</p>\n<p>So why do I feel mixed about limits, when I’ve already applied them in my website and my articles for it?</p>\n<p>James hit the jackpot when he told me that limitations can help, because when you’re as free as I am, doing things as you’re used to, <strong>that can stop you.</strong> I’ve had creative blocks because of this – it’s funny how lack of limitations can limit you in itself.</p>\n<p>I have two long form stories – finished but unpublished as of writing – called <em>Storm Over The Desert</em> in 2023 and <em>Before I Go</em> in 2025. Each of those represented my unfiltered and filtered selves respectively, now that I take a look at them again.</p>\n<p>In <em>Storm Over The Desert</em>, I had this unrealistic self-insert character named <strong>Brian Wolf</strong>, this Irish man who goes to college in the United States. However, something bad happens<sup>•</sup>, and Brian stepped up to stop it. Suddenly he’s celebrated as a national hero, and then he devolves into more madness before he has to redeem himself by saving as he did, but in a smaller package.</p>\n<p><sup>• – Describing it directly might trigger some people, so I’ll leave it up to your <em>limit(less?)</em> imagination.</sup></p>\n<p>Did that make sense? I don’t think it did. Don’t worry, that story isn’t seeing the light of day again. Not my best writing. So please, let this article be the last time I talk about <em>Storm.</em> <strong>I beg.</strong></p>\n<p>Two years later with <em>Before I Go</em>, because the story took from a recent harrowing experience I felt at the time, it was more <em>biographical</em>. So I had to keep it within that time frame alone, but of course I took some liberties in location and characters.</p>\n<p>My self-insert this time was <strong>Harry Whitechurch</strong>, an American living in the town of Redwood Hills in California, studying English at Adam Rockman University just nearby. Unlike Brian, Harry starts off in what looked to be near-death while his ECGs were being taken. Since then, he’s been trying to keep off of anything that could exacerbate his potential heart problems, but they <em>still</em> come and tick him off sometimes. One event made it worse and got him hospitalised, but he still survived. However, his heart issues still remain, which was intentional on my part to keep things real. I don’t like to promise easy things in my stories.</p>\n<p>The one character that wasn’t quite real (although based on real people I know) is Harry’s girlfriend<sup>*</sup>, <strong>Nicole Lewis</strong>. And speaking of love, unlike in <em>Storm</em> where Brian’s love was misplaced and nearly got him killed, Harry’s love for Nicole in <em>Before I Go</em> was closer to reality, even down to couple fighting and reconciliation.</p>\n<p><sup>* – Love is a whole other story.</sup></p>\n<p>Another character within that “not quite real” territory is Harry’s next-door Russian neighbour and mentor, <strong>Sergei Antonov</strong>, who worked in the same university Harry studies in. Occasionally, he’d drop some Russian wisdom, and actually converse with Harry in the Russian both of them can understand. I picked Russian because their proverbs are actually pretty nice. I’d say he’s the best supporting character I’ve written thus far, partly because of linguistics.</p>\n<p><em>Storm</em> would be the lesson I’d learn on limits that I applied to <em>Before I Go</em>. It worked. The latter book made more sense to me because I kept a narrow lane. Fun fact, this is where I started introducing certain theme songs to help with limiting any given story!</p>\n<p>And limits helped me finish <em>Before I Go</em> faster than I finished <em>Storm</em>, not considering the time I had to spend for college work. Those two books together made up my best experiences in writing, setting aside bias, and you <em>might</em> see <em>Before I Go</em> published on my website soon once I have a few rounds of edits and finalise it. They’ll be on my <em>Stories</em> tab when it’s available!</p>\n<p>Likewise, I apply limits to my coding. Beyond my website, my usual tech stack is the Tauri stack, which combines Rust with pure, unadulterated web technologies without the bloat of frameworks where I can avoid them. Sure, I might have issues with the UI that take days to debug, but once I fix and optimise, apps perform faster without consuming so much RAM.</p>\n<p>So if you can limit yourself when you’re working, you can do more than if you were completely free. It’s why we have formats for screenplays and research, among other things. If you can’t easily find limits, talk with someone so you can set them. Perhaps you can have that same person enforce those limits live.</p>\n<p>Keep creating, even when you have to draw the boundaries yourself. Sometimes, the best thing you can do for creativity is to give it a smaller canvas.</p>\n",
      "image": "https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/limitations.webp",
      "date_published": "2026-07-30T00:00:00Z",
      "tags": [
        "Retrospect"
      ],
      "authors": [
        {
          "name": "Paul Taylor Miller"
        }
      ]
    },
    {
      "id": "https://paultaylormiller.com/articles/system-theseus",
      "url": "https://paultaylormiller.com/articles/system-theseus.html",
      "title": "A system of Theseus",
      "summary": "If the ship had all of its parts replaced, is it still the same ship?",
      "content_html": "<figure style=\"margin:0 0 1em\"><img src=\"https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/mastersoft.webp\" alt=\"Screenshot of the MasterSoft website taken on 29 July 2026\" style=\"max-width:100%;height:auto\"></figure><h3><em>If the ship had all of its parts replaced, is it still the same ship?</em></h3>\n<p>Spending a few years with a <em>certain someone</em> can make you feel some fondness and familiarity with them. Perhaps you might come to harbour affection for them too. Maybe one day you two will be... a “thing”.</p>\n<p>But years will pass and some things will change. If everything – from looks to personality – would all be different than when you met your <em>certain someone</em>, would you still feel for them, even if they aren’t the same as they were before?</p>\n<h3>That’s the Ship of Theseus paradox at play here.</h3>\n<p>I felt the same thing play out with my university’s original system: the holy duology of <strong>AOLIS and Lifebook</strong>. Sure, the websites looked a bit outdated by modern standards, and I’d normally scoff at that. AOLIS was created in 2001, and (at the time of writing) is still being maintained with small additions here and there, but kept the core user interface (UI) intact. When I discovered this, I speculated that there was a technical reason why it’s such a monolithic black-box even today.</p>\n<p>That reason was:</p>\n<h3>Something might break if the UI were to update.</h3>\n<p>Let’s assume that was true, including the monolithic black-box website architecture. How did they keep this up for over 20 years? You’d think that by now it should have been hacked and retired, but it never was.</p>\n<p>And I didn’t have to worry about that, because it “<em>just worked</em>” for most, including me. I haven’t encountered major errors or usability issues other than outdated UI. Sure, there are minor inconveniences, but at the time I thought it was a necessary sacrifice to get through university. <strong>I was willing to leave a good thing alone, even if the programmer in me didn’t like how it was made.</strong></p>\n<p>It’s like my older computer: a good thing, even when it was <em>chugging</em> as it tried its hardest. It eventually gets there, and that’s what’s important in this analogy. And it seemed happy in giving me results!</p>\n<p>But older things eventually have to go, and I understood that since my first set of tech upgrades. Those are usually good things. New tech is much faster at doing stuff, and in some cases sip less power doing so.</p>\n<p>Although, I’d like to call this upgrade more <strong>sudden</strong> than expected, and by “sudden” <strong>I mean right in the middle of the summer semester.</strong></p>\n<p>Full disclosure: I was told about this new system called “MasterSoft” a few times by some faculty members, claiming that it would “bring every process into one place, from enrolment to graduation”. That seemed like the way of the future, sure – but didn’t we already have that with AOLIS and Lifebook? Everything was there from enrolment to graduation like they say it would be with MasterSoft. Technically, it was split into two apps, but they worked like it was just one to me!</p>\n<p>So why did we need to change systems impromptu before getting to main semesters? To this day, there’s no publicised reason for it.</p>\n<p>And when it <em>did</em> on 12 May 2026, not everybody could get in easily. Some were scouring for login credentials, others were getting errors, most were screaming while they tried. General consensus: <strong>”the system sucks.”</strong> Their words, not mine. Yet.</p>\n<p>On the day before the launch, 11 May, I was also trying to get into the system, and I didn’t know where the login portal was. I assumed it was in the same place as registrations, then I remember thinking out loud:</p>\n<h3>Why did I have to give them my information again?<br>I mean, don’t they already have that on hand?</h3>\n<p>I tried getting in with my usual credentials, but one thing stopped me from continuing through this perceived <em>re</em>-registration. You’ll never guess what it was first try.</p>\n<h2>It was the broken form.</h2>\n<p>Seriously. It took me twelve minutes of attempts to figure out what was going on. Then, remembering what I learned about spite, pairing it with my programmer side, I decided to look into the problem and fix it myself.</p>\n<p>I won’t go too technical here, so the TL;DR is that <strong>I found the gremlin</strong> preventing me from re-registration: <strong>the dropdown wasn’t giving me course options.</strong></p>\n<p>However, I also found something much worse. Something that, <em>just overnight</em>, made me question how stable the system was. If that kind of information were to leak out, the system would be <strong>dead on arrival.</strong> So I won’t be talking about what worse things I found, nor will I be alluding to them beyond what’s required for this article. I’ve reported them to my department chair, and even though there wasn’t any immediate action, <strong>they’ve at least acknowledged it.</strong></p>\n<p>Then I’ve come to realise that this experience could serve as my thesis. Looks like I have my path to graduation on a topic I like!</p>\n<p><strong>And thus began my accidental odyssey (no Greek pun intended) into cybersecurity.</strong> Beyond what worse things I initially found, I couldn’t stop myself from finding more of it and compiling it into files. One thing’s for certain: I don’t know how to use these findings nor will I ever try. I didn’t want to hurt the upgrade – I never did that to my new computer, phone or tablet for that matter – and I <em>hoped</em> that the developers are willing to make the system better, even without needing to involve me and my semi-accidental findings beyond the bunch I found initially.</p>\n<p><strong>Thankfully, they were.</strong> They even had to mobilise some of their superiors to directly help with all situations from both students and faculty, for the duration of enrolment.</p>\n<p>I went there physically to clear up both my course lineup and my payments, and I had an issue on the former. After picking out some subjects, which initially wasn’t enough, MasterSoft <em>locked</em> my course lineup on my end, and I couldn’t add more. My department had to clear it up with superiors, as well as the payment I made back in May.</p>\n<p><strong>A lot of the payments that students made to the new system were mislabelled as being for the previous semester,</strong> which confused me at first. I’m an upcoming senior student on first semester, and the system told me I was an upcoming junior in second semester. At first, I thought “sure, that’s gonna pay for my previous semester”, but didn’t I already do that <em>before</em> MasterSoft? Where’d the payment request for “senior’s first semester” go off to?</p>\n<p>Turns out, the payment cleared 100% for my senior year, and I didn’t have to worry about mislabelling. <strong>I was finally in.</strong></p>\n<h3>But not without going through more hoops.</h3>\n<p>Okay, <em>the system <strong>sucks</strong></em> now. At that point, I <em>thought</em> I couldn’t defend the system anymore. The rollout had gone badly – actually, it wasn’t even a rollout.</p>\n<h3>They <em>thought</em> it was going to be “one-size-fits-all” when they deployed it on my university’s infrastructure.</h3>\n<p><strong>Imagine the lines that racked up because of issues with the system.</strong> Others had to get their course lineups done in person, most had to settle physically. I don’t even want to remember the line to MasterSoft’s new lair in the IT department. AOLIS’s administrator had to get out of the office to help students lining up on that side.</p>\n<p>This is where I started building “<a href=\"https://dreamaolis.vercel.app\">Dream AOLIS</a>” as a small proof of concept. It showed what AOLIS could have been if the UI were updated and much more streamlined, and I did the first version in less than 24 hours. But I had to find a way to spread my vision, even though it was just a demo (and yet another <em>Ship of Theseus</em> in hindsight), otherwise it’d go unseen.</p>\n<p>Thankfully, that’s where <em>Secret Files</em>, the university’s decentralised freedom wall, came into play. I made a post, but I didn’t want to use either my pen name or my real name, not until I was comfortable enough. So I used the “hacker” name I had in my mind, if ever I went into cybersecurity as a side gig.</p>\n<h3>Doctor Scoliosis.</h3>\n<p>(I don’t actually have scoliosis.)</p>\n<p>Anyways, it got some warm reactions and it got the attention of the AOLIS admin, who said <a href=\"https://web.facebook.com/aupsf/posts/pfbid0zKjDZjwX6U3BUohdY6xFJF9FB9JC1cHnbamESsuo92DcJrHZ7HdiokgmE4zwQX2Tl#:~:text=i%20got%2015%2B%20UI%20design%20candidates%2C%20how%20do%20i%20choose%20w/c%3F\">this</a>:</p>\n<blockquote>\n<p><em>I got 15+ UI design candidates, how do I choose [which one]?</em></p>\n</blockquote>\n<p>Unexpected reaction.</p>\n<p>I revealed myself as the creator of Dream AOLIS and we had a talk about it face to face. This is where I learned more on those other UI candidates, and why they’ve abandoned ship to MasterSoft. Since I presume this to be private information, I won’t be sharing it here.</p>\n<p>Though, it was a <em><strong>bombshell</strong></em> to me.</p>\n<p>After talking about MasterSoft’s issues with my friends for a while (leaving out the technical and “worse” stuff), I’ve come to realise that my thesis is better off just analysing systems and discontinuance preference, instead of going full panic mode on cybersecurity.</p>\n<p>The latter of which, I almost did. Think <strong>Edward Snowden</strong> and <strong>Frances Haugen</strong> for a moment. Both leaked critical information (Snowden to NSA, Haugen to Facebook), but Snowden YOLO’d it (basically), while Haugen took the long game with the more legal paths.</p>\n<p>If I took the <strong>Snowden</strong> path, everything would be revealed, nothing will be hidden, and I will have to flee to Russia or something. Let’s hope it doesn’t come to that.</p>\n<p>So instead, I took the <strong>Haugen</strong> path after some advice. Note that I didn’t share crucial information because of this.</p>\n<p>Change can be hard, especially if you’ve been living with something for a long time. Since it was just MasterSoft’s first year at my university, I’m going long on the developers fixing their issues as the years pass. I’ve learned to be more pacifist when it comes to problems like this.</p>\n<p>And sadly, I might not be there to witness it when I get that degree.</p>\n",
      "image": "https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/mastersoft.webp",
      "date_published": "2026-07-29T00:00:00Z",
      "tags": [
        "Rabbit Hole"
      ],
      "authors": [
        {
          "name": "Paul Taylor Miller"
        }
      ]
    },
    {
      "id": "https://paultaylormiller.com/articles/spite-firestarter",
      "url": "https://paultaylormiller.com/articles/spite-firestarter.html",
      "title": "Spite as a firestarter",
      "summary": "When it’s harnessed properly, it could become a motivator, with caveats.",
      "content_html": "<figure style=\"margin:0 0 1em\"><img src=\"https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/spite.webp\" alt=\"Miller facepalming, as if to hide his face out of frustration (not his real hair)\" style=\"max-width:100%;height:auto\"></figure><p>Some of my most powerful ideas usually came in after a couple of steps:</p>\n<ol>\n<li><strong>Experiencing the problem</strong>, whether it be while I’m working or by some forthcoming late realisation</li>\n<li><strong>Realising the solution</strong>, same circumstances as step #1</li>\n<li><strong>Planning the <em>thing</em></strong>, whether it be a new workflow or an entirely new application from scratch</li>\n<li><strong>Implementing the <em>thing</em></strong>, pretty self-explanatory</li>\n</ol>\n<p>That’s all the usual stuff out. <strong>Step 1</strong> is where it gets interesting, because from here, this is where I would normally quit out of frustration and just “deal with it”. But being a programmer with the experience that I have now, that part of my mind said “no” and urged me to think more, mostly out of spite against the problem.</p>\n<p>It’s an improvement from past me who just blew up at problems and made off with embarrassment.</p>\n<p>Hear me out here as I take a quote the <em>Angry Birds</em> movie: <em>anger is <strong>not</strong> always the answer.</em> Trust me when I say that you don’t want spite to be your sole motivator. Adrenaline is nice, just don’t “overdose” or depend on it.</p>\n<p>But I like how I’ve come to discover and understand it, so I could control it to bring out my best outputs in any idea I have, at full speed with full focus. Some might even say “<em>locked in</em>”. It helps me get out of a stuck state with internal doubt being shut up. And it might seem like I’m hating myself, <em>I didn’t feel the need to love myself or feel hopeful about the future to start.</em> <strong>My focus would be the impending goal and that I wouldn’t accept loss.</strong></p>\n<p>“<em>I’m not gonna lose, no, not this time! Not now, not ever!</em>”<br>I’d say this a lot.</p>\n<p>And apparently, I’m not the only one using spite as that initial spark. <a href=\"https://www.linkedin.com/pulse/going-negative-art-using-spite-motivator-steven-kotler-udspe/\">Steven Kotler from LinkedIn shares that sentiment.</a></p>\n<p>I particularly like this quote from Kotler’s fridge fortune cookie:</p>\n<h3><em>You get great pleasure out of proving other people wrong.</em></h3>\n<p>Except... when I started developing <em>Theoritical</em>, the only thing wrong about my perceived research problem was the workflow fragmentation. There was no material spite in the sense that somebody screwed up that workflow yet decided to teach it to us anyway, and although that would have been better motivation, <strong>he could be dead by now.</strong> It just seems odd to me. But even that was enough.</p>\n<p><em>Okay, I’ll pull up a better example.</em> My university’s student government had recently put up websites to digitalise everything, and bring everything under one roof. I’d say that the students loved those additions, at least to the ones they can see. That’s something I’ve also been doing with <em>Theoritical</em>. Admirable move, considering I’ve been doing the same thing with <em>Theoritical</em>. But their initial approach was, <em>literally</em>, to put every bit of code in one roof. (I’ve been through that kind of thing before, and I understand the approach.)</p>\n<p>That black box architecture was my motivation: try to reassemble and reorganise the codebase before they added more to the main repository.</p>\n<p>Now, what if I was continuously infuriated while working on <em>Theoritical</em> or while fixing monolithic black-box websites? If I had to put it in three words: <strong>instant energy loss</strong>.</p>\n<p><strong>Imagine:</strong> it’s around 8:00 PM, and I just had a spite boost for <em>Theoritical</em> after discovering another research-related problem. And then I end up spending most of the night, stopping at around 12:30 AM the next day. (<strong>Disclaimer:</strong> I don’t stay up that late anymore, thank God.)</p>\n<p>Even with that disclaimer, the scenario still stands. Sometimes you get <strong>too much energy from spite</strong> that you forget to take care of yourself, losing sleep and getting physically sick. Then on other times, you can actually <strong>lose your energy to spite</strong>, burning you out in the end. And that’s if you didn’t find some deeper reason why you want to do any of those things beyond the initial spite-fuelled spark.</p>\n<p>Your momentum can also suffer if the problem is a <em>person</em>, living rent-free in your head, unchecked, on top of what you want to do. <strong>If they stop caring or if they move on, there’s your crash.</strong></p>\n<p>And let’s not get started with “unchecked” when we talk of <em>bitterness.</em> The original goal might not even be there anymore by the time you choose Path A instead of Path B. <strong>If you realise the loss of your goal after you picked your lane, it might be too late already.</strong> (Believe me, I’ve been through this spite-driven effect a few times. Not a great experience.)</p>\n<p>Since then, I’ve found some deeper meaning and drive to doing the things I do:</p>\n<p><strong>Theoritical</strong><br>\nInitially, I came to hate writing academic research after being used to just searching and making off with a fact, not to mention the context switching I have to do between apps. And even then, they’d be all over my filesystem that Apple’s Spotlight search can’t touch. Now, I think of this as a powerful research environment that I could let other students use, so they don’t have to feel my spite against the process again. I’ve been enjoying Theoritical’s development arc ever since!</p>\n<p><strong>Student government websites</strong><br>\nWhile this might not seem like an important thing for most students using those websites, I find monolithic black-boxes counter to the organisation and unification goals that they’ve wanted, despite being technically all in one file. That drove me, out of spite, to spend seven hours modularising the entire codebase – that is, to take each floor of the Burj Khalifa and turn them into a small town’s buildings and houses – mainly to make it easier on me to read in the future. Then my deeper motivation came here: I know they can do better for the good of the student body, and I want to help them help the students. I’ve actually been brought on the programming sector for their future websites thanks to initial spite!</p>\n<p>So spite <em>does</em> help when starting, but if you don’t find another positive motivator or reason why you want to keep going, it’s going to kill your momentum.</p>\n<p>But I do wanna warn you though: <strong>spite might not always work in your case</strong>, like what I quoted earlier from the <em>Angry Birds</em> movie. Try not to use spite too much, okay?</p>\n",
      "image": "https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/spite.webp",
      "date_published": "2026-07-28T00:00:00Z",
      "tags": [
        "Musing"
      ],
      "authors": [
        {
          "name": "Paul Taylor Miller"
        }
      ]
    },
    {
      "id": "https://paultaylormiller.com/articles/theoritical-best-side-project",
      "url": "https://paultaylormiller.com/articles/theoritical-best-side-project.html",
      "title": "Theoritical: my best side project",
      "summary": "Chronicling the odyssey that started with how the entire research pipeline should feel like.",
      "content_html": "<figure style=\"margin:0 0 1em\"><img src=\"https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/ti.webp\" alt=\"Screenshot of Theoritical’s Corkboard feature filled with various interconnected notes\" style=\"max-width:100%;height:auto\"></figure><p>Sometime in October–November 2025, my “research era” started, as the kids would say. (Wow, funny that I’m essentially still a kid in the eyes of <em>boomers</em>.)</p>\n<p>Once I got the green light to essentially pick a topic that I wanted to cover, I went through my mind thinking about what I’d write. But there was a caveat: it had to connect to my course, and not just the willy nilly kind of connection, nor the “connection for the sake of connection” type of... well, connection.</p>\n<p><em>That was a non-issue in hindsight.</em></p>\n<p>Now guess what kind of issue I had while brainstorming. Believe me when I say that most of what you’ll say won’t even make a dent on my resolve on research. The answer might seem benign to you in hindsight.</p>\n<p><strong>It was the formatting.</strong> I don’t kid when I say that I hated manual formatting, even with a template. (I still do, but only for academics.)</p>\n<p>There’s a particular kind of friction that shows up only after you’ve been writing a thesis for months on end, and you can probably name it. But as soon as I saw that large formatting template with lots of comments I presumably had to abide by, yeah... no. That’s not compatible with life, I thought. So on top of my thesis, I had to deal with formalities that the research panel would essentially rip me apart for not following. It might be an irrational fear, but that’s a whole other story.</p>\n<p>And then little old programming me had an idea: what if I automated the formatting? That’s roughly the shape of the problem <em>Theoritical</em> set out to solve. A single environment, built specifically for the rhythm of long-form academic writing, where the outline, the source material, and the draft itself are never more than a glance apart. But initially, the goal was just in solving my one pain point at the time: <strong>formatting.</strong> Everything else came after that – and by “after that” <strong>I mean the next year.</strong></p>\n<p>My initial solution was to create this markup language called <strong>Hypothesis</strong>. If you know your Git(Hub), you can imagine this as a fork of Markdown with simple plaintext formatting tailored for research. It <em>worked.</em> “Worked” in a sense of “okay, this is good enough for me” and nothing else. But then, good programmers still go through bugs. I went through, what – dozens? That took me until January to try fixing them, and that’s where my pain point shifted: from formatting to <strong>the code just not working on PDF rendering.</strong> I tried every single library and even Rust workarounds, but none of them worked. Perhaps I have a “skill issue” (once again, as the kids would say), but I couldn’t handle that anymore.</p>\n<p>So I scrapped what I’d call the “Formatting” version of <em>Theoritical.</em> In hindsight, when I realised that students could use my tools, Hypothesis wouldn’t cut it. I don’t think they’d be willing to learn a new markup language just to get their thesis done. I wouldn’t want to, either. But it was a fun little experiment, and I thank it for two things: giving me experience with using the Tauri stack over Electron (ugh, I hate Electron), and leading me towards the real problem: <strong>the fragmentation of the entire research pipeline.</strong></p>\n<p>Think about it: you’re switching from Word to your notes somewhere in another app, perhaps Notion. Then you switch to Excel to look at your dataset, and then you’re looking at references in Zotero. <strong>That mental cost of switching apps back and forth added up for me, both physically and technically. RAM usage was crazy too!</strong></p>\n<p>That’s not something I’d like to start research with. When I did it in the past, I was with a group, and I was doing (usually) one thing. Then we were left to study it for the panel’s questions, in an era of pandemic’s online classes. (My three monitor setup helped because then I could Command+F through the paper when they’d actually ask.)</p>\n<p>When I looked for a good research application that already existed which did everything I wanted it to in one place, there was nothing. There were good free stacks, but setting them up was pain. I didn’t even bother. And then you have the paid stacks – okay, they were good, but:</p>\n<ul>\n<li>they were paid,</li>\n<li>they were still separate applications,</li>\n<li>and they were much more complicated to use (sorry, not sorry, R and SPSS, even though I know how to code)</li>\n</ul>\n<p>Then I remembered, once again: why don’t I try making that kind of application again?</p>\n<p>Rebuilding around that constraint and wide scope meant cutting things that looked impressive in a demo but did nothing for a Tuesday night session. None of this is 100% finished (yet), and it probably never will be in the way a shipped product is finished. But know this: I’ve been working on this version for nearly a year at the time of writing, and I’m not gonna cut corners this time. That’s why it’s taking so long for me to get to a stable 1.0 release.</p>\n<p>This version of Theoritical is what I’d like to call the “Integrated Research Environment” version, or “IRE”, same way you’d call an IDE except it’s for research. I’m pretty excited about finishing this, because there’s gonna be one roof unifying the following things:</p>\n<ul>\n<li><strong>Thesis writing</strong> with auto-formatting, easy citation and figure insertion</li>\n<li><strong>Mind mapping</strong> with support for image, video and document attachments</li>\n<li><strong>Reference management</strong> with fetching via DOI, ISBN, and other standardised methods alongside “fuzzy fetching”</li>\n<li><strong>Dataset management</strong> with non-destructive editing capabilities and in-app calculations powered by my in-house <em>Barrium</em> engine, with GPU accelerations for faster calculations when needed</li>\n<li><strong>Presentation creation</strong> with the ability to create custom presentation templates easily and display them in the same application, (and you can export them if you wish)</li>\n<li><strong>Semantic mapping</strong> to show you what papers align more with the research you want to do</li>\n<li><strong>Figure manager</strong> to either generate or import figures for insertion to the thesis</li>\n<li><strong>Adaptive checklists</strong> that depend on template and check off when you’re done with a chapter</li>\n<li><strong>Laser Focus</strong> with Pomodoro timer and auto-scheduling that adapts to your schedule, time table, and also keeps you in check with wellbeing features that stop you from pushing too far, and understands when you’ve been behind and adjusts the schedule (there’s also a clutch mode if you need to rush!)</li>\n<li><strong>History Tree</strong> powered by another in-house engine called <em>Prehystorian</em> (inspired by Git) that keeps track of your entire project, so if you mess up you can go back and branch off from there to try something new</li>\n<li><strong>Cryo Lockers</strong> powered by yet another in-house engine called <em>Snowcone</em>, that lock any single feature’s state in place, so you can go back to that version of your thesis or mind map for example, without needing to make a new project</li>\n<li><strong>Panel Practice</strong> powered by either cloud AI (<em>OpenAI, Anthropic, Google, etc.</em>) via API or your own local AI models (<em>GPT-OSS, Gemma, Qwen, etc.</em>), which simulates an entire panel of your choosing from different personas, and picks apart your paper with targeted questions, with prompt and context optimisation engines to make this worthwhile for even some low-parameter local AI</li>\n</ul>\n<p>I’ve had to pay attention to the user interface, user experience, application personality, the interconnectedness of modules, and the overall satisfaction of just wanting to work on a thesis without the hassle. Since I tend to favour vanilla JS over using the more common ES modules path, I had to be careful with a change that might break everything else, but I perceived faster performance over using something like TypeScript and React. (I hate React and the bloat of frontend frameworks in general, and you’ll see my disdain for it all over the app.)</p>\n<p>I also kept the Tauri stack from the “Formatting” version of <em>Theoritical</em> because I was already familiar with that – and with the scope that it has right now, Rust just proved faster for certain functions. It was faster to gauge performance of any given computer and adjust to them accordingly. And since that was the case, some things might change:</p>\n<ul>\n<li>Panel Practice might recommend you to use a powerful low-parameter AI like Cogito, tailored for STEM topics</li>\n<li>Barrium calculations might use multi-threaded CPU over your GPU</li>\n<li>Animations might not play and certain effects will be turned off to save on graphics power</li>\n</ul>\n<p>Now look at how far it’s gone, from a programmer’s tool to something students can actually use without an instruction manual nor do they need a powerful computer.</p>\n<p>That early success started an odyssey for me. There are a lot of fragmented problems I could solve with such applications, and I got motivated with what I picked out beyond research. Of course, I have to pick my battles; this is a good one to start with.</p>\n<p>Theoritical will come to your computers soon. Everything else will follow.</p>\n",
      "image": "https://cdn.jsdelivr.net/gh/doctorscoliosis/ptmblog-images@main/ti.webp",
      "date_published": "2026-07-27T00:00:00Z",
      "tags": [
        "Programming"
      ],
      "authors": [
        {
          "name": "Paul Taylor Miller"
        }
      ]
    }
  ]
}
