Well the “one address” bit sure :) but given the scale supported by CGNAT systems today, I don’t think being able to support an entire country behind a single cluster is that far off. At which point the difficulty becomes “is the 100.64.0.0/10 block big enough”? Or maybe they’re using DS-lite for the hauling from private network to the NAT.
Fred
- 3 Posts
- 36 Comments
Fredto Programming•Linus Torvalds on how and when to maintain a clean git history (2009)4·20 days agoWhile exploring solutions, I use f or ffto mean “follow-up/to-squash” and a to mean logically separate. Sometimes other (additional) short abbreviations to know where to move, squash, and edit the changes to.
I recently discovered
git commit --fixup=abcd1234
: it will make a new commit with a message offixup! <message from abcd1234>
. (It’s the only special thing that flag does: a specially formatted commit message, which you can craft yourself if you remember the spelling of thefixup!
marker.)When you later rebase,
git rebase --interactive --autosquash
will automatically mark that commit to be a fixup ofabcd1234
.magit for emacs has shortcut for creating a fixup commit selecting the previous commit, I’m sure other interfaces do too.
I guess my commit descriptions get better with project lifetime
I’ve found that too, which I think is because as the project matures, you’re more likely to make fixes or contained features, as opposed to regular “change everything” as you explore the design in a young project.
As @[email protected] says, you can use the same public port for many different destination address, vendors may call it something like “port overloading”.
More importantly, you can install a large pool of public address on your CGNAT. For instance if you install a /20 pool, work with a 100 users / public address multiplexing, you can have 400,000 users on that CGNAT. 100 users / address is a comfortable ratio that will not affect most users. 1000 users / address would be pushing it, but I’m sure some ISP will try it.
If you search for “CGNAT datasheet” for products you can deploy today, the first couple of results:
- https://www.fortinet.com/content/dam/fortinet/assets/data-sheets/fortinet-cgnat-solution.pdf Fortinet claiming 1.8 billion concurrent TCP sessions, supporting 25 million new TCP session/s
- https://www.f5.com/pdf/products/big-ip-cgnat-datasheet.pdf F5 claiming “Scales up to 310 Gbps of throughput at Layer 7 with over 480 million concurrent sessions”
- https://www.a10networks.com/wp-content/uploads/A10-DS-Thunder-CGN.pdf A10 Thunder 8665S 800 million concurrent TCP sessions
This is the behaviour of inet_aton, which ping uses to translate ASCII representations of IPv4 addresses to a 32 bit number. Its manpage: https://man7.org/linux/man-pages/man3/inet_aton.3.html
It recognizes the usual quad decimal notation of course, but also addresses of the form a.b.c or a.b, or in this instance, a, with is taken to be a 32bit number.
Each part can also be written in hex or octal, with the right prefix, such that 10.012.0x800a is as valid form for 10.10.128.10.
Not all software use inet _aton to translate ASCII addresses. inet_pton for instance (which understands both v4 and v6) doesn’t
Fredto Programming•[Solved] Python question: How to convert list to sort with multiple keys?9·2 months agoInside the
lambda
expression you can have a comprehension to unpack thekeys
list to get the same sort of uplet as your “manual” example, like this:>>> items = [{"core_name": "a", "label": "b"},{"core_name": "c", "label": "d"}, ] >>> keys = ["core_name", "label"] >>> tuple(items[0][k] for k in keys) ('a', 'b') >>> sorted(items, key=lambda d: tuple(d[k] for k in keys)) [{'core_name': 'a', 'label': 'b'}, {'core_name': 'c', 'label': 'd'}]
Would some battons (like that: https://www.wickes.co.uk/Wickes-Redwood-PSE-Timber---44-x-44-x-2400mm/p/9000281515, or possible smaller depending of the profile of your table), fixed to the underside of the gaming top so that they’re leaving a negative image of the fixed table top? That way, once installed, the gaming top can’t slide around. That would only work well in my mind if the gaming top is a single piece.
Edit: with that idea, minimal length of the gaming is that of the table plus two thicknesses of the baton you’d use, ie. more than the 20mm you seem to have in mind. Maybe, maybe not an issue.
For the cover, I’d consider a felt with a waterproof backing, although I don’t have a specific material in mind. If you don’t add felt, I’d soften the angles of the MDF.
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
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
Fredto Python•YSK: there is a library called pathlib with different methods for accessing files which you might like since they do not require a context manager5·9 months agoThere 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
Well I’m not missing the point then, that’s good to know :)
Don’t forget the tech giants are all IPv6 enabled. Google Netflix Apple xhamster Facebook Microsoft are all reachable over v6.