Exploring Audio Processing Algorithms

For my sixth lab in my SPO600 class, I’ll be exploring algorithms used to increase or decrease the volume of an audio signal. It helps to start with a solid understanding of what audio is. An audio file has a sample rate, usually denoted in KHz. This refers to the number of times per second […]

Enabling Vectorization

For my fifth lab in my SPO600 class, I’ll be creating a C program for an AArch64 system in a way that allows the GCC compiler to automatically vectorize it for me. The program must do the following: Fill two arrays each with 1000 random integers between -1000 and 1000 Map over the two arrays, […]

Learning How to Build Software

For my fourth lab in my SPO600 class, I’ll be building software (as opposed to just blindly executing a “sudo apt-get install” etc. command). I need to pick any GNU software and then also try building glibc. An important part of this lab is that I shouldn’t install the software, just build it. What’s the […]

Writing Assembly for x86_64 and AArch64

For the third lab in my SPO600 class, we create two programs in assembly, one for the x86_64 architecture, and one for the AArch64 architecture. Each program would loop from 0 to 30 and print a message with the number each time. If this were C, it would be 4 lines of code: #include <stdio.h> […]

Exploring Assembly When Compiling a C Program

For my SPO600 class’s second lab, I need to compile a C program for the x86-64 architecture with various compiler options and compare the output. Up until now, the only compiler flag I used was “-std=c++0x”. This should be interesting! Here’s the program: #include <stdio.h> int main() { printf(“Hello World!\n”); } Control Before I investigate […]

Exploring Open Source Development with RethinkDB and GIMP

For the first lab in my SPO600 class, I am tasked with exploring two open source software projects, each with difference licences, and investigating how contributions are made to them. RethinkDB The first open source software project I’d like to talk about is RethinkDB (licensed under Apache 2.0). On their website, they describe it by saying “RethinkDB […]

I’m Back!

Looks like this blog will get new life. Once again, as part of my activities at Seneca, I’ll be blogging. I’ll be talking about what I do in SPO600. This class is where I’ll be doing the lowest level programming yet! I thought learning C was low level, but what about assembly? And for both x86-64 […]