The Official Status Thread
-
@tsaukpaetra It might work now, but not next year. It might work most of the time. It's not guaranteed.
Is it really that expensive to poll the clock and compare times?
-
@greybeard said in The Official Status Thread:
Is it really that expensive to poll the clock and compare times?
Not the point. This would mandate a change from "This user is banned from doing x, y, ... and z until abc" to "This user's banination from doing x ends abc, their banination from doing y ends def, their banination from z and ghi..."
At best I make a wrapper around the current model and translate them to datetimes under the hood (which will be copies of the ban end datetime) and (technically) run into the same locking issues when I go to update them later on.
I get 10x more implementation complexity and an order of magnitude worse performance in order to satisfy thread pedantry for a use case that isn't going to be used almost ever (in comparison to the rest of the things) and likely won't actually solve the original problem.
@greybeard said in The Official Status Thread:
It might work now, but not next year. It might work most of the time. It's not guaranteed.
If they manage to be connected for more than 24 days (the current limit of timer apparently) then I'd likely just manually pardon them for being so persistent.
If "most of the time" means "within a few cycles of the loop" that's 1000000% OK with me. If "not guaranteed" means it happens "sometime around a minute after it's set" that's 4700110% OK with me. If it never happens at all, that's 94% OK with me, because they'll likely be logged off and the timer destroyed anyways and whether or not it works is .
In all actuality, I don't really care if people get un-banned the microsecond it ends. I don't even care if they get un-banned until they log out and back in again. The only reason I'm doing it this way now is as a courtesy. Otherwise I'd just have it send a command back to the client with a "kick this user and let them auto-rejoin", which would have the effect of destroying their client representation on the server and reload it, and thus refreshing the variables. Since they're likely muted and deafened anyways they won't notice it, really, unless they were intently watching their social status menu for a flicker.
-
@tsaukpaetra Your synchronization model isn't particularly clear, but if you have the same issue with the packet forwarder having visibility of updates to the timestamps then you might have problems with it knowing about the ban in the first place.
-
@greybeard said in The Official Status Thread:
@tsaukpaetra Your synchronization model isn't particularly clear, but if you have the same issue with the packet forwarder having visibility of updates to the timestamps then you might have problems with it knowing about the ban in the first place.
That's basically my point. Arguing datetimes over bools makes no sense in this context. We're shooting trees in a forest, or something like that.
-
@tsaukpaetra said in The Official Status Thread:
@greybeard said in The Official Status Thread:
@tsaukpaetra Your synchronization model isn't particularly clear, but if you have the same issue with the packet forwarder having visibility of updates to the timestamps then you might have problems with it knowing about the ban in the first place.
That's basically my point. Arguing datetimes over bools makes no sense in this context. We're shooting trees in a forest, or something like that.
I'd argue that introducing threading in any context where you're comparing two word-sized integers is probably overkill.
-
@ben_lubar said in The Official Status Thread:
@tsaukpaetra said in The Official Status Thread:
@greybeard said in The Official Status Thread:
@tsaukpaetra Your synchronization model isn't particularly clear, but if you have the same issue with the packet forwarder having visibility of updates to the timestamps then you might have problems with it knowing about the ban in the first place.
That's basically my point. Arguing datetimes over bools makes no sense in this context. We're shooting trees in a forest, or something like that.
I'd argue that introducing threading in any context where you're comparing two word-sized integers is probably overkill.
And for the most part I'm not trying to do threading at all. It's just the nature of the program; every connection is basically a thread (as far as I can tell), which is probably the main source of my troubles in using WPF windows with these clients.
Even if I introduced it as a poll, it would still have troubles since the poll loop is by default on a different thread from the clients it would be polling against (I actually unravelled two such things that the previous guy made because of the problems they were causing, actually).
-
Status: I have no words. I'm just going to go to bed I think...
-
@tsaukpaetra said in The Official Status Thread:
go to bed I think...
Status: I really should have...
-
Just noticed I have 160 hours of leave built up and haven't been accruing any more since the turn of the year.
Shit... if my director notices, at some point I'm going to be put on mandatory leave. I don't have time for that.
(Then again, not having time for leave is how you get here.)
-
@tsaukpaetra I like the combination of learned helplessness ("you just do it, that way I know it'll get done right") and Dunning-Kruger ("it's the read head that's off track"-- shut the fuck up).
-
@tsaukpaetra said in The Official Status Thread:
set { _clientSettings.PropertyChanged -= ClientSettings_PropertyChanged; _clientSettings = value; _clientSettings.PropertyChanged += ClientSettings_PropertyChanged; }
ERROR
-
Status: "Replay events" and "Replay the event stream" - if you hear either of these said as a serious suggestion, RUN. Your architecture will kill you. Run.
-
@magus You're OK provided you're prepared for replaying 9/11 and the explosion of Krakatoa.
-
@tsaukpaetra said in The Official Status Thread:
I have no words.
Those are words.
Seriously, is this guy a cow-orker? Or a relative? If he's just a friend, not somebody you're stuck with, bail. You don't need friends like that.
-
@pie_flavor said in The Official Status Thread:
@lorne-kates said in The Official Status Thread:
bolded text****
If it makes you feel better, I don't fuck your mom to spite you. I do it because she's very good at having sex with many, many people. Sometimes at once!
-
@magus said in The Official Status Thread:
@tsaukpaetra said in The Official Status Thread:
set { _clientSettings.PropertyChanged -= ClientSettings_PropertyChanged; _clientSettings = value; _clientSettings.PropertyChanged += ClientSettings_PropertyChanged; }
ERRORIt resets the propertychanged handler for the underlying _clientSettings object whenever it gets reset. ;)
-
@hardwaregeek said in The Official Status Thread:
@tsaukpaetra said in The Official Status Thread:
I have no words.
Those are words.
Seriously, is this guy a cow-orker? Or a relative? If he's just a friend, not somebody you're stuck with, bail. You don't need friends like that.
He's one of my staffers "helping" me at the Con. He seemed OK at the time, but now he's kinda latched on (probably because I'm one of the few that will talk to him, natch).
I'll be working to de-string ties after the con, for sure.
Well, unless he can keep providing fun stuff like this.
-
@tsaukpaetra Could be worse, could be a con/event organizer I've heard reference of through some friends in some scenes. His event organizing company basically ousted him because of allegations of massive sexual exploitation
-
Status: GOD DAMN IT I DIDN'T REALIZE I GET A MATCH ON AFTER TAX 401(K) CONTRIBUTIONS REEEEEEEEEEEEEEEEEEEEE
-
statusbolded text****
fucking goddamn useless fukcing asp_merge.exe
"An error occured when merging assemblies, possibly due to circular dependencies between two assemblies".
Yes, nice, good and all but WHICH GODDAMN ASSEMBLIES YOU ASS-SHITTER?!?
Now I'm basically combing through the entire solution look for a circular dependency that ONLY shows up when publishing & merging to a single file (which takes ~10 minutes)-- not just a simple build.
FFFFFFFFFFFFFFFFF
-
@tsaukpaetra That doesn't make it not bad.
-
@magus said in The Official Status Thread:
@tsaukpaetra That doesn't make it not bad.
If I could declare it in such a way that property changed notifications automatically bind without that, would it be less bad? Because I never found out how to do that.
-
@tsaukpaetra I'm not sure you should be trying to do it in the first place. I clearly don't know what you're trying to accomplish, but knowing that much about child objects seems like it could lead to some messy situations.
-
@magus said in The Official Status Thread:
what you're trying to accomplish
Essentially, offload a settings object to a seperate class that I can serialize and deserialize (when unloading/loading the client), that has events that fire when the properties changed (INotifyPropertyChanged).
All those properties used to be part of the main class amongst state which I didn't want to save.
Is this really that alien of a concept? Perhaps I don't think in normal ways...
-
@tsaukpaetra I'd just directly bind to that child object, and have whatever you're doing just work... What I don't get is why the outer class is responding to the child's changes in the way it is.
-
@magus said in The Official Status Thread:
directly bind to that child object
You can do that?
Last time I tried, it worked once, and then never more (at least, as far as property changes are concerned). Which led me to the solution I made.
-
@tsaukpaetra As long as the property containing the child notifies when it itself changes, otherwise it'll forget if the child ever gets changed out.
-
@magus said in The Official Status Thread:
@tsaukpaetra As long as the property containing the child notifies when it itself changes, otherwise it'll forget if the child ever gets changed out.
I'll have to try it again then. Perhaps I did something wrong.... Well within the realm of possibilities if you ask me. ;)
-
Status: fucking Laplace transform, how does it work!?
-
@gąska said in The Official Status Thread:
how does it work!?
With numbers and operations on those numbers.
-
@tsaukpaetra I call bullshit. ℒ and ∫ aren't numbers.
-
@gąska said in The Official Status Thread:
@tsaukpaetra I call bullshit. ℒ and ∫ aren't numbers.
Sure they are! They're
NaN
numbers!
-
Status: Sure, RoboCopy...
-
I had the TFS / Build meeting today.
I managed to talk the guy into my position. However he did the thing of saying "Well this is your responsibility then" i.e. I can blame you if things balls up.
What a fucking cunt. No Blame culture my ass.
-
@lucas1 I'd interpret that as "I'm not taking the blame if it goes badly" rather than "I'll under-bus you if it goes badly." Slim difference, but less personally hostile.
-
@benjamin-hall It won't because I understand how to do source control. But it was a dick move and then the guy at lunch asks me whether I want to go for a work night out.
Err no, I don't like sitting in a pit of snakes.
-
Status: It is easier for me to rewrite C# syntax trees than figure out the correct way to add tooltips to typescript svgs.
-
@magus what is a typescript svg?
-
@lucas1 I'm making an SVG. The code is in Typescript.
-
@magus So you are producing XML from typescript is what you mean?
-
@lucas1 No...? I certainly didn't say that.
-
Scalable Vector Graphics (SVG) is an XML-based vector image format for two-dimensional graphics with support for interactivity and animation.
At some point you must be producing XML as SVG is XML based.
-
@magus said in The Official Status Thread:
Status: It is easier for me to rewrite C# syntax trees than figure out the correct way to add tooltips to typescript svgs.
I recently ripped out Typescript out of my project again. I lost more time to workarounds than I saved through being helped by types.
Didn't help that sometimes the proper types weren't easily discoverable (Events, I'm looking at you) and, also, the error messages from using the wrong type were downright unintelligible. With C# I get a "You are trying to shove an
int
where afloat
is supposed to go!"With Typescript I get a three page dissertation which sometimes is truncated before it gets to the part which actually matters.
Plus, writing a type definition file is black wizardry.
-
@lucas1 Cool story, but I didn't touch XML at any time in the thing I was doing. SVG is ultimately produced, but indirectly.
-
@rhywden It's Angular. It's just always going to be Typescript, but probably even weirder than normal.
-
@magus Your output is still XML. It doesn't matter what the inbetween is unless it doesn't work. Are you retarded?
SVG is XML.
-
@magus Angular is pretty decent. It is regular typescript. There is nothing weird about Angular.
-
-
@magus And that person is you.
-
@lucas1 said in The Official Status Thread:
@magus So you are producing XML from typescript is what you mean?
SVGs are only serialized to XML. They actually exist in a DOM.
TypeScript is perfectly capable at dealing with DOMs.
Do you ever get tired of being wrong about everything.