home.social
  1. 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 tilde.club/~petbrain/codebase/

    Let #catnip #party begin!

  2. Yay! #myaw tests pass all ok!

    It took three months to get here. Now #petway has full-fledged interfaces, multiple inheritance with #C3 linearization, and better algorithm to track and break circular references. No #gc and never will be!

    #programming

  3. 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

  4. 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?

    #programming #petlang

  5. 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.

  6. Ok, revised my 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 , my current based distro is breaking into pieces.

    Too many todos. Techical debt increases. I'm becoming a hacker, yuck! Oh, no, no, no, no...

  7. 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.

  8. = 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.

  9. Logging visitors using JavaScript is working. Will write a note after walkies.

  10. Yes, sometimes I'm like a Donkey. A note about nothing:

    tilde.club/~petbrain/tildeclub-cgi-app-with-local-storage.html

  11. 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 in particular and in general (well, occasionally), why not ? 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

  12. Just thought if I'll ever write my pet language it would be but someone has taken the name github.com/inoxlang/inox
    Sadly, it's in

  13. They are broadening my horizons. Found on their stats page. I might heard about this but successfully forgot. If really heard ever.

  14. 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.

  15. As the next step at I wondered if per-user HTTP logs are available.

    I never hosted users so I had to look into 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.

  16. 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 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.

  17. Wow, wow, wow!

    They let me in!

    Being busy doing shit for hire I overlooked this community.

    Life gets better.

  18. = 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.

  19. It's been a long time since I visited 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 , 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.

  20. = 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.

  21. = 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 solution

    2. 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.

  22. That's amazing! The very first announcement was about position on Threads.

    I like it.

    Diving deeper, should not exist at all. I always felt the future is curation and the article theverge.com/press-room/617654 I recently stumbled across is in line with my feeling. At least one person among 8B thinks the same way.

    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.