#i actually just use regular python scripts for work
Explore tagged Tumblr posts
Text
call my software development strategy paradoxical the way i be running cells out of order and loosing track of basic program state
call my software development methodology "evolutionary" the way it takes a billion years and requires the deaths of trillions
#ngl jupyter notebooks r kinda ass#i actually just use regular python scripts for work#or fortran because that’s how it be sometimes :(#grad school#gradblr#scheduled#funny#academia#coding
1K notes
·
View notes
Text



I realized I hadn't shared this here yet! Here's my 3D printed Quaternion Julia Set! See I first learned of these things reading about it from a pretty well known graphics programmer Inigo Quilez. Theirs are a lot prettier! But yeah, if you're familiar with Julia Sets and the Mandelbrot set already, this is basically that but we use 4D complex numbers called quaternions instead of the regular old complex numbers.
The original shaders I used to render them were unity CG/HLSL implementations, but this particular one is from a GLSL implementation over on my shadertoy you can find here: https://www.shadertoy.com/view/tdt3W8 It isn't exactly the same one that I've printed here (I've long lost the exact seed) but it is reasonably close. The way I printed it was I stole some marching cube code for blender and just plugged in the SDF function derived by Inigo Quilez, tweaked the values and eventually got a mesh I can print!
This uh, isn't the one I used lol. It did take a few tries to get one that was both visually interesting and also printable. In fact i wasn't even using the marching cube algorithm at first. I was using Poisson Surface Reconstruction with a python script that casted points to form a point cloud. Basically I was attempting to create a mesh like you would with photogrammetry, just with an abstract object rather than an actual thing or place.
The results were, well not good lol.
*Continues digging through box* I know its around here some where, I should have the one that works. Okay this still isnt it but this one is using the same method, I just wanted to use this for a vrchat world instead of using it for 3D printing. It gets the point across lol
But yeah. 3D printing is really cool if you're into a bit of math
#julia set#fractal#quaternion#quaternions#3d printing#math#mathematics#blender3D#mathblr#progblr#codeblr#mandelbrot#programming#coding
125 notes
·
View notes
Text
Am I a programmer?
I've spent the last weeks developing an actual little app using Python...
It all started with a Let's Play of Subnautica I saw on YouTube. Since Subnautica is one of my all-time favorite games, I got the itch to dive back in (pun intended). I play with tons of mods, so I had to check for a lot of updates and also juggle different versions since the last Subnautica update broke a lot of the older mods. So after some back and forth, I decided to remain on the older version for now. Great! But then I noticed that because of that back and forth and uninstalling mods, all my mods were reinitialized, and that meant trouble for one of my favorite mods, Autosort Lockers. The mod adds automatic resource sorting inside the game, which is super handy. But it was built to only work with the game's resources, not modded items. It does offer config files though. So when I last used the mod, I painstakingly edited the configs and added all modded items, which took hours. And now, I accidentally messed them up and was supposed to redo all of that. The thought filled me with dread. So I asked ChatGPT, which I have grown quite fond of recently, to help me. Why did I ask ChatGPT? Well, I need to go a bit further back in time to explain that.
One day, not too long ago, I asked ChatGPT to reformat a long list. ChatGPT said, "Apologies, I cannot process such a long list. Here's a Python script, here's how to install Python, copy the script, run it and it will do what you want." I thought ChatGPT was crazy, surely that would never work!? Nut I was curious and also a little desperate so I did install Python and ran the script and ... it did what I wanted. I was stunned. Could I use ChatGPT to write code for me? Apparently, the answer was yes. So I spent a lot of time directing it, add this, add that, and I noticed that it was not at all as easy as I thought. ChatGPT removed code when it felt like it, and the longer it got the more it messed up. But also the more time I spent copying/pasting Python code, the more I understood. Sometimes, I would just ask "What exactly does this bit do?", and ChatGPT patiently gave me answers. Running the Python code from the command prompt got tedious very quickly though. I asked: "Can't you make a button for me that I can click??" To my surprise, ChatGPT said: "Sure, let's make a gui." And that was it, the moment I fell in love with Python. So I made a few attempts at this and that, most only half-finished because the project got too ambitious for the little knowledge I had.
I heard about an AI especially made for writing code: Github's Copilot. I decided I had to try that. Since it only worked in real programmer's tools, I installed Visual Studio Code. Now I really felt like a programmer, using fancy tools! And Copilot made things easier, much easier. It did not delete all kinds of code like regular ChatGPT. It was even more helpful. I was super motivated and got to work on my "Autosort Lockers Filter Update Helper" since Python is very well suited for automating stuff. Because several config files were involved, and several values needed to be loaded, converted, compared, merged, loooked up, reformatted, and saved into multiple files, it was quite the undertaking, but I am at a point where most of the logic actually works and I have a real program with real buttons that I can click on. I made a program that actually works with my very limited coding knowledge! It would not have been possible without the help of AI. My patience and long hours paid off. Can I call myself a programmer yet? I'm not sure, since the code was written mostly by AI, not me personally. But I can confidently call myself the director and mastermind behind it 😎 and I actually want to learn more about Python so I can one-day code stuff myself without needing AI to do it for me. Here is a picture of it (I am proud of those blue buttons 😊): I've spent the last weeks developing an actual little app using Python. It all started with a Let's Play of Subnautica I saw on YouTube. Since Subnautica is one of my all-time favorite games, I got the itch to dive back in (pun intended). I play with tons of mods, so I had to check for a lot of updates and also juggle different versions since the last Subnautica update broke a lot of the older mods. So after some back and forth, I decided to remain on the older version for now. But then I noticed that because of that back and forth and uninstalling mods, all my mods were reinitialized, and that meant trouble for one of my favorite mods, Autosort Lockers. The mod adds automatic resource sorting inside the game, which is super handy. But it was built to only work with the game's resources, not modded items. It does offer config files though. So when I last used the mod, I painstakingly edited the configs and added all modded items, which took hours. And now, I accidentally messed them up and was supposed to redo all of that. The thought filled me with dread. So I asked ChatGPT, which I have grown quite fond of recently, to help me. Why did I ask ChatGPT? Well, I need to go a bit further back in time to explain that.
One day, not too long ago, I asked ChatGPT to reformat a long list. ChatGPT said, "Apologies, I cannot process such a long list. Here's a Python script, here's how to install Python, copy the script, run it and it will do what you want." I thought ChatGPT was crazy, surely that would never work!? Nut I was curious and also a little desperate so I did install Python and ran the script and ... it did what I wanted. I was stunned. Could I use ChatGPT to write code for me? Apparently, the answer was yes. So I spent a lot of time directing it, add this, add that, and I noticed that it was not at all as easy as I thought. ChatGPT removed code when it felt like it, and the longer it got the more it messed up. But also the more time I spent copying/pasting Python code, the more I understood. Sometimes, I would just ask "What exactly does this bit do?", and ChatGPT patiently gave me answers. Running the Python code from the command prompt got tedious very quickly though. I asked: "Can't you make a button for me that I can click??" To my surprise, ChatGPT said: "Sure, let's make a gui." And that was it, the moment I fell in love with Python. So I made a few attempts at this and that, most only half-finished because the project got too ambitious for the little knowledge I had. I heard about an AI especially made for writing code: Github's Copilot. I decided I had to try that. Since it only worked in real programmer's tools, I installed Visual Studio Code. Now I really felt like a programmer, using fancy tools! And Copilot made things easier, much easier. It did not delete all kinds of code like regular ChatGPT. It was even more helpful. I was super motivated and got to work on my "Autosort Lockers Filter Update Helper" since Python is very well suited for automating stuff. Because several config files were involved, and several values needed to be loaded, converted, compared, merged, loooked up, reformatted, and saved into multiple files, it was quite the undertaking, but I am at a point where most of the logic actually works and I have a real program with real buttons that I can click on. I made a program that actually works with my very limited coding knowledge! It would not have been possible without the help of AI. My patience and long hours paid off. Can I call myself a programmer yet? I'm not sure, since the code was written mostly by AI, not me personally. But I can confidently call myself the director and mastermind behind it 😎 and I actually want to learn more about Python so I can one-day code stuff myself without needing AI to do it for me. Here is a picture of it (I am proud of those blue buttons 😊):
...and the configs the app updated:
The app is not in a publishable state and I guess I would need to do far more tests and let someone who can actually code Python look it over before I would feel comfortable sharing it with anyone else, but it feels incredible to have pulled off something like this. I just wanted to share this accomplishment with someone!
12 notes
·
View notes
Text
Learn Python the Smart Way: 2025 Complete Python Bootcamp from Zero to Hero in Python

