Stats

4
Projects
41
Devlogs
21
Votes
1
Ships

Coding Time

All Time: 150h 44m
Today: 0h 0m

Member Since

June 18, 2025

Badges

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

Projects

4
Jade
7 devlogs 27 days ago
HomeClip
17 devlogs about 1 month ago
PiStation

PiStation

Shipped
16 devlogs about 2 months ago
DarkShell
1 devlog about 2 months ago

Activity

darrkenn
darrkenn worked on HomeClip
5h 22m 1 day ago

HOMECLIP DEVLOG#15

  • Removed the links.db local binding from compose.yml, in order to increase compatibility.
  • Fully finished the UI for the folders contents. Navigation between folders is smooth and easy. New folders/links can be created in the folder and will be displayed instantly.

I'm NGL I forgot what I changed😭. I havent touched this in nearly 2 weeks!

Update attachment
darrkenn
darrkenn worked on Jade
5h 41m 4 days ago

Jade DEVLOG #6
- Now using the crossbeam_channel crate which is MPMC instead of MPSC which reduces alot of complexity.
- Added back the queue thread, whenever the music-player thread detects it's sink is empty. It will send a request to the queue for a new song, which then sends a signal to the UI to remove the first value in the queue vector.
- Moved the config.toml file to the users .config folder.
- Split up all rendering areas (songs,queue,info) into different files.

Update attachment
darrkenn
darrkenn worked on Jade
7h 25m 8 days ago

Jade DEVLOG #5

  • Removed the unnecessary queue and visual queue threads, the queue can be easily handled by the music player thread.
  • Removed the blocking from the music player thread by doing .try_recv instead of .recv.unwrap(). This was necessary to have the queue feature in the thread. Fixed an error where some files would fail when their duration was being calculated.
  • Random small performance improvements(like taking a slice of a vector instead of a full clone)
Update attachment
darrkenn
darrkenn worked on HomeClip
4h 46m 13 days ago

HOMECLIP DEVLOG#14

  • Finished the folders on the navbar, it only goes three folders deep(might increase possibly). I animated them using alpine.js which is very simple and lightweight. If a user opens a folder on their browser, it will persist throughout browser sessions thanks to the persist plugin(I might have fought with this for over an hour before I realized I was looking at the wrong page).
  • Setup the /folders page, each page shows all folders that are in the current folder(not files yet), if the folder has a parent folder a back button will show up leading to the previous folder. Create link+folder are working perfectly too.
darrkenn
darrkenn worked on HomeClip
4h 34m 14 days ago

HOMECLIP DEVLOG#13

  • Added folder views on the navbar(only goes two folders deep as thats more than enough). Folders can be fully traversed through on the /folders page.
  • Completely removed the tags feature completely. It was unnecessary and really added nothing to the experience, folders are enough to organise.
Update attachment
darrkenn
darrkenn worked on HomeClip
3h 59m 14 days ago

HOMECLIP DEVLOG#13

  • Fully setup the database and changed the schema of the folders table. Now folders can have a parentId allowing for folders to be inside folders.

  • Docker file and compose.yml fully setup.

Update attachment
darrkenn
darrkenn worked on HomeClip
2h 42m 14 days ago

HOMECLIP DEVLOG#12

Ive decided I will be rewriting this entire project in Go+Gin. For better performance(definitely not because I'm addicted to Go).

Here is a high quality drawing of the go gopher.

Update attachment
darrkenn
darrkenn worked on Jade
2h 27m 21 days ago

Jade DEVLOG #4

I added the songs time to the UI, this is also needed for the current song information that will be shown at the bottom (Achieved this by using symphomia). Now begining working on the visual queue

Update attachment
darrkenn
darrkenn worked on Jade
42m 21 days ago

Jade DEVLOG #3

Changed the UI about, the bottom is the songs information/metadata. The left is all the available songs and on the right it is the currently queued song.

Update attachment
darrkenn
darrkenn worked on Jade
4h 45m 23 days ago

Jade DEVLOG #3 Added full music playing functions. A sink is spawned in a separate thread upon launch and the channel transmitter is cloned and given to the run function. This allows for all the song functions. Will now begin on improving the UI and getting the file metadata to display on the right side of the screen!

Update attachment
darrkenn
darrkenn worked on Jade
2h 39m 26 days ago

Jade DEVLOG #2

Added basic music discovery, it only allows files that have certain extensions. Audio can play when selected, however everything locks up so I will need to put it in a different thread.

Update attachment
darrkenn
darrkenn worked on Jade
1h 38m 26 days ago

PiStation DEVLOG #1
Setup the layout of the application (Left side is the list of songs and the right is the song information) Setup the config file where users can define where the music location is, the volume is also saved. Currently working on making the songs display in a list

Update attachment
darrkenn
darrkenn created a project
27d ago

Jade

A terminal music player built in Rust.

Jade
7 devlogs 0 followers

HOMECLIP DEVLOG#11

NEW####

Setup api endpoint to get all links that match a tag.

CHANGED

Reduced code repetition of the edit form by putting it in a js file and prepending it to the body on load. Fixed the url redirect when editing too

Update attachment

HOMECLIP DEVLOG#10

NEW####

Setup the pages for tags/folders and their individual pages.

CHANGED####

Removed all repeated Navbar code and put it into a js file. Whenever a page is loaded it prepends the divs onto the body of the html, reducing the file size and increasing performance.

Update attachment

HOMECLIP DEVLOG#10

NEW

Setup the logic behind the search page, it gets the query parameters from the current URL and passes it onto a javascript function that fetches data from an API endpoint based on the type of search (title,tag,folder).

CHANGED

Changed the database LIKE comparison to %value% in order to improve the searching.

Update attachment

HOMECLIP DEVLOG#9

Search suggestions fully working(both tag: and folder:). Implemented a search page which will get the values based on a query in the url. Updated the docker file with a python alpine image as the debian image was not needed. Also updated the README for setup of the docker file

Update attachment

HOMECLIP DEVLOG#8

Added functionality to the search bar, however only able to search the link name so far. Plan to implement it for folder/tag by adding a starting phrase at the start of a users search (Tag:). Also implemented a dockerfile, works perfectly.

Update attachment

HOMECLIP DEVLOG#7

Top 5 most clicked links now show up on the homepage. Setup an all links page to show every other link. This required me to create a JS file in order to reduce code repitition

Update attachment

HOMECLIP DEVLOG#6

Added Click tracking for each link as I plan to show the 5 most clicked links on the homepage

Update attachment

HOMECLIP DEVLOG#5

Improved the database layout to reduce data repitition.

Update attachment

HOMECLIP DEVLOG#4

Made the UI look way better, added SVG's for edit and delete. Links can now be edited.

Update attachment

HOMECLIP DEVLOG#3

Improved the add new links UI. Also added tags to links as I plan to add a search feature later on in the project.

Update attachment

HOMECLIP DEVLOG#2

Successfully setup basic API endpoints, can now add/delete links. UI is very primative as its just for debugging.

Update attachment

HOMECLIP DEVLOG#1

Added a simple API request to get all links in the sqlite3 db. Now working on making them display as their own divs on the page.

Update attachment
darrkenn
darrkenn created a project
42d ago

HomeClip

A self-hosted bookmark manager.

HomeClip
17 devlogs 0 followers

PiStation DEVLOG #15

Added most extreme values from the past day

Update attachment

PiStation DEVLOG #14

Added downloading a CSV file that respects the filters. Also updated the current weather div with rain and pressure.

Update attachment

PiStation DEVLOG #13

Added a card layout for mobile views as the table was too horizontally wide. Filtering works(basically same code as the table filter script).

The card layout looks better than the table, might make the desktop view use cards instead of a table.

Update attachment

PiStation DEVLOG #12

Improved the layout of the site on screens smaller than 16:9. Updated the official pistation.xyz with all previous changes.

Update attachment

PiStation DEVLOG #11

Added pressure and rainfall charts. Pressure chart was easy, however the rainfall chart was hard to figure out what would be best. Went with a bar chart with max value of 1 and a min value of zero(Zero is no rain, One is rain).

Update attachment

PiStation DEVLOG #10

Setup pressure sensor and rain sensor on the esp32. Ive also reset the database in order to accept these new values. The JSON is perfect, it works on the browser and curl.... HOWEVER! python just doesn't like the JSON. This is most likely bad code I've written.

Update attachment

PiStation DEVLOG #9

Setup the esp32 code. It is a simple HTTP server that gets temp values on request and sends it back as a JSON. For power saving I made it go to deepsleep for 9 minutes.

Update attachment

PiStation DEVLOG #8

Added favicon to the pages. Unfortunately I just realized that the raspberry Pi doesn't have a built in ADC, so im going to have to use my Temu esp32 as a http server.

Update attachment

PiStation DEVLOG #7

Added a humidity chart and improve the looks of both charts.
Currently implementing function to download table as CSV

Update attachment

PiStation DEVLOG #6

I improved the look of the past readings page(however doesn't look 100% great on mobile yet). Decided to add chart.js to the project in order to better visualize the changes in weather.

Update attachment

PiStation DEVLOG #6

Improved past readings page. The readings can now be filtered based on select value (Ignore design its just for debugging)

Update attachment

PiStation DEVLOG #5

  • Got a cheap domain for £1 on porkbun.
  • Setup nginx on the raspberry pi.
  • Setup gunicorn for better performance/handling
  • Setup cloudflare tunnel for better protection and because i dont have a static ip.

Website Link:
https://pistation.xyz/

Update attachment

PiStation DEVLOG #4

Created a page that allows the viewing of all past readings of weather. Creates a dictionary which is then turned into a table.

Update attachment

PiStation DEVLOG #3

Setup the project on the raspberry pi using a rsync script that automatically updates files when changed on my pc. Fixed the databaseAdd.py script to now get data from the sensor and add it to the database. Now going to improve how the homepage looks because its quite bland.

Update attachment

PiStation DEVLOG #2

I setup the flask project with tailwind v4(Definitely didn't spend 1 hour wondering why the classes weren't being added until i finally added --watch to the command). Ive decided to get the sensor data every 10 minutes, by running a separate python file that appends data to a SQLite database.
On the client side whenever the user first opens the page it calls a function that gets the latest added temperature/humidity from the SQLite database.

Also the DHT11 sensor got too hot and fried itself🤦.

Update attachment

PiStation DEVLOG #1

I had problems with the AdafruitCircuitPythonDHT library in my code as it would try and use the Jetson.GPIO to get data from the pin. I fixed this by adding
(from adafruitblinka.microcontroller.genericlinux.rpigpiopin import Pin) to the (except ImportError) when it trys to import the pin.
The code now successfully gets the temperature/humidity and i can now work on the flask side of things.

Update attachment
darrkenn
darrkenn created a project
54d ago

PiStation

A weather station hosted on a raspberry Pi 3B+, using Flask,Chart.js and Tailwind. Weather is retrieved from a ESP32 over HTTP and stored in a sqlite database.

PiStation
16 devlogs 1 follower Shipped

DarkShell Devlog #1 19/06/2025

At this point DarkShell has basic functionality. It features simple commands like ls,cd,pwd,exit,clear. More complicated commands are handled externally, however only simple commands that return instantly work e.g. fastfetch.

I am currently working on piping commands, as I am writing this I have successfully made the input split into a vector based on where the pipe is (supports multiple). These commands will then be handled externally and there output will be the input for the next command, I don't know how im going to achieve this. Most likely will be with stdin/stdout.

Update attachment
darrkenn
darrkenn created a project
56d ago

DarkShell

A custom shell built in rust.

DarkShell
1 devlog 0 followers
darrkenn
darrkenn joined Summer of Making
56d ago

This was widely regarded as a great move by everyone.