Diary · Page 14

October 12, 2024

Went to supermarket and bought a ton of tasty treats in anticipation of Yume 2kki today.

1000018870.jpg

Ever since I started going to gym/pool, I’m not really productive anymore… Well it also mostly coincided with me being done with libraries, but also I generally feel like I don’t have time/energy to do things for some reason. I’ve slept for 3.5 hours during day time again, and now I feel like it’s too late to be productive again… So I keep postponing my uni assignments. I’ve been so tired all the time that I even missed writing diary entries multiple times in past week, and had to write them for a day before multiple times now, even though I was perfectly writing them every day before.

Quite a long Yume 2kki session today. Met some random person again and explored random worlds.

1000018873.png

1000018877.png

1000018878.png

1000018876.png

1000018875.png

You can take the present for some interaction only by killing this creature, but I just couldn’t… especially given that it starts looking at you and going back slowly when you pick up the chainsaw…

Tags: #yume2kki

October 11, 2024

Tried idea with declarative routes a bit more but I realized that it’d only work with ETag disabled in a lot of cases, and it wouldn’t work with if methods are patched, which you can’t really check, so unfortunately it looks like this feature can’t be done. 😔

Brother came over and we started going to the gym, but first went to buy shoes. Saw a cool liminal room:

1000018846.jpg

Today we only went to pool, as we had a free training from a trainer. This was more intense than I expected, and after a hour of training we were quite tired, and decided to go somewhere to eat. There was some place near gym that we were a bit interested in, but we kept being undecideful whether we wanted to go there or not, until we finally decided that we want, but when we went inside it was apparently full. Weirldy that place was serving kinda specific food, and at the same time it was big, so we were surprised that it was actually full.

Went to some other random place instead and got steaks and other stuff:

1000018856.jpg

1000018855.jpg

1000018853.jpg

1000018852.jpg

My brother is always unlucky with what he orders, for some reason his orders are almost always less tasty than mine. We got 2 different steak types and my steak was significantly better.

October 10, 2024

So painfully sunny today, I once again can’t do anything but rot in bed. I really need better window blinds…

I fell asleep while waiting for sun to go away, and woke up at 9. I’m being quite lazy lately, I really need to start doing my uni assignments but I don’t want to… While reading uWS examples I’ve noticed that it’s possible to create declarative routes, which don’t need to call into JS code at all! So I’ve got an idea that if route callback is simple enough it’s possible to create a declarative route from it, and started coding it at night. This is very difficult. I have to use JS tokenizer and parser, which is really complex.

███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████

Tags: #code

October 9, 2024: Cassette stand

We were traveling through the USA when we stopped at a strange, deserted gas station. It had a weird minigame: after paying for gas, you earned a «gift point» and could throw a disk at a cassette stand. Whatever cassette you hit, you could take with yourself. The person working there warned us only to play if we had gift points.

After I paid for gas, I gave it a try and ended up with some unremarkable cassette I didn’t pay much attention to. Then, for some reason, my friend decided to throw a disk too, even though he hadn’t bought any gas.

As he threw it, I noticed that the spot he was aiming for held these strange, empty-gray cassettes. I yelled for him to stop, but it was too late. As the disk sailed toward the stand and my friend realized something was wrong, he closed his eyes, trying to not see what he had hit.

The moment the disk struck one of the gray cassettes, he was violently pulled toward the stand with a huge force. In the impact, it seemed like he glimpsed what cassette he had gotten, but before I could reach him, he simply vanished — gone without a trace.

I was hit with a sudden wave of anxiety — and then I woke up. I was not able to sleep for a while after, despite only sleeping for 3 hours.

It’s really weird because before this, it was a pretty long and uneventful dream and I had been travelling with him for a while in it.


Law got accepted!!! Now just needs to be signed by president!

Haven’t really done anything productive today. Went to gym and finally went to pool for the first time. When going to gym I realized that my intercostal neuralgia is almost definitely caused by physical activity / muscle growth in chest. I was suspecting this years ago, and now when I didn’t have any pain for months and suddenly having it exactly when started going to gym just proves it. I told this my brother any finally I signed up to get medical check-up at hospital.

1000018802.jpg

Got really tired after gym and pool. Read SCP-8980, and just… wow. This is the most fucked up thing I’ve read in SCP so far. And I’ve never even seen content warnings in SCP before, it was this bad. But the story and writing itself is amazing.

October 8, 2024

Spent the whole day rotting in bed. ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████


October 7, 2024

Didn’t do anything in the first half of the day. Went to gym today, and got to took a better look at the fields:

1000018750.jpg

1000018752.jpg

I really like it when dense city suddenly turns into fields without any suburbs.

We got too tired after gym to go to the pool…

██████████████████████████████████████████████████████████████████████████████████████████████████████████

█████████████████████████████████████████████████████████████████████████████████████

Went home and fell asleep until 1:30 AM. ██████████████████████████████████████████████████████████

October 6, 2024

██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████

███████████████████████████████████████████████████████████████████████████████████████████

Just chilled at home, not doing much. Sadly it stopped raining when I finally woke up (as always), so I didn’t get to sit in cozy place.

1000018727.jpg

1000018732.jpg

1000018735.jpg


Someone reported a bug in Nekoweb with git repo creation. For some reason pre-receive hook that I’ve made to prevent symlinks from being pushed was rejecting even repos with simple files. I started debugging it, and was trying to get the log from command by saving it to file, to check what file was causing it to fail, but for some reason, my file was simply never being created. So for some reason pre-receive hook just failed without running any code inside, yet if I removed it, everything was working fine again. It was extremely confusing, and I tried so many random things but just couldn’t make sense of why this is happening.

When I opened pre-receive file in nano, I’ve noticed that it said «DOS mode» for 1 second on open, and got curious what exactly that meant, and it just meant that file used CRLF newlines. I converted file to use LF… and it worked… After so many hours it was caused by this dumb thing that didn’t even require changing any code at all. And I couldn’t find the bug in git because it ignores newlines.

You might wanna say that git automatically converts files to use LF, and you’d be right. But I actually had to disable this like half a year ago when I added Git server to Nekoweb, because for some reason it caused issues with files in users repos.


As always, more Yume 2kki. Went on another pretty long expedition to Dragon Statue World.

Found another cozy sewers world:

1000018739.png

There’s a secret room in it, with very beautiful music and a humble inhabitant in there:

1000018740.png

Most notable discovery was a huge shortcut that unlocks between Library and Memory Garden, and it has this, extremely cozy room:

image (17).png

I love hot water pipes and warm orange color lights. What’s kinda crazy is that I had sort of revelation yesterday, and tweeted this:

1000018742.png

Literally predicted what I would find in Yume 2kki.

List of my favorite places so far:

  1. Sewers (Marijuana Goddess > Dark Room > Sewers)
  2. Secret Society (i forgor)
  3. Memory Garden (Library > Memory Garden)
  4. Rainy Apartments
  5. Pillar in Amoeba Woods (Keyboard > Amoeba Woods)
  6. Secret Room in Silent Sewers
  7. Fairy Tale Woods (i forgor)
  8. Data Stream (i forgor)

October 5, 2024

Body still hurts! Did I train this well? I thought I was slacking off.

Dad called me today and asked me if I want to visit them and I agreed. It’s been more than a month since my last time.

He picked me up and on the way we went to supermarket and bought tasty treats. █████████████████████████████████

███████████████████████████████████████████████████ I’ve had some really nice chats with dad. ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████

Dad keeps working, even though he’s kinda suffering from some health issues. We want him to go get checked but he wants to finish some work before doing it, and he’ll need to leave home for about 10 days for it, and after that hopefully he’ll be able to do it.

Fixed some bugs in uExpress and uWS and posted about uWS publicly. Switched Nekoweb to use uWS and all of my other sites and services. YeahServer was on average using 4% CPU and it went down to 1.5% after switch to uExpress, and that’s actually super cool.

Played Yume 2kki, we went through a pretty long expedition, which required a pretty clever 'hack’. The path required Drum to pass, but at the same time required you to not have it. Apparently if you make Drum your Favorite effect, you can equip it even after you remove it in trophy room. This allowed us to pass and get to the destination - Floating Brain World. It has another puzzle that requires some weird shenanigans, and that would unlock way to apparently the deepest world of Yume 2kki. But we stopped here as it’d require quite a lot of time and we got tired already.

Tags: #out #yume2kki

October 4, 2024

Wow, my body actually hurts after gym. I thought at gym that I didn’t really do that much so nothing will hurt, but nope! That’s a good sign.

Continued coding UltimateWS today. Well, I finished it. To implement createWebSocketStream I literally copy-pasted file from ws repo and it worked. That’s even more satisfying than when external things that rely on your library start to work, since usually internal implementation is very different.

Since both UltimateExpress and UltimateWS are done, I was finally able to migrate my website fully to use these libraries! It was annoying, boring and tedious. It’s genuinely crazy how large and complex my website is, and it has such a ton of actual tech debt. In a fucking personal website.

And what’s crazy is that uWS worked almost off first try with my chat and Grillbys. The only thing that needed to be fixed is a check for isBuffer. Migrating to uExpress revealed another bug in it, with trailing slashes, and it has been also successfully squashed.

Now I’m finally free from coding these things… probably… there’s almost definitely gonna be a lot of bugs I’ll need to fix, but it’s better than having to actively code it. I’ll continue switching my projects to my libraries.

It’s really cool to think that you’re actually using your own HTTP and WS servers. Well, ofc the real magic is in uWS, but still, it’s a lot of work to make it all work nicely.

Tags: #code

October 3, 2024

We finally went to gym, for real this time!

Before going inside, I looked around the parking lot and realized that gym is at the edge of the city. Dense city simply ends and suddenly it’s just endless fields… Which I find so dear and which keep calling me to come to them.

█████████████████████████████████████████████████████████████████████████████████████

But I had to resist and we had to finally get inside. We got a free training with personal trainer for the first visit, so he showed us around and told us about some gym things and showed us how to use them. In general, I wanted to go to gym simply because I’m very sedantary and not super fit. I’m not really interested in big muscles and stuff, I just want to start moving more and burn some belly fat.

After doing some muscle training with trainer, we went on a treadmill. When you hold onto it’s iron things, it measures your heartbeat and it was already 130bpm for me, while 90bpm for my brother, which made me quite worried. During most intense running it went up to 170bpm, even though I wasn’t even running 🫣

I googled what’s a good heart rate during running and it said that 170 bpm is already upper limit and that’s usually during running. I think this just indicates how terribly sedantary I am if not even running made my heart rate so high, which is actually scary. Hopefully it’ll improve over time.

After we were done with gym I got another look at the fields and the road going out from city started glowing beautifully.

1000018634.jpg

1000018635.jpg

Brother started driving me home but proposed to maybe go somewhere to eat, but he needed to pick up his girlfriend. He persuaded me to have a dinner with them. It was a tiny bit awkward, since it’s the largest amount of time I ever spent with her around. But the food was nice. We ordered a pizza for everyone (and it was one of the best, or maybe the best pizza I ever had), I got tom yang, they got carbonara and bolognese.

1000018641.jpg

1000018642.jpg

1000018649.jpg

After that I got driven home, and coded a ton of UltimateWS. It’s actually like 65% done now.

October 2, 2024

It was sunny but at the same cold today. I had my first university online class today, but it was quite chill. After class I decided to finally socialize and went to some student event thingy. As I came there I got a color that split me into one of three teams. We played a bunch of team games, and I left a little early because brother came to pick me to go to gym. In general, it was mid… Idk, it’s not like I had a terrible time there, but at same time I felt like I’m just wasting my time playing kinda stupid games instead of being productive, and so many people around was tiring.

When my brother came to pick me up, quite late (at 8 PM), I told him that I was kinda confused because he said we wouldn’t go to gym but apparently he mistype and wanted to only say that about pool. But regardless, since he came he drove there. And then I realized I don’t have a bracelet that allows to go through… And coming back home to get it would take too long for it to worth to go there again. This is like third time we weren’t able to go there somehow. Hopefully next time will be finally successful lol. ████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ Felt quite disappointing.

Tags: #out

October 1, 2024

Went outside to withdraw money. Stood outside for a while to enjoy the rain, and met tailless cat again. Might be a good sign.

1000018579.jpg

I figured out how to optimize IPs! Now I only read IP when it’s required and if any request ever reads it after response was sent I start reading it always. This way only 1 request at most would be lost. To minimize that from happening I also made it always read IP for first 100 requests.

Before:

1000018586.png

After:

1000018587.png

Now the difference is really small, HyperExpress is genuinely basically useless now, lol.

Brother came over and we finally decided to go to gym… but it was crowded and shitty again… so we decided to go to more expensive gym afterall, because we both got another discount, but as we came there again it was again kinda scam shit with tiny text saying it cant be used for what we wanted lol. But we still had previous discount and we decided to go with this one after all… It’s just like 10 times better and also had a pool. They took so long at registering us that it was already too late to go actually do anything so we ate and went home. I hope it won’t be a waste of money.

At the end of the day found another optimization opportunity of not creating Socket needlessly, which added another +5k.

September 30, 2024

I have no idea what did I do for the first half of the day.

Played more Yume 2kki. The slide is so fun :3

1000018573.gif

Continued optimizing uExpress. Apparently tseep is quite slow on initialization, so I switched Socket to use built-in event emitter, since there’s a ton of these being created. For long-running stuff it continues to be used. About 2k improvement.

Then I tried removing random parts from code to see for possible slow things and noticed that reading IP is literally 15k req/sec slower! I have no idea why, but res.getRemoteAddressAsText is super slow. I switched it to res.getRemoteAddress and made parsing it lazy and that improved speed by 5k. I really, really wanted to get that last 10k by somehow lazily reading IP but it seems quite literally impossible sadly.

Before:

1000018571.png

After:

1000018572.png

As I went to bed I got email that tests failed, and apparently they just hanged for 45 minutes, but I already published it to npm… Had to make Shy fix it for me while I’m in bed. Thankfully he did it and now I can rest.

September 29, 2024

Woke up and UltimateExpress got some more attention while I was asleep. Someone asked me to add a table with comparison to other frameworks, and gave me link to bun-http-framework-benchmark.

I started setting it up to add UExpress, and noticed that in pull requests there was already PR to add it! But… it had ETag enabled and needlessly set middleware to all routes… With that awful code config, UExpress was performing absolutely terrible, so I made a comment telling what to change.

But performance was still quite bad even with these changes, so I started to look what could be improved. Benchmark itself consists of 3 tests:

  • ping (just a simple response)
  • params + query
  • post with json body

I’ve decided to check Elysia.js codefor possible speed improvements I could do, and apparently they use fast-queryparser library. Unfortunately, it doesn’t support array queries like qs does, but I could work around that by checking if string includes [ or . characters, and speed increased by a considerable amount.

Then I started to look at what could be done with params, and I realized that routes with params can actually be optimized the same way other routes are! But ofc the problem here wasn’t in routing itself, but in parsing of params. At the moment it was using regex for that. I implemented optimization of param routes, and with that I could use uWS native param parser, so I could skip parsing routes with params. Another quite large speed improvement.

After these changes, params+query test basically matched speed of ping test, meaning there’s barely any work being done anymore. But JSON test was considerably slower than other ones, and I realized that I’m using Express’s body-parser library for that, which uses Stream to read content of body. Instead of doing that, I implemented my own JSON parsing middleware that reads directly from uWS (unless reading already started, which can happen with async middlewares). And that increased speed from 30k to 40k req/sec for JSON test!

I had to make these optimizations quickly, before PR was merged. Other body parsing middlewares can be improved the same way too, so I’ll work on that.

Tomorrow, university session starts. They became quite lazy this year, with no classes at all scheduled for this session… Dean just told me to email professors myself.

… Now it’s 3 AM and I finished coding other middlewares, and all benefitted from the rewrite. There has been a bug ever since I switched Nekoweb to uExpress that made assets not update. For some reason they got cached in Cloudflare. I finally figured out why it was happening, apparently Express does support If-Modified-Since, while I didn’t support it properly. My version was not sending headers, including ETag and more importantly Cache-Control, which made Cloudflare default to normal cache time. Also that bad version got merged, so I quickly made a PR fixing their code and it got merged too, phew!

Now it’s all fixed, and everything is more performant. I’m satisfied.

Tags: #code

September 28, 2024

Started coding UltimateWS today. I was wondering if I should first finish UltimateWS before publicly publishing UltimateExpress, but I’ve decided that it’d be kinda weird to make 2 announcements at once, so today I actually published Ultimate Express. Honestly, I expected more reaction and interest. While I did get about 50 stars, I don’t think it’s a very good result and I feel a bit disappointed about it. Hopefully it’ll grow more eventually.

It’s been a nice rainy day, all day. I’ve been enjoying rain sounds for a while, and decided to go outside and feel rain on myself. I got winter clothes and went outside, and stood in the rain for a while. I love the feeling of being protected from rain by clothes. If I had a comfortable spot, I would probably just sit down and spend hours just sitting under rain, while hiding in my clothes fully. Clothes that fully cover me and allow me to get inside them are so cozy…

1000018526.jpg

1 11 12 13 [14] 15 16 17 18