Have you ever thought about learning Python but weren’t sure where to begin?
Maybe you’ve tried a few tutorials on YouTube, only to feel overwhelmed by syntax, strange errors, or a lack of structure. If that sounds familiar, you’re not alone. Python is incredibly beginner-friendly—but only when taught the right way.
Enter the 2025 Complete Python Bootcamp from Zero to Hero in Python—a game-changing course that walks you through Python step-by-step, even if you've never written a single line of code before.
Whether you're a complete beginner, a curious learner, or a future software engineer, this course is your roadmap to mastering one of the world’s most versatile and powerful programming languages.
Why Python Is a Must-Learn Skill in 2025
Python continues to dominate the tech industry—and for good reason. It’s clean, intuitive, and readable, making it ideal for beginners. But its simplicity doesn’t mean it's lacking in power.
From data science and AI to web development and automation, Python is everywhere.
Here are a few reasons why Python is essential in 2025:
Massive job demand across industries like finance, healthcare, tech, education, and more
Beginner-friendly syntax that makes learning to code less intimidating
Backed by a huge community and countless free libraries and tools
Used by top companies like Google, Netflix, NASA, and Facebook
Perfect for automation, saving businesses time and money
With Python in your toolkit, you’re opening the door to career opportunities, creative problem-solving, and even freelance side gigs.
What Makes This Python Bootcamp Different?
There are thousands of Python tutorials online—so what makes the 2025 Complete Python Bootcamp from Zero to Hero in Python stand out?
This isn’t just a collection of random lessons. It’s a complete roadmap.
✅ Structured for Real Progress
The course is designed with a solid learning path in mind. You’ll start with the absolute basics and progress to more advanced topics, all while building real projects that you can showcase in your portfolio.
✅ Hands-On Projects
Instead of just watching videos passively, you’ll get your hands dirty writing actual code. You’ll build mini-games, calculators, automation scripts, and even web applications.
✅ Clear, Friendly Teaching Style
The instructor breaks down complex ideas into simple, digestible lessons. Whether it's data types, loops, or object-oriented programming, each concept is explained in a way that makes sense—even if you’ve never coded before.
✅ Lifetime Access and Regular Updates
Technology changes fast. That’s why lifetime access and free updates matter. You can always come back to the course whenever there’s something new in the Python ecosystem.
Who Should Take This Course?
This course is tailor-made for:
🧑🎓 Complete beginners with zero coding experience
🔁 Those switching careers into tech or data-related fields
🚀 Entrepreneurs and founders wanting to automate workflows
🎓 Students who want a strong foundation in programming
📈 Professionals looking to future-proof their careers with coding
In short, this course is for anyone ready to stop procrastinating and start learning Python the right way.
Course Breakdown: What You'll Learn
Let’s take a quick tour of the modules included in this bootcamp.
🧱 1. Python Basics
What is Python and how it works
Setting up your development environment
Variables, data types, and operators
Basic input and output
🔄 2. Control Flow
If-else statements
Loops (for, while)
Writing readable and efficient code
📦 3. Data Structures
Lists, tuples, sets, and dictionaries
Real-life applications of each structure
🔧 4. Functions and Modules
Writing your own functions
Code organization and reusability
🧰 5. Error Handling and File I/O
Try-except blocks
Reading from and writing to files
🧠 6. Object-Oriented Programming
Classes and objects
Inheritance and polymorphism
Real-world object-oriented design
🌐 7. Web Development with Flask
Building your first web app
Introduction to Flask routes and templates
🤖 8. Automation Projects
Writing scripts to automate repetitive tasks
Examples: auto-renaming files, sending emails
📊 9. Intro to Data Analysis
Working with libraries like NumPy and Pandas
Reading and analyzing CSV data
🎓 10. Final Capstone Project
Combine everything you’ve learned
Build a complete Python project from scratch
By the end of the course, you’ll have the confidence and practical skills to build real-world applications in Python.
What Learners Are Saying
Here are a few words from those who have already taken this course:
“This course completely changed how I view coding. I went from clueless to building my own projects in a month!”
“Loved the clear explanations and the hands-on projects. This is perfect for beginners.”
“The instructor is so encouraging and makes the content feel achievable. I wish I started this sooner!”
Real-World Benefits: How This Course Pays Off
💼 Career Opportunities
With Python in your skill set, you can pursue roles like:
Python Developer
Data Analyst
Automation Engineer
AI/ML Developer
Backend Developer
Python skills are in demand across job boards like LinkedIn, Indeed, and Glassdoor—especially in remote roles and startups.
💸 Freelance Income
Many freelance jobs require basic automation, scripting, or web scraping. This course gives you the know-how to take on freelance projects and earn income while you learn.
🧠 Personal Growth
Learning to code doesn’t just prepare you for a job—it teaches you to solve problems, think logically, and become more creative in tackling challenges.
How to Make the Most of This Bootcamp
Here are a few tips to get the most value from the 2025 Complete Python Bootcamp from Zero to Hero in Python:
🗓️ Set a consistent schedule (even 30 minutes a day helps)
✍️ Code along with the instructor
🔁 Review key topics using course notes or summaries
❓ Ask questions in the community or discussion forums
🚀 Start a project based on your personal interests
Bonus: What You’ll Walk Away With
✅ Confidence in Python fundamentals
✅ A portfolio of real projects
✅ The ability to automate everyday tasks
✅ A launchpad into tech roles and freelance gigs
✅ Lifetime access to keep learning
Final Thoughts
Learning Python is one of the smartest investments you can make in 2025—and it doesn’t have to be overwhelming.
With the 2025 Complete Python Bootcamp from Zero to Hero in Python, you’ll have a clear, supportive path from total beginner to confident Python programmer. No fluff. No filler. Just real skills.
So if you've been waiting for a sign to start your programming journey—this is it. Let's build your future in Python, one line of code at a time. 🚀
1 note
·
View note
Text
So over the course of about a week, I had extracted the game roms from the various Virtual Console games I had bought on the Wii, 3DS, and Wii U over the years when their online stores were still up. (Well actually, my brother had bought Final Fantasy 1, Circle of the Moon, Minish Cap, Phantom Hourglass, A Link to the Past, and Super Metroid, but whatever. We shared the consoles.)
Now I can do whatever I want with these roms, whether that's using them in an emulator, or putting them on a flashcart or some other rom loader to play them on authentic hardware.
Some of these were easier to get than others. For the Wii U Virtual Console games, I used the Dumpling homebrew application to dump all of the games, and from there, it varied depending on the game. For N64 and DS games, I just had to find the files and rename their extensions. For NES, SNES, and GBA games, I used a program called wiiuvcextractor that converted the proprietary formats they used to more common formats used in emulators (.nes, .sfc, .gba). It was pretty easy to use. And then for the Wii games, I used a program called nfs2iso2nfs to stitch the files together to make an ISO. It was easy enough to use once I knew what I was doing by reading a guide a bit more carefully.
The 3DS Virtual Console games were a bit more complicated to do. I had to go through GodMode9's file explorer to go through the files for each VC game to export the roms. The Game Boy and Game Boy Color games were easy enough to deal with (just had to rename the extensions). The one Game Gear game I had bought, Sonic Triple Trouble, I had to decompress with an application called mdfTools. I don't remember whether or not I just dragged and dropped it or used a command prompt, but it wasn't hard either way. And then there's the one NES game I had on 3DS, The Mysterious Murasame Castle. It was a Famicom Disk System game, and hoo boy, was it quite a doozy. First of all, I had to use a hex editor to copy and paste the actual game data without the filler data to a new file labeled .qd, and then I had to download Python specifically so that I could use a specific Python script so that the .qd file could be converted to a regular ol' .fds file.
It was quite a hassle, and technically, it would probably be the hardest one to do, given that some very basic hex editing shenanigans had to be done, but somehow, I found extracting the roms from the Wii Virtual Console games to be far more infuriating.
After some trial and error trying to extract files from the .wad files I had extracted from my Wii (with mixed results), I had found out about a Python program called vcromclaim, which streamlined the whole process, but I had to provide a NAND dump to use it. So after some more trial and error trying to find a program that could create a proper NAND dump, it took even more fiddling to get it to work because I have a monkey brain, but eventually I was able to get it to work... except I wasn't able to extract the one Neo Geo game I had, The King of Fighters '98, because it used a specific kind of compression. According to the readme on github, I would've needed some Python thing called PyCryptodome installed. I don't know what it did, but if I wanted to get every Virtual Console game I owned, I would need to install it. This took several attempts, but I had to reinstall Python outright because it turns out I didn't install it right the first time, but eventually, I got it to download, and got King of Fighters '98 properly extracted, too. And as an added bonus, I got all of their respective digital manuals as html files, so that's pretty neat.
So I know what you might be wondering after reading all of this, because I've come across the same comment trying to look up guides and tools for this whole process.
"Why go through all of this hassle just for a couple of game roms? Wouldn't it just be easier and faster to just go to [INSERT ROM HOSTING SITE HERE] and download the same games?"
To which I say:
Anybody can go onto the internet and download game roms. I should know. I've done it plenty of times myself. But it was never about the games. It was about wondering if it was possible and seeing if I could do it myself. Life's a journey, not a destination.
#video games#gaming#nintendo#virtual console#nintendo hacking#nintendo homebrew#nintendo modding#some of these roms actually have differences from their original releases#as an example: The Legend of Zelda 1 has a better translation for the opening text#late night rambles
1 note
·
View note
Text
Well, I figured it out, and boy do I feel dumb (which is fairly normal for this type of thing). I'm going to elaborate on what I did wrong and at length (but with pictures!).
When you style text in a terminal, you use something called an escape code to do it. The technical details of this aren't important, just that the escape code is a string of text that, when rendered by the terminal, is invisible and instead does something, in this case change the appearance of text.
In testing this, I was using two escape codes, one to turn text red and one to reset the text back to the default appearance. In normal usage, it'd look like this:
Now I like to use colors in my scripts pretty often, so I normally store these in variables and call them all over the place. For this particular app I actually created a dedicated library script that I call colors and frequent text decorations from. Again, details aren't super relevant here, but when using variables, the above code would look like this:
Functionally, the two lines of code above print the exact same thing, the latter is just far easier for me to type repeatedly without having to memorize all the different escape codes.
Next, I have to mention f-strings. In python these can do a whole lot so I won't go into them at length, all you need to know for now is that I use them to align text. This is done by telling the f-string to add padding to a string. Here's a basic example:
This isn't a coding lesson so I won't delve into specifics, all you need to know is that this snippet prints 10 characters, with 'abc' being right aligned in that set of characters. If you include a character after the colon (':') and before the alignment flag (in this case '>'), it will print that character to fill the remaining character spaces. If you omit a character, it will use spaces.
One final bit of information before I finally start explaining the issue is that to keep individual lines of code shorter, I use a lot of variables to store string formatting, so instead of having a super long line of code inside a print function, I just print the variable that contains all the formatting code for the same result. While this is probably a bit wasteful, it makes the code much easier to comprehend when looking at it.
So, what was I doing wrong? Why did the information print out only break when I added color? Since I'm using pictures, I'm gonna keep using pictures!
Here's the information with 0 formatting:
Here's the code that prints that (and my vibrant VSCode theme):
Here's the same information, just bold:
And the code once the bold formatting is added:
As you can see, that's a pretty long bit of code, and I've already split it once!
Now based on what I've already said, if you've worked with strings a lot in code you probably know where this is going. If not, let's break stuff!
Now in terminals, colors are weird, or more accurately, bold is weird. When you make something bold in a terminal, you're also making it brighter. This is a holdover from much older terminal software which had fixed mono-space fonts. Making text bold literally wasn't an option back then, so instead they differentiated by changing the brightness of the text. Functionally, this means a terminal color palette is 16 colors, 8 "normal" colors and then 8 "bright" versions of those colors. Baseline white is actually a light gray, or helpfully "dark_white". When you make regular text bright, it changes its color to white, thus making it stand out more. Modern terminals of course can make text actually bold (as you can see in the screenshots above), however the method I'm using to change it to bold is based on this older system, so it also changes its color to the bright variation.
That was a lot of information you honestly probably never needed to know, but now a quote from my brain in the last post should make more sense:
"Brain: But not bold yellow that will be too bright"
Because the entire informational string is wrapped in the bold formatting, if I were to change the "Current Round" text to yellow, it would be bold yellow, or bright yellow, not the baseline yellow. Of course, adding all of those extra formatting tags will make this line of code even longer, and it's already too long.
So I set about breaking up the output into multiple variables, like so:
It's a bit dense, but each individual line is fairly simple, problem solv...
What?
In the code above the total characters printed is stored in a variable, as I want the output to align with the standings table below, and the width of said table depends on how the tournament is configured. In this specific scenario, the table is 68 characters wide. The first f-string prints 68/2+1, or 35 characters including the 'h_name_string' variable aligned left, while the second f-string prints 34 including the 'h_round_string' variable aligned right. If the table is 68 characters wide and the length of the f-strings is based on that, why are the two so close?
The part I overlooked is that the f-string doesn't care about what characters are invisible when printed. It only cares about the number of characters in the input you give it.
The first f-string is printing 35 characters. I was just expecting it to print the words "test' and 31 spaces. In reality, this is what f-string is seeing when calculating how many spaces to print:
Those escape codes are still strings as far as python is concerned, so f-print is printing 35 characters, 24 of which are a left aligned string, and the remaining 11 are spaces.
The 'h_round_string' variable is even worse:
That string is 57 characters long! The f-string doesn't print any spaces on this one because the string itself is already longer than the designated width it's supposed to align to.
Now this behavior of formatting codes is something I know about, as I've run into it before many times. I just overlooked it here for reasons I can't explain. Just a great example of how you have to think differently often when it comes to programming.
I'm still working on how to fix it, wanting to color the "Current Round:" string separately from the round number while keeping the alignment is proving difficult, but since I know the root cause of the issue, I should be able to figure it out eventually.
So my current ADHD hyperfixation project is a python app, specifically one that will let you generate and run a tournament in CLI. I'm progressing slower than most would because ADHD coding is an exercise in priority management that I always lose, but its progressing.
Anyway, I'm currently building the 'main menu' of the Round Robin portion app. The standings table is done and generates properly, and I'm in the process of adding some additional information at the top of the standings table, namely the actual name of the tournament being run and what round the tournament is currently in. The tournament name is left aligned, and the current round is right aligned on the same line.
I'm also working to ensure this well structured, readable code so that I can upload this to my "professional" GitHub account as a portfolio entry. Mostly this means not having incredibly long single lines, which complicates things in an app with a lot of long strings.
Anyway
For some reason, my brain has decided "This needs some color. We're adding color to this." Today could have been spent adding actual functionality, like being able to report match results, but no, we're going to spend the day adding color.
I probably do mean the day too. First I made this information bold. It stood out, but my brain wasn't having that.
Brain: You can do better. Me: It's literally just text, it's command line. Brain: COLOR THIS TEXT OVER HERE YELLOW Me: Okay, easy enough. Brain: But not bold yellow that will be too bright Me: ...you know we have to restructure the code of this entire section to make that simple change and keep the code readable, right? Brain: It'll be so worth it.
Following said code restructuring, the text alignment formatting is no longer working for the current round, so the information just sits in an awkward spot above the standings table, not quite centered and definitely not right aligned.
If I strip out all of the formatting, everything is working again. If I re-add the bold formatting, things are still fine, so its not the formatting alone breaking it. The variable that adds the padding required to make the alignment work is not returning the wrong value.
Basically I'm going to spend hours tearing this apart to figure out why this specific combination of code breaks fstring alignment, because if I don't, when I try to work on other sections of code that need actual thought put into the execution, my brain will just play static.
2 notes
·
View notes