This is my website, I know the design is awesome, right?
GitHub | More "styled" website | Twitter
> Today I just want to tell you a lil about what I did the last couple of days.
> So a few days ago I started working on a CHIP-8 emulator. I started this because I want to strengthen my
understanding of C and how the code actually interacts with the hardware.
So I'd say the thing I struggled with the most was probably understanding where stuff is in memory and how the CPU
is actually operating on it. For reference, the CHIP-8 emulator has
exactly 4kB of internal memory, that are 4096 bytes which for today's standards obviously is not a lot.
> From what I learned so far, the program's ROM in the CHIP-8 emulator is supposed to be loaded starting at location
0x200 (512) up to 0xFFF (4095) and consists each of 2 bytes opcodes.
> As an example, the table of opcodes that can be executed by the virtual machine looks something like this:
> If this is you right now:
> Don't you worry friend, I felt the EXACT same way when starting this. Contrary to popular belief, I wasn't born
with a magical chip implanted in my brain that made me an instant expert in programming
or in fact any kind of computer-related stuff. Nope, I had to grind through every confusing opcode, cryptic error
message and thousands of videos and guides just like anyone else. I wasn't gifted a programming manual as a baby.
I'm bringing this up NOT just to make a fool out of people who always told me that in the past, no,
I also want to emphasize that literally EVERYONE could learn this. It doesn't matter
if you are technically inclined or not as long as you are willing to learn and you are passionate about it; You can
do it! Learning this stuff was—and still is—a journey of trial, error, and a lot of 'WTF' moments so be patient with
yourself.
> Anyhow, after my little rant let's get back to the topic at hand, shall we. Yeah, so the thing that really hurt me
the most (in a good way) was learning more about bitwise operations and how they work.
I knew about bitwise operators and what they do in theory but I haven't really used them because, well I was working
mostly in the Frontend and for the backend I mainly used Kotlin so there was no need to learn this stuff.
Now that I am planning to get my bachelor's degree in Cybersecurity, I figured it would be a good idea to get my
hands dirty to prepare for the upcoming years. So for those who don't know what I'm talking about...
I won't explain how they work now because that would exceed the scope of this blog but you can just think of it like
funny symbols like (|)
and &
to basically switch the bits of a number based on the symbol
used and their original state.
Yeah, so in a nutshell: PC goes brrrr in a VERY confusing way. (┬┬﹏┬┬)
> Yeah well but I learned that! What I also did was working on a little CTF in which I had to basically get into a
system and get a user and a root flag by following penetration-testing methodologies and working my way through
multiple systems and layers.
> That CTF involved port scanning, directory enumeration, file enumeration, looking through network traffic, using
the FTP to retrieve files from the target machine, looking at network dumps and more. Pretty fun, right?
> So the last couple of months have only been ups and downs pretty much (guess that's how life usually is lol) but I have
a few exiting projects running right now and I'm hyped to work on them over the next months.
> At work, a few things changed as well. I actually managed to talk my boss and manager into changing my contract. I will be getting
three 10% raises over the next year so a 10% salary increas each 6 month as well as one additional day off which in huggeee! (─‿‿─)
> For my projects: I've been working on a few things recently, ofc I completed a few easy and also pretty hard CTFs on TryHackMe.com,
a few things I'm currently working on whenever I find the time to are my own language MoonLightScript, my retro gaming console system MilkyMoonBox, an AI powered CNN (convolutional neural network)
which will be used to distinguish benign software from malware by looking at their respective grey-scale image representations and recognizing patterns within them and also a larger scale project
called VulnForge. This basically will be a Cybersecurity hub or penetration-testing toolkit so to say which other ppl will be able to utilize in their day to day life as a penetration tester or
offensive security specialist to scan and attack targets. Most of those projects are written in either Golang, Rust or Python so that's kinda where I'm putting my focus right now.
> I also have been working on World Of Warcraft addon development in Lua which is suprisingly diverting!
> The sheer amount of projects I have running right now are a bit oppresive but at the same time they are motivating since if I ever feel like I don't wanna work on something any longer,
I'm able to switch to another cool one. Let's see what the future brings, I'll keep you updated!
> I'm back again with some updates! It's been some time since I wrote my last blog entry, the year is coming to an end and many things changed. (≧∇≦)ノ
> Work didn't really change much except for the fact that it's getting progressivly more stressful because of added responsibility. I'm now supervising apprentices (or how I like to callt them 'baby devs')
so on top of my usual work I now have to act as the daycare for them, which is fine, still sometimes it's a little exhausting but everyone has to start somewhere, right?
> My projects are really exciting right now! (o゜▽゜)o☆
I'm still working on my own language called 'MoonLightScript' and on top of that I also started building some other cool projects.
One of them is my 'LunaVM' (I know very creative) which will act as a language VM and in the future should also run a VERY BASIC general purpose OS (LunaOS prolly), in addition I also started to write
my own memory allocator called 'Starlloc'. I'm not really a big fan of the linear way that malloc handles allocation so I decided to write my own little allocator that follows the arena or bump allocation strategy.
If you want to read more about that THIS blog post explains it quite well!
I'm also planing to transition my language from an interpreted lang to a compiled one, meaning I'll have to write a small compiler for it (MLSC MoonLightScriptCompiler), since my LunaVM is working with opcodes I was thinking
to compile my languague to LunaVM specific opcodes and also add a std-lib (standard library) to kinda make it a LunaVM systems-language. Some other plans I was following are integrating Raylib
into that VM and some sort of networking capability but that's for another blog post! (*︾▽︾)
> Some other news I have: I now officially know what I'll study and when. I'll be studying 'Cognitive Informatics' or 'Cognitive Computer Science' which basically is computer science but with a AI and pshychology focus which I think
is a SUPER neat combo! I'll start in October 2025, wish me luck T-T
> I'm moving! In around 4-5 weeks I'll move to a different city and many things will change but I'm really looking forward to it, my first step towards achieving my big dreams!! I'll keep y'all updated (●'◡'●)