Show newer

Thinking about setting up my own Gitea instance, only problem is the lack of CI/CD.

I know some people use Drone but I'm wondering if that project is FOSS, I suspect that it is and has been mislabeled but I can't find anything on this.

Trying to back to my days of self-hosting a Git Server(only this time with pipelines)

I think I'm gonna start incorporating more wood into my tech related projects when I can.
Stats for the curious:

Akko CS Vintage Whites(Lubed)
Skyloong GK64xs PCB + Backplate*
KBD Fans 60% Bamboo case

Still waiting on a new backplate since the Skyloong one has a detachable spacebard piece which isn't currently mounted so its just wedged into place but it works for now.

Finally after 3 days of setting up a new infrastructure w/ terraform
all my pre-lim tests are passing which means I can finally move all my sites over to the new infrastructure

No more jank on my public projects

I refuse to stop using Makefiles. ESPECIALLY with Terraform, Like I just don't wanna type a massive command, and writing my own shell script is 2jank4me

>working from home
>quiet most days
>join teams meeting
>leafblower instantly turns on outside
every. single. time.

friendly reminder that Pandoc + Markdown is all you need to make nice looking documents

everything else is bloat

Finally getting some polish done on Clippable, better navigation and _much_ better open-graph support.

The next big optimizations I want done is a reduction of file I/O and definitely proper media controls on videos(since I've never messed with those).

Still nice to see things come together though, I feel like I'm slowly getting permanently better at web stuff which is nice.

Anyway (not to shill muh site) but here's my own Clippable server if you're curious as to what this post is even about


clips.shockrah.xyz

So I made a streamable clone(although officially its a clip sharing site)

The difference is: you can self host this one! I'm figurin out packaging right now however I wanted to post about it in case anyone realized they had a need for something like this or not.

Here's the landing page:

shockrah.gitlab.io/clippable/

rocket.rs is literally so close to being the perfect replacement for hyper in Freechat I can almost taste it.

>clean asynchronous route handler
>simple database pooling scheme
>route guards for simple authentication layer implementation

Once the asynchronous database pools are introduced I'm going to have a field day replacing hyper

Not saying its a bad framework but more that im bad at picking frameworks

am i falling for the typescript meme?
yes
do i really care?
no typescript is kinda comfy actually. Having type annotations that aren't literally comments is really nice, being able to enforce some level of strictness/standard in code is also nice when dealing with working with other people

Lately I found myself having to verify that my open graph tags are actually available before pushing to the live server.
I've pushed up one to many commits where an image path has a typo and sites can generate an embed properly because of this.
To remedy this issue I've created a simple script that let's you test opengraph tags locally.

It's actually incredible how I've struggled to find a script that does literally this anywhere else

gitlab.com/shockrah/shockrah-c

Just reached 1000 commits in Freechat which feels kinda weird when I read that number. Not because its signficant but because this is the longest standnig personal project I've actively maintained for two years now. Kinda proud of that fact, feels like its a real marker that I know how to dedicate to something.

Technical status of project:
Most of those are just working on the backend which at this point just needs a better permissions system for for websocket notifications and voice over IP. The permissions are next and once those are figured out all the required framework will exist for VOIP capabilites. After that I can consider the backend "feature complete".

Then I just need a frontend to actually use this stuff but I know nothing about UI/UX :thisisfine:
Gotta find some people to help me with that part

Shameless plugged links:
Project repo: gitlab.com/shockrah/freechat
API Reference: freechat.shockrah.xyz/

Time to rant about my career life:
>graduate with bachelors right as corona hits
>get internship (very) recently
>all I do is watch udemy videos
>sometimes get assigned a project to do but they're small day long projects
>current project is to install jira and jenkins on a vm

To say that I'm disappointed is a massive understatement.
The """work""" I do is easy enough and it's a paycheck but I'd be lying if I said I don't feel like I'm being wasted here; I can only I get something that I can't do while literally sleeping.

idk why I never thought of this but apparently you can straight up `cat` files to a physical printer
If your file only contains text can literally just do
`cat myfile.txt | netcat <printer-ip> 9100`
At least with my printer here it worked
I also tried with a pdf file but it never seemed to print hmmmm

No that I'm particularly interested in doing that but at least now I can literally printout the man pages to have a nifty little physical man pages book

I think I've found my new favorite analogy to explain the importance in balancing bit-rate and resolution to people that want to stream:

Bit-rate := butter
Resolution: bread/toast

Too much bread(resolution), not enough butter(bit-rate)? Then your image quality is trashed.

Too much butter(bit-rate), not enough bread(resolution)? Great image quality but after a point it's wasted due to the resolution.

As it turns out mpv can actually take commands remotely via `input-ipc-server`

Why would you ever want to? If you're like me you have mpv running in the background for animated backgrounds; sometimes i use music videos as my background.
With that flag above I can have another script I call from dmenu which pauses/resumes the background video

Also debian apparantly has a package for sending data to a socket on the commandline which is socat(its pretty neat)

Between the electron and tui programming it feels so much better to work on a tui program

>easier testing
>naturally lightweight
>easily debug gable

Sometimes I wonder why I bother writing an electron client for software that really only caters to FOSS/privacy people

As it turns out multi-threaded asynchronous web servers are much harder to write than I expected in Rust. Haven't had an issue with the borrow checker/lifetimes until I realized that passing shared memory is probably not the way to go for what I'm doing.

At least in my case(RTC server) I realize it makes more sense to not rely on using threads to take incoming message to broadcast on one thread and broadcast on another thread. Instead it makes more sense to have a special data structure that actually organizes connections and manages its own data.

>being organized makes things easier
who would have thought

>Remove mysql driver depenancy from project
>100 less packages get pulled in

Literally how is the mysql rust driver so bloated I just don't get it

I though tokio(a whole asynchronous runtime) would have been heavier but nope its mysql

Never though I would get to the point of implementing an an authenticated RTC server with Freechat but here I am...

Soon I'll have text message listening capabilities and as soon as that is done I can move towards implementing VOIP.

Shilling below:

Freechat is a chat platform I've been working on in order to replace platforms like Discord/Slack. It's still a work in progres and there's somethings I need to retroactively fix but at least the server portion is usable. I'm adding RTC on various channels as an optional feature but polling for recent messages also works. The biggest challenge right now is coming up with an application that regular people can use(which I'm also working on).

If a FOSS Discord/Slack alternative sounds interesting check the gitlab project linked at the bottom.

Finally I've been building the backend with the intention that the API be easy to use so anyone can make their own client; heck I used to and sometimes still test the API with just a bash script!

API Reference: freechat.shockrah.xyz/

Gitlab Repository: gitlab.com/shockrah/freechat

Show older
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.