I actually had to look it up when writing that post, I think I searched for "garden gate lock" at first :)
Offering a crate as a safe and cosy space to relax, sleep, etc. is recommended by the RSPCA (and the Dog Trust, Battersea, and many more).
In normal use it's fitted with a small mattress, vet bed, toys (that I didn't show because I didn't make those myself).
A standard poodle. In that picture he hadn't had his first trim yet, so he's showing gloriously fluffy puppy hair
Since I have a few pictures and you're asking nicely 😃 I opened another post: https://programming.dev/post/25943048
The second thing I mentionned were some shelves that had to fit in a very specific spot, but I don't have pictures to hand

A crate for puppy


I made a crate for puppy! He keeps outgrowing the ones we bought, so I made a large one out of his playpen panels that should be big enough until he's fully grown.
The floor is a sheet of plywood. I put vinyl wrap on it for waterproofing (turns out it's too fragile, by the time I made the rest I made a couple of tears).
For the top, I made a lip out of PSE wood (I think 25mm), to give more rigidity and allow fitting a hinged top.
Cabin hooks for the door, but they turned out to be too loose, so I added a Brenton bolt.
Puppy likes it, so overall a success!
Progress pictures :


As a beginner who mostly learned from the University of YouTube, I hear you, it was more involved and messier work than I thought it'd be
We're a couple months later, I ended up doing a second small project, this time I used half tung oil half orang oil, and adjusted my technique: wiped with a clean rag after application, and I think the room was warmer them last time.
Got better results, more even and it didn't take 2+ weeks for the first coat to cure (more like a few days).
Thanks for the advice 🙂
By "Syslog-ng Engineer" do they mean a C systems programmer who can fix bugs and add features to syslog? that's a rather different role from being an admin; even if, depending on the size of the operation, it make sense to give both roles to the same person
Besides Journal not being available on non-Linux, there are a could of reasons for using syslog: it can log to a remote server for instance. Journal does have a remote logging capability, but at best you have to run two log sinks in parallel, at worse it's a non starter because everything that's not a Linux box (network routers, VMware hosts, IDS appliances) can't speak to it
Another is fine filing and retention. With syslog you can say things like "log NOTICE and above from daemon XYZ to XYZ.log and keep 30 days worth; log everything including DEBUG to XYZ-debug.log, keep no more than 10MB". With Journal you rotate the entire log or nothing, at least last I looked I couldnt find anything finer. There are namespaces, but that doesn't compowe, the application needs to know which log goes into which namespace
There was a discussion of pathlib a few days ago: https://programming.dev/post/21864360
You clearly have more experience than I do; the only explanation for why my (one) attempt is not going so well is that I had less than ideal conditions. Both temperature and user technique, probably the latter is most to blame!...
It is pure oil, maybe I'm being too impatient then, a month is a long time though!
/u/[email protected] suggested a wipe with solvent, is that the role of orange oil? I think ill try that when I have time in few days
It's inside the house, but this being winter, is not super warm.
I disn't do the two steps apply liberally, wipe the excess a few minutes later. Of well, top late to go back and do that :)
I think I'll try your suggestion when I have time in a few days

Oiled with tung oil,still oily 9 days later


Hi,
Weekend before last (ie Sunday 24th) I applied tung oil to plywood (simply described as "12mm hardwood plywood" by the DIY shop). One week and a bit later, it looks dry to the eye, there is no shiny spot, the wood has a warmer colour, but if I run my fingers on the surface I get a tiny amount of oil.
I applied the oil by pouring a small amount on the surface of the wood then rubbing with an old rag, leaving no pool of oil.
Sunday (the day before yesterday ) I used kitchen towels to try to dry it off. The towels picked up a tiny bit of oil, but evidently not everything.
Is tung oil that slow to dry? Should I wait another week? Can I do something to help the process along? (Sanding or steel wool? Too aggressive for the thin veneer of plywood? Rub with a small amount of white spirit? )
I'm making a crate for Puppy who has outgrown two crates already, I picked the oil that was advertised as food & toy safe without realising how difficult it'd be to apply. In fact that's my most
Well I'm not missing the point then, that's good to know :)
Maybe I'm wildly misunderstanding something, not helped by the fact that I work very little with Web technologies, but...
So, in a RESTful system, you should be able to enter the system through a single URL and, from that point on, all navigation and actions taken within the system should be entirely provided through self-describing hypermedia: through links and forms in HTML, for example. Beyond the entry point, in a proper RESTful system, the API client shouldn’t need any additional information about your API.
This is the source of the incredible flexibility of RESTful systems: since all responses are self describing and encode all the currently available actions available there is no need to worry about, for example, versioning your API! In fact, you don’t even need to document it!
If things change, the hypermedia responses change, and that’s it.
It’s an incredibly flexible and innovative concept for building distributed systems.
Does that mean only humans can interact with a REST system? But then it doesn't really deserve the qualifier of "application programming interface".
Scapy is another library where they redefined /
to layer packets, such that you can write:
undefined
IP(dst="172.23.34.45") / UDP() / DNS(…)
Then Scapy has magic so that on serialisation, the UDP layer knows defaults to dport=53 if the upper layer is DNS, and it can access the lower layer to compute its checksum.
And don't forget that strings have a custom %
(as in modulo) operator for formatting:
undefined
"Hello %s" %(username)
Of course in modern Python, f-strings will almost always be more convenient
I can’t remember if threads are core bound or not.
On Linux, by default they're not. getcpu(2) says:
undefined
The getcpu() system call identifies the processor and node on which the calling thread or process is currently running and writes them into the integers pointed to by the cpu and node arguments. ... The information placed in cpu is guaranteed to be current only at the time of the call: unless the CPU affinity has been fixed using sched_setaffinity(2), the kernel might change the CPU at any time. (Normally this does not happen because the scheduler tries to minimize movements between CPUs to keep caches hot, but it is possible.) The caller must allow for the possibility that the information returned in cpu and node is no longer current by the time the call returns.
That seems like a weird dichotomy between ruff and Jedi. One does linting & formatting, the other code completion, goto-definition, refactoring. With pylsp you can have both: it uses Jedi (in the default config), and has a plugin to call ruff for linting and formatting (according to the doc; I don't actually use ruff).
I'm using pylsp (python-language-server). My reason being a process of elimination. I also use mypy for type-checking, so even without considering the danger of allowing MS to entrench itself into my tooling, it didn't make much sense to use a tool built around pyright.
The ruff-lsp seems to only do the things that ruff is good at: linting, code formatting, auto-fix of certain issues, and I wanted more.
Since I saw that pylsp uses Jedi under the hood, and offered a mypy plugin, I felt that pylsp offer a superset of the features that the Jedi LSP has. In the end I'm happy with pylsp, and never tried Jedi LSP.
However: with the mypy plugin for pylsp, the memory usage kept growing to ridiculous amounts and getting killed, so I ended up disabling it. I had a look in their bug tracker Instead, I'm using flymake that triggers mypy on save, and that seems to work well. (I have a few changes on top of com4/flymake-mypy.el, because it leaves behind plenty of temporary files.)
That offers me:
- jump to definition (using Jedi under the hood)
- rename symbol (and then Jedi goes and rename uses of that symbol)
- smart completion (eg. offers only variables in scope, or after a
.
only the instance members, etc.) - short documentation on hover
- squiggly lines for errors found by flake8 or mypy
- and a few more that I don't really notice
One thing I struggled with: where do you install the LSP? Using pipx for a user installation, or in a per-project venv? I did the latter, which works for me because I work on a small number of projects. That also means that mypy finds all the relevant third-party libraries in that venv. I wrote a bit of elisp that allow emacs to find the right mypy binary to check code.
That was silly and clever, I enjoyed reading that :)
CVS is the authoritative repository of code, and they recommend to users to use that or reposync (built atop of CVS) to keep their system updated.
There is also a GitHub mirror , and got is an OpenBSD project, and I suspect a number of devs use one of those for local work until it's time to push the changes to the authoritative tree.

ISO-8859-x encodings and invalid bytes
Hi,
I have to interface with systems that use iso-8859-x encoding (not by choice...), and I'm surprised that the following doesn't throw an error:
python
>>> str(bytes(range(256)), encoding="iso-8859-1", errors="strict") '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0¡¢£¤¥¦§¨©ª«¬\xad®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'
Bytes in the 0x80—0x9f range are not valid iso-8859-1, and I was expecting the above to raise a DecodeError of some sort; instead it looks like those are passed through.
I'm perfectly happy with this behaviour, I would like to make sure I can depend on it. Can I take an arbitrary byte buffer, decode as ISO-885