Sem Pruijs

I like to code. You can find my projects here and on my github

You can contact me via:

email: contact@pruijs.net matrix: @qlp:matrix.org

Projects

This is my whole journey until now. I started coding when I was 11 years old.

Coding with eyes closed

I wrote my first book. It a book for rehabilitative coders. You can read it online.

View book

View on github

Advent of code 2023

I solved a lot of advent of code puzzles in 2023 with rust.

You can look at my solutions in my advent of code mono repository.

View on github

shoelace crate

Their was an exercise with advent of code to calculate the service area of a weird shape.

I learned about the shoelace formula and wrote a rust crate for it.

View on github

nixos config

I learned more and more about NixOS by building my own configuration.

View on github

audio from yt

I wanted to scrape audio from youtube. ytdlp had so many flags and options that I always forgot how to use it. That’s why I wrote a flake for it so that I could use it with more easy.

View on github

Learn nix language

I wanted to get better at nix. Nix is the best build system with the worst language. The syntax is horrible so I had to learn it :)

View on github

ye

A cli for fetching Kanye West quotes. I learned a bit more about using async await in rust with the tokyo crate, and I used serde, a crate to convert different types of data formatting, so that I could convert json to an instance of a rust struct. This was made with the kanye.rest api.

View on github

justhash

A simple cli for generating sha256 hashes.

View on github

new read

new-read is a new way of spelling dutch words so people with dyslexia can’t write words the wrong way anymore. This is done by eliminating different ways to write the same sound. The nrc (new read converter) is written in rust and I made a super small sort of language to define string conversions. I also used clap (command line argument parser) a rust crate to generate nice help menus for the cli.

View on github

randaam cli

It was time to use rust in my own projects. Randaam, the app that I mad when I was little as a command-line interface. I published a crate on crates.io for the first time and written some documentation so people could read it on docs.rs

View on github

The Rust programming language

As I learned from ka.pruijs.net and using javascript, error messages are very important, especially when you have a visual impairment. I’ve heard from other people that rust has amazing error messages and is becoming very popular because of its speed and safety. So I decided to learn the language mainly because of those error messages and its very strict type system which is also very important for a language when you have a visual impairment. Debugging is slower when you do not see that much, so not having to figure out what value what type is is a big plus. I read it from start to finish, and as I read more of the book, my sight became a bit better so I switched to Helix, which is a editor with vim-key bindings. I think I know rust the best of all languages that I used so far and it has become one of my favorites.

View on github

Contributing to open source

I did a few small contributions to element X for ios, element X is a matrix client, and made issues and small pull requests here and there. I learned the whole process of forking a repository, making changes on a branch and reading the contribution guidelines. I learned allot from contributing to open source, my main concern regarding my visual impairment, was if I was capable enough to collaborate with other people and reading allot of code that other people have written. When I started it was pretty hard, but with enough practice was it possible and now I do not find it so hard anymore. I will keep contributing to open source to make software more accessible. You can look at my github to explore the places where my contributions are

View on github

PAKS

A website where you can drum simple rhythms that also has great integration with braille displays. I did not learn anything new except a bit with html text fields, I used the skills that I had learned from ka and made something new. It was nice to see that visual and non visual people could drum a rhythm together

View on github

kenmerkende aspecten

Maybe this is one of my greatest accomplishments. I learned to program without my vision, and navigating my computer just with a screen-reader. But I learned one other important thing too! Never use javascript period. Because of my visual impairment, if you would see “object is undefined”, you could figure out what the bug is if you stare a bit. (when your lucky) But when I lost my sight this was horrible! I had to read every sentence in my script with braille to figure out where that one capital letter is that mess it all up. So, I learned typescript. With typescript the compiler should me the bug. But I wanted to deploy my site so I learned about CI/CD. My brother is a big Nix fan so he encouraged me to make my build process reproducible with a Nix flake. I learned more about dev-shells and configured MacOS with Nix Darwin and the home-manager. The website is not that impressive, it helps you remembering dutch historical facts, but this is the first project that was successful when trying to develop with my visual impairment, makes me feel very happy about ka.pruijs.net

View on github

learn you a haskell for great good

This is an introduction to Haskell. A functional programming language. Do I never read it from start to finish, haskell influenced me so much that I try in every language to write only pure functions and eliminate state as much as possible. Pure functions are the way to move forward and in almost all cases (not games) is writing only pure functions the best long-term approach for a project.

View on github

Randaam Web

This is randaam, but made for the browser. This is so much easier than making an app in UIKit. I learned how to make my own type in javascript and how to implement dark mode to a website with system theme. View on github

pizzagezond.nl

This was a joke website. The website literally says pizza is healthy in dutch. I learned how to set up a custom domain with github pages. I also made my first animation with css.

View on github

The Space

The space is a game that I made in 5 days for a game jam. I learned how to use the tiles system in unity and I got more experience of making pixel art. A friend made the monster sprites. The theme was lost in space, so I thought about a game where children are lost in a space. The game is a bit buggy but I am happy with the end result.

View on github

Advent of code 2020

Advent of code 2020 is a competition where you have to solve puzzles. I thought that python was a great language to use and it was. I now know python better. Sadly, I didn’t finish it to christmas. I really enjoyed the challenges, but they where just too long for my routine. School has top priority for me. I do not think I will compete next year because the challenges cost just too much time for me. Maybe if advent of code mini comes out or something similar like that.

View on github

Pypong

Pong made with python. I always wanted to learn python and make pong so I thought let’s do it now. I made it with turtle in one night. Python was a very simple language and for small projects like these it’s perfect. I enjoyed the process although it was short.

View on github

Rainbowglow

Rainbowglow is a game that I made in 30 minutes. It’s hard to make a game in that short of a time period but I was up to a challenge. The game is trash but for 30 minutes it is good in my opinion. I think it is a good concept so I may turn it into a polished mobile game one day. Made with unity and fast game

View on github

Music Share Hub

Music Share Hub (I know it’s not the best name) is a little project that I made for sharing music. I found myself repeating an action over and over. It was thinking about: “On which platform does person x listen music?” Was it on spotify? or on youtube? So I made a website where you can type the name of a song in a text-field, and the links would generate automatically. The input was stored in the url so you could send that to your friends. And when your friend opens the url, they can decide for them self. It was pretty easy to make, but I did learn a few small things. Storing information in a url and styling a text-field. I was very happy that I could program, because I could solve a problem that I had with my programming skills

View on github

Relaxed Legs

A endless runner that I made on my own. I learned a few things that are important for game development. I worked on it alone from start to finish. I did the app store connect uploading all on my own and I made my first Apple Tv and my first Mac application and uploaded them on the app store. I really enjoyed seeing my app on the Apple tv because the screen is so much bigger than a phone. I didn’t spent to much time on it because it was not a “new” concept but I did finish it to the end which felt very rewarding.

View on github

sempruijs.nl

I first tried to make a website with html and css and it was very easy to do that. The problem was that the scope was to big so I did it again but with a much smaller scope. I wanted to learn more about JavaScript so I learned how to load a .json file and creating html elements with information from the json file. I learned a little bit of JavaScript, how json works and I really like the whole process of making a website because you get fast results.

Later I replaced the site with pruijs.net because sempruijs.nl looked ugly.

View on github

One Hour Game Jam

I participate almost every week in the One Hour Game Jam. I really enjoy making a game in one hour because the results are so bad that it is funny to play the games. I use the fast game project every week and through this game jam I can improve the Fast Game project. I participate in this jam almost every week so there is always something to play there :)

View games

Fast Game

Fast Game is not a game but a unity 2d projects where you can make games fast. This is made for prototyping and for game jam where you are allowed to use pre made assets and scripts. The projects contains scripts that are easy to use and multifunctional. It also contains art assets that I have made for game jams and for the Fast Game project it self. It also has some music and sound effects for that I made for game jams and for the Fast Game project. When a prototype has to be made, I clone the Git repository and make changes to make to prototype. I do not make the repository public because I do not want people to use my music and sprites. Because of this project I do not have to repeat my self constantly when making games.

Sem Service

Sem Service is a candy machine made with an arduino. I want to make something with arduino’s and I want to make a little bit of money so this was the perfect project. You can order a candy bar on a website if you’re on our internet connection and then you can grab the candy bar out of the machine. My dad made the API from the website to the arduino and I created the machine and I learned with this project allot. How electricity works. How to control the arduino. C++. working with servo’s and lots more. I will add photos of the candy machine in the future

Parallel Worlds

Parallel Worlds was a game made for the HighPixel game jam 1. I had one week to make a game and it was fun to make. I learned more about game jams and that it is important to keep te scope small. You can play the game on itch.io

View on github

Tankee

Tankee was my next big project. I wanted to do something with local multiplayer so I thought: Tank battle! I learned allot from this project but i felt like it was not an amazing idea. So I stopped. I worked hard on it and it was fun to play for some people but was not for others. Controls where hard and you needed 2 controllers. I wanted a game that was more accessible and less violent. (That game is Flyght where I am working on right now.)

View on github

Taptic Engine Test

I just had a iPhone 7 and I was fascinated by the taptic Engine. I wanted to feel all the feedback things so I made an app in Xcode to test all the haptic feedback things that you could use as developer. It was made under a day I think and later published on GitHub.

View on github

Mini Parkour

This is a rage game. I was a bit bored from a big project of mine so I made this project. You can play it on itch.io but please do not break things when you are angry. I learned with this project how to use the animator and how to transition from scene to scene. I really enjoyed seeing people playing that game.

View on github

Wosta

Wosta is a game made with Unity and C# and the rules are simple: Eat fish that are smaller then you. Avoid fish that are bigger then you. When you eat a small fish, you grow. Become big. I made this game in collaboration with my dad. I learned allot with this project because of my dad. He showed me how to avoid spaghetti code and write code that is easy to understand. We worked with unity collab and after he stopped paying for that, I put the project on GitHub. I also made some updates to the application. A made a christmas update and a sticker pack for iMessages and a update where you can where hats. I did those updates on my own. I really enjoyed working on this project.

View on github

aMAZEing

I want to make games. But Xcode was not the best way to do so. So I learned the basics of Unity to make this project. It is a maze game. And it has the clever name aMAZEing. I picked up Unity and C# fast. Making something in Xcode is so much harder then in Unity. I think this was made in about 1 or 2 days.

View on github

Tic Tac Pro

Tic Tac Pro is Tic Tac Toe but then you could play on a 3x3, a 4x4 board and a 5x5 board. It was time to apply my knowledge from Learn to code 1, 2 and 3 and Intro to App Development with Swift to make an app! My brother said: A great practice to test you skills is to make Tic Tac Toe. It was a great tip from him and I started making Tic Tac Toe. I want to release the app so it had to have a cool feature. A 4x4 board and a 5x5 board. I spend too much time on this feature and when it was done, I came to a conclusion that it was not fun to play on a 4x4 board and a 5x5 board because who begins wins. :( This was painful to see and I learned something very important: PLAY TEST!, I could’ve just grabbed a piece of paper and test with a friend if this concept was fun to play. I did learn more about programming and writing elegant code.

View on github

Intro to App Development with Swift

Now that I knew how to program, it was time to learn how I should build an app with Xcode. This was a great book. After a few chapters I was working with Xcode and making simple apps. I completed the book and I had the knowledge on how to build an app. Learn to code 1, 2, 3

Learn to code 1, 2 and 3 are three programming courses on swift playground on the iPad. After Randaam I thought that I need to know more on how to program. That was a great decision. I really loved the courses and I would recommend it to anyone who wants to know how to program.

Randaam

My dream was making an app for the app store. So I installed Xcode. I followed the first few chapters and I thought I knew enough and started making Randaam. Randaam is a dutch random person generator. It was build with Swift and UIkit. The most important skill was how to google. I knew what I was writing and how to write it but progress was going slow. I think that is because I had too little knowledge about UIkit and programming in general. My dad put the app on the app store with his app store connect account. It was really fun to make it and I learned ALLOT from it. I am happy that my brother forced me to use git and now the project is on github. :) Later I remade Randaam with swiftUI.

View on github

Scratch game

My first thing that had something to do with programming was scratch. I made a bird game where you had to avoid other birds. I learned the basics of coding and it was really fun to make it. I think I was 11 or 12. Sadly, I lost cannot find the project on my account anymore :(