June 2026
Wandering around pet passed bluesky many times without noticing. Mainly because someone told pet they simply collected email addresses without doing actual registration. Pet supposes they tried to raise funds by selling collected emails to spammers.
Anyway, as pet sees more and more bluesky mentions on fediverse, pet gave it a try. Guess what? It did not work! Only tons of CORS-related messages in the console log.
Pet is not surprised.
You never hire good developers with such funding.
Pet wonders why human normies are so fond of Instagram.
Pet would get it if they were perverts like Fediverse users.
No. They are normies, but from pet's perspective the Instagram is the source of child erotic and even porno.
Because every picture of pet is a child porno because on every pic:
- pets are not dressed (fur does not count)
- pets are always underage (far, far below 18)
They, humans, even not ashamed to post nude kitties.
Instagram should be destroyed.
Every line of code committed by Meta and all its subsidiaries to open source projects should be considered pet abuse and therefore reverted.
All humans working or worked for Meta and all its subsidiaries are bastards and must be exterminated.
All humans used Meta products should wash off that shame with ten years of correctional labor.
Pet knows what to do!
Tunnels. That won't be open source except the basic ip-tcp and ip-udp. You know why: 5% of humans can write that by themselves, the rest 95% are bastards and do not deserve it.
Licking balls
0.4.1 release of pet codebase. Not including pw-curl, pet is too busy at the moment
PetWay includes CGI helpers pet used for its contact page. Pet will show the code someday, but the code without an article is pretty useless and pet is too busy to write an article on CGI in C. And lazy.
PetMachine is the work in progress, it's on hold for now.
Something is happening with pet's favorite text editor. When internet connection goes down, it hangs momentarily.
They after pet, bastard humans!
Pet needs a clean system.
When pet was checking internet connection it opened some Fosdem video. Why Fosdem? Pet does not know. It just needed something to check youtube works without pops and clicks. And this video in the background made pet really sad. Who are all those humans? They are fucking telling about their technological achievements while pet is trying to connect one world to another like it's 1984 outside. All they with their fucking businesses fed those corpos that in turn fed their governments. It does not actually matter who built those walls. They all did.
Fuck humans. 95% of them to be precise who are true bastards.
Pet did it and made a few humans happy. The setup is quite interesting:
- The traffic is split into domestic and international. The former goes directly to the network interface, the latter goes to a container. They use network namespaces only, not fully isolated containers.
- International traffic goes from shit-tier country via tunnel to a crap-tier country.
- The tunnel originates from mobile device (LTE modem or smartphone). First, it is routed via their home which has landline connection. Which means the mobile traffic does not leave their hometown on air. It goes by landline to an entry point in a foreign country, which routes it to an exit point.
One thing that troubles pet is tunnels. They block it regularily and pet needs to work out something. Of course, there's a plenty of existing solutions but their problem is they are all known.
Pet freaked out a few humans, asking for setting up an entry point, and only one agreed to help realizing that beloved country may easily roll down to shit.
Thank you, brave true human!
May 2026
Pet has to put PetWay on hold and help kitties from shit-tier countries to break free.
Pet wanted to implement tasks in the next PetWay release, but given the amount of changes and bugfixes it will be an interim release. Yet on hold. Poor kitties first.
Pet stepped into its own crap again:
char* s = "Lorem ipsum dolor sit amet";
PwValue a = PW_STATIC_STRING(s);
PwValue b = PwStaticString(s);a is not equal to b, it's just eight chars long: "Lorem ip". On 32-bit systems
it would be four chars.
That's because PW_STATIC_STRING uses sizeof(initializer).
Merging both macros and use strlen for literal strings is silly too.
Pet needed to check is the initializer is a string literal, and here's an elegant solution:
.char_ptr = initializer "\0"That won't work for pointers and that's exactly what pet needed.
Actually, pet placed this check into sizeof:
.integral_length = sizeof(__VA_ARGS__ "\0") - 2, \
Pet stepped into CGI again. It's sticky and stinky but it gave PetWay lots of improvements.
Transactions, that's what humans need to learn. Given that that's they who invented that.
Pet is a moron sometimes (most of, actually).
Probably broke shring for a couple days.
Meow.
How shitty that golang is.
It does not like
process_file(
filename,
template,
true
)It needs exactly
process_file(
filename,
template,
true)Yay, pet finished revising (again) Status at last.
Exception kind of Status sucked as a concept because the logic was weird. Pet separated it into Exception type, a subtype of Struct with Status as a mixin.
Updated MYAW passed tests.
Pet does not like this solution and considers it temporary. But it's okay for now because it's stable and more or less clear. It will be revised many times, probably.
Now, pet gets back to exceptions handling in PetMachine.
April 2026
Pet never liked RaspberryPi because of shitty hardware. Of course its pioneer role can't be diminished, but other teams quickly outperformed it and left far behind.
Pet would never get RPi intentionally, but it was donated a few and could not refuse.
Today pet tried to bring hostapd up on a RPi4. Pet has rich experience with cheap wifi, only a few work as access point. The only board where AP was not supported at all was OrangePi Zero. Pet thinks AllWInner forced them to buy that 819 crap along with H3 chips, that's the only explanation. And that was their only fuckup. The next one, Orange PI R1 had a decent wifi based on Realtek chip. Not mentioning modern boards where wifi works like a charm.
Well, what pet has got on RPi4? Here's what:
hostapd[1500]: Failed to set beacon parameters
wlan0: Could not connect to kernel driver
Interface initialization failed
wlan0: interface state COUNTRY_UPDATE->DISABLED
wlan0: AP-DISABLED
wlan0: Unable to setup interface.
wlan0: interface state DISABLED->DISABLED
wlan0: AP-DISABLED
wlan0: CTRL-EVENT-TERMINATING
hostapd_free_hapd_data: Interface wlan0 wasn't startedWTF? Pet glanced at search results and found a few people fixed that changing channel 11 to 6. Well, pet used channel 11 too and tried the same.
That did not help.
Okay, what's about rfkill?
ID TYPE DEVICE SOFT HARD
0 bluetooth hci0 blocked unblocked
1 wlan phy0 blocked unblockedArrgh, meow! Okay,
rfkill unblock wlanAnd it worked! Even with channel 11.
But where to put this rfkill in this fucking systemd? Yes, pet should have moved to Void Linux
but there's a lot of other urgent things to do besides licking balls which is mandatory.
Okay, let's customize the unit. First, copy it:
cp /lib/systemd/system/hostapd.service /etc/systemd/system/Open it, and... Fuck! What the fuck?
Type=forking
ExecStart=/usr/sbin/hostapd -B -P /run/hostapd.pid $DAEMON_OPTS ${DAEMON_CONF}Those Raspbian humans are in love with that fucking systemd for more than a decade and they still do not know in which hole they should insert their cocks?
Let's fix that:
Type=simple
ExecStart=/usr/sbin/hostapd $DAEMON_OPTS ${DAEMON_CONF}And add what we need:
ExecStartPre=-/usr/sbin/rfkill unblock wlanThat's all, pets. Guess you know how to re-enable the unit. Reboot safely.
Pet is working on synchronization primitives.
Tasks are such primitives too: they are awaitable.
The implementation is a bit hacky at the moment, but Task and ChldTasks primitives can do without memory allocation at all.
Web rings are cool, but the way they are managed is devastating.
From pet's perspective this should be like this:
- the applicant learns URL format for prev/next links
- the applicant adds links on their site
- the applicant sends its application to webring's master
- the master checks links and confirms. Or does not.
This way a user would always be able to make full circle.
Transactions, that's what humans need to learn. Given that that's they who invented that.
Revised Status type. Added kind field that clearly distinguishes simple statuses from exceptions.
Why not using subtypes?
Status type is special. When used in its simplest form (BaseError and SystemError kinds) it should do without memory allocation.
Meantime Status is a subype of Struct but memory is allocated only if its kind is Exception.
Subtyping is possible. Actually, MYAW does this already. Revised code should make it simpler, pet hopes.
Statuses of Exception kind can be chained. This is necessary for PetLang.
Pet gets back to PetMachine.
It's like a lizard brain that exposes human's nature, the remains of human brain make pet write smelly code without a reason.
It's damn hard to keep myself in paws and do things right.
Pet is in process of revising PetWay Status type. It's an interesting type, and pet almost forgot all its details. That's bad. Things must be simple. Pet's neural network will be improved only in the next life if pet will be in luck.
Okay, pet moved to Claws-Mail.
Pet went through all frustrations and configuration options and finally reconciled itself with the humans reality.
Pet managed to make it from fucking lame down to a bit lame, as all good free projects. After all, that's just a matter of taste.
Finally, RSS is a huge argument:
- Claws Mail: 192M
- Thunderbird: 564M
How comes thunderbird stuck and pet missed a few emails?
Pet is trying claws-mail.
Fucking gmail with its oauth. Nothing works. -- pet had to add self to users ot that oauth app. Fucking idiots. Including pet who's using crap from fucking idiots.
Humans drag pet to caves.
Fuck humans!
Basically, pet needs to setup redirect and forget about google for good.
Okay, selfhosting email again. Previous attempt did not work because... because... pet does not remember. Probably because of inability to setup a PTR record on a shitty VPS hosting. And thanks to one idiot who enabled PTR checking by default in opensmtpd.
Humans used to say selfhosted email works okay only with other selfhosted servers.
Fuck, no!
Even gmail is not this restrictive. Yes, messages fall to spam folder but they aren't bounced.
Email is dead, actually. For pet, at least.
Pet is happy to know via https://baccyflap.com/ that Android will become a locked-down platform in 130 days.
Pet always wanted to dive into mobile development but it was too busy (with you know what) or, honestly, lazy.
Maybe that's good? Why fight for crap? All pet needs is an LTE modem attached to some Nano/Orange Pi Zero and a WiFi terminal based on something pet is able to reflash.
Humans go back to caves!
Pet is working on PetMachine.
Two stacks, as in Forth, multiple tasks, the logic is pretty simple.
But the major difference is hierarchial structure of tasks. Initially this was inspired by https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/ but nurseries look weird. Not because the concept is bad, no. They are weird because of one implicit thing: blocking on context exit.
Yes, that looks the only point that makes a good idea weird.
Nobody is against a process tree concept, right? But what if a parent process would implicitly block awaiting termination of all children?
That would be weirdest thing humans ever invented.
Processes have SIGCHILD. Trio has error propagation.
Pet borrows these two ideas: hierarchy and error propagation. Pet rejects nurseries.
Having parent-child relationships, rules are simple for tasks:
- A parent task may spawn children tasks at any time.
- If a child catches an exception and does not handle it, it dies, and the exception is propagated to the parent.
- If a child task exits, the exception is raised in the parent task.
- If the parent exits for some reason while children tasks are running all the children are terminated. As long as the parent is already dead, it can't handle exceptions from terminated children, so such exceptions are lost.
If an exception from a child may arrive at any time, this is troublesome.
Consider the following example (yes, this is PetLang syntax with objective description after try):
try "Start all necessary tasks"
{
create_task(START_NOW, ...)
create_task(START_LATER, ...)
}
except TaskException {
// WTF ???
}
try "Doing our own job"
{
while (true) {
// ...
}
}
except TaskException {
// ignore, re-raise, print, whatever
}The problem with this code is that a TaskException may occur between except TaskException
and try "Doing our own job".
How to handle them correctly?
A solution could be similar to signals: disable_exceptions and enable_exceptions,
but pet thinks that's cumbersome and error prone.
Pet's solution:
create_taskdisables propagation of exceptionstryenables propagation
Well, that's too implicit, but that's what Pet would expect from a code like this:
task_1 = create_task(START_NOW, ...);
task_2 = create_task(START_LATER, ...);
// exceptions from children aren't propagated yet
try "Doing our own job" {
// here's the point where exceptions from children may emerge
while (true) {
// ...
}
} except TaskException {
// ignore, re-raise, print, whatever
}Also, propagation should be disabled in exception handlers, i.e. in except and finally blocks.
Pet is playing with Void Linux.
Pet loves it!
It seems pet will meow "Farewell, Devuan" very soon.
It seems peTux is not necessary for now.
Whatever pet tries to implement it runs into the lack of coroutines in C.
Humans would say use C++.
No. Pet does not want to step into this.
Go, with all its flaws, is simply great when it's about goroutines.
No function coloring with async, everything is plain and simple: go.
This is at the expence of implementing their own code generator.
Pet can't afford that. Pet needs a simpler solution.
Forth, the greatest language with the ugliest syntax gave pet a hint: threaded code.
Well, not exactly threaded, but what if a function would be a sequence of bool (*func)()
pointers?
It would need a machine to execute, but that would not be an exact virtual machine because
it would deal with addresses, not opcodes.
Each function would represent a noninterruptible piece and could be implemented in C.
Pet gets down to the PetLang spec.
Pet just thought: each humans' attempt to create a social network breaks against their sins. Basically, on the one hand primates tend to hierarchies and the client-server model perfectly reflects that. But on the other hand, as "The Pastor is The Shepherd of God's Flock", clients are just a flock.
Can pets form a flock? Don't make pet laugh.
No matter who creates a social network following this model, they are doomed.
Federation could be a rescue but that did not help humans. They found de-federation wars is a perfect entertainment. That model is not acceptable for pets.
So what's then?
Anarchy, obviously.
Pet thinks it should add an RSS in its site generator.
March 2026
Programming in C for pets: four chapters are meowed, pet just needs to write them down in humanspeak.
Pet marked BlueDwarf. That was funny experience. Pet hasn't seen such an arrogant human before.
March 2026 is running out and pet hasn't written a single line of code yet.
Has not?
It has!
Just forgot. Subtitle extraction with libavformat to learn humanspeak and for citations!
Pet is trying to be useful for its masters. Lots of things to do. Won't tell.
Sometimes licking balls and thinking.
December 2025
PetWay, MYAW, and pw-curl 0.4.0 are out.
Revising pw-curl and PetWay.
The vast majority of programming languages seem to be stemmed from right to left handwriting.
Especially in assignments.
Which comes from math.
Arabs were great mathematicians.
The shape of their digits comes from Allah.
Well, Pet's code is a bit messy in this regard and needs some cleaning.
Also, Pet did some obvious simplifications.
- PetWay 0.3.0 is out! Interfaces, multiple inheritance, und so weiter.
- No more github! Pet finished source tree generator and highlighter for this static site.
September 2025
- Poking Go: intercourse #2.
how to move from github
Git sucks. For every basic action, a bit more advanced than clone/commit/push,
pet has to look into the documentation. But in the most basic cases git help and man pages suck too,
and pet has to use a search engine to find out all those tricks and special characters like ^
for particular use cases.
Pet does not trust git developers because of their way of thinking. Sadly, the same humans participate in Linux kernel development.
Mercurial is more pet friendly. Pet types commands almost intuitively and they run as expected. That's a real magic.
Pet does not write too much, it tries to write less. So it makes sense to keep the source code right here.
about karmic fate
Unlike its ancestor pet is not happy with its main activities. But it seems to be doomed to repeat them.
How to break the circle?
Forced reincarnation could be a way out, but only as the last resort and success is not guaranteed. Pet feels it must do something else.
But what?
What?
- Making state site generator in Go -- done.
- Revising web site at tildeclub. Stepping out of the error space for some study.
- Left bearblog.
- Adopting Go for reference programs: revise past scent marks.
August 2025
- refactoring PetWay: multiple inheritence and interfaces.
- Optimizing PetWay strings
July 2025
- Compiling all pet projects with GCC
- Optimizing PetWay strings
- Comparing
pw_strstrwithstrstrfrom standard C library and stringzilla. Pet needs to utilize CPU pipeline and get rid of inner switch(char_size). Also, pet found that stringzilla sucks on CPUs pet has at paw. - Setting up frankendevuan on RockChip-based SBC. Previous installation was killed by upgrade
- Need this SBC for profiling PetWay on ARM64
- Revising LXC howto
- Simplified string generics in PetWay
- Simplified access log extraction in petgateway on tildeclub
- Summarizing security aspects of pet systems
- Came to bearblog.
March 2025
Pet's path to tilde.club:
- The starting point: https://cheapskateguide.org. It was in pet's scratchmarks but pet doesn't remember how and when it stumbled across that.
- https://bluedwarf.top
- https://www.pixouls.xyz
- March 22, 2025: request sent
- March 24: Tadam! Pet is in.
Previously
Licking balls.