In other news today...
-
@jinpa There wasn't much to say to the matter of the case—he did dumb, wasted a lot of money and got rightfully suspended for it. But the reporting that manages to quote three different numbers for the same thing …
-
@Bulb said in In other news today...:
440,000 gallons = 1,666 m³
Did you assume his gallons? They might be Old British Water Gallons, not Murican Gas Gallons...
And also: "pumped out" vs. "drained" - some of the water could have been removed just by opening the dam.
-
@Bulb said in In other news today...:
But the reporting that manages to quote three different numbers for the same thing …
Are you new to modern journalism?
-
-
@Bulb said in In other news today...:
@jinpa linked an article in In other news today... that said:
pumps ran and emptied 440,000 gallons
[…]
pumped out—hold your breath—21 lakh litres
[…]
drained 41 lakh litresSo how much did he actually pump?
Note that lakh is 100,000, so 41 lakh litres = 4,100 m³, 21 lakh litres = 2,100 m³ and 440,000 gallons = 1,666 m³, so the values are of the same order of magnitude, but still quite a bit different.
The BBC source article the NYP quoted used a figure of 2000m³ and gave a conversion to 440,000 (UK Imperial) gallons; one tweet quoted gave a figure of 21 lakh litres (2100m³) and the 41 lakh value came from another tweet which has since been edited to also say 21 lakh.
(a) The NYP assumed that gallons were gallons.
(b) If the BBC were going to round off the reported volume to one significant figure, should they have trusted the converted value to two?
-
@TimeBandit said in In other news today...:
Lot of hot air in the report as usual, slightly remarkable that Microsoft is rolling their own, completely unremarkable what it is because we already have the Fedora CoreOS and Ubuntu Core and K3OS and a bunch more and dog poops on what is in the host of a container runtime anyway. GitHub, which is also part of Microsoft, is even working on a single init that spawns containers, aurae, and will have no ‘host’ base system at all.
They started from scratch because they “don't want to be seen as doing this embrace-and-extend thing again”, but they are effectively doing it except for the point that it does not really matter.
-
@Bulb I think this is more a case of “they did it for themselves so they owned it and had a consistent base for their shit” and someone told Satya who is all “yes yes very good, it is open source so tell people about it”. That seems to be how anything happens there that’s open source.
-
Canadian style
-
@TimeBandit said in In other news today...:
Canadian style
Truly strange. He breaks the door before mopping the floor. I guess he wanted to be arrested, and to do it in a unique style?
-
@dkf said in In other news today...:
Morality shouldn't be legislated.
I was with you until you said that. It is a statement that is both common and astonishingly vapid. All laws are legislating morality.
-
@jinpa All, well most, laws are trying to legislate morality, but they cannot succeed. Because morality requites tact and compassion, but law must not try to be compassionate, otherwise it won't work. That's why justice is, or should be, blind. And that's not a necessary evil—well adjusted people actually want justice to be blind.
Laws should be guided by morality, but trying to actually legislate it is futile.
-
@Bulb There's justice and then there's fairness. Justice is vital for determining guilt or innocence, but punishments of the guilty are better determined by fairness (e.g., through determining how much injury was done to others and what the resources of the convict are). Fairness must not be blind.
-
@dkf But note that exactly for that reason, fairness is not codified, but allowed by the leeway given to the judge in determining the penalties.
-
-
-
@boomzilla said in In other news today...:
But does it keep track of where it is after the taken interference?
-
Article @TimeBandit linked in In other news today...:
Gigabyte has said it plans to fix the issues.
By publishing the update to the unsecured update servers, I presume?
-
The clean science of poop may help us get rid've microplastics:
https://www.science.org/content/article/mussel-poop-may-help-clear-oceans-microplastics
-
@boomzilla said in In other news today...:
And in Science, I found folloowing description:
When the tip was hovering directly over a metal atom, excited electrons popped from the atom to the tip while others flowed in from the gold surface below to replace them.
-
-
What triggered the outage?
During Sprint 222, we upgraded our code base to replace the deprecated Microsoft.Azure.Managment.* packages with the supported Azure.ResourceManager.* NuGet packages. This resulted in a large pull request of mechanical changes swapping out API calls. Hidden within this pull request was a typo bug in the snapshot deletion job which swapped out a call to delete the Azure SQL Database to one that deletes the Azure SQL Server that hosts the database. The conditions under which this code is run are rare and were not well covered by our tests.We deployed Sprint 222 using our Safe Deployment Practices (SDP) to Ring 0 (our internal Azure DevOps organization) where no snapshot databases existed and so the job did not execute. After multiple days in Ring 0, we next deployed to Ring 1 where the impacted South Brazil scale unit was located. A snapshot database was present old enough to trigger the bug, and when the job deleted the Azure SQL Server, it also deleted all seventeen production databases for the scale unit. Starting at that moment, the scale unit was unable to process any customer traffic.
Emphasis added.
-
@boomzilla That, and how great was the typo bug that a call to delete a snapshot and one to delete the server were mixed up. Twenty lines of ChatGPT vomit?
-
@Applied-Mediocrity Well, it's a missing word and one fewer parameter. Quite easy to miss.
-
@Bulb Are you shitting me? No, I guess you are not.
I think I can streamline that further:
void DeleteThisAzureStuff(string server = null, string db = null, string table = null)
If
table
isnull
, it deletes the whole database.
Ifdb
isnull
, it deletes the specified server and all databases with it.
Ifserver
isnull
, it deletes the whole region.
-
@Applied-Mediocrity if they're all null it deletes the internet.
-
@loopback0 said in In other news today...:
@Applied-Mediocrity if they're all null it deletes the internet.
Fig. 1: K-2SO "drops" the database
-
@Applied-Mediocrity You are pretty close actually. They say they are using
Azure.ResourceManager
, so I suppose they construct anAzure.ResourceManager.ArmClient
and then callclient.GetGenericResource(id).Delete
. Which is the same for any and all resources, you just give it the resource ID.Well, the resource ID for the database is “
/subscriptions/
uuid/resourceGroups/
rg/providers/Microsoft.Sql/servers/
server/databases/
database”. And the resource ID for the server is … … “/subscriptions/
uuid/resourceGroups/
rg/providers/Microsoft.Sql/servers/
server”. Spot the difference…
-
Then why does removing snapshots run with enough privilege to nuke servers, anyway?
-
@Applied-Mediocrity If it runs as part of the deployment pipeline, I can see why, because that pipeline probably even originally installed the server. If it's a scheduled job then it's , and it's most likely just because Microsoft sucks at permission management.
-
… also I looked some time ago whether there is an option to protect storage accounts from deletion and there is. Administrator can remove the lock again and delete it, but it prevents errors like this (and operator fat fingers). I suppose databases and database servers also have that option.
-
-
@Bulb that’s a nice mixture of string typing and being verbosely enterprise-y.
-
… so I looked up the resource locks … and … man, that's effed!
The page has dozens of rules what it protects and what it does not, but … it boils down to that it locks the resource and all subresources, which is exactly the opposite of what is desired here.
Also you may still be able to delete the subresources through the data plane operation (i.e. delete the databases through the SQL connection, which I believe is possible), but they are still protected over the control plane connection. As I said, Microsoft sucks at permissions management.
-
So many comments, so little time.
-
@Bulb said in In other news today...:
As I said, Microsoft sucks at permissions management.
They're a small company. They're doing their best.
-
@Arantor said in In other news today...:
So many comments, so little time.
I’m not a fan of enterprise-y AbstractFactoryMethodProxy names, but my first thought was that
ge
andgt
suck as names. I must be out of the loop, however, because I’d have never imagined this bullshit to be the first comments:
-
@topspin TIL John Carmack uses the wooden table approach.
-
@topspin said in In other news today...:
@Arantor said in In other news today...:
So many comments, so little time.
I’m not a fan of enterprise-y AbstractFactoryMethodProxy names, but my first thought was that
ge
andgt
suck as names.Eh...they're longer than what they represent. And having them longer probably wouldn't have lead to finding the error sooner.
-
@boomzilla what do they represent?
The only thing I can think of would be greater-or-equal and greater-than, in which case, why don’t you just use the fucking operators?!
-
@topspin my first question is “why are you using methods for >= and > and not, well, >= and > ?”
The AI comments are entirely predictable.
-
@topspin said in In other news today...:
@boomzilla what do they represent?
The only thing I can think of would be greater-or-equal and greater-than, in which case, why don’t you just use the fucking operators?!Presumably because he's operating on objects and either isn't using C++ or doesn't want to go down the operator overloading route.
-
@boomzilla in which case it’s kind of on him, no?
-
@Arantor said in In other news today...:
@boomzilla in which case it’s kind of on him, no?
What's on him? The bug? Well, yeah.
-
@boomzilla ha, sucker.
Another win for the oPErAtOr oVeRlOaDiNg Is EvIl crowd.Seriously, though, the other comment shows he’s using Python, and you can overload these operators there (by implementing the correspond
__ge__
methods).
-
@topspin said in In other news today...:
@boomzilla ha, sucker.
Another win for the oPErAtOr oVeRlOaDiNg Is EvIl crowd.Seriously, though, the other comment shows he’s using Python, and you can overload these operators there (by implementing the correspond
__ge__
methods).It still would have been a single character bug that would have likely taken a while to track down.
-
@boomzilla true. And one that’s probably happened to everyone at least once.
I still think it would’ve stuck out more. And my original comment assumed these were names for, well, something else.
-
@boomzilla I dunno. I feel like it would be more obvious to spot the symbolic version than a literal one.
But definitely there are comments in there that reek of “tell me you don’t code, without telling me you don’t code”.
-
@topspin said in In other news today...:
@boomzilla true. And one that’s probably happened to everyone at least once.
I still think it would’ve stuck out more. And my original comment assumed these were names for, well, something else.
Eh, I've used those sorts of things in several contexts so they were pretty obvious to me. And I have made similar errors using the operators. Off by ones suck.
-
@Arantor said in In other news today...:
@boomzilla I dunno. I feel like it would be more obvious to spot the symbolic version than a literal one.
But the bug would end up being in the overloading and that would be even harder to spot.
-