Stats

3
Projects
18
Devlogs
11
Votes
1
Ships

Coding Time

All Time: 69h 46m
Today: 0h 0m

Member Since

June 16, 2025

Badges

1
🚢
Maiden Voyage
you shipped your first project! the journey begins...

Projects

3
Random wallpapers
9 devlogs 15 days ago
Slide

Slide

Shipped
7 devlogs 17 days ago
🚀
2 devlogs about 2 months ago

Activity

Started working on a web version using WebAssembly and syscall/js
Going well so far!

Update attachment

Wrote a much better readme

hmmm, not really any good image to show here since the readme is too long. I guess another random image wouldn't hurt.

Update attachment

Refactored most of the code. So it's a lot simpler now.

Also changed the CLI arguments alot
- Wallpaper application is now optional (only happens if the --monitor flag is passed)
- The save location can be modified with the --output flag
- Custom seeds can now be added with the --seed flag

E.g two seeds could be added like this
[command_name] --output ./image.png --width 1920 --height 1080 --seed 0,0,0,105,148 --seed 1919,1079,148,17,0
And that would generate an image similar to the one shown below

Update attachment

Moved alot of settings into the CLI arguments

Seed Colour

The colour of the starting seed can be changed using the --sr, --sg, and --sb flags (Seperate channels)

Colour variability

The variability of each channel can be changed using the variability flags: --rv, --gv, and --bv. Variability controls how likely each channel is to change. So setting --rv to 0 would mean the red channel would remain the same as the seed

Update attachment

Turns out that wasn't too hard to fix. I just had to ignore pixels which had already been selected.

That brings the 800x800px image down from 3 seconds to 0.07 seconds (a 42x speedup) which hopefully means my code is only slow in linear time now

It also means i can generate full 1920x1080px images now. (Still takes 0.6 seconds, so there's much more room to improve)

Update attachment

I updated the code so that the entire screen would be filled, not just as many as possible in 1000000 loops.

Also, I ran a small benchmark, and generating a 800x800px image and it takes a whole 3 seconds!!!

Here's why:
- Every iteration, a random coloured pixel is selected (the seed)
- Then, all its neighbors (which aren't already coloured) are coloured with a slightly modified version of the seed's colour

Do you see the problem?

There's nothing stopping a pixel being selected which is already surrounded by coloured pixels. This results in a LOT of wasted iterations, and the problem only increases exponentially as the image size increases!

Update attachment

Messed around with hyprpaper loading and unloading and now the wallpaper automatically gets applied

Update attachment

So i fixed a few bugs...
And it looks like this now, Yay!

Update attachment

Trying to figure out how to generate random images using a flood-fill algorithm

This is what it looks like so far... :(

Update attachment
zakkbob
zakkbob created a project
15d ago

Random wallpapers

Randomly generate wallpapers using math stuff!

Random wallpapers
9 devlogs 1 follower
zakkbob
zakkbob worked on Slide
1h 19m 16 days ago

It was originally hosted on Github Codespaces. So i went on a bit of an adventure to try to host it somewhere better.
First, I tried my homelab - But, I couldn't find the crumpled bit of paper with all my passwords on it (I'll fix that later)
Then, I tried cloudflare workers - But the Web-Assembly binary ended up being larger than 3MB and tinygo didn't work
Lastly, I tried Vercel - That worked!

I still need to implement win detection though

Update attachment
zakkbob
zakkbob worked on Slide
1h 53m 16 days ago

Multiple games can be played at once now.
A new one can be started with /slide-test

Next up is win detection!

zakkbob
zakkbob worked on Slide
1h 30m 17 days ago

Okay, the buttons DO work now. But, only one game can be played at a time :/

zakkbob
zakkbob worked on Slide
41m 17 days ago

Tiles can move now! (Well, sort of, the buttons still don't work :P)

Update attachment

Forgot to add a blank tile!

Update attachment
zakkbob
zakkbob worked on Slide
1h 10m 17 days ago

I figured out how to make it print a board. And it's randomised!
Next, I need to make those buttons work

Update attachment
zakkbob
zakkbob worked on Slide
1h 22m 17 days ago

Trying to figure out how to make a slack bot in Go. Managed to add the arrows so far! :yay:

Update attachment
zakkbob
zakkbob created a project
17d ago

Slide

A sliding puzzle game in slack

Slide
7 devlogs 1 follower Shipped
zakkbob
zakkbob worked on Mailguard
13h 23m 24 days ago

Update #2 - Nothing interesting yet :(

CI

  • Added a super cool CI workflow into github to automatically run tests

Database

  • Added integration testing for all methods (with dockertest)
  • Added 'email' field to users, this will be used as the primary and only email for now, multiple will be future functionality
  • Users can now be Retrieved and Deleted (not just created)
  • User aliases can be added

CLI

  • Added 'user delete' command
  • Added 'user alias create' command, for creating a new alias (under the root domain for now)

Overall

Still moving quite slowly, but I'm starting to understand things more. I have realised that this is taking longer than i thought, so I will focus on a smaller feature set for the first ship. Next will be the email receiving and forwarding.

Update attachment
zakkbob
zakkbob worked on Mailguard
14h 23m 30 days ago

Realised I should probably be making devlogs. So here's what's happened so far

CLI & Config

  • Learning how to use cobra for cli
  • Learning how to use viper for config
  • Began making user system (user create command)

Database

  • Using golang-migrate for migrations
  • Using dockertest for database integration testing (None yet)

Logging

  • Started by using logrus, made a bit of a mess
  • Switched to zerolog because apparently it's faster (probably makes no difference for me though)
  • Realised than go has a standard library called slog, which I should probably use instead (I'll see how zerolog goes)

Overall

I'm very new to Go, so I'm learning alot about how to structure a larger project well. But, I think it's going well so far

Update attachment
zakkbob
zakkbob created a project
49d ago

Mailguard

A privacy-focused, self-hosted mail proxy written in go

2 devlogs 0 followers
zakkbob
zakkbob joined Summer of Making
56d ago

This was widely regarded as a great move by everyone.