[ot][spam][crazy] The Trials of Mediating Algorithms
A very basic task when maintaining an ecosystem of software and technology is the integration of multiple codebases. This comes across plainly in the norm of composition in object oriented development. Composition is a norm for providing a locally-normative interface for some other class, the functionality of which is encapsulated within the developed class. It's an alternative to inheritence that gives the developer more control of what limits and interfaces are available to the wrapped class. It involves a lot of boilerplate, and is normally quick to create. The software ecosystem out there now, often to me looks like it was made generatively by trial and error. There's not a lot of integration between codebases.
I've been trying and failing to integrate codebases since the spacetime rift that opened in 2014 and sucked our planet in. Most recently, I've found there is an existing mediatek flasher client, and I have started one myself. The featuresets and goals of the two works are different, but there is a ton of overlap between them.
It used to be that integrating similar apis was so easy, the usual way to do so seemed to be, unless you were closely involved with the designers of one of the projects, to actually start an entirely new one that superseded both. The issue with me doing that is that I would be likely to have a psychotic break when people wanted me to fix bugs they reported. So there's more return for me if I can get the existing projects to integrate or generalise. But the option is open, since it's all pie-in-the-sky.
Maybe in addition to integration and generalisation, reliable code maintenance could be something I could practice, too. A great example for that would be the android pull request I have open for libusb. It badly needs a maintainer as more people use it, and it doesn't have its changes ported forward as the main tree progresses. One challenge when maintaining from limited capacity, is how much feature addition and refactoring to do. The primarily challenge is defending stability of the software without compromise.
One big challenge for me has been graphics libraries. Displaying anything visual for me has gotten difficult in great depth. Graphics libraries are a great way to open api challenges for me, there's always pressure. It's so hard to think of software integration. One of the big daunting parts is the number of api functions that can be involved. It just _feels_ so hard, to have more than three or so api functions at once -- and real libraries may have hundreds of these. With dissociation, I can describe relatively easily some coping strategies that could work for these. For example, noting down similarities, properties, or patterns in specs while reviewing them. Porting an API doesn't need to require a huge short term memory, although it's certainly most intuitive to do it with use of one. Maybe when comparing two apis I might scroll down both lists, either in parallel or in sequence, and implement every function in both. So, each time I encounter an api function, I could for example look through the ones I've written, and make sure it's included. This can in theory only require remembering one function at once, although in reality some conceptualisation needs to be sustained around norms and patterns of the whole or of larger groups of functions. It used to be a simple, relaxing, and satisfying task, like knitting a scarf. A rote thing that makes something organised and quality at the end. Maybe some of that relaxation can get inhibited if one has to handle memory problems, or is triggered in some way by executive organisation tasks. Maybe that's my biggest issue, even, engaging these difficulties I have without disrupting work. Sometimes, rarely, I'm in a state of mind where I can just do it, and powerhouse through. This is pretty rare and random-seeming.
Regarding graphics, we could take SDL. SDL has more functions to display basic things to the screen than I tend to remember at once, since the spacetime rift. If I could maintain a normative interface to it, that would be pretty incredible. It's a _very large task_ for me. ... A more normal display engine might be Unity. I see a lot of things made in Unity nowadays. I think it has some GUI SDK, which can kind of get in the way. My goodness. Approaching SDL, engaging this library or ones like it is something I have done over and over and over. I'm really familiar with having struggles in certain parts and areas, and my mind can stimulate them very easily. Like walking down a path you know well that goes the wrong place you don't want to go.
The task of judging a library to start with has similarities to the task of integrating or composing two libraries. Regarding integrating or composing, an interesting example is machine learning backends like tensorflow or pytorch. These all have to integrate multiple vector math backends, in an organised way, with developers likely on a time budget. It's an example of people successfully doing this in recent years. Regarding judging libraries, the similarity relates to their being lengthy lists of api functions, featuresets, or similar, and the need to summarise or hold in some way, what is important or possibly relevent about these, in order to consider them as a whole with other sets of stuff. The biggest issue for me with retaining such useful considerations is that I lose the parts. Amnesia, disorganization, incineration ... Retaining basic small information. Similar to "awesome" lists on gits. And using parts of this information to relate with other information, make decisions, and do work.
When I think of problems around generalisation between codebases, I think of suppression of AI technology. An AI that can generalise, refactor, and reimplement code in the language it is written in, can quickly become hyperintelligent. This is severely slowed in the modern landscape due to the separation between data and code. The brains of models are data, now.
Another thing to think about, is that there are a lot of things in my life that have really really suffered as I engage difficulty organising, generalising, integrating information. My possessions and schedules are an infinite mess that needs addressing. The job can seem too large to tackle. That bears similarity with the task of integrating large libraries or codebases.
And what it comes down to in the end is goals. My eternal task I call "todo list" of enumerating what I want to do, and following through with it, that seems impossible. To reach goals reliable, we need to sustain knowledge and holding of them, and have consistency around the parts of reaching them. This is similar to these other tasks -- similar problems -- just more core and basic.
0608 I'm a little confused around my goals with my mediatek phone. I'm aware of these specific parts: - flash an open source operating system - be able to dump firmware images for security We could call the goals "OS" and "IMG". IMG can appear partly compromised if access to the phone's firmware is not reliable. If there is a way for code to be installed that fakes the firmware download. In the end, a possible and likely solution to that would be to wire directly to the arm chip on the board. I don't need to do that here. I'm happy just making progress; improving my habits. But the imperfection of the IMG goal if the flasher I'm using uses an exploit that I don't understand, can seem strongly to make it hard to hold and relate with other things.
0611 I haven't actually gotten the public open source flasher to work yet. I should try that. It's designed for windows "script kiddies", unfortunately. It has binaries, for example, embedded in the git tree. I'm not sure how to engage this with a plan of making it more of a community software project, but I suspect it's fine to keep binaries in a tree so long as source for building them is linked from or included in the tree.
0612 I'm leaving this system and doing something else, but I brought the phone back near the system with existing work, at least. I'm planning to return but haven't prepared the memory parts to make that likely, quite yet.
0921 I'm going to try to flash my phone with an OS, using the commercial flasher. I'll need: phone, cable, commercial flasher, software. Cable connects between phone and computer. Connection is completed when flashing is ready. Missing: flasher, software. The flasher runs in non-emulated windows, unfortunately !!!!!!! So I'll reboot this system that has windows.
0929 Windows booted up, and I remembered I have a working linux flasher. I'll flash from windows for now I finish the task with more likelihood.
0931 I have the phone connected. It's set up for a factory partition map. I remember the way I got it to work was either modifying the factory map .... or just using fastboot. I also remember that I unlocked the bootloader using the factory rom, so I'll flash that, reboot to linux, and try to remember: "just use fastboot to flash a system image" .
0936 I almost left the system during reboot, but I'm staying. The phone is booting into its factory image. 0937 Computer has booted. Phone needs power to stay on, very low battery. 0938 I realised when I rebooted, I lost tasks I had open. Unsure what they were. 0938 I realised I had the OS images stored somewhere I have moved the computer away from. I'll likely download a release again. 0939 I found the project name: "treble_experimentations" , in my source code folder.
0946 my system says it is very out of date. I thought I recently upgraded all the packages. 0946 oh, it isn't completing because there are pgp key mismatches.
0948 i'm redownloading sp flash tool 5 for linux. oh I wish I were using the one I almost finished coding, or the open source one I found! 0949 ok I downloaded it. uhhhh except I only need fastboot, not this. 0949 i'm unlocking the phone using its factory UI. 0950 the phone is off. battery is 2 percent. it's plugged into the computer. i'm waiting for it to boot. 0953 i'm enabled oem unlocking under developer options 0953 ok, my adb and fastboot binaries were on the other disk. I guess i'll find them online somewhere. 0954 oh I do have fastboot. I was typing "flashtool" by accident. 0955 I booted to fastboot mode using hardware keys on the phone 1002 I've flashed quack v207 with fastboot, and rebooted the phone. 1002 it booted successfully. I'll start using it, and switch to maintaining my pinephone or this badly breaking one.
1026 I wanted to set the phone up to resume buggily logging brainwaves using my comfortable Muse S. It is not working for this at this time. I have not diagnosed it. I did not expect this.
1028 To reduce as many variables at once if diagnosing this issue, it would make sense to return straight to factory firmware and try there.
participants (1)
-
Undiscussed Horrific Abuse, One Victim of Many