I use it mainly for code completion, and it's great until I hit tab> to indent and accidentally accept a 50 line suggestion.
Somewhere in Edmonton I believe.
Agreed, but I'm pretty sure the auto-formatters available do alignment indentation anyway as it is part of the style guides.
Otherwise, I think some of the lines have too much nesting and could be broken up, and the ifcond-then-else blocks aren't indented enough in the last example.
Or, if the business is 24/7, make sure they have an explicit on-call policy with designated shifts. (e.g. who is allowed to call you, what is the expected response time, is an issue disruptive enough that it needs resolving at 3am on a holiday, etc.)
My current job (IT for a non-profit research facility) pays a sweet daily bonus just for having my phone on me, even if I don't get called over a week, plus double overtime pay when I do get called afterhours. I've had 13 shifts over the past couple years, and was called only 7-8 times, 3 of those on the same weekend for the same issue (couldn't make a permanent fix until the following Monday).
In any other job, I definitely wouldn't accept a manager or random coworkers sending me messages out of the blue on a weekend and getting mad when I don't respond.
I've switched to EasyDNS as well, over from AWS.
If you're on the lower-tier/unicast plan, have you had any issues with MX records for email? I set up mine ~10 days ago, and A, CNAME, and most TXT records are working flawlessly, but anything email-related fails to resolve 30% of the time (checked through 3rd party DNS lookup tools, as well as just sending/receiving test messages seeing what gets through).
No, you're absolutely correct! I meant it more along the lines of the "We take nothing by conquest" rhetoric, which is equally hypocritical considering the reality. I didn't really want to add an "/s" to the statement... Yes, the US killed a lot of people in Mexican territory, but then they made up a treaty and paid $15mil for half of the land 🤷 (heavily simplified).
But it's 2025, and I'm honestly not sure if the geopolitical climate is in a better or worse state than it was 170 years ago. And if not worse on average, it's definitely widely polarized.
Well you're not wrong, I think some dummies would say "acktually we bought it from Mexico".
I liked this article from a couple months ago on the whole situation: https://www.dal.ca/news/2025/01/09/united-states-canada-state-51st.html
Is it bad that I want him to try?
Historically, the US has never acquired territory by force, and even then Emperor Clementine would need a 2/3 majority vote in the Senate to ratify and prove the annexation was legal, which I doubt he'll get.
F*ck around and find out, as it were.
Gahh, serves me right for blindly writing code on my phone!
Functions in Python can only return a single value. While you are allowed to comma-separate additional values, as you have done, they are combined into a single tuple object that wraps the intended values.
As such, your splitter function is returning a single tuple containing three strings. Your calculate function is expecting three individual arguments (I'm guessing that the error trace mentions this).
To get around this, you can use the splat/asterisk operator to "unpack" the items from the tuple:
undefined
a, b, c = splitter(expression) # or, inline calculate(*splitter(expression))
Edit: removed bad asterisk
Are you looking for a screw-on filter? Looks like Fildex is Canadian-made (I have no experience), though I can't find any retailers for them.
For cartridge filters, you might have even more difficulty finding an OEM equivalent. For my car I usually buy Mann (German company, but their filters are usually American on this side of the world). I just bought filters for my next 5 oil changes while tariffs haven't hit yet.
The code basically tracks mouse movements, or the lack thereof. If a bot is using a cursor, it might move in a straight line at constant speed to the "I'm not a robot" checkbox. Most bots though just check the HTML and jump directly to the checkbox. There are other checks it might do as well, e.g. the user-agent of the browser, whether the user came from a search engine, etc.
That being said it's that not difficult to break, e.g. Puppeteer has a plugin specifically for getting around Captchas and Cloudflare's offerings.
All this is to say: automatic captchas are better at allowing legitimate users than they are at blocking bots entirely.
During a high school English class, we had a section on fairytales and their origins in old European folklore (think stories that inspired The Witcher, the gorier version of Cinderella, etc.)
One of the assignments was to write our own short fairytales, but apparently I was the only person that got a memo that these should have a darker style and tone as well... I don't remember the whole of what I wrote, only that it involved trying to kill a witch, if you failed you died, and the winning method was using a pencil (this was 3-4 years before John Wick).
After I read it to the entire class... well if there wasn't a whispered "WTF" to break the silence, there should've been.
I think I got a B minus.
Carmy: "Cooking is not fun for me."
Richie: "Yeah, but you love it."
Carmy: "That doesn't mean it's fun."
Richie: "If this shit is not fun for you, Cousin,what the fuck is fun for you?"
-- The Bear, S2 E1
I've actually been investigating Postgres cluster configurations the past 2 weeks at work (though we're considering CloudNativePG+Kubernetes on 3 nodes spanning two physical locations).
One thing I might recommend is to investigate adding a proxy like PgBouncer in front of the databases. This will manage request differences where write-queries must go to the primary, but read-queries may go to any of the replicas as well.
It should also better handle the recycling of short-lived and orphaned connections, which may become more of a concern on your stage 3, and especially on some stage 4.
Regarding access tokens, there's a third party credential helper for Linux that uses OAuth. I recently found it and started using it a month ago. Works pretty much the same as Git + Windows Credential Manager. In case you are running headless, there is a device mode flag that will allow you to login with the GitHub app on your phone.
https://github.com/hickford/git-credential-oauth
(And if you layer a timed cache helper before the OAuth helper... well you shouldn't have to reauthenticate every time!)
Otherwise, the Git manual lists some other credential helpers that interface with some password managers.
My city has fully integrated the Transit app into our bus system, so you can also buy and scan your tickets within the app, including monthly passes and 10-use "punch cards". Just activate the QR code as you're boarding. It's awesome.
In NPM I set a proxy host 192.168.box.IP to forward to 100.jellyfin.tailscale.IP:8096. I tested it by going to box.IP and jellyfin works.
I'm not surprised this worked, numbers are allowed in FQDNs, but an IP address is not entirely equivalent.
I tried "box.IP:8096" as a domain name and NPM rejected it. I tried "box.IP/jellyfin" and NPM rejected that too (I'll try Locations in a bit)
I would strongly suggest you to read up on the OSI model.
Nginx only understands HTTP and HTTPS requests at Layer 7 (implicitly and strictly ports :80 and :443), and forwards or redirects them to Layer 4 destinations. (Nginx can technically handle other protocol requests via plugins, but that isn't what you are looking for.)
In NPM, the proxy host name should at least contain the Raspberry Pi's hostname, e.g. jellyfin.your-rpi-name
. Or you could use the path location option, e.g. your-rpi-name
with location /jellyfin
. (I think the second option might work with network hostname auto-discovery, in which case pihole as a DNS may not be strictly necessary.)