|
Problem: Kerberos-authenticated printing ceased to work in Ubuntu 23.10 (currently being in testing in prep for 24.04) After a day and a half of progressively detailed tracing through the entire stack: Hey wait a minute, something is swallowing the auth-info-required option entirely and the printer is then used as anonymous, which produces a nice NT_STATUS_NOT_SUPPORTED Solution: A few weeks ago, some knucklehad (don't look at the git blame, don't look at the git blame, don't look…) did a thing. Here's the fix: Diff code:
|
# ? Mar 15, 2024 11:25 |
|
|
# ? May 8, 2024 23:01 |
|
Antigravitas posted:Revert, increase the counter in the comment you ignored, move on. ynohtna posted:The quickest, safest possible refactor: prepend a "// REFACTORME" comment lmao if ur code has comments
|
# ? Mar 15, 2024 17:17 |
|
Antigravitas posted:Config management is great, you can gently caress up in a massively parallel way. Turns out lpadmin silently ignores options it doesn't recognise and the typo was introduced when host configuration was consolidated. lol nice, i had a hell of a time getting a file to parse today. turned out i was reading the wrong file cause i typoed the filename
|
# ? Mar 15, 2024 17:18 |
|
anyone got any advice on diagnosing a memory leak where it's types being leaked instead of objects? we're on the verge of using windbg programmatically to manually dump every type, but surely we're not the only people to have had this?
|
# ? Mar 20, 2024 10:16 |
|
why the heck is your application creating new types at runtime in the first place. like, that's probably the cause of your problem, something's creating new types for no goddamn reason anyway, the usual method i use for diagnosing memory leaps is to take memory dumps while the leak is happening and seeing what's different between them. if you have three snapshots, stuff that it's in the second snapshot but not the first are potential leak candidates, and the ones that are still there in the third snapshot are almost certainly leaked (instead of being transient allocations that do get cleaned up properly).
|
# ? Mar 20, 2024 11:05 |
|
Jabor posted:why the heck is your application creating new types at runtime in the first place. like, that's probably the cause of your problem, something's creating new types for no goddamn reason sadly it's not our code but a microsoft odata implementation that's causing the leaks. we found one with a fun little comment saying not to worry about creating a fresh type every time, the garbage collector will sort it out. not true when your caching stuff by type all over the place, it turns out! anyway, although we've fixed it for that type, we've clearly got another somewhere. most snapshot analysis is focused on objects so we can see a bunch of semaphores and events getting leaked which happens when you leak types. i'm surprised this is such a novel issue that there aren't any preexisting tools for this specifically.
|
# ? Mar 20, 2024 11:39 |
|
Chalks posted:not to worry about creating a fresh type every time, the garbage collector will sort it out. i'm not
|
# ? Mar 20, 2024 12:02 |
|
what lang/runtime/whatever?
|
# ? Mar 20, 2024 12:03 |
|
redleader posted:what lang/runtime/whatever? oh sorry, that would be helpful to mention! it's c# in .net framework 4.6, built on Microsoft.Web.OData v6 which is a sadly abandoned version that we're stuck with. fortunately open source so we're just trying to fix these issues ourselves. I can see why they decided to abandon an entity framework based OData API, it is not very appropriate tech, but we're very invested in it so we've just gotta suck it up Chalks fucked around with this message at 12:49 on Mar 20, 2024 |
# ? Mar 20, 2024 12:47 |
|
it sounds like you are leaking objects that represent types? do they not show up in a heap dump or similar?
|
# ? Mar 20, 2024 13:23 |
|
Subjunctive posted:it sounds like you are leaking objects that represent types? do they not show up in a heap dump or similar? it's handles being leaked that's the main issue and tools like dotMemory just aren't seeing it, or at least not clearly enough to distinguish it from the noise. we've managed to use the clrmd api to find out what type it is now so hopefully tracking down what's holding on to it won't be too hard. 56k DynamicResolver
|
# ? Mar 20, 2024 14:07 |
|
I was reading about planning poker since it came up itt recently and I really enjoyed this cop out bitquote:The people who should vote are the ones who could do the job. Too often, agile teams require everyone to vote, even if they do not know the story's work. Managers are not allowed to vote. Managers are usually motivated to make the work take less time. Hence, the vote frequently gets skewed to the negative. Managers, on the other hand, have more expertise than the typical team member. Thus, it may be prudent to give them veto power over team consensus in some situations. which basically boils down to "bollocks bollocks management get veto"
|
# ? Mar 20, 2024 15:30 |
|
or maybe I'm wrong, but it sure seems like it
|
# ? Mar 20, 2024 15:34 |
|
"managers have unrealistic expectations" "managers have more expertise" hmm
|
# ? Mar 20, 2024 15:38 |
|
its whatever bullshit you want based on what your team has observed to be effective if management is correct more often then you do it that way people dont do it that way usually
|
# ? Mar 20, 2024 15:39 |
|
i think it's more of an acknowledgement that managers frequently have more political power within the organization - if your process doesn't give them an official point to weigh in, they will instead do it in ad hoc ways that are more disruptive to the process of course it's phrased in an ego-stroking way that said manager is more likely to accept
|
# ? Mar 20, 2024 15:40 |
|
though there's also the issue that someone ultimately needs to decide "is this even a thing worth doing", and often whether a thing is worth doing or not is going to depend on how long it takes. so it makes sense to do that after you've figure out your estimates. and if you're doing that then it does make quite a bit of sense for managers to weigh in at that point
|
# ? Mar 20, 2024 15:47 |
|
but the problem is that if a work takes X days it will probably still take X days even if you say it takes X-2 days, unless you add overtime or more workers so even if management goes "not this is not a 5 days work, it's a 3 days work", it will still probably take 5 days to do, or more ideally if it absolutely must meet some deadline you'd rescope the work or add more workers
|
# ? Mar 20, 2024 15:50 |
|
even the most reflection happy sickos don't usually make so many new types that anyone would notice, what on earthJabor posted:though there's also the issue that someone ultimately needs to decide "is this even a thing worth doing", and often whether a thing is worth doing or not is going to depend on how long it takes. so it makes sense to do that after you've figure out your estimates. and if you're doing that then it does make quite a bit of sense for managers to weigh in at that point yeah this. planning poker is how you come up with the estimate, so the managers can decide what direction to point you. managers can go find some other meeting to attend recreationally I worked somewhere that made everyone do planning poker and it was dumb. designers having nothing else to go on were guessing how much work it was to stand up a database based on how many minutes we spent discussing it. total waste of time
|
# ? Mar 20, 2024 15:54 |
|
managers: we're thinking of maybe doing these ten things someday devs: alright here's how long we think they'll take (e.g. using planning poker) managers: let's find some stakeholders to bicker with over what we're gonna do and in what order devs: holler when you've decided note that there exists no meeting where devs and managers both attend. this is a feature
|
# ? Mar 20, 2024 16:00 |
|
I think I would make a good PM simply by striving never to call a meeting
|
# ? Mar 20, 2024 16:07 |
|
when I was a line manager (before Agile was everything) I used to spend a lot of time and energy keeping developers from low-balling estimates because of unvalidated assumptions. would have been a lot easier to do if I’d been in the meetings where they were dreaming up the estimates, but it was mostly done through ad hoc email and conversations anyway
|
# ? Mar 20, 2024 16:28 |
|
Private Speech posted:I was reading about planning poker since it came up itt recently and I really enjoyed this cop out bit is that specific quote about planning poker? because "veto power" only makes sense in a yes/no vote
|
# ? Mar 20, 2024 16:36 |
|
veto doesn’t need to have anything to do with a vote, it’s just the ability to prevent an action, like “making 5 days the recorded estimate”
|
# ? Mar 20, 2024 16:41 |
|
Subjunctive posted:veto doesn’t need to have anything to do with a vote, it’s just the ability to prevent an action, like “making 5 days the recorded estimate” ok then what happens after they use the veto? if the estimate goes back to the devs, it's a useless veto (the devs have no reason to back down to break the stalemate, it's the managers who need to deliver) if it goes to managers, it's not a veto and it contradicts the previous sentence (that managers don't vote)
|
# ? Mar 20, 2024 16:57 |
|
NihilCredo posted:ok then what happens after they use the veto? it sits unestimated, until whatever process handles overdue estimates kicks in
|
# ? Mar 20, 2024 17:01 |
|
someone with experience vetoing a low-ball estimate is fine, nobody should be sad about increasing the points on something due to some unknown additional complexity. complete nonsense to veto an estimate that's too high though unless you're literally doing all the work yourself, which management will never be doing
|
# ? Mar 20, 2024 17:18 |
|
NihilCredo posted:is that specific quote about planning poker? because "veto power" only makes sense in a yes/no vote yeah it's from a planning poker training thingy
|
# ? Mar 20, 2024 17:40 |
|
Jabor posted:though there's also the issue that someone ultimately needs to decide "is this even a thing worth doing", and often whether a thing is worth doing or not is going to depend on how long it takes. so it makes sense to do that after you've figure out your estimates. and if you're doing that then it does make quite a bit of sense for managers to weigh in at that point pretty much my entire job at this point consists of convincing both management and developers that we can determine the worth of the thing by doing less of it than they want estimates don't really figure into this, except to the extent that less thing should take less time. and when it doesn't, whoops
|
# ? Mar 20, 2024 18:23 |
|
also types are a compile-time feature and reflection is an abomination. a program leaking types makes about as much sense as a program leaking syntax
|
# ? Mar 20, 2024 18:25 |
|
DELETE CASCADE posted:pretty much my entire job at this point consists of convincing both management and developers that we can determine the worth of the thing by doing less of it than they want yeah this is related to “making estimates is work” which people often forget and which planning poker tends to forcibly ignore. virtually all interesting items have ambiguity that needs work (prototyping, research, measurement of existing systems, clarification with stakeholders or dependency groups like infra) to reduce to usable levels we have a whole “prototype” phase, for which I hate the name, but which is used to put together the estimate and plan for the “build” phase. our projects tend to be 2-3 weeks with 2-3 people, so not the sprint-level decomposition that people seem to like, but I’ve never been able to confidently decompose anything without doing at least some design work, and it’s better to do and capture that work explicitly than assume that everyone is on the same page (some places do try to pre-chew the work down to atomic, no-judgment-required elements, but outside of some outsourcing scenarios where that’s required, I’ve seen it fail more often than not when it’s time to put those pieces together in the end)
|
# ? Mar 20, 2024 18:30 |
|
DELETE CASCADE posted:also types are a compile-time feature and reflection is an abomination. a program leaking types makes about as much sense as a program leaking syntax types very often have runtime remains, such as when debugging or printing stack traces, but I agree that “leaking types” is sloppy shorthand for…something that probably has “Type” in its name, to be fair reflection is a very powerful tool for dynamically combining things, which is a very powerful tool for losing the ability to confidently reason about your systems; this creates opportunities for promotion-justifying rewrites and yet, I want the types of data coming out of my database to be reified because I might want to be “agile” across different variants during a migration, or otherwise adapt to a mismatch and recover (noisily!)
|
# ? Mar 20, 2024 18:34 |
|
DELETE CASCADE posted:also types are a compile-time feature and reflection is an abomination. a program leaking types makes about as much sense as a program leaking syntax I am extremely confident that there are codebases out there in production where syntax leaks are a real problem. maybe where someone did something stupidly clever with dynamic code generation in a language with lisp-style macros
|
# ? Mar 20, 2024 19:10 |
|
Soricidus posted:I am extremely confident that there are codebases out there in production where syntax leaks are a real problem. maybe where someone did something stupidly clever with dynamic code generation in a language with lisp-style macros there used to be a site, I think an eBay one, that would load some JS, decompile it to equivalent source, and then perform string substitution before recompiling and running it (decompilation was part of the standard because Brendan was being cute in 1995 when unsupervised, and the supporting machinery in SpiderMonkey, along with the related error-source generator, were the worst parts by far to work on)
|
# ? Mar 20, 2024 19:23 |
|
I assume "manager doesn't vote but can veto" in planning poker means they don't normally participate in the estimating (vote) except when they bypass it completely (veto). and I assume "veto" means "gently caress you voting's over we're using my number" there's no need for "experienced dev vetos lowball estimate" if experienced dev is participating normally, they just keep voting high. you don't stop until there's consensus
|
# ? Mar 20, 2024 20:15 |
|
DELETE CASCADE posted:also types are a compile-time feature and reflection is an abomination didn't expect to see a big fan of java's type erasure here
|
# ? Mar 20, 2024 22:10 |
|
pokeyman posted:there's no need for "experienced dev vetos lowball estimate" if experienced dev is participating normally, they just keep voting high. you don't stop until there's consensus consensus in these things often means “tired of fighting” as much as “we have come to agreement on the facts”, I think, but also it pushes down on “we need to answer these questions to give a good estimate” IME unless you toss it back into the backlog and instead schedule a task for “answer those questions”. I have not seen that practice in the places I’ve seen play poker
|
# ? Mar 20, 2024 22:42 |
|
I saw some memey image about js, and decided to replicate.code:
|
# ? Mar 20, 2024 23:35 |
|
what even is it trying to do with the empty curly braces? that ain't no valid pattern that I am aware of fake edit: oh it is literally converting {} to a string which in javascript is "[object Object]" and then it is testing against the regex pattern "/[object Object]/", so it's always true if the string you are testing contains an o, b, j, e, c, t, O, or space. lol polyester concept fucked around with this message at 00:00 on Mar 21, 2024 |
# ? Mar 20, 2024 23:56 |
|
|
# ? May 8, 2024 23:01 |
|
polyester concept posted:what even is it trying to do with the empty curly braces? that ain't no valid pattern that I am aware of yup indeed!
|
# ? Mar 20, 2024 23:57 |