petbrain
-
Yay! Pet's static site generator now includes codebase, so #farewell #github. No more #git in pet's business, only beauty and happiness in the #bright #future!.
Next #petway release is out. For #pets only, of course. #humans, back off! Interfaces was the most tricky part and #pet even tried to write some notes on it in #humanspeak https://tilde.club/~petbrain/codebase/petway/latest/doc/interfaces.md
-
C3 linearization algorithm #petlang will adopt for interfaces. Initially in #petway
https://dl.acm.org/doi/pdf/10.1145/236337.236343
Pet is unable to comprehend #dylan syntax, here's #python way: https://docs.python.org/3/howto/mro.html
-
Yes, it has to be #golang. Simply because most humans answer golang if you ask them which one is faster, golang or #python. Actually, a newcomer (like me, for example) can easily write 10x slower program in #C than in python, they all are seeded a thought that compiled languages produce faster programs.
So, golang is a better candidate for reference apps to compare #petlang with.
-
Meow!
Mixins drew pet into huge refactoring. Multiple inheritance was never easy.
Interfaces that were vague now come into the shape. Everything is based on interfaces now.
Pet cannot see the end of this refactoring so it has to revise priorities:
1. Write pet apps in a temporary language for now.
2. Finish #petux
3. Finish refactoring.(1) is a difficult choice. Pet was about to get back to #python, but does not want to become stupid again. #golang maybe?
-
Although upcoming weekend is quite busy, here's something more to do.
They say the best material for the enclosure is marble but I have only these ceramic offcuts.
-
Ok, revised my #tildeclub page at last. Moved the site into error space entirely.
There seems to be a bug in JSON serialization, need to fix. Later.
Need to revise PetWay using Task as a core concept. All those return_if_error and expect_ok suck.
But that's only after I finish my another essential project.
Need to start work on #petux, my current #devuan based distro is breaking into pieces.
Too many todos. Techical debt increases. I'm becoming a hacker, yuck! Oh, no, no, no, no...
-
Declarations of incomplete structures makes me think I observe symptoms of paranoia.
This bloomed in C++: public, private, protected. They gave nothing but the necessity of friend. Yuck.
Back to C, the only case where incomplete declarations make sense is target-specific implementations.
-
= Days of C programmer =
Analyzing segfaults.
1. Unfinished init and fini for a type derived from Struct: forgot to call super.
How to avoid: do not call super at all. As long as it is always mandatory, call these functions from constructor and destructor.
2. Simplified checking for success status and awkward checking the result of Status subtype constructor. Easy to make mistakes which lead to accessing uninitialized data.
How to avoid: revise the approach.
-
Logging visitors using JavaScript is working. Will write a note after walkies.
-
Yes, sometimes I'm like a Donkey. A note about nothing:
tilde.club/~petbrain/tildeclub-cgi-app-with-local-storage.html
-
Just thought: isn't it time to give my setup a name and make it a distro?
Given that I'm a pet who uses #linux in particular and #unix in general (well, #FreeBSD occasionally), why not #petux? That could stand for Pet Unix or Pet Tux.
I went to see if anyone has taken this name already. It seems to be available.
I found that in Azerbaijan petux means a prison fag and this word is borrowed from Russian jargon. Normally it means a cock (bird).
Well, tux is a bird too.
Reserved a repo on gh
-
They are broadening my horizons. Found #twtxt on their stats page. I might heard about this but successfully forgot. If really heard ever.
-
Yet another open question is their ability to handle shitstorms from fedi, but I believe this is quite feasible with their resources.
They'll warn me, I think.
-
As the next step at #tildeclub I wondered if per-user HTTP logs are available.
I never hosted users so I had to look into #nginx docs. Well, per-user logging seems to be feasible but looks costly because if variables are used in the log path, the file is opened and closed for each write.
Their access log is HUGE and rotation seems to take place monthly.
Well, if no one needed their logs so far I'll do without too. But I'm curious if that possible.
-
Logged in and looked around. I love my new home, thanks the master. The instance, if ordered from DO or AWS must cost too much.
Someone is running #python there, I'd cut their hands for that if I were the host. Let's pretend I did not notice.
It's time to learn how to communicate and make a web page.
-
Wow, wow, wow!
They let me in!
Being busy doing shit for hire I overlooked this community.
Life gets better.
-
= Days of C programmer =
Wasted two days to understand that my initial approach to define interfaces in C was absolutely correct. All others led to cumbersome structures.
But I did some mistakes in the implementation.
-
It's been a long time since I visited #mullvadbrowser download page. I was excited they added debian repository at last, but...
Copy-pasting did not work for me. $(lsb_release -cs) expands to "excalibur ceres" in my case. That's obviously wrong.
Replaced the above with "bookworm". Kinda #frankendevuan, but that works at least.
Now it's time to get rid of all local installations and use system-wide one. Just curious how to move user preferences. Later.
-
= Days of C programmer =
Implementing super is not a trivial task as it turned out. Static object oriented languages resolve overloaded methods at semantic analysis stage, but all I have is pure C which encourages solving complex problems with simplicity.
The solution should be simple to use, free of metaprogramming, and fast.
That's too difficult for limited mental resources but very interesting.
-
= Days of C programmer =
Problem: memory corruption.
Why happened:
1. inability to express desired structure in terms of C
1.1 no variants for generic pointer except void*
1.2 use of pointer arithmetic as a solution2. Overlooked asterisk in sizeof
Solution: define pointer type with more noticeable Ptr suffix. This also helps to avoid problems with missing asterisks in variable declarations.
-
That's amazing! The very first announcement was about position on Threads.
I like it.
Diving deeper, #moderation should not exist at all. I always felt the future is curation and the article https://www.theverge.com/press-room/617654/internet-community-future-research I recently stumbled across is in line with my feeling. At least one person among 8B thinks the same way.
#imao moderation is a consequence of client-server model. Humans were not designed to produce anything but hierarchies. The next turn of evolution is coming. I hope.