Weekly Logs

Week 1

Over the last five months, my project has consisted of building both the front and back end aspects of School Lense, where the current project provides a powerful dashboard for teachers to monitor, input, and aggregate student’s data. Yet, the core and most crucial aspect of the project has failed to materialize. Due to the vast compute requirements needed to produce actual facial and expression recognition, it has proven infeasible to do without more expansive hardware. Since I would rather avoid spending money on this project, and renting servers requires a complex undertaking which is again hard to interop with from a chromebook, this entire aspect of the project needs to be changed. The question that has haunted me over the last few weeks where this realization has occurred is: What exactly can I salvage and privet to? The general idea I’d like to switch to is using the powerful dashboard I’ve already built as a crowdsourced platform for people to store persons of interest. What the exact use of such a platform would be used for would be left up to the users, but one can imagine using the platform to track forces like ICE that are destroying and disrupting local communities. This would provide a much more useful service than the previous inclination and idea of the platform, and could possibly have a very impactful effect throughout the nation. What’s next for the project is actually realizing this change. This will require three major phases: first, a slight UI overhaul to make the platform fit this new use case (which will obviously require some actual brand design), secondly, I’ll need to adapt the current background infrastructure to correctly fit a more user centric approach, finally, establishing the platform as an open and public software project that can be trusted by communities. In the final step, I’d like to work with local organizers (which some teachers at our school are involved with) that further mutates it to the full needs of them, and establish myself as a software developer that is trusted to build such crucial services. Over the next few days, I will begin by imagining and implementing the first steps of this plan, focusing first on the new user flows and interface.

Week 2

Over the second week of semester 2, I decided to reevaluate the current face tracking stack. The current version uses face-api.js, which showed initial promise, with their software demo on their site seeming to have the capabilities needed for School Lens (mainly detecting what face is which - from a collection of photos, and being able to detect facial expressions). Yet, after attempting to integrate the system into my platform all attempts failed to function. This originally motivated me to continue iterating, hoping that eventually it would work. For some reason, which I believe is due to an incompatibility with both chromebook software and SvelteKit, the framework I’m using to build the majority of the back and front end. So, the majority of this week was composed of looking for alternatives. Monday consisted of researching alternatives; MediaPipe Face Detector (A google project), Jeeliz FaceFilter (supposedly lightweight, although I can’t get to github in School to test), tracking.js (which doesn't seem powerful enough). Tuesday and Wednesday were looking into the documentation to see if there was a clear choice (Spoilers: there wasn’t). Friday, today, consisted of still searching for solutions and producing this week's recap. Unfortunately, I still can’t find a good replacement for the face detection system.

Week 3

Still in reflection mode from semester one, I’ve been thinking a lot about how unhappy I am with the future of my project. Time & time again, I have run into issues that feel out of my control. Most of these issues aren’t technical or skill related but due to the limits of the computing. Similarly, DOTS blocking of traditional development tools makes it nearly impossible to try out different technologies to see if they could support my project. Like GitHub, which is considered a critical piece of infrastructure anywhere code is created, isn’t available to me. Still, this wouldn’t impose such an issue if it wasn’t for additional constraints. As Chromebooks are heavily locked down, I can’t even access the terminal to begin to even install packages in a project, let alone run a server for local testing. This impacts me especially hard as my main editor and tools I use to code are terminal based. I am a big neovim fan and am planning to get into Emacs, and since both softwares rely or are (in the former case) completely embedded in the terminal, it makes it impossible to apply my knowledge of them. These technical limitations have led me to develop what I as an actual developer would consider unhygienic habits. Currently, I’m relying on a loophole that allows me to access GitHub through a digital IDE, but the second they ban GitHub again, and my current token expires, I won’t be able to access it again. It’s through a collection of loopholes that have formed the base of my project over the last year and a half. All I’m left asking is: What should my project look like in spite of this? What can I focus on or shift my idea into that will allow me to create something decently useful?

Week 4

I’ve once again entered a new ear of ideation. (Perhaps you could define it as a limited procrastination, but in reality I feel like if I had the proper technological supports instead of impediments I would be able to quickly and successfully produce better software; especially for this year long project) As I said in the previous weeks report, I’m just so unsure of what I can actually produce within this walled garden (maybe that’s not a good metaphor since nothing about this is lush). Still, my current thoughts have limited a wish to completely shift my project in a few different directions. All of these amount to what is basically a reset, and are unfortunately still haunted by the same issue that I have discussed in previous reports. My three main ideas have led me to a main one: building an agentic loop (basically a terminal software) that uses tool use and recursion to attempt to solve big problems, so imagine claude code but with the ‘scaffolding’ (the term used within the AI-world) to build out massively ambitious projects. I think that this sort of software will one day emerge as the thing that replaces companies. Sets of agents running around competing tasks to a larger goal, in the void of companies, where labor is no longer exploited, but something starkly worse: mass unemployment, since companies can use a software such as this to replace entire teams and eventually entire labor forces. Maybe this is too dystopic of a lense to imagine the future within, but it’s really the most plausible one on the current rate of development. Another idea I’ve had is in the same vein as this, basically the infrastructure for techno-feudalism, where the intelligence-world divide is orchestrated through agents paying users of a site to complete real world labor, think task-rabbit on a massive scale tailored for agents completing tasks.

Week 5

As I haven’t completed more than brainstorming over the last few weeks, I think it’s time I get to work creating one of these imagined softwares. Yet, to do this requires the technological freedom that school technology can’t enable. I have the idea to use a raspberry Pi as my IDE, as I should be able to programmatically curl github and connect to it that way, while also using the terminal embedded within the raspberry pi as the unfettered workspace for me to use. This might work incredibly well, as I could migrate a similar Neovim setup that I have within my own PC that I use at home, allowing me to have a similar setup across workspace, and most importantly within school. To do this, I’ve had to learn the basics of raspberry pi, ensuring I have the right software, along with the correct cables to actively connect to it and work with it. I’ve always been toying with using ssh, so I don’t even require an external monitor for the raspberry pi, and could just use the chromebook through some proxy site I find that allows me to ssh straight into the environment. I hope this works out, although after doing some testing and getting the Pi I’m using powered on, I’ve run into another issue. After an initial boot into the operating system, it seems the Pi got overwhelmed and crashed. As I’m heading into the weekend, I plan on studying Pi’s to try to troubleshoot this at home, which will hopefully sort out these technical hiccups.

Week 6

I have dropped, thankfully, the raspberry Pi - chromebook ssh paradigm due to my sister indefinitely lending me her old macbook. This means I have a much higher chance of success with actually producing something meaningful. Now that I don’t have to fiddle with this gimmick solution for weeks and weeks to even get to a phase where it’s nearly functional, I can and have begun setting up my dev environment within the macbook. (Finally, I’ve never been so happy to be able to type in a terminal). As someone who craves and functions much better within rigid structure and organization, yet seemingly lacks it in every aspect of my life, I am not someone who just has a repository of my dotfiles to quickly get set up. (Dotfiles, if you don’t know, are basically the config files for a system of dependencies, like neovim). Since I don’t have an easy way of transferring the ones over from my personal computer, I will have to start from scratch to build out the dev environment. Right now, I have successfully configured my terminal, which I’ve opted for ITerm instead of the default mac bash environment as I think it gives me more customization to make it a comfortable environment. Similarly, I’ve set up neovim to be able to use, which is a much easier process in Unix based environments like MacOS, compared to the terrible process of setting up windows subsystem for linux, so I can run an emulation of it, which is unfortunately the way I have to do it on my personal computer.

Week 7

I’ve continued the process of setting up my development environment. Currently, after some troubleshooting, I got kickstart.nvim to work on my MacBook, which is this nice preconfigured mix of plugins and LSP’s for me to use. I’ve also added additional keybinds for a few systems that I love to use. Unfortunately, when setting up the LSPs I ran into a lot of errors, which I couldn’t really figure out. After browsing esoteric forms that haven’t seen the light of day since the turn of the century (exaggeration, but you can understand the feeling), I finally got mason (the LSP plugin) and the actual LSPs nicely talking. I’ve also downloaded a different editor, Emacs, as I’ve been interested in learning it for a while and this seemed like the perfect opportunity. I’ve begun to configure it too, which also took some getting used to and LSP errors (LSPs will be haunting my nightmares for some time to come). My current impression is that it’s not a very different workflow and software from neovim, although the comprehensive use of LISP as the backbone of the software makes it a really interesting case study within recursive systems, which I’m incredibly interested in. The mode vs keybind meta of neovim vs emacs is interesting, but honestly I haven’t felt too compelled to one side or the other,

Week 8

I’ve finally begun to construct my next project (as I’m considering this a completely novel project since this is completely different from the SchoolLens project, which I think is fine). Still, I’ve landed within the same sector: Education. With the AP test for calculus closer than ever, I’ve begun to fear the holes in my knowledge. Primarily within the connections between concepts. Sure an integral is the antiderivative, but once it comes to connecting related rates to how differentials act within differential equations, I struggle. I think this is primarily the way calculus just inherently is, you can’t really investigate everything at once when learning it since each topic requires entirely new concepts. It’s like I am a large language model attempting to do something large requiring a behemoth amount of context in my context window that I simply lack. What exactly I can create to bridge these divides and produce something to give me and other students the context window necessary is an insanely ambitious and vague task to benign with. As in, I’m not sure what it looks like. For now, I’m working on building out a rogue-lite demo where students traverse questions on independent routes to acquire points (which become the motivating factor for the game, as it’s an incremental, a.k.a. Get the highest number game).

Week 9

This week I’ve finished polishing the un-networked demo of the game. I’d like to have this ready fully working after spring break so it could be an actual useful study tool for me and friends to use to actually succeed at the calc exam. As I’ve polished specifically what I want this version of the demo to be, a new unsettling feeling has stepped in: I’m not sure this is what I’m searching for. I’m not sure that the content of Khan Academy with the veneer of an incremental game is really the most revolutionary software to date within the education space. I think that's a major problem of mine in general. I fear I’ve been infected with the mindbug from watching too many podcasts with founders in silicon valley touting how revolutionary their software as a service is (Like, dude, you made a payment process for websites that’s somehow being valued at billions of dollars. You didn’t revolutionize anything. You made a purchase button. Another funnel for capital to latch onto and extract evermore value from us). I guess it’s setting in I don’t have some great idea that feels novel enough that succeeds at the problems that interest me. The goal this entire year felt like it was to create a prototype of something to solve something, but I struggle to do that, because the problems I’m interested in (in my skitzo view of the world) are all interconnected and require massive change and more cognitive throughput to solve than I can muster.

Week 10

I’ve taken a break this week from the math learning platform I’ve been creating as that unsettling feeling of it not being enough is too creepy to be in the room with. Luckily, I have programming tasks that require my time and pondering. For my original research into Jeffery Epstein within my English class, I wanted to use the release of all of these new files to actually create something valuable and novel. My whole research was pinned on the idea of figuring out what and how the structures of power enabled, contorted, and built the space in which Epstein and his associates inhabited. With the releases of all these new emails, I have the opportunity to use some sort of system to map them. At first I wanted to create an aesthetic almost artist like depiction of the connections latent within the files, but as that feels too ambiguous and I’m trying to be more regulated when it comes to that, I’ve decided a node-edge graph is enough. So, I’ve spent time developing the code to query the emails for subjects I’m focusing on, and using sender / receiver information to hopefully build up something useful. I used python to do this, which I rarely use since I’m more of a web developer, plus when I do code systems stuff, I almost exclusively use the beautiful language of C (I’m a huge C fan!). I’m so happy with my result as I really think it is quite interesting. If I was more educated within the data analysis world, I could probably form more interesting conclusions than the ones I did but it was still a very interesting and fun process.

Week 11

As I’m unhappy with the state of my math learning platform, I’ve been trying to figure out what I should do to make it more on the ambitious line I’m trying to cross. What comes to mind has been very little, but my Epstein node network project inspired me a bit to try to connect all these mathematically disparate ideas into a web in some parseable format for learners to use and engage with. My current attempts (counting three so far) have proved to just be kind of annoying and inefficient to use. Mostly because I’m not sure what to put on this ‘context web’ for calculus. Some of the attempts have decent information in them, but I keep running into issues of the webs breaking and the site just not properly rendering stuff. When I tried adding problems and questions to one of the demos, everything broke. Adding problems reminded me of the learning platform and the amount of labor required to actually make the problems for it. When I do return to it, which hopefully I will, I plan on finding a way to use an agent to steal questions and answers from free open source textbooks, which would hopefully work out well and create a big enough pool of questions for people to work through. It’s funny that creating the actual site is easier than getting the questions. Overall, this entire semester's work leading to these two ideas for math problems is incredibly unsatisfactory to me. I know I can create something better, I just can't figure out what.

Week 12

Before AI polluted the tech news world with its incessant thump, we used to worry about the new web framework that promised to solve development. The joke was each day there was a new framework. In this vein, I’ve decided to create yet another math platform. This one has been inspired by the competitive and fun nature of the tower attack we did in my calculus class. Who would have thought that a bunch of nerds in calc bc would engage in a competition of intelligence? This seems like solid ground to forge a new type of learning platform, one distinctively competitive. I have sketched out the groundwork for creating such a platform. Think the live form of Kahoot but the content of math attack. What does a digital tower attack math game offer to the world? A digital version could offer asynchronous play, where students can independently engage in rigorous self study while having fun accruing points to attack others. I actually do think this is novel ground, and although I haven’t started building out the full software, I think that I’ve figured out the stack; Create a express socket server to host the live connections while serving a react frontend.

Week 13

I’ve started building out the stack I sketched out last week. I have some familiarity with certain technologies I’m using (mainly react, as it’s the frontend framework I’ve been using all year for all my projects) along with socket, which I have some experience with from creating little digital 2d canvas games. So far, I’ve been able to make the live network system with different roles (teachers & students), while also creating both the teacher and student dashboard. One element I’m currently not a fan of and trying to work on is making the UI less ugly. I feel it’s currently overcrowded and too much for engaging playthroughs. It also should be styled in a cool yet evocative and educational way (for some reason, I’m incredibly drawn to building something that looks like among us, but for education). I’m still very happy for what this has turned into, as for the first time, I finally feel like my project is in a functional state that is beyond stupid solutions for problems that already exist. My plan is to continue polishing and building the live component of the software. I’m unsure if I’ll be able to successfully produce the asynchronous aspect of this, as that’s an order of magnitude more complicated.

Week 14 & 15

I’m quite happy with this final project, as I have said, I feel like I’ve finally implemented something that has the seedlings for something much bigger and better within it, which in a way feels like an early predecessor to a system that one day is how all kids engage with studying math in and out of school. Of course currently, I find it a bit lackluster since it is just the seedlings, and an enormous amount of effort needs to be expended to get this in a state with enough problems, account systems, database systems, and asynchronous elements to make this truly what it needs to be. Still, If this year of work was valuable in any way, it was achieving this idea. Finally, my ambitious and spanning goals have something reaching towards them.; Swaying in the breeze of the present, with the opportunity to one day reach critical mass. I’ve enjoyed this opportunity to engage with my own issues within this class, as really when I do any assignment it requires me to rework the prompt a little bit so that I can engage with a version that truly interests me. I feel like this year ended up sort of being a sabbatical in which I set out for these mountainous goals, and in my process of trying to actualize them, I finally landed in a place where I see both a real opportunity and path to get there, rather than just a problem and fumes of hope. I wish I had less technical limitations earlier on, as I think if I wasn’t so constricted I could have made something really cool, which definitely saddens me a bit. But, overall, I’m quite happy with the many desperate projects I’ve created and also really enjoyed the connections I’ve forged in class and in the new knowledge I’ve gained working with breadboards and motors!