#off-topic-tech
1 messages · Page 233 of 1
2008
we must all be on the same page today cause i literally jsut ordered some poutine... 😂
Ordered myself some korean fried chicken
🤣
And yet I prefer asian food over local one
guys got any idea why my hard drive would be vibrating itself to death like this when going full beans? (im starting to think the screws holding it to the case loosened up and its about to self destruct)
i was tranfering like 150GB of stuff at its full 200MBps and it was just dying like this the whole time
I am not sure. But last time my harddrive started to vibrate itself to death. It didn't last long and died.
Which is a decade ago. Because I don't have such harddrives anymore 🤣
yea but also last i checked 8TB M.2's dont grow on trees
2200$ for a 8TB M.2 💀
yea no i think il stick to just getting like a dozen 8TB HDD instead
i think i can have 3
might not be a bad idea to take anything i value off the drive and into the 2TB M.2 im not even using cause i have it as a OS drive on my other pc
im still gonna check the mount first tho
my personal favorite screwup of mine was not plugging in CPU power, then having a minor heart attack when the board started yelling at me on powerup
i do wonder if this gpu i have from 2009ish still works
Man, I have a 2015 MacBook and it’s backlight recently died
so, i finally buckled down and redid the cooling layout.
- rad moved from the top and fans swapped (higher pressure & flow rate from the new fans),
- rear swapped from intake to exhaust
- bottom fans swapped to exhaust
- top rear & center are intake
- top front is exhaust to grab onto hot rad air & blow it out the top
i did try to put the rad tubing at the bottom but the tubes aren't long enough
also the rad fans are held on with rare earth magnets so i can just pop it loose to clean between the fans & rad when i need to instead of needing to remove 12 screws
this also means i could put the top filter panel in without it choking exhaust flow, the flow out the bottom doesn't need a filter at all and i can stow that somewhere else without interfering with the look of the case, and i can clean every fan from both sides without needing to remove any of them
and the most important thing: i was able to install 3 more RGB fans with it this way, and they're 140mm
I’ve never used Windows.
So I don’t have any knowledge or experience 😭
80 max 20 Linux
I still use macs because I cba to find a laptop that doesn’t actually burn
None
I have zero 🐈
1x 🐕
Sadly
And my sptiopid
Toopid dog keeps stealing food and toilet paper
🥶
What for?
To pee on it 😭 ?
I had a good 7 days with a cat a few days ago
It’s a stray cat but very calm
(I need a cat urgently)
My photo, not my cat
This is my 🐕
Smokey
🤍
Cats are lovely creatures
They are so full of Wisdom and Desire for Knowledge
💡
I really love cow cats
I’ll do something, he 5 minutes
Oh yea i did that once after cleaning one of my AIO’s that couldn’t clear the conector
White and black/brown cats
That look like Friedan cows
I live o an island
One of the largest islands, even
The largest island, even
Australia.!
I need to sleep
Sleepy now
Listening to satisfactory music
(insert spacex RUD GIFs)
ok, stupid question time
is it possible to take 2 outputs from 1 gpu, and run them both into a single monitor for a higher refresh rate than if it was just 1 output
google is absolutely shitting itself trying to understand the concept
Not at this time really.
i assume the monitor would have to specifically support it since it sounds kinda niche
Game devs could do that manually with DX12, but no-one does.
almost like an SLI without the 2nd gpu kind of thing
Ah, sorry, you meant driving one monitor with two cables.
Done by some monitors where it is split horizontally or vertically into two.
And you use EyeFinity or the Nvidia equivalent to splice the two back into one on OS side.
yea, like one HDMI output doing one frame, then the other HDMI output doing the next frame
but to the same monitor
No, each doing half the frame at same time.
(obviously using 2 HDMI inputs on the monitor)
One driving the left half of the monitor, other right half.
Or top and bottom.
ah, is that what the PBP does?
You mean PIP?
Picture in Picture?
Separate thing.
But some high-res monitors have used two inputs at same time when single one couldn't drive them yet.
ah, that thing. so side-by-side is PBP, and one on top of the other for PIP
i'm asking because i remember reading/watching somewhere that displayport has issues being longer than 3m
my monitor's got 2x HDMI2.0, limited to 100Hz
and DP1.2
if DP wasn't possible on a longer run, i was thinking i might be able to somehow cheat & run the 2x HDMI's at the same time
Just depends on cable quality.
And at longer distances you then need active cables.
Higher bandwidth needs, better the cable needs to be, for same distance.
No matter if HDMI or DP.
yea, it's a 1440p UW @144Hz, so not quite 4K, but the distance runs always seem to be a problem
i have noticed every once in a while i get that stupid "your bandwidth sucks" black screen
and i always forget about active cables
yea longeri t is more bandwitch you need because you loose a lot
yup
like my 12FT cables can do 8K60 because thats what i need to do 1440P 165HZ
i cant get away with any less than that
now i'm looking for a DP cable that's not $150 🤣
doesn't seem to exist sadly
at least not a trustworthy one
trustworthy display cables are just one of those things that dont really exist
and the few that do are generally buried
In canada, i order cables from PrimeCables.ca and have never had problems. they got high quality stuff and if it doesn't work they're happy to pay return shipping
In Finland you have to really look for bad cables in turn.
Have to go to the "crap direct form china" sites for that.
honestly the most disapointing thing to me is the included cables that come with monitors are rarely capable enough to take avantage of the full capabilities of the monitor
like the companies are shipping out e-waste and were just fine with it
i like it cause its always nice to have a spare cable in a pinch but like they could atleast give you a properly speced cable
all 3 of my 1440P monitors came with a HDMI and DDP cable that wasent capable enough so i ended up with 6 cables i dident need
3 of the 6 have a home now
Speaking of cables, I found this tool in the attic I haven't used for a decade and it might make me earn more money from scrap metal:
Have to remove insulation from old copper wires since insulation will lower your prices when selling scrap metal
Need to find a tool to strip insulation from 2 mm cables though. The tool above is for cables with thicker insulation
If I sell cables with insulation, I get €1 per kg. If I sell stripped cables without insulation, I get €6 per kg
The bag with cables weights 10 kg atm (including insulation)
Ok, removed the insulation from thicker cables and the bag now weights 6,60 kg
Now I have to strip the insulation from 2 mm cables
Mmm
why the huge price difference? just cause they want only the copper?
most of us are too busy making a fool of ourselfs 
Because getting rid of the insulation costs them, both in work and as waste.
Only the copper has value.
So the weight of the insulation has negative value.
This 👆
Although there are machines which can make stripping easy like this one
You can even buy it on Amazon but it's only worth it if you have a lot of cables to sell
There are also cheaper devices with hand crank
@twin dew Is it easy to fuck this up?
yea probably
Because videos make it seem so easy.
just put wires in right order. Bunch them together. Put it in the head and it works.
just put wires in right order
which one? A or B?
They just jam it in and they say it should work.
I don't know. I have to do it pretty soon. Either I do it myself or ask someone to do it. Depending on how difficult it is.
theres a letter? 💀
there were also crossover cables, but today devices should auto detect and correct for that
Just need to have 25 meters of ethernet cable to another building 😄
but easier to not have head on wire for drilling through the wall.
you should match what is already installed
should only matter for the cable, but it is good form to match all cables
so wether or not you have a A or B cable changes nothing once its all together
cause yea iv never heard about there being two types
As long as you use the same on both ends, it doesn't matter
Well, it matters for consistency's sake, but functionally, A-A is the same as B-B
"Now where did i put C again" (whoever made B probably)
AMD Nvidia is working out for me, but I want AMD graphics cards to be like, good enough to really compete. They were comparable for a minute. But not better. And then they got smoked again it seems from my view
Yeah, nothing more to it.
But it is somewhat fiddly, and you must not straighten too much of each wire-pair.
And must push them fully in.
Doesn't matter, as long as both ends use the same (except for that cross-over cable), and most devices today can do automatic detection and use cross-over cable as straight, or straight as cross-over.
A is what AT&T used, B is what basically everyone else used.
Because the original telephone use had first pair in center, then another pair around that, then third pair around that.
But that third was step too far and had too much crosstalk, but those first two pairs in center stuck to Ethernet use too.
So one pair in middle, another around that, then third and fourth on each side.
And makes it very annoying to do today with Ethernet.
Just because in dawn of time, someone on standards committee decided to continue using part of telephone wiring standard pinout.
Today the general rule is to use B, unless client demands something specific.
Like US government spec called for A, from those AT&T roots.
When doing work in US government buildings.
Then there is the hidden stuff, like ensuring that the cable used, the connector used and the crimping tool used work together well enough.
When most connector sources don't bother to specify what cross-section wires the sold connector works with, and if it works with stranded, solid, or both.
Where with mismatch you get a cable that might work most of the time, but then has random disconnects.
Ok. Thanks for info.
Will give it a try. What can go wrong right? If it doesn't work I try again 😄
Just need to trim the bad connector off etc.
Not reusable.
I would also love to try passthrough rj45 connectors but I read network professionals avoid them
definitely a unexpected but deserved thumbnail
Dont subscribe or watch that channel anymore
why?
Way to cringe anymore
Not to mention these creators are becoming increasingly disconnected with reality, prime example now has a private jet, so yeah no respect is deserved there anymore clearly
Well i unsuscribed before then but its been getting worse, which tells me i made the right decision
even if they have personal issues, their content is still accurate
Probably only going to continue to get worse at this point, well not going to go back to look at those channels regardless
and helpful for insight on tech related stuff
Doesnt matter to me, not deserving of any of my views
If i want content that is accurate gamers nexus is my main source
hm okay, maybe I'll check them out
Ok, anyways be glad not to think about that worthless channel anymore
Sponsor: Arctic MX-7 Thermal Paste on Amazon https://geni.us/WbHJ
This review of the AMD Ryzen 9 9950X3D2 CPU includes benchmarks and comparisons vs. the 9950X3D, 9950X (non-3D), 9800X3D and 9850X3D, and Intel's 270K Plus, alongside about 25-30 other CPUs at various points. In 24 hours, we put together 24 benchmark charts for the 9950X3D2 perfor...
the 9950X3D2, another waste of silicon
see that is silicon that could have gone to something else, instead we have a massively over priced cpu that isnt even worth getting
I mean I'll still watch them, but thats just my opinion
what a time to be alive, with more silicon that is essentially a money grab once more
I'm not to impressed with the newer cpu's
ok, im definitely not ever going to but you do you
arrow lake was and is ok, plus seems good also, amd side, idk, its all in theory interesting, in practice, clearly worse value atm than what intel is offering
I mean there are a lot of good mid-range amd cpu's, but paying crazy amounts for the most recent one's doesn't make sense
for now i would say the only good thing that has come out funny even was from the intel side with the plus chips, amd doesnt sadly have any equivalent, just over priced cpu's that arent worth getting such as the above
the 270k plus and 250k plus thankfully arent crazy as far as pricing goes, definitely not looking bad compared to amd's offering
I watch them for the entertainment nowadays since thats all LTT is good for
i liked the linus an linus episode
building linux linus a new pc
they're in vancouver just a boat ride away from me
been watching linus since the NCIX days since thats where anyone in BC would buy pc parts from
Yeah I basically will only watch the less serious videos. For actually reviews and more in depth insights I would go to someone like Gamers Nexus.
Tech linked is alright for a quick round of tech news, nothing in depth but cool now I know that's happening and if I care actually look more into it
still allegedly selling out
I know it sucks for gaming but what have productivity benchmarks looked like?
mostly meh, some wins some losses
Even waste of silicon sells i guess
i mean, i see Chryslers & Dodges on the road
Linus has never been accurate...
This video is not monetized. This video covers our serious concerns regarding the data accuracy of Linus Media Group, including Linus Tech Tips, ShortCircuit, and TechQuickie, particularly as it relates to rushing content out the door to favor -- by staff's own admission -- quantity over quality. As the company continues to expand into its LTT L...
Related, sometime after this ltt of course had to respond, because the errors in their information was getting out of hand.
No idea how much if any was improved after that, as i said im not subscribed or watching any of their content for many good reasons at this point
Ehhhh, kinda?
I wouldn't call them inaccurate but there are definitely better sources to use when you're after accurate information
It's fine to watch LTT as a tech entertainment channel, but if you to them for accurate info, you're doing something wrong
I guess, but i want entertainment plenty other channels i can watch instead
They did say that they made improvements, but I never bothered checking in on how their content has changed.
Given that Jake, Alex, Andy, Emily and idk how many more have quit the company, I can't see their content doing well
I mean, yeah. But if LTT scratches that itch, it's fine to watch it for entertainment.
Just don't take away too much tech knowledge from it
Also, some of their educational videos are still very good, especially their PC build guides (last guide you'll ever need, POV)
yeah i heard about all of the people that quit to do their own thing, as you say probably didnt improve their content either
Situation with Alex and Andy was especially funny cuz they weren't looking to quit until LMG said that their car channel was violating the non-compete clause of their contract - so they just quit
thats insane, i mean i can sort of understand, but yeah i would quit to under that condition, not being able to pursue your own channel because of a non-compete clause is pretty crazy
also crazy to think they even agreed to something like that in a contract to begin with but probably didnt think about why that was a bad idea at the time
and both of them were some of the best personalities on LTT
he could have let them just have their little side channels that would have like 0% chance of functionally competing with him, but he couldn't just modify the non-compete or ditch it
Yup
Them leaving was on LMG, they would've stayed had the company not insisted on enforcing the non-compete
or have it be a "since they're not competing directly for the same audience or content, it's fine"
Then again, I can see why a company with 60 something employees wouldn't want to make exceptions because it provides precedent for others to also demand an exception for their channel
obvious lmg showed its true colors, it made perfect sense to quit at that point
Which tbf, I don't know how much tech they still do on their car channel - but now that they left LMG, they can just do whatever they want with it
they're doing automotive content at the moment, & i don't see them doing anything else
Which is also important to consider, that non-compete might've been enforced in a way of "you aren't allowed to cover XYZ topics on your channel"
dumb shit to let them go instead of setting up an auto channel under LMG, or doing some of it on the main channel
Yeah, that would've been extra money for LMG too, kinda like MacAddress
Point was that the two weren't willing to give their channel to LMG, as LMG was demanding.
"hey, you seem to be interested and decently knowledgeable about cars, why don't you put your channel under the LMG umbrella, get to use our funding and sponsors and we keep a share of the revenue?"
makes me wonder if it was just ego, or if there was something else going on
Yeah, you'd have to hand over your personal hobby project to your employer, not really what a hobby is for.
On the other side, couldn't LMG just tried to launch a new car channel with them as hosts?
They had been doing car related stuff for LMG, that LMG had then stopped doing.
Made their own channel, which took off and LMG started to demand getting that channel because of that non-compete.
apparently not
Yeah, at that point, you just fucked it as a company.
i do wonder if they left because of some kind of AI replacement experimentation, and we're gonna find out in a bit
even if they were willing to bring that channel to LMG, who's to say it wouldn't fail again?
Also giving Linus the final say over the content etc.
i wonder if they've had a little crew exodus of background crew
lmg has honestly been fucked for a while, its no wonder more and more people are leaving🙂
it was definitely shocking to see those 2 longtimers leave
well it tells you something about just how fucked lmg actually is, expect more to leave soon enough probably
yup
well its gotten pretty obvious, even bought a fucking private jet, sorry guys it all truly is fucked at this point and beyond saving anything good that might have once been there
i'd have to guess that the new CEO isn't reigning linus in as much as needed
Jake, Emily, Taran, plenty more long timers who left before then
if this is reigning i dont even know what to say💀
because lmg is just getting worse from what i can tell
Oh when did Emily leave
I didn't know she fully left, I remember when she came out she said she would be doing more in the background stuff (Fair, coming out as a well know online personality is hard) but I didn't know she left
January last year
https://youtube.com/watch?v=ELnX3gEHuHI
People have asked me when I plan to make new videos ever since I left Linus Media Group. The answer is today. Come learn with me, and let's do great things.
Support me directly
╔══════════════════════════════╕
╟─ Patreon: https://patreon.com/c/EmilyAYoung
╟─ Ko-Fi: https:...
a facade definitely
I mean its obvious they are just letting linus do whatever they want, so they are ceo by title, linus is still running the show
aka linus is basically still the ceo for all intents and purposes
i'd rather not see it burn considering there's a ton of people that work there, but also i have a suspicion that it's going to burn soon, and it's because he "girl mathed" buying a fucking jet worth as much as his company just before an economic depression
that to, unfortunately there is alot of signs that tell me lmg is truly cooked, i mean unless the ceo actually resigns linus in, but so far no signs thats happening
since taran was a previous CEO, he probably saw the writing on the wall before he came in, got himself a golden parachute, and signed on
that's usually how vultures work
and with the execs i've met, they all have that predatory instinct
oh definitely, taran is all in for the money only, that much is pretty clear, he obviously does have a golden parachute written into that contract when the time is right, make no mistake about that
also, how fucking stupid is linus for bringing in the ceo of a company he worked at that went under?
well its stupid because he isnt keeping the facade up very well that things are changing at lmg, but i imagine that plan was to try to keep that facade up, its just not working very well...because linus apu is doing whatever they want and the ceo is just watching it all
And with planes, the expensive part isn't buying it.
It is maintaining it.
paying crew too
its kind of funny in a sad way, if the ceo was allowed to do their job, things at lmg could probably improve, but we all know that isnt happening
he's also an idiot because a lot of wealthy people just timeshare a jet because they know how stupidly expensive it is
im personally looking forward to when the whole jet thing blows right up in linus face, im waiting for it, its going to be great
i love how he talked about all the stuff that was done to it maintenance-wise, as if the equivalent of a car getting its interior replaced before buying it isn't fucking suspicious at all
not at all hahahaha
or the equivalent of a 35 year old house getting a new bathroom. like, fucking duh it better be updated before buying it
you think there was actual critical thinking skills in any of this, linus just be like i see jet i want, its mine
this is somebody who is clearly going out of control, with no signs the ceo is reigning in anything
i'd love to see if he actually bought it
im hoping he did, i want to see this disaster unfold
oh the real disaster is if he didn't and then did all this shit to it without being the real owner
hahahaha, well yeah that to
but that tells me he did and i have the future disaster to look forward to
Owned by "Influence Air", but that seems to be just normal shell company thing.
Hello people ! I would appreciate some assistance! I'm moving into a house - and I need to make sure wifi reaches the whole house both basement and 1st floor
I was considering 2 of the ASUS TUF Gaming AX3000 + the oem router
Anyone with knowledge that can assist? My gaming room will off have a cable
Do you have concrete walls or drywall since this has a big effect on signal degradation?
I use unifi u6+ on one house corner and will need to buy dream router 7 which will go on the opposite house corner. House is small but I have concrete walls which destroy wifi signal
We do in the basement - the issue is the size to be honest, with what we have now people cant even stay in their rooms without losing their wifi x)
My guess is you will need at least 2 access points. Best approach would be to buy 2 AP's with better range (avoid buying "lite" versions of access points since those have short range) and buy more if you notice they can't cover your home
Wish I bough unifi U6 long-range instead of U6+ model. Long-range model could cover a room with a dead zone regarding signal strength
didn't lmg waive that car channel's non compete so they could go off and do their own thing. i watched their intorduction video that explained it all and it seemed on good terms
like if they wanted to keep working for lmg, they'd have to give them the channel. they didn't want their employees to split attention that much because it was getting bigger.
for the most part i dont think LMG is acting in bad faith the agreement generally just seems to be that they are out of touch
which on one hand kinda yea but also thats why i started watching LTT originally
it was for the out of touch stuff like 16K gaming and all that
even 8k isnt exactly realistically still, let alone 16k, heck even high end cards can struggle to output acceptable framerates at 4k still
Imo anything beyond 4k is mostly just marketing bs
reminds me nvidia marketing bs about the 3090 being the first 8k gaming card, yeah that was basically more marketing bs to....
i mean to be fair it could just not with modern optimisation
but you can game at 8K now just dont expect more than 30FPS or for it to be worth it
modern optimization doesnt exist
but that is another good reason why even 4k is really pushing what cards can do, because well optimization in gaming is what it is....unfortunately....
well in theory it might eventually get better right, surely not worse
great example is the fact that video game maps havent actually looked any better for the last more than a decade at this point
all thats changed is lighting
I would avoid using ASUS network gear atm, they've had some pretty bad vulnerabilities and haven't been great with patching stuff
I know right, but I people keep saying but graphics are improving and I feel like I'm being gaslighted, because I can visually see how little things are actually changing
I don't know, maybe some people are so catch up in the advanced marketing, shiny new products, they cant see the obvious fact that graphics overall havent changed that much in the last decade, as you say beyond lighting, not that much overall in improvements
but because of bad optimization, hardware requirements still go up, even when graphic fidelity changes very little every single year, if at all
i mean they are but not in the places that need it the most
because the places that need it the most like stuff like terrain in most games is super performance intensive because of the shear volume of it
yeah terrain in alot of modern games doesnt look very good, but character models are detailed, my problem is how mismatched it all feels anymore
like some parts of the game seem to be graphically better like character models, but terrain, etc clearly is graphic worse, so it lacks graphical coherence overall
and somehow all of this keeps getting passed as being fine, even with games having essentially mismatched graphics, some parts of the game graphically being better than other parts such as terrain,
guess they think all people are going to do is stare at the high fidelity character model faces, because that seems to be the main focus in alot of modern games, with alot of other aspects of the game not being given nearly as much attention to detail
guhh why does this happen
My video drivers crashed, black screen and all, i restart the pc 3 or 4 times and they're still not back
im stuck in the 1024x768 vga mode
it makes no sense, i updated them a few days ago too, i DDU cleaned the old ones as well
old ones had the same issue, black screen once every few days and needed restart
Might need to use an even older driver? Idk
Something crashing the GPU in a way that needs full power cycle to fix.
And your reboots aren't power cycling the GPU.
As a WAG
Was there already inspection and analysis of artemis 2 heatshield?
No public info AFAIK.
But there was at least one shot of the heatshield by a diver that was published where it was visible and didn't have at least same kind of issues as Artemis I had with huge chunks missing on quick look IIRC.
the thing you see the most of is the enviroment and it feels like nowadays its treated as a unimportant background item
the most recent game that impressed me with its terrain was the remake of the original talos principle with its individual blades of grass and using illusions for stuff like rocky paths making them seem modeled
granted it obviously came at a performance hit but when you can count grass in a game and its not 2D you know you have made it in life
i mean its deserving of a review exclusively for the grass at this point
Hmm thats looking closer to real life, impressive
i think a big advantage it has tho is the game is mostly enclosed or has things blocking viewing large areas at once which really helps with LOD's
thats something that you cant really do in a naturally feeling way in these mostly massive open worlds we have these days
Ive seen it done to a extent, but mostly only in ue5 tech demos, so not a actual game
So idk what limits those approaches have, as i havent seen it really done in a actual shipped game
Which i think tells me there is some real hard limits to those approaches
Time
Just spent the day in rewriting large parts of this thing from Internet:
https://github.com/azlux/nft-dns/blob/main/nft-dns.py
So that it works properly when same set has multiple domains that share IPs etc.
And to not do removes and adds as separate commands, causing moments with empty set.
And to only remove and add IPs that actually changed, and not the whole set on any change.
And that weird busy-waiting with kill signal handling...
Also to not need Pydantic.
And I don't think I have ever used Python before...
Oh, and for some reason reading some config settings over and over again...
Need to look the whole thing over again tomorrow, and possibly send the original dev my version for a look.
And small issue with sleep length, .seconds vs .total_seconds, which if I understood correctly would only hit if sleep was supposed to be over a day, that the default config doesn't allow.
Noticed that while looking for bug I had caused with my new code.
Implementing outbound rules based on DNS-names into firewalls is painful.
More so with todays very short DNS TTLs.
This is odd
Some chats no issues at all but this one and a few others are experiencing a outage
i would recommend booting on linux with mesa drivers. A live usb should be all you need, don't have to install it.
If the linux drivers don't work your card might be toast
AMD cards work better on linux anyways. Their windows driver team are the B team and are not the best windows driver engineers in the field. The linux drivers are always better.
thats how it is every time discord goes down
its only some servers
I wonder if its geolocation based.
Those companies behind AI data centers have gone insane. They want to build a 1 GW AI data center here
But Croatia has a minimum electrical consumption of 1 GW and maximum consumption of 3 GW at a specific moment
Where the hell do they plan to get 1 GW from besides solar panels?
you're really thinking too nicely about all this, which means you're still a good person. they'll just take it from the grid, and let people starve
Good thing I am installing solar panels because electricity prices will skyrocket if that AI data center is built...
Investor promises he will invest billions in electrical grid to compensate for large consumption 🤣
Yeah, not buying it lol
My guess is they are blowing things out of proportion and the data center will be much smaller in the end
or just like the rest of those promises, a fairly blatant money laundering attempt
Yeah, the investor behind the project is not being liked here 
I pray they don't built it. We already have overloaded grid and this data center is like pouring gasoline on fire
ima use US mentality here and hit you with the "good luck with that" since for once its a problem in the tech space i can avoid
but yea i totally believe they will just built it anyway
Anyone know a witch which can put a spell on data center investor? 
dear lord i just found a crazy video off my old ipad
i found a download of that one video about what the 4090 was "going to look like" from when people thought the 3090's coolers were way too big and it hadent released yet
that is one heck of a throwback
Once again have Nvidia caught us by suprise, this time with their RTX 4090 and 4090ti.
Hot specs include:
18.000 Cuda cores
232 RT cores
2.169 MHz boost clock
48Gb GDDR7 VRAM
1 kilowatt
For more information and pictures please visit my facebook page:
https://www.facebook.com/CaptainsWorkspace
Please do not reupload this video, if you want to ...
Dont worry these investors are going to lose massively on these data centers
I've seen videos of data centers buzzing online and would have a mental breakdown if I lived next to one
Oh, I remember the jokes about RTX 7000 - RTX 10000 requiring massive electrical plugs
i mean......
This one is for MRI apparently
At least they don't consume as much as an electric oven, yet 
thats about 1/20 give or take of a lawn mower its fineeeeee
it's fucking insane that we're now measuring individual consumer pc components in terms of hp without being hyperbolic about it
i mean at some point its inevitible that we reach a point where there is no way to get more performance outside of just throwing more shit at it
i think intel hit that with 12th gen
and AMD might've hit it with the new monstrosity
like it really feels like hardware is kinda plateuing even tho its not really
I guess I could say my car has 125 RTX 5090 overclocked editions then 🤣
"Turbo-charged RTX"
Mine has uhhh well 0
mine's 200 5090s 🤣
Bitcoin mining rig on the go 
i mean, yes
i could do that with it if i wanted to
but ew
i think i'd make more money as a delivery driver with it
I got pissed when taxi services like Uber started charging extra here if you want a local driver
I once ordered a taxi with some driver who had a very specific name and I couldn't tell from which asian country he was from. The taxi never came btw 🤣
Good thing I don't communicate with our head of the IT department. Even though he is fluent in english, he has a strong french accent and nobody understands what he says lol
ok the irony of spotify starting to play circus music right as i read that made it 1000% funnier 🤣
This video reminds me of our IT department boss. Totally sounds like him with the french accent 🤣 https://youtu.be/UsP_2IGx1aU?is=gjo_B0HNHdP4klIH
Not my video, a clip taken from IT Crowd on Netflix.
what video 😂
Lol, wtf
Another video, hopefully not blocked in your country https://youtu.be/BqnFnWSYzaQ?is=DvaZ0_CauUV9ufE2
Extract from the season 4.
They sound French. :3
also blocked

no dodging copyright on noobtube
well i mean if i had a VPN i could but im not paying from that scam shit
I guess everything from the IT crowd is blocked then because of freemantle international
Guys how does one notch these urgent question need answer soon
7Gs in a Mustang is fucking nuts 🤣
i'd charge standard transport fees for stuff while being an EV just for the profit margin 🤣
wait what is it then, cuz the side exhaust, bottom intake, and rudder all scream that to me from this angle
North American A-36
Fuck if I know that’s not what it’s called in game
Wtf why
Oh cool
might be spoiled locally since things around here don't rust unless you're really trying
Sick as fuck
ok, dumb question time
keyboards, across both my brand new pc & my old frankenputer one, like to fail to connect when i power it on (not BT, just wireless), will connect just fine if i power cycle it. plus, & definitely more annoying, it'll occasionally freeze spam an input for a solid 3s, so it'll do something like 100 Fs in a row, uninterruptible, or delete an entire paragraph
any suggestions for what that is?
oh, and this is also with an OS on a different drive
spilled something on the keyboard?
Regarding that data center talk earlier, estimates say it will consume half of the country's total electrical consumption in a year
I don't know who in the right mind would allow that project....
Some datacenter "developer" wants Finland to build 5 more nuclear power plants just for datacenters.
And there are now more pending connection requests for datacenter projects than the whole countrys other power usage.
Yeah, this is going to turn ugly. They plan to build nuclear power here but considering our bureaucracy, it will take a decade to finish it
We have five, with sixth again in plans.
Original sixth was with cooperation with Russia, and the project died for obvious reasons.
New one now possibly in works on the same site, with Westinghouse AP1000 plant instead.
nope. has happened over 2 keyboards anyway
yea, same model different years
Gonna cost me 0.
Google news gave me an article, but it was very lightly written, about how everything turned out ok and the steeper angle was right decision
resolving/answering AI token queries costs a lot of compute power, which translates in quite a bit of money. No surprise that they cannot give that away for free for long
Deep ocean heat strikes again
phys.org/news/2026-04-anomaly-global-sea-deep-ocean.html
Also clearly, not enough monitoring
Not sure if I should be proud of github or not.
Notably, this is one of the first critical vulnerabilities discovered in closed-source binaries using AI, highlighting a shift in how these flaws are identified. Despite the complexity of the underlying system, the vulnerability is remarkably easy to exploit. On GitHub.com, this vulnerability allowed remote code execution on shared storage nodes. We confirmed that millions of public and private repositories belonging to other users and organizations were accessible on the affected nodes. On GitHub Enterprise Server, the same vulnerability grants full server compromise, including access to all hosted repositories and internal secrets.
k, thinking about getting some kind of usb-to-PWM fan controller so i can check fan noise (& maybe use it as a "it's hotter than fuck" fan. any suggestions?
or does anyone have any experience with that kind of hardware?
I am not familiar with the concept.
I just let me PC do the stuff. And pray for the best 🤣
I am trying to find a good TV to watch movies on. And they are all above 1K euro. Yikes.
Didn't know that was the price for a decent TV. Might as well buy a projector.
Maybe it's because of the memory prices. 
oh, i bet it's the fact that it's not 50Hz
the 100/120Hz TVs always have a price spike for some reason
I am still thinking, do I need high refreshrate for watching movies.
I don't think I will buy a console anytime soon or game on it.
no idea how many movies run above 60Hz
think my parents' 65" non-oled was like $500 and it looks great
granted i usually stay 1-2 generation back with most of my stuff, just because there's almost always a sane price adjustment for it without being that far behind
Yeah, I am keeping my eyes open on local second-hand website.
i recently learned a 120hz display can be better for movie watchin than a 60hz display
24fps movie can be smoother synced to 120hz than to 60
thats just common sense tho no?
obiously 24fps playback on 60 dosent land on every frame
every 3rd frame is inbetween so its desynced
Thanks for that information!
personally i wouldent bother but if you want to nitpick yea 120HZ is better in that scenario
it might be worth it, but i'd want to put something like that side by side
to me if something's gonna be more than double the price, it had better be a gigantic difference that's gonna still be noticeable in 10 years
i have a low-end 32" tv from 2012 that's 1080p and i still consider it competitive since it's not a smart TV with all that bullshit attached to it 🤣
the thing with TV's is that there all so garbage compared to pc monitors that iv never seen a TV that meets my bare minimum cause either the rosulution is abysmall or the colors are there is no such thing as a good tv to me since iv never seen one
something that will always be funny to me is AMD advertising in farming simulator pretty regularly
Ingame ads
honestly as long as its reasonable i dont mind real ads on in game billboards
these are static and manually added in so its very reassonable
At least its gaming related, aka gpu ads
And not say something much more questionable
I mean it's not the worst but in a paid game my expectation is 0 ads
I don't want to be sold other things using the thing I paid for
If it was a live service game or F2P it would make more sense
I like when there's fake ads in game on billboards and such. It fits way better and devs tend to get creative with it
A truly special encounter beyond all expectations, David Attenborough reflects on this memorable gorilla moment.
Watch Making Life on Earth: Attenborough’s Greatest Adventure on iPlayer from 3 May
#MakingLifeOnEarth #AttenboroughsGreatestAdventure #AttenboroughAt100 #DavidAttenborough100 #DavidAttenborough
Making Life on Earth: Attenb...
100 years old on 8 May
@pure escarp #off-topic-media message
WHAT DID YOU DO!
heh nice Mikael is using corsair scimitar. kinda wonder if i should get one for my mmo mouse collection i buy and then realise it does not fit my hand 🤣
Another one bites the dust🥺
What was it?
4in1 eac
Anyways, time for all Python people (and everyone else) to roast me for my first ever Python code:
Based on of this: https://github.com/azlux/nft-dns, but not lot of untouched lines left.
I am on it
medium rare?
I will just say right away that there are formatters like ruff and black that just take care of style
All improvement/change suggestions taken, including style not matching general python usage etc.
Known current bugs are that domains string from config isn't validated, and if DNS server errors out with NoNameservers exception that isn't caught yet.
Did everything in nano manually XD
I do know that stuff exists, but you need to configure most of them, and different languages have different styles in general and then splits between people on those too.
But even more between languages.
these 2 work right away afair. not even a config file needed. just install and use.
they are within PEP8 with some small changes on which I agree
Ok, will need to look into that tomorrow.
Need to head to bed soon.
And yes, could just have used globals like the original...
it's just one of the things that is an easy way to improve and remove headache of formatting
Yeah, just was supposed to be quick edit to fix some issues in actual usage.
So didn't bother looking for proper tooling.
Ended in three day project so far.
should I read it as completely standalone of just the difference?
seems like a lot changed though
Think as complete rewrite, and only look at the original if you absolutely want to.
Or need the config etc. basics.
Just linked it as I did start from it.
And not from scratch.
Any things that stem from the original are still things to be looked into in my code too.
It doesn't matter if something is from the original or from me.
if verbose is unset and level is unset too, than log level is not set anywhere
unless I missed a call to logger
Start of initialize
Message wasn't allowed with the code in first try
That call does lot of other heavy lifting in setting up the logger instance.
oh shit indeed missed it
Rather forgot actually.
btw, minor thing - sometimes it helps to have a fixed string length reserved to level
I forgot how to do that in % string but it is fairly easy and afair 8 is max length
Yeah, should add.
It is annoying when they are at different levels.
Original didn't have and found that was possible very late today.
Hadn't tried to look.
Added to list.
But all such things are of interest, not just the big things.
I never used %X/x for local date/time
but you can construct the string using table from here
docs.python.org/3/library/time.html#time.strftime
to include miliseconds too
If you look closer, that strftime doesn't allow for milliseconds.
Only in the alternative function, so it doesn't work in that.
Don't see much use for the actual date part, that original had.
And if you run it as service, you get the date and time (without milliseconds) from journald anyways.
So set it to use users localized time, with milliseconds added.
I actually have no clue it did this, given that windows displays 30/04/2026 for me
hehe
Prsonally I don't like when tools localize cause that can get wild
So for me when run as service:
Apr 30 17:08:51 temp nft-dns.py[21320]: 17:08:51,664 INFO: Reading main config file: /etc/nft-dns.conf
Expectation is that running it not as service is just for configuring/testing/debugging.
And if the localized time format is wrong, then user can change that.
Their own set time format I mean.
time format is thankfully the same everywhere
but time can get weird with, mostly thanks to summertime
Aka sometimes it might jump etc
but that design choice, not python
Using UTC inside all the time for those entries.
No jumps.
As you should, you are supposed to use UTC for logic and only convert to local timezone for display.
Original didn't.
yeah, I meant for logs. not for logic
And no, time format isn't same everywhere.
Official finnish one is HH.MM.SS for example.
(i mean, logic should be zone agnostic unless it's about representation)
Just the formatting, basically what characters are in between, and if 24h or 12h time etc.
I thought world agreed on one thing... lol
No, we cannot even agree on 12h with am/pm and equivalents vs 24h time.
The characters to use between the numbers are small fry compared.
Or what is first day of the week, or first week of the year, etc.
sidenote
in terms of configuration, I didn't use configparse... ever.
but it might be worth looking into pydantic_settings
they did adda cmd args parsing semi-recently.
the thing they simplify is that you just define one model, it can be nested, and rules on how vars/args look like in different formats, aka env vars, .env, cmd etc
That was what was used.
And Pydantic would be additional requirement (that the original had instead of dataclass), and additional packages that need to be installed.
Now needs the minimal Debian Python3 installation (as needed for basic system to work), + dns.resolver, and nftables (and its few requirements)
Pydantic added bunch more packages.
Could get rid of the nftables related python packages by returning to just running subprocess shells to use the actual nft binary instead, but not worth it IMHO.
Could use the exact same command strings with just "nft" added to start of first line.
And did use until I moved away.
Those python nftables bindings also have json version.
That seems to be much more used.
But the binding package just converts that json it gets back to the single string format before passing that to the .so...
Yes, I have bunch of extra ( ) when not needed.
Which seems to be against general Python form, but in many other languages is preferred.
run flake8 on it
And I do prefer it, which is why I added them.
biggest issue for me is the spacing around all arguments. but that's just personal
Yeah, another similar thing, seems to be against general Python form.
So will need to return to that once "done" with autoformatter.
Personally I would prefer space even before the (:s etc.
Looks fine otherwise. Some comments can be removed though.
I would also expect the number of spaces (or tabs and tab size) per step to be very divisive thing.
It is in most languages.
Even when it has no effect, unlike in Python.
Already stripped a lot of those off.
I have habit of writing self-evident comments.
But again thing that the autoformatter will almost certainly change from the current 2 spaces XD
for the config, I would use frozen dataclass, and initialize it right away without 'default first, args later'
defaults still apply in this case, but adds a bit of insurance (even if it's not a true immutability, but a very obscure one)
Yeah, at one point in the rewrite I needed to use it for that set type definition call part-formed.
Not issue anymore, need to look into refactoring it.
fun
CVE-2026-31431
note on imports:
if find it MUCH easier to manage when I import module and access module every time instead of calling it by name that was used in that module.
avoid name clashing, and any need for aliases during import.
especially with datetime.
you have local Config and basicConfig imported, constants from logging module have no need to be in local namespace of entire module
Yeah, original had a mix.
I went all in, not good for general use, small enough project to make it work.
it's a dataclass, without own methods. so whatever was 'part'-formed could be just a bunch of local vars instead?
Need to pass it with "wrong" dry_run setting to function.
Not there anymore.
And yes, the whole thing is just to simplify passing in the few places it is used.
And to have single place to set some defaults in code, if not set in config.
config models are a good thing. and with dataclasses it's very easy to write one without clunky init
Replaced bunch of global vars.
Or the case that the original code created new resolver class for every DNS call.
Or kept reading that configParser instance in the inner main loop, over and over...
"Please remove items from the bagging area". No shit, thanks Sherlock for reminding me 
So that that Config class isn't frozen allows for thing like this:
config.min_ttl = parser.getint( UNNAMED_SECTION , 'min_ttl', fallback=config.min_ttl)
Where if the config doesn't contain setting for setting, the default in the already created class is used as the fallback default for the parser code.
Instead of having to test separately if the setting exists or not.
Slower, but for parsing the config that doesn't matter, when it is done just once.
And those three fallback defaults are right up there at start of the code, instead of being sprinkled where-ever, or being global vars.
Otherwise that "table" wouldn't even be there, as it is only used in one place in the code.
Could have just been hard-coded on that line instead.
Hmm... could also code the family be defaulted to "inet" if not set...
Again to match the default Debian nftables.conf, like the original codes table = filter default is from.
But I'm off to bed ->
you can quite easily get values from annotations, if you don't like making class for defaults
also in these cases could go with fallback=None and include call in min_ttl=parser.get(..., fallback=None)
config = Config(..., min_ttl=min_ttl if min_ttl is not None else SOME_DEFAULT
and wrap it all inside classmethod for COnfig where such defeaults would be
or gather these into dict and only pass dict values that are not None
Also, there's probably some sort of validation you would want for these, which pydantic can handle easily, and in dataclass you can write those under __post_init__
f"Current: '{ str( exception )[ 11:str( exception ).find( ' is ' ) ] }'"
Can be simplified by using .split() or .partition()
like str(exc).split(' is ')[0] or str(exc).partition(' is ')[0]
difference here is minimal, but generally I prefer partition because it won't bother looking past first encounter
oh, forgot the 11:
so just use str(exc)[11:] before using method on it
that way you only convert exc to string once and won't possible encounter case when first ' is ' was before 11th index
if ( [ option for option in parser.options( section ) if option not in settings] ):
is fairly unusual
can be simplified to if any(option not in settings for option in parser.options( section )):
there's a handy logger.exception method that will also include traceback
it's a bit a lot, but very handy for debugging. so could branch out depending on log level
if ( result == '' ):
FYI there's a bunch of std type values that are considered False, like empty string, empty list, 0 etc. so you can just do if result: instead
just like bool of None is False too. but be careful with this because sometimes it's crucial to distinguish
logger.debug( f"Current: Header: '[{ section }]', 'family = { family }', 'table = { table }', 'set_name = { set_name }'" )
there's a handy semi-recent addition to f-strings, where you can do f"{var=}" and it will be equivalent to f"var={str(var)}"
But true power of that comes from the fact that it will show expression you used before =, like f"{2+2=}" prints 2+2=4
logger.debug( f"Needs to be one of: 'ipv4_addr' or 'ipv6_addr'. "
f"Current: '{ result[ result.find( 'type' ) + 5: result.find ( '\n', result.find( 'type' ) ) ] }'" )
that is hard to read...
f-string are all powerful but shouldn't avoid inflating them with too much logic.
string finds are a bit tricky
this can be rewritten with list comprehension
domains = [
DomainEntry(
name=entry.strip(),
ip_set=set(),
next_update=now
)
for entry in parser.get(section, 'domains').split(',')
]
just a wild guess: did you know about pprint? in case you need to print some data structure, like list or json (dict), it can do formatting for logs with constricted line width
holy code yap
inside main, qould definitely extract function for main loop, for each nftset and each domain in it
6 degrees of nesting is quite a lot
consider this:
check update time of all nft sets and domains first, log how that affected next update time, how many need updating and how many will be skipped
only after that proceed to updating them.
this will add additional log that helps keeping track of state
and in case of debuging changing state at once, instead of over time with unpredictable time in between is often helpful
and might be sometimes helpful to log debug internal state (nft sets), with pprint.pformat
not certaint why, but I want to refactor this:
let command be a list that you concatenate later
you can cache { nftset.family } { nftset.table } { nftset.set_name } string and reuse per nftset
you can have list of commands per nftset, that you concatenate to global list of commands with that string from above
aka
commands = []
for nftset in nftsets:
set_commands = []
if something:
set_commands.append(add_ip_str)
if set_commands:
commands += [f"prefix {nftset.something} {cmd}" for cmd in set_commands]
commnd = ";\n".join(commands)
find also should stop at first instance, as it returns the index of the first instance found, or -1 if not found at all.
Was originally to list.
But then looked and that should be marginally faster than adding to a list and then later joining.
Ok, wasn't aware of that "any".
Just wanted to have the if trigger if there were any entries that didn't match the "known" list.
Yeah, used those before.
Didn't remember to check if that worked at that specific one.
You seem to have misunderstood, it prints replication of the config file format entries.
Didn't bother much in making the error logging entries to be fast or easy to read.
If wanted, easy to trigger and see what they output.
Had that kind of stuff in while doing the work.
Removed once everything that kind worked right.
Just left with the refactored remains with addition that the original had, for the user to get more information about what is happening with their exact config.
Not for program debugging anymore, just config etc. debugging by user.
Will read everything again after properly waking up.
Right now the config file entry and in-code variable match, but didn't want any changes to one side but not the other cause issues with that log entry informing the user about what is wrong in their config.
Expectation was that "caching" isn't needed and the call would be as fast to single objects property and separate string.
But not aware of how it works in Python, and didn't think to check.
Also note that you lost some of the logic in that refactor.
It is just directly creating string with nft command compatible lines in it.
One per action.
So that end result is like (first run, so no delete lines, would be above the add for each set)
\nadd element inet firewall ntpservers4 { 194.100.49.152, 194.100.49.151, 194.100.49.139 };
\nadd element inet firewall netticketservers4 { 104.26.2.6, 172.67.69.232, 104.26.3.6 };
\nadd element inet firewall netticketservers6 { 2606:4700:20::ac43:45e8, 2606:4700:20::681a:306, 2606:4700:20::681a:206 };
\nadd element inet firewall smtpservers4 { 37.48.80.100 };
\nadd element inet firewall imapservers4 { 37.48.80.100 };
\nadd element inet firewall debianservers4 { 151.101.194.132, 151.101.130.132, 151.101.2.132, 151.101.66.132, 199.232.174.132 };
\nadd element inet firewall debianservers6 { 2a04:4e42:200::644, 2a04:4e42:400::644, 2a04:4e42:600::644, 2a04:4e42:47::644, 2a04:4e42::644 };```
And can then be directly fed to the nftables.
The first \n is to get the log entry to next line, so all start at the same level when shown in debug.
as nftables doesn't care.
Point is to just get long string that can be fed to nftables for it to do all the changes in one atomic operation.
Also, note that this uses single fixed timestamp for the processing loops.
Updated at the start, and used as is for all entries.
But that breakfast..
Just saying that at some point there can be too much logic inside single expression that goes into f-string, and that makes it harder to read.
Especially when same expression used multiple times as part of larger one.
Simple solution is to have that logic be done outside of f-string allowing for variables that 'cache' values and self-document the code by the nature of having name.
Yes, for some of the final "debug" lines for the exceptions or config errors there is too much stuff in there.
By intentional choice.
It's okay either way, in general.
Just saying in case alternative wasn't considered.
In some cases you don't want to iterate one by one, in others you don't want to keep stuff in memory of break processing of same entity in different ways.
Either way, some refactoring with extracting function for processing domain or nft set would make it simpler to read by removing folding.
Main is a very large and xomples function by all means
Yeah, been ping-ponging about that multiple times for the main at this time.
But didn't find easy actually usable ways to make real effective changes that didn't need way too much variable passing.
Yeah, I did make i[ simpler to convey idea, but aware that lost some logic.
Join might not be the fit there. And i didn't implement branching for add and remove
The whole looping over the nftsets is easy to extract.
But extracting parts inside it in usable way makes just so tiny difference that it doesn't matter.
Or gets very complex.
Solution to vars passing is to make dataclasses for context that is apssed to each
Which also will decrease complexity. Atm there soo many vars in that function and thus it is hard to know which is changed when.
Instead you can make some immutable context dataclass for nft set, for domain, and some mutable one that they interact with.
Thus these new objects can be reused instead of inflating function calls.
Also i think it will be easier if you do the time update logic first, in separate loop Over everything
And then do the logic of updating?
Might be possible to make parts of those 3 loops into methods of dataclasses
There are just two parts that are not about the time logic in that loop.
That #Query DNS section, which could be extracted to be a function that gets single domain and that returns ttl now that I think about it.
And that # Update nftables based on updated set section.
Could be function that takes the current nftset and old_ip_set and returns command string.
But didn't really think that that long function as is would get much better by putting few function calls inside it.
Ping-ponged several times if that whole # Loop over sets should be function or inline.
Yes, having it as function would make main much shorter.
But just move it all to different place with no real change.
Need to think about splitting it.
As the whole loop over domains inside could be just function call with current domain and nftset given as parameters and no return.
Ah, no, the first check needs to be there in with the for, because of the continue shortcircuit.
And I really cannot think of simple way to check what needs to be updated first, and make list of those, and then actually update them in a way that returns the changes to the original.
But I still haven't had time to eat that breakfast.
And turning stuff into functions when they would have intentional side effects (changes to passed in parameters without being a return) is bad in my head.
Just to split code into smaller sections in different functions, that aren't shared in any way.
Time for fast break
Yeah, already ate, but taking a general break now to clear my head.
It's just that main is inflated due to having both setup and teardown with business logic.
When it is a bunch of loops and branches with function calls - code becomes self-documenting.
As it is right now it takes a few screen scrolls to get an idea of what main logic is
you can choose either way of designing it. But good to be aware of caveats.
Yes, reason for that ping-pong if the main logic was in main() or just as next_run = update(nftsets, config)
But when splitting that middle loop down isn't easy, went currently with the current setup.
Need to think about it more.
But put it out for comments when it was working like I wanted it to.
Still needs some work here and there.
domains line needs basic validation that multiple entries with wrong separator get caught.
And at least third exception needs to be caught from the dns.resolver.
And need to add configurable offset to ttl or adjusted_ttl (need to decide which).
Because for example SystemD ResolveD can return old record with TTL 0 for several seconds after the record should have been expired.
While most real DNS servers don't do that.
So if you have long min_ttl set, you don't want to try to update too early.
But if your DNS server doesn't do stupid stuff like that, you don't want too much extra time before update.
I run just with 1 second min_ttl, instead of the originals default of 5 minutes.
As the extra queries just hit the local stub resolver cache.
so, steve mold made a video about Lippman nplate
https://www.youtube.com/watch?v=-DyrBDsKA5s
https://en.wikipedia.org/wiki/Lippmann_plate
which encodes color by creating sort of 3d difraction plate akin to butterfly wings
which means... just like lcd change color by rotating crystals, it might be possible through tons of math n stuff to figure out a way to instead make them create similar patterns for unmatched color accuracy? except that it will still require totally different method of encoding wavelength information digitally, not rgb (aside from obvious imitation in reverse where algo fiures out what wavelength is expected to be percieved and produces it, and even simpler ones that just make rgb anyway)
Take your personal data back with Incogni! Use code SCIENCE at the link below and get 60% off an annual plan: https://incogni.com/science
Lippmann Plates are a forgotten colour photography technique that uses structural colour instead of pigment. It works like chameleon skin.
Check out John Hilty's work here: https://www.jonhilty.com
You can ...
Lippmann process photography is an early color photography method and type of alternative process photography. It was invented by French scientist Gabriel Lippmann in 1891 and consists of first focusing an image onto a light-sensitive plate, placing the emulsion in contact with a mirror (originally liquid mercury) during the exposure to introduc...
You'd have to make the distance between the crystals electronically adjustable in order for each pixel to be able to display the whole range of color
Also, image data would have to be converted from RGB per pixel to wavelength per pixel
exactly
it would be quite different
I wonder what thickness you'd need
either recorded in wavelength
or converted from RGB to wavelengths of red green and blue, or into what wavelength(s) that RGB value was supposed to encode
Also, you'd have to do something akin to the butterfly height variance in order to get stable viewing angles
Converting to RGB wavelengths defeats the purpose because you'd still have red green and blue subpixels.
You'd have to convert them to the original wavelength
it's not so much question of thickness, as it iis about precision
if medium where those crystals exist is fairly transparent, than individual crystals can be fairly far apart,
but precision of distance between them must be precise to nanometer scale
Those three primaries already have exact wavelength values in the color space specs.
Just that monitors have them much more spread out in actuality.
btw, how much would storage space would an image taken with wavelengths require?
And then monitors do hand-wavy stuff to try to compensate.
Of course you do, but that wasn't my point.
I meant what I said with that question: how thick would such a wavelength crystal panel be?
oh I am certain someone will make such cheap converter for commercial use anyway.
and it 100% will be part of early prototyping.
it still will look fairly different to the eye because it does not emit own light (or at least doesn't have too, even though you probably ACTAULLY can eliminate it from the other side for the same effect to the viewer)
That's another thing to consider: such a monitor won't work well in dark environments
The primaries of sRGB are not pure wavelengths, they are color mixtures. Their true definition is in terms of CIE chromaticity coordinates. That said, for sRGB, the red primary is close-ish to 610nm, green is very roughly 555nm, and blue is close-ish to 465nm.
The Rec. 2020 RGB space, by the way, is actually defined using pure wavelengths for the primaries: R=630nm, G=532nm, and B=467nm.
Then again, we already have that issue with e-Ink displays and they managed to solve that through backlight
Also, I don't think it's a bad thing if monitor technology would require desk workspaces to be well illuminated
bw 'reader' monitors exist and get some use.
but I don't think I saw any backlight ones for large size.
but yeah, as I said, you probably can, and will, create own light to emit through that structure
And all monitors except OLED have separate backlights, that determine the color space it can do, and then the actual LCD panel is there just to control how much light is let through to the viewer.
Ok, there can be secondary phosphorus (or like) layers to convert the backlight color.
But mostly LCD works by filtering backlight.
Yeah, if the backlight isn't uniformly white, that'll have a HUGE impact on the brightness of individual colors
Indeed
But...
So, for movies etc this will create great fidelity of color.
And for color design work it will be just uncomparable.
Except... It will react with ambient light more I guess? But again those people probably already either sit in a dark or have light that doesn't disturb white balance for when they need to compare to physical product
imagine you get bright red and yellow but dim orange
At least doesn't sound like to manufacture such panel you need to laser beam individual droplets
Usually better the display, less uniform the backlight spectrum is.
Moment.
Depends on how to manipulate those crystals in 3d
Which sounds like a lot of math
Idk how exactly in lcd they are suspended, but fairly sure they are not moving but instead are rotated.
Can same effect be achieved by rotating?.. is it possible to use same tech to move, or rather re-allign at different intervals?..
Generic WLED and old CCFL:
Modern GB-r (red as phosphorus), and Samsung Q9 QLED:
The colored graphs are the per subcolor pixel on, other two off.
And then white is all subpixels on.
As for storage, you need either a limited set of pairs of amplitude and wavelength enum or just an array of wavelengths amplitudes
Generic OLED and specific LG WOLED:
that's huge difference
MacBook Pro Retina 2016 WLED PFS Phosphor:
HP DreamColor Z24x G2:
Same tech
But basically you want as little overlap as possible for accurate color reproduction.
From the monitor.
you could use same bandwidths as 10bit rgb to have 3 colors out of 4 possible wavelength with 8bit amplitude per each color... doesn't sound impressive. having 6 bits and 16possible waevlength isn't great too, but at least effect will be noticeable and somewhat reuses modern structure of subpixels.
actually, you probably want a few subpixels anyway, because each one is it's own wavelength that can be encoded in data
so it won't be RGB anymore, but 3-4 configurable wavelengths
But anyways, you want as narrow primaries as possible.
Having more primaries would be better, to accurately reproduce more colors, but there is not enough difference for anyone to try to go there, when the whole chain from capture to display would need to be modified at once for any benefit.
Outside specialist scientific fields like astronomy etc.
Where then the resultant combination is dumbed down to three primary false color for public consumption.
why not have them as close to human reception as possible? I mean going for same curve forms
When the capture is being done like the device only captures three very specific wavelengths at this time.
And so the display also needs to go for that.
Even when in reality there are leakages as the capture sensor color filters aren't perfect either.
welp, indeed.
you want it t obe close to sensor, which is camera
But basically todays camera sensor color filters are better than todays monitor per subpixel output color narrowness.
Like that around 2000e devices sensor ( with color filter wheel ) being able to capture the visible wavelenghts in 1nm slices.
My 500e cheap equivalent only has 3.3nm slices.
that's good precision
brings back memories of large lab equipments used for measuring wavelengths
analog ones
somehow, I totally think that simplicity and limitations of early devices is good for education purposes
Same idea, color agnostic sensor with filter wheel in front, measure with each filter.
With then calibration curve to take care of the sensor and filter actual light sensitivity at different wavelengths.
Just packaged very small for hand-use, instead of larger units in astronomy, chemistry etc.
Limiting the low-light accuracy and sensitivity.
So in monitor calibration, used to profile the backlight for different type of sensor to be used for the actual calibration.
And those images I showed were the backlight profiling data for different panels/monitors.
I wonder how many points they take per panel...
combinations quickly add up
The actual file for that MacBook Pro display:
Just text file.
So 482 1nm slices between 350 and 830 nm.
With 4 different sets of data.
So 4 samples per 1nm slice, for 1928 datapoints.
Ah, sorry 481, one is the sample ID.
My own center display profiles with that cheaper sensor I own, so 106 bands, 4 sets again automatically.
Also for comparison, old 17" Diamond View 1772ie CRT:
Not mine, again from the general pool.
And just marked as "Plasma":
So some unknown plasma TV
For various user submitted ones for various devices: https://colorimetercorrections.displaycal.net/
Only CCSS ones are worth anything.
CCMX ones can be used for your own display with caveats, when you don't own any calibrator devices at all.
Basically calibration data from someone elses display made with that second stage calibration device.
thats' certainly a way to not do CSV, hehe
ugh
what are the 2 white lines?
https://www.argyllcms.com/ format.
No idea how the project decided on the file format.
Measurements when inputting all max for all colors signal to the monitor and measuring that.
One line per sample set, so for some reason there is large difference between two runs.
oh, I see. 8 lines for 2 runs
Several of the other images also have that, probably runs at different brightnesses or not to max value but 255, 127 etc.
Profiles X-rite has made for their expensive commercial calibration bundle to use and just copied into the free solution from there.
Ok, returning to these.
Yes, could go without fallback value.
Would need to do parser.has_option call first to check config contained anything for that, or get exception.
Also lot of other options.
Just not worth in this case IMHO to make things frozen on thing this small to protect against further coding having bugs between check and assignment and like.
For the various logger.debug( f-strings ) being very complex, by design to minimize lines used, they are hard to understand, but that matters less to me right now than making them compact in linecount.
And for the specific one with slicing going on, that find works well enough.
Point is to get random length substring from error message, where the start is fixed and that ' is ' is the next thing after the part I want.
Where find exits on first found, didn't even bother to include the start position for the find, which would make it tiny bit faster.
Just shows the config contents that the dns-resolver didn't accept as IP for a DNS server, as parsed by the DNS-resolver class.
Pretty niche.
Again just to inform the user about what in their config file is wrong.
The weird if ( [ option thing, needs refactoring, was not aware of that "any" keyword, need to take a look.
Knew it was weird and stupid.
And same for that single result =
whops, didn't mean to enter yet.
for that single result = '' check, again did that first to make sure it worked like I wanted to, forgot to check if it worked right as just if result.
Changing later.
Now back to reading through the full list.
This one was about "copying" the config file section parsed back into single line form.
To inform the user about what the program had thought it had read, where it thinks something is wrong.
Just that the config file entries and the variable names are currently the same.
Next is again entry just informing the user about what was parsed, parsing the nftables outputted error message for specific part inline to save on lines, trading for much more incomprehensible code.
But to understand the code, you would need example error message anyways.
For the domain update, for vs list comprehension to keep it similar to next one.
Also need to add config checking logic to that part that is missing.
If there aren't ,:s between domain names, you currently get it all getting parsed as single domain name, and the DNS-resolver then happily tries to use something like "domain1.com domain2.com" as domain to resolve.
And again, the logger.debug entries aren't for debugging the code at this point anymore, but for the final user to debug their configuration.
All the code debugging entries that did include printing the objects etc. has been removed.
That dividing to separate time checking loop, and then processing might or might not work easily, depending on exactly how Python variables work.
Which is why that section still has the general comments about what each block is supposed to do.
And as noted, they all use same "now" timestamp for each full set loop.
Need to see about the function split, but as talked earlier, two camps on if splitting long functions to just have multiple functions called once, vs. single long function.
Where in theory the multiple functions is slower, because of the cost of the extra function calls.
And if they intertwine in the end anyways, it also gets harder to understand, not easier.
Ping-ponged on that a lot.
Will take another look later.
And as hitting the message limit... Continuing.
Yes, that is kind of weird.
But the point is to collect bunch of lines to feed to NFT, with one NFT command per line.
Either line to remove IPs from one set.
Or line to add IPs to one set.
And if both happen for same set, for the remove to be before the add.
Originally collected them into a list with one line per list entry, with function for the actual line forming that got fed 'add' or 'remove' and the other information.
And then joined the list into string just before sending it to libnftables for feeding to kernel.
But cut the one line function out and flattened.
And switched back to just adding stuff to a string from the start.
In theory I should benchmark which is faster, and not just trust random internet comments about that.
But as there will be no changes after to any of the lines, and keeping the order is what is wanted, doesn't matter that much.
When there are four different calls to that libnftables done.
One gets the set type in the initialize.
Second flushes sets of all their currently set elements (original just removed the known configured entries), and cannot have the end {}, so was much easier to split into separate things.
And then you have those remove and add list of IPs ones.
And as each type is only used in single place, didn't make sense to try to make them into functions in the end.
When those two almost identical ones are right next to each other in the code, where just the add or remove is different.
When would have needed to pass so many variables to that one-liner to combine them, and still have one line each in the main function.
sometimes you need separate debug flag in addition to log level for cases when you need extra debugging capabilities like logging varaibles.
but generally, info is for user, debug is for developer. sometimes user can get useful from debug but that's not a requirement.
function calls is minimal overhead.
btw, do you need any sort of concurrency here? family of PoolExecutor classes might help. but idk if that will break logic or bottleneck at the service you are calling commands to
oh wait, you do all in one command. right
Yeah, in this case the INFO contains high-level info for user on what is going on, DEBUG contains the nitty gritty about the exact config mistakes etc.
Would like to have more levels.
But putting the "everything is fine" status tracking stuff into WARNING would not be nice.
And that DEBUG is too chatty for normal use, even that INFO is IMHO too chatty.
Would like additional logging level, but unfortunately not there.
Fast enough to not matter.
Unless DNS server is very slow.
Or you have shitton of DNS entries.
I forgot, do you do any remote calls before compiling final command?
Does DNS call per domain that has reached the end of TTL.
And parses the returned IPs for that set where any domains IPs changed
And modifies the NFTables set for any differences.
With all the NFTables commands being passed as single list that gets atomically applied.
on a side note,
I don't remember if oroginal had any tests, but I get it that you changed logic a bit,
so perhaps writing some tests before further refactoring and improving would be wise. a bit of TDD, but not too hard.
Which is where having separate, smaller functions would help a lot.
pytest is fairly easy to setup, and feels a bit easier than std test suite. you just need to mock external calls
So the slow part in theory are those DNS resolutions.
But they get spread out in most cases.
since you already have 'none' loglevel, you can extend with debug1,2 etc and have if to include them
And older type stuff that isn't with DNS based load balancing often has TTLs measured in tens of minutes to hours.
none is actually CRITICAL, but as there are no CRITICAL level entries in the actual code, it ends up the same.
Yes, could add additional ones as there are more numbers.
Just not worth it, like I said, had stuff for development time debugging, stripped out in the code I sent.
threads might help with async calls.
could make it all asyncio even,
with 2-step main loop: deciding which ones need update and then updating all concurrently. with timeouts ofcourse.
and final command call via process pool executor
Lot of extra complexity for no real benefit.
From first log entry after starting the program, to first sleep, with 10 sets specified, containing total of around 25-30 domains took around 0.5s, with the actual final NFT call in dry-run mode and not executed.
And for the actual later updates, usually less than 10 ms IIRC.
With debug logging enabled
Using 1.1.1.1 and 8.8.8.8 as DNS servers.
Instead of the local stub resolver I usually use.
So to multithread and/or async 10-25ms per the actual busy loop time doesn't really pay.
When the lowest domain retry is 30-60 seconds for the very fast DNS load balanced domains.
And the default minimum retry is 5 minutes.
And most "normal" domains are in tens of minutes to hours timeframe between updates.
Faster when using the local stub resolver and ISPs name servers instead of those farther away public ones from big CDNs.
This thing is for limiting which domains a server or like can connect to, or be connected from.
So the domain lists will be small.
In one actual deployment I did this rewrite for, few time servers, two mail servers (actually the same one, SMTP and IMAP as separate sets if that changes), and three HTTP(S) domains.
With separate "run once, don't keep running" version that is currently just shell script doing same for few more, like debian package servers, that gets triggered before anything APT related runs automatically.
But as currently run with those public DNS servers, 10-25 ms per loop with the domain list I have set, including four 60s TTL debian domains to get more active runs in same time for testing.
List doubled because of separate IPv4 and IPv6 entries for each.
Idea is to limit options attacker that did get in the server has to get for the first stage payload to get second stage payload in, or for the person behind to attack to get any visibility inside instead of just blind first stage payload being run.
Or to just limit who can connect in on firewall level, instead at the program level, so certain exploits cannot be used.
Already good enough for my own use.
Just want to do some final polish and send my version as email back to the originals creator.
Because this is something that is useful, but the original has major faults.
And I'm not going to put it up publicly myself.
Just need to finalize things, then create version that is compatible with the originals configs and some functionality.
Current one doesn't take original configs (trivial differences, enable vs enabled and so on), and has difference on that set flushing.
Will send both and let the original dev decide if he wants to put something updated up or not, and in what form.
On that flushing.
My version basically will not live with same set having manually configured IPs.
Original did if those manual IPs never intersected with DNS gotten IPs.
But the original did 1-second loop for the quit interrupt handling to never quit while update was in process and the nftsets equivalents ip_set entries weren't in flux.
Which I removed, so my code doesn't play nice with getting quit signal while update is running, so just switched to flushing the whole sets on start and quit.
As mixing those manual entries and automatic entries in same set would not be advisable anyways.
damn, channel being quite or talking about some hardware release
then this
Sorry, not sorry 😜
tbh it all makes me depressed atm, because I am currently
missing hope,
been struggling for very long time
and it still does not line up
people starting to slowly implementing stuff I worked on years ago
because society just decided to fuck me over and not let me do it
can't world learn to not be a fucking bitch one day
why not?
Not wanting to keep up with even the tiny bit of upkeep and publicity a public github repo or like would need.
yeah, I was worried about graceful quitting.
but I didn't do much with service/daemon scripts.
all the servers usually had some sort of supervisor and/or library handling signals.
well, in asyncio I remember there are signal handlers, and there it is easy to do graceful shutdown as you share memory and can just check for event set in your loops and/or cancel tasks.
you can just publish and not maintain it 🙂
Takes two specific signals, which interrupt the main process, flush the sets to empty and quit.
So as there is no multithreading or like, all you need to do.
There is systemd .service file, that still needs some extra work to make it better from the original repos one.
Works in normal mode, but still tries to restart too fast on errors etc.
And is set to restart that thing when the systemd run nftables.service is restarted or reloaded in my version.
Would like to do more graceful config reread and main loop restart than killing and restarting the program, but long term goals that don't really matter.
As the actual difference is miniscule, and mainly is about extra journald log entries from systemd unit stop and start.
I saw that. I don't know if that's enough and don't know how exactly it will play with threads in context of the logic you need to do.
but generally, given that you do have io calls, asyncio feels like right choice.
where there logs for when those signals are received?
That is for when you want to do other things while waiting for results.
And the point in this case was that everything gets processed fast enough that that isn't needed.
Bursty vs. spread out load basically.
In this case it being spread out makes it interfere less with the actual work being done too.
^C13:59:39,696 WARNING: SIGINT(2) signal received. Exiting.
13:59:39,696 INFO: Flushing all configured sets...
13:59:39,696 DEBUG: Dry run: Would have run command:
flush set inet firewall ntpservers4;
flush set inet firewall ntpservers6;
flush set inet firewall smtpservers4;
flush set inet firewall smtpservers6;
flush set inet firewall imapservers4;
flush set inet firewall imapservers6;
flush set inet firewall debianservers4;
flush set inet firewall debianservers6;
13:59:39,696 INFO: Flushing sets complete.```
And return to shell, as this was running as command, and not as service.
Just that exact WARNING changes if run as service and stopped.
As that will be SIGTERM instead
Also running ton of DNS queries to same DNS server at same time might get you blacklisted.
just make it concurrent per server but not inside server
Needed to check that entering interrupt handler in Python3 did in fact stop the main thread while in there before doing the change from interrupt handler just setting global "stop" variable to enabled that the original had, with one-second sleep loop to check for that being set in the main.
but yeah, it's jsut an option. I get that it might too fast anyway
Like I said, lot of complexity and possible issues for very marginal benefits, if the domain list isn't gigantic.
so not suggesting it as "make faster" improvement,
seems like a correct choice for the task in general.
who knows, maybe one day you will add http interface to it, for status or something. (probably out of scope and out of security considerations)
This is replacement for few line shell script, to get TTL aware replacement instead of just static interval.
just to make my point clear:
you will have just a few async funcs,
Specifically ones that interact with dns, and one that calls command.
and handlers, for graceful shutdown.
I don't think it will be much complexity added
it's kindof a case when tool dictates shape, but it's a good shape.
anyway, up to you to decide
Again blocked for something in code sample.
Was it that any comments basically cause it to be blocked because of the # character
exactly for that #
Also, having multiple DNS servers for computer isn't that common.
The original couldn't even handle setting up connecting to multiple manual DNS servers at same time.
You usually get one or two via DHCP from your ISP.
And if you manually configure, you usually put in only one.
With Windows easily supporting entries for two, more via advanced dialog.
maybe not that common...
though I think I was using like 3 with PiHole
And any computer behind that PiHole would just be using one, that PiHole.
that is correct
But again, basically lot of extra work, complexity and potential issues, with very marginal benefits even in theory, unless the domain list is gigantic.
And in many ways counterproductive if running on small VPS with few cores doing also actual work.
And first step for that larger domain list with longer runtime per loop would be to remove that getting current time only once, and return to calling datetime.now ( UTC ) for each use, or at least updating more often.
After that, taking few seconds to go through the whole loop with the DNS server response waits wouldn't still be issue.
Removed that as getting the current time is expensive system call.
Tiny in the actual CPU cycles in the end, but still much less overall load from just this thing on the CPU.
Remember, this is supposed to be tiny thing chugging in the background, keeping firewall rules in sync with any changes in DNS records, so that new connections don't fail on any change.
But those cache times are already wibbly wobbly from all the various levels of caching done by the various levels of DNS servers, and response times etc.
wait, asyncio runs on same core
and for that it is enough the way it is.
well, I would slap a few tests anyway
Still extra work and extra threads, and the extra work the OS has to do to juggle the threads and so on.
Or the python runtime.
And to write effective tests, you need to be better coder than the one who wrote the code.
And I'm just new copy-paste Python coder who hasn't read on the language except for to check specific function definitions etc.
With giant holes in my language knowledge.
Like I said originally, first time ever I have used Python for anything.
And I didn't do the basic learning yet to code in Python.
I just kept finding more issues in the original that I was supposed to just check for possible security holes and do quick fix to one part.
So ended up with total rewrite.
Lot of the lines are close to the original, but not lot that didn't get any changes, and lot of organizational changes.
no threads in asyncio.
but I can't comapre to how std signals work, I don't know.
Ok. And that DNS resolver has async version already, but like I said, not going to even try at this time.
Not worth it.
The one used just hides the async stuff inside itself, and acts as synchronous thing.
gpt says (based on source I guess https://github.com/python/cpython/blob/main/Modules/signalmodule.c ) that in CPython signals don't spawn any threads.
I am not pushing for asyncio, but rather learning here myself how 2 options compare.
although docs do say that handlers must be very simple to not raise erros and cause side effects
If a signal handler raises an exception, the exception will be propagated to the main thread and may be raised after any bytecode instruction. Most notably, a KeyboardInterrupt may appear at any point during execution. Most Python code, including the standard library, cannot be made robust against this, and so a KeyboardInterrupt (or any other exception resulting from a signal handler) may on rare occasions put the program in an unexpected state.
Yes, basically means there is delay from the exception being raised, to it being processed, that depends on what the main code was doing.
As the change happens when the main code would switch to next instruction.
But while the exception is then handled, the main code in turn is paused.
Which is why any element in that nftsets that the main code edits can be in flux, and cannot be trusted on.
Which is why I use flush and not deleting IPs.
if you just task llm with a few acceptance tests, it wouldn't hurt, as long as you review them once and accept that it these might be very obvious tests.
yo udon't need to test everything, but just a single acceptance test gives you insurance that whatever you changed didn't break critical functionality.
While the original code just set a flag that got processed during the sleep part of main loop.
Busy-waiting in 1 second sleep loop to check for that flag.
And did as many iterations of of that as the wanted sleep period.
Checked the documentation for that Signals module for exactly that before changing the code.
The delay doesn't matter in this case, it is not relevant.
And was easy to just depend on the parts of the data that don't get changed after being created.
And the interrupt handler only sees that main data structure after the full parsing has been done and it is returned to the main().
heh, I somehow agree with this.
So yeah, for minimal logic like you have it is only practical as excercise
Which is why there is that check that the two data structures exist.
yeah, delay is not a problem
Much less delay than the original
No matter what the code is doing.
Which is why that signal handler is as function inside main().
So it has access to variables defined inside main() without being passed anything.
So before initialize() returns the two variables, you can just quit as is.
After that, the set definitions are static, and you can just flush them whenever and quit, leaving firewall with empty sets.
But that doesn't allow for otherwise controlled entries in the same sets, like the original allowed with caveats.
For which you can only quit when the ip data is stable.
So yes, for that quit signal handling, I had already checked that it works right from documentation etc.
Was still thinking you wanted to make it run multiple DNS queries in parallel when keeping on with that asyncio.
As in works right when just running without multithreading or like.
Would have needed changes if going async for other stuff.
Oh, also AI exploit finding company published pretty universal exploit against all Linux based stuff using kernel versions from 2017 to few days ago, without allowing distros or even kernel devs to do proper patch cycle first...
Basically fuck everyone else, we want publicity for our company approach.
Mainline 6.12.x kernel got update about 18h ago, and Debian Stable then around 6 hours later for example.
User to root privilige escalation and possibly more.
Whops. sorry, wrong numbers of hours...
around 30 hours ago for mainline
is that why y laptop installed updates and shutdown on it's own?..
better have such dick moves out early, cause that genies is out of the bag
I have not idea how am I going to stomach a 200 page report on nanoplastics
that sounds like a lot of reading
but I have to know...
i managed to fix a not-broken, but annoying part of my case that is apparently a plague with it
you're supposed to be able to just undo 1 screw & lift the entire glass side panel off it hinges, but that screw loves to get stuck and just spin in place
so the only solution is to remove that hinge entirely along with the side panel
i managed to back the screw out without breaking anything, so now the panel just sits on its hinges
can't really think of a reason to reinstall the stupid screw
So either the screw or the hole it sits in has stripped threads.
And if that is common problem, the factory overtightens the screw.
Or you did after assembling.
Planning on playing 1080p at high settings. RTX 3060 ti, 16 GB of RAM and 5600X should be enough hopefully
Wanted to upgrade my pc but I will have to postpone that for 2027 
32GB of memory?
Is it written in JS?
@twin dew I have something weird going on with my system. Sometimes when I fully power down my PC. And I mean fully power down.
Or do a CMOS clearing. When I boot up. I get two leds and the system stays stuck and doesn't boot.
I wait for about 10 minutes because "memory training". In the manual it says the leds should blink during memory training.
But that's not happening. Then I power down the system, and it boots up like nothing happened.
You have any idea what is going on?
I didn't update my bios since we resolved the system crashing (GPU) but I doubt it has anything to do with any of these bios updates.
A second problem I noticed. I have disabled WOL on OS level. I have disabled WOL on motherboard level. But when I power down system, I can see on my switch that it also keeps up a link.
And I haven't figured out how to power that down fully. So for some reason, my PC keeps the LAN connection "open".
Usually not possible.
It is the lan chip still being powered.
That WOL disable just makes it not react to WOL packets.
So you say I have not done it correctly?
No. that you cannot get that link to fully drop while MB has standby power from PSU.
Which it will have if PSU has power input connected.
Oh, so it's normal?
As disabling WOL doesn't disable the power to the chip, just changes the chip config to not react.
Yes.
Ah, weird. Why keep the link up if system is down and doesn't have WOL enabled.
Would cost extra to be able to select if you want or don't want to power the LAN chip.
Few cents to few tens of cents per MB.
I just notice I forgot one on Windows level.
How many settings are there for WOL 🤦♂️
BIOS, LAN chip driver (that one), and then the other tab one is Windows one if it cares about if LAN chip tells it that there was WOL event.
It was Shutdown Wake-On-Lan.
I disabled it. Powered down the system. And no light on switch for that port.
Was bugging me out for some reason, always the yellow light on my switch 😅
Ok, so it was just that that overwrote the BIOS set one for the chip config.
I think so? Or I didn't do it correctly on BIOS side yesterday.
I disabled "PCIE Devices Power On" at motherboard/bios level.
The cold boot and two leds is still a mystery. But the system works. Just a bit weird it sometimes gets stuck.
That is separate.
Means that the MB firmware isn't listening for wake interrupts from any PCIe devices.
Doesn't prevent any PCIe device from trying to generate those.
Ah, fuck.
Ah well. 🤷♂️
Yeah, that point was just about what needs to be on for it to work.
Not what needs to be disabled for it to not even try.
Chip needs to be configured to listen for WOL packets (often in BIOS, and that driver setting)
It needs to be able to then get MB firmware to react to interrupt it sends (PCIe enable thingie)
And Windows needs to care.
i didn't assemble it, it's on video having the issue 🤣 but yea, the hinge pin almost becomes a bearing in its seat, and spin around. def a factory overtightening issue, both threads are intact. dumb method of manufacturing & assembly on their part, especially on a $200+ case
i guess the best news is that it was correctable without doing any damage. my biggest concern was being able to free the hinge without breaking the glass
Who tf is this dumb lady https://youtube.com/shorts/GhYn9TA_Pd8?is=wLHzN1Vpx7lDmQ6u
Gov. Hochul proposed what she said would be a “first-in-the-nation law” to block 3D printers from creating a gun during her State of the State address.
#NY1 #NYC #News
For more on this and the latest NYC news: http://specne.ws/NY1YT
Watch live news: http://specne.ws/YTliveSN
Get the Spectrum News App on all your favorite devi...
It would be extremely hard to implement this
you now need to install a government accessed cctv camera with every printer 
We probably already have a sort of government cctv on our phones
that's not just for the government tho
too bad its already implemented without looking into anything
Governor of New York State
It's also a push in washington state
US won't introduce other gun control but mandating actual spyware/anti-consumer features on all 3d printers will definitely help with the problem 💀
it's monopoly nothing less
3d printer are for designing
you would not 3d print a tank
whats stopping you lol
we can 3D print metals now and realistically you could print it all in individual parts with a printer large enough and for the bigger stuff just make it in split pieces that puzzle together
3D printing dosent really have limits as long as you have the equipment and money to do what your trying to do
now that i think about that aplies to most things but you get the point i was trying to make that 3D printing isent all just plastic decorations
So afraid of "ghost guns", when real gun control or gun part control doesn't exist anyways...
So in US, for example for AR-15, only the lower receiver shell is considered a gun.
All the other parts are fully free to buy.
And that lower receiver is just structural and only needs to be able to take the recoil, not the pressure.
And even that could be freely bought from another person, only companies have to do any checking or reporting for anyone buying that part or whole gun.
And to print one that is good enough for few magazines, even basic plastic 3d printer with non-reinforced plastic spool is enough.
But somehow the issue is 3d printer access, not that the pressure bearing gun parts (like barrels, bolts etc.) being non-controlled.
Or look into the insane concept that is basically almost complete metal receiver "blanks" that are just missing few drilled holes...
Which aren't considered gun parts yet, so companies can sell them freely.
RIP Arc GPUs - Tech News May 3
▷ MY STORE - shirts, pint glasses & hoodies: http://paulshardware.net
⇨ Sponsor: Thermaltake View 600 TG Case | buy: https://geni.us/qg278Q info: https://tinyurl.com/TTV600
► TIMESTAMPS
0:00 Welcome to Paul’s Tech News - May 3, 2026
2:23 Steam Controller Reviews Are Up, For Sale May 4 for $99
TECH BRIEFS (...
What a ripoff
Yeah, official apple dealers rip you off hard.
bending a pin is like 400 bucks work for sure
I am pretty sure my bluetooth is broken for my iphone 12.
the antenna's probably.
And the apple engineers removed the AUX port. I just want to listen to music and all I have is bluetooth (which works 25% of the time) 🙁
well that was weird
Everything conected to my pc just disconected on its own for like 15 seconds
including my pcie ethernet card
but everything else like displays kept working just USB and ethernet
Hey all, anyone here have experience with mobile/offgrid 12v solar systems?
I'm looking to spec some parts and I'm wondering if anyone has recommendations
Looking for 4-500w of paenels in a form factor that can be lifted/moved by one person
2.5-4 kWh of usable battery capcity(lifepo4 if possible)
1.5-2kw inverter, as effecient as possible
Hoping to do all of this in the 12-1500usd range
The big thing I'm looking for is panel recommendations because I know amazon panels can be sketchy
Another note is that it'd be nice for the inverter to have a 20a nema or tt style plug
Current list I'm looking at
Inverter: https://www.amazon.com/Inverter-Socket-Type-C-Controllerler-Display/dp/B0FQ4SX4KF
Batteries: https://www.amazon.com/LiFePO4-Capacity-Rechargeable-Batteries-Off-Grid/dp/B0GJZXKBW6?th=1
Solar panels: https://www.amazon.com/Callsun-Bifacial-Efficiency-Monocrystalline-Off-Grid/dp/B0DC6T55ZK
Solar Charger: https://www.amazon.com/Renogy-Charge-Controller-Compatible-batteries/dp/B01MSYGZGI
1500 Watt Pure Sine Wave Inverter Car Power Inverter 12V to 120V, with Dual AC and 20A Socket, 18W+18W USB, 100W+30W Type-C, Remote Controllerler, LCD Display, Surge 3000W
2X 12V 150Ah LiFePO4 Lithium Battery Built-in 100A BMS Low Tem Cut Off 1920Wh 15000+ Deep Cycle Rechargable Battery for Solar, RV, Marine, Off-Grid Applications
Introducing the Callsun N-Type 200W Solar Panel, a high-efficiency rigid solar panel designed for residential, RV, marine, off-grid, and ground-mounted solar power systems. This 200 watt solar panel utilizes advanced N-type monocrystalline solar cells, delivering up to 25% conversion efficiency. ...
The Renogy 40A Rover MPPT Charge Controller is the most efficient type of charge controller. With up to 99% tracking efficiency, the Rover ensures maximum power point solar charging that gets more energy to your battery bank. Capable of automatically detecting 12V/24V lead acid battery systems, t...
Solar charger is overspecced so I might swap that out
ngl one of the things i'm surprised at with all the global switchover to solar is that we haven't really seen any substantial attempts at either curtailing it or actual acts of destruction to stop it from happening
we've seen dumb things like subsidies being yanked, but not people going thru solar plants and wrecking shit
ok i've got a "i'm probably just stupid, but i wanna figure this out"
i'm trying to run 3 or 4 pin PWM fans off of USB wall power
i got these & and old Noctua NA-FC1
so the chain of connections is
wall>usb>sata>PWM in>Noctua controller>PWM out>fan
but it's not working
power's not even getting to the controller
The fan hub almost certainly expects 12v from the sata connector. Those connectors have the ability to supply 3.3v, 5v, and 12v.
ah shit, these are 5v
ok, i'm just stupid. thanks 🤣
trying to make a fan tester/small area fan with it
Easier to just grab whatever old or new generic 12V wall-wart and hack the connectors off and splice.
0.3A one would be enough for almost any fan, outside of very high-speed server ones.
And most wall warts are 0.5A or more.
USB-A can only output 5V, and those are passive cables.
So basically useless as almost nothing that uses SATA power connectors uses only 5V, if it uses 5V at all.
The KINGWIN 100–240V AC to 12V & 5V DC 2A SATA Power Adapter delivers reliable dual-voltage power for your PC components and electronic devices. Designed for easy use and maximum compatibility, this adapter provides clean, stable power to hard drives, SSDs, cooling fans, and other SATA-powered pe...
Then there is this thing: https://www.noctua.at/en/products/na-fc1
Ah, brain fart.
Just wondering why you are trying to use SATA power for that.
because that's the input power for it
So mixed in my head to some other noctua thing since reading.
Ah, that one specific cable.
And just stealing power from MB fan connector is not good enough for this use?
Or from computer PSU?
i want to use it completely separate from a pc
And that generic wall wart to hacked fan extension cable isn't feasible?
nope
If you have any existing 12V wall warts.
i have multiple & none of them work
it's also a white-tipped USB-A, so i assume it's usb2 power at best
So not 12V wall wart, but 5V wall wart.
Doesn't matter.
What I meant was 12V outputting wall warts from old routers etc.
With native barrel plugs.
oh that
yea none lying around
plus i don't trust my soldering skills to turn that kind of thing into a fire hazard once it's complete
Then that 20 is ok.
In Finland, something similar would have cost 50+e IIRC.
So old free one, or 20e barrel plug generic would have been much better deal.
in the manual for this thing, they list the sata as the sole power for it, and the pwm on that same plug to only be used on the mb to sync control with the rest of the fans in the system. manual says without the mb fan pwm plugged in, it defaults straight to the controller in the switch unit for speed
Yes.
And with PC PWM fans, it is always 12V input, and then separate on-off signal to control the speed.
There are 5V and 24V PWM fans too etc, but not in generic PC fans.
yea it says not to use 24V ones with it 🤣
4-pins, PWM control with fixed input voltage, unless MB does stupid things.
With 3-pin fans, no PWM, just DC voltage control.
i just feel like even with 5V i should have been getting something
The electronics inside just don't start.
i guess
even if it's supposed to be putting out 5V, it won't kick on with 5V as input?
It never puts out 5V.
It is not voltage fan controller, it is PWM controller.
ah
It chops 12V into square wave for that fourth pin, and passes the power pins and speed return signal straight through.
so it needs the 12V/0V/-12V fully or nothing
No, just 12V and 0V.
oh duh, DC
Also, the PWM fans have their own electronics in them that might not be designed to work with less than 12V either.
i was getting nothing at all at the controller
Yeah, but same point.
Even if the controller worked at 5V, the fan electronics might not.
Or understand 5V PWM signal.
yea true 🤣
at least i was able to screw around with all this without melting anything
in today's edition of Fucking Insane
Among Us asking for Social Security Number is borderline illegal
Wonder what that countrys social security numbers format is, so that you even can do something with four last characters...
what that usually means is that they already have it, or want to verify that the ones they have are accurate
In Finland that would just be three number running sequential number of births of your birthday and check-character.
So almost useless.
it's yet another way to collect & sell personal information here, aka legal identity theft providing a grey area that magically jumps right to highly profitable illegal identity theft