June 17, 2025
I figured out how to make a plugin for Photoshop (and technically all of the other Adobe products, depending on if it is implemented in the same way there). Had a lot of problems when figuring out which permissions you need as the documentation is in my opinion not really clear on this. Another problem was styling images based on the theme. In the end I used an SVG which uses the automatically set variables for the color.
The plugin will integrate Wakatime Time tracking into Photoshop and possibly other Adobe products.
THE FINAL DEVLOG IS HERE! I have finally completed this library after all this time. I can't wait to start the next project. I fixed a lot of bugs, made the errors from parsing stack so usage isn't spammed and finally finished the flag parsing (turned out to not be that hard in the end). But my brain is getting fried from switching languages so much. I actually typed 'let' into a c file to create a variable XD.
Finally finished the demo. I added some much needed pizzazz in the form of the purple blue pipes and I made a decently working recreation of the argument and flag parsing. Now I only need to actually finish the project. ♪(´▽`)
This is the demo website so far. I used skeleton (if you are interested: http://getskeleton.com/) as a framework and got in the basic elements in place. Next I'll add the functionality and I need to somehow add some flair to the site as it is currently monochrome.
The flag handler is almost ready to go, but in the meanwhile I got distracted with making the demo and designing a banner for the project. The website still needs a lot of work but I am pretty happy with the banner.
I have finished up all other bits of the library (including restructuring the files, adding a usage hint, removing function name overlapping through prefixes, ...) so only the main source file and the flag handler need working on.
When I'm finished with those I get to move onto my favorite part of projects... the testing. Yay o(TヘTo)
I did a big coding session this time.
I reworked the entire error system. I moved the system to its own file and made it accessible in the main header. I still don't know what to do when function names overlap so I had to get creative with the names so it still doesn't feel great. The error system will now also in the future print out a helpful usage message for the user with the most important information.
I also finished up the argument system which was smaller than expected.
Anyways, I'm excited to get started on the most important bit, the flag system. <(^-^)>
Added a small error handler which gives you back the name of the error in form of a string. I also implemented a singly linked string list to store the arguments and flag identifiers. It was really fun to rediscover how to make a linked list! (but also painful as pointers are hard (/▽\) )
Defined the public interface of the library. The functions as seen in the attached image should be quite self explanatory.
Now onto implementation! o(°▽°)o
I updated the test system so it now supports multiple tests. I also realized that if I switched to a static library for testing I don't need to tell windows how to find the shared library.
That should hopefully finish up the CMake portion of this project. ( ̄︶ ̄*))
Finally figured out how libraries work. I correctly linked the library and the header file to the test executable but I didn't tell windows where to look for the dll.
The fix was to simply put the executable of the tester into the same directory as the built library.
I used the Seeed Studio XIAO ESP32C3 to power this remote controlled tone player.
I spent the time setting up the board with a passive buzzer with a button to start the music and a volume knob. On the code side I figured out how to connect to WiFi, how to send requests and how to play notes on the buzzer.
In the end I wrote a small demo program to play a tune when the button is pressed. You already know I had to get 'Never gonna give you up' to play on there.
The name is german and it translates to psychological warfare machine. The project, when finished, will be small IOT-Device which plays a tune or an annoying sound when you send a request to it. Of course it will be used to torture my friends.
I implemented the basic scaffolding on which I will build the library using CMake.
I still have problems with linking the library to the tests as I am very new to CMake but I'm going to work on that.
A c library for handling flags passed to a program
Using the MutationObserver I was able to remove the button in gmail.
Since I have not found any other ai buttons on google I'm calling this an absolute success!
Finally I can search to my hearts content in peace.
But how does it work?
The script iterates through all of the children of the container that holds all of the results and recursively looks for the star shaped path.
The next goal is going to be to remove the Try gemini button in gmail.
Removes the ai overview when searching in google and the "Try gemini" button from gmail.
This was widely regarded as a great move by everyone.