« first day (1726 days earlier)      last day (1454 days later) » 
00:00 - 14:0014:00 - 00:00

2:01 PM
@this Check the log - the project is enormous. Most of the time is spent in the resolver.
 
oh duh.
need more caffeine.
wait a minute - that log is missing parsing/resolving stuff
it only has few entries about inspections running including one taking 80 seconds. But that's not a part of parsing process (unless he's thinking it is)
@Comintern I noticed we have a number of stateful converters. I'm starting to wonder if they all need to start deriving from StatefulConverter or at least put them in /UI/Converters/Stateful?
 
2:18 PM
@this Second log.
 
gotcha
 
@this Already on it. That's where the question came from the other day about how to handle generics for WPF use.
 
Yeah, I figured so
I was thinking there were other stateful converters that weren't going to match that generic
 
The CodeExplorerSortOrderBooleanConverter is probably the only one that needs to remain a distinct converter though - that one lets you combine options.
 
Ugh, Microsoft. Why do you even make me restart your stuff just becase you faceplant on your cache?
 
0
Q: Assign resource to task list, must account for wait time

lauraoc7I have a list of tasks and a limited amount of resources available, I want to assign the resource to a task, based on its availability. I've written the code to assign the new available time to each one based on their previous task, but I need to add a "wait" for the next available and assigns t...

 
3:20 PM
mornin
i wish i could comment and let that guy know
he probably should put it on stackoverflow
 
we have a poet
and he doesn't know it
 
i didnt lolol
 
3:39 PM
to know is to go with the flow
 
Q: Do I need the Me keyword in class modules? A: I answered in a comment, then here's some other code that's completely unrelated to your question as asked. I'm not sure I follow. — Comintern 6 secs ago
FFS
 
In that case, to not know is to to go against the flow
 
4:19 PM
Looks like AV faceplanted on Greedquest's PR. Considering that there's no code artifacts to change, override it?
 
Yeah, I don't see why not. Curious what AV didn't like.
 
I don't think it actually even ran
 
Yeah, the "Expected — Waiting for status to be reported" is odd.
 
history doesn't show it have ever queued
 
4:26 PM
Revert capitalisation of Log/log

Lowercase looks better I think
Merge pull request #4829 from Greedquest/patch-1

Minor corrections to bug_report.md
 
I don't think it can possibly queue that kind of PR
 
@this Regarding your efforts to stop the commands from accessing COM stuff on shutdown. Could you hold off from changing the refactoring commands?
I am in the process of completely rewiring them.
 
I have not yet touched the refactoring commands.
and I can skip them over - the change is mainly using a new derived class and updating the ctor but otherwise no change to the command's implementation.
 
If your PR comes in earlier than mine (very probable), I will add the changes there.
 
Very well
 
4:45 PM
@Comintern It didn't even run in the first place because markdown changes are not triggering AV
 
I've been also taking the opportunity to refactor the tests - it has far too much newing up going on so I've been consolidating them into a set of overloaded functions to return the object rather than directly newing it up.
@Vogel612 yet GH think it's required.
 
omfg maven is literally inventing compilation errors now
@this it is on GH's side
 
@Vogel612 Skynet is rising!
 
@FreeMan Well, maven is like a writing desk.
 
oh well. mvn clean compile fixes the mess
 
4:51 PM
That's what it wants you to think...
 
5:01 PM
@this I am reworking the tests around the refactorings and their commands as well.
 
:+1: i will make sure to not touch refactoring tests as well. So far, my work has been in UI\Commands only.
 
I'm getting the hang of these CTEs. Thanks, @this!
That and a CASE WHEN x BETWEEN y AND z are helping to streamline a bunch of queries
 
5:34 PM
0
Q: Class containers, filtering and coding practices

FlameHorizonContext Usually, when I have to deal with a collection of items (especially objects) I tent to create a container class for that collection (wrapper?). What I mean by that is: when I have to handle multiple clsCars objects I collect them inside clsCars class. Building blocks clsCar Private...

 
5:57 PM
Working on my own code has made folder structure intuitively :click:.
Makes sense why others at the pond #MoveAllTheThings as part of refactoring.
 
6:14 PM
So, we cut over our stage systems to Azure last night at 4/5PM (forget which).
Still unable to access the new stage sites.
Some people seem to be able to, but not all of them.
Our dashboards are down, so nobody but the inner circle has the links to get to the sites.
The DB connection strings are all changed, and not everyone has even read access to the DB (including me).
I'm just glad the old stage DBs are still up, because I can work and test against them as necessary until the new version gets up.
It's gonna be uber-fun when we cut prod over.
 
"We're experiencing minor technical difficulties. Please stand by."
(notice how it's always "technical"? You never hear them cite "personnel difficulties" or "motivation difficulties" or whatever)
 
Well, in our case, it is technical. At least, on our side.
Everyone's on-call during the cut-over, even if they are on vacation.
And I'm pretty sure all of us are pretty eager to have it working...
 
At least it's just staging - hopefully your people will have a script to deploy to the testing & production to avoid those problems
 
Some of our clients might have motivation issues. As a matter of fact, part of the prod cutover is moving some of our systems from being managed by DataLink to Virteva.
DataLink has motivation, personnel, and know-how issues.
Also, staging is testing.
We won't have a script to move prod other than what we are using to move stage.
Or rather, staging is supposed to be testing.
 
meep!
I usually insist on a deployment script
 
6:23 PM
Except we have a very small QA team, and the client contacts are supposed to test the site.
 
otherwise, it's too easy to forget that one little crucial step
 
@this We are going to set it up side by side and test it locally first.
Then, we are supposedly just going change which servers the URLs point to.
Oh, and we were supposed to be live on prod by the 16th this month.
It's the 16 next month for now...
Anyway, the client contacts (our people--the ones the clients contact) are supposed to test the sites they are responsible for.
Except, they aren't computer people, they are mostly glorified tech support people that set up the site. They don't know how to test.
So we get bugs caught on prod regularly. Although, less regularly now that we have a more competent QA lead.
 
6:40 PM
its fun making the people who request applications from me test them
:D
 
6:59 PM
@QuackExchange ugh. That can't compile!
 
WITH SurveyResults AS (
 SELECT RecommendNPS,
 CASE
  WHEN RecommendNPS BETWEEN 0 AND 6  THEN 'Detractor'
  WHEN RecommendNPS BETWEEN 7 AND 8  THEN 'Neutral'
  WHEN RecommendNPS BETWEEN 9 AND 10 THEN 'Promoter'
 END RecommendGroup
 FROM SatSurvey
 WHERE CollectionDate between '1/1/2018' AND '12/31/2018'
 AND RecommendNPS IS NOT NULL
)
SELECT NPSG.Answer, count(SR.RecommendGroup) HowMany
FROM NPSGroups NPSG
LEFT JOIN SurveyResults SR on NPSG.Answer = sr.RecommendGroup
GROUP BY NPSG.Answer,NPSG.SortOrder
That query gets me:
Detractor     20
Neutral        15
Promoter   100
But I'd like to have:
Detractor     Neutral    Promoter
           20           15           100
 
do you really need to pivot in SQL?
That's a reporting concern.
 
i.e. one row of 3 columns instead of 3 rows of 1 column. Is there a simple way in sql to pivot?
 
@this #depends
 
7:10 PM
Agreed but it should be done at reporting layer whenever possible, which is why it's my first question.
 
based on the way the rest of the report is being generated, pivoting in SQL will be much easier.
 
fair enough :)
 
is it dynamic, @FreeMan?
or will you always have 3 columns?
 
nope, always be those 3.
at least until someone changes their mind, but it's been that way for years.
 
I generally pivot in SQL so I don't have to constantly run downstairs and show the people I run queries for how to create a pivot table in Excel...
 
7:12 PM
^
 
I usually automate the excel report so they don't have to ask but fair enough.
then you can just pivot it w/ hard-coded columns.
 
^ too. Report is automated, but I'm running into inconsistent issues and this seems a simpler fix
 
usually something like PIVOT ( MAX(HowMany) FOR [Answer] IN ([Promoter],[Detractor], [Neutral]), IIRC
 
@this Oh, sure - but I find it easier to maintain if it's just saved in a view.
 
ah. OK. I've got an UNPIVOT somewhere I can borrow from, then it seems.
 
7:13 PM
this works as long there is only one possible combination of answer/howmany, mind.
 
there should be. If not, a big blow up is OK - it'd be a fairly obvious sign something's changed that shouldn't have.
 
yeah
 
try
  'do work
catch
  'find all the little bits from the nuclear explosion
finally
  'exit bomb shelter
 
I also pivot quite often in SQL. Primarily, because I abuse SSMS as a reporting tool, because of the lack of a better option at hand.
 
I generally just build a pivot table in the Excel report, which means the view to feed the report stays simple and won't break if they add a new category to pivot on. I either use a data connection to the view or in case where they don't/can't have data connection, dump the data into a table in a hidden sheet and use that as the source for the pivot table. I can then make the pivottable non-editable.
(for some values of "non-editable")
 
7:26 PM
For the reports we provide to other departments, we also have a somewhat proper setup. I just abuse SSMS for the reports I need myself.
somewhat as in an Oracle DB with a lot of stored procedures periodically fed by the main SQL Server and report generation via a lot of VBA on Access producing Excel reports.
 
Yes, automating Excel tends to be quite verbose. It became a big problem enough at one of our client that we took to a table-driven model. We'd have a stored procedure that returns multiple recordsets (I think 3?) that would describe how to set up the Excel pivottable. That enabled us to customize Excel pivottable just by modifying the SQL Server stored procedure without having to touch the Access front-end generating the report.
 
Oh, I did forget to mention that the main SQL Server is fed daily from an SAP system.
One of the problems with the Excel reports is that some of them have really annoying formatting requirements.
And those cannot change because (some) people do not like change.
 
yeah, that might not be worth the code changes if they'll complain about the changes. With our client mentioned, they keep asking for more and more and invariably wants it pivoted in one or other form. We realized that we could just describe the formatting and layout we wanted since they are just "data". That made it much less painful to add a new pivottable report. Creating a view and inserting some data in the metadata tables is all that's needed to enable it.
SO doesn't let you edit comments?
 
7:43 PM
Sure it does. It's just time limited.
 
Seems arbitary.
considering that questions/answers can be always edited.
 
Meh, just delete it an re-comment the edit.
 
I think that's actually worse .
 
@this questions/answers are first-class citizens. comments are not
 
^ They aren't really intended to be permanent in most cases.
 
7:45 PM
comments are supposed to only exist to request clarifcations
or waffles.
 
Mmmmm... waffles.
Sometimes I wish you could downvote comments though.
 
Yeah, until they make a thread out of it, so now deleting would make it read weird.
 
nope
they're just all moved to chat
happens quite often actually
 
hasn't yet.
 
needs a moderator flag
ok, going nuts over this. can someone explain this?
        SageCategories = new ObservableCollection<ICodeName>(_service.SageCategoryCodes());
^ works fine
        var codes = _service.SageSizeCodes();
^ has 5 items
        SageSizeCodes = new ObservableCollection<ICodeName>(codes);
^ has 0 items
wtf am I missing?
oh, I'm an idiot
                    foreach (var item in _sageSizeCodes)
                    {
                        _sageSizeCodes.Add(item);
                    }
setter is iterating its backing field
phew
</rubberducking> carry on :)
 
8:17 PM
@pond Thanks again for all the help over the last 2 years. CLI, git, and lots of other concepts now feel natural.
I daresay it's now fun to use CLI to commit files and work on a codebase.
 
@IvenBach who are you and what have you done with IvenBach?!?
 
I know. I had that thought a couple days ago.
Y'know It was bound to happen at some point.
 
Indeed.
Keep climbing the hockey stick!
 
> Talent is a pursued interest. Anything that you're willing to practice, you can do. - Bob Ross
> It is shocking to find how many people do not believe they can learn, and how many people believe learning to be difficult. - Princess Irulan
 
Sigh, I feel like SO is a flamebait sometimes.
 
8:21 PM
> We don't make mistakes, just happy little accidents. - Bob Ross
Bob Ross should talk to my boss.
I've made some little accidents that were happy AF in my time.
 
@Comintern Watch season 2 of the Joy of Painting. IIRC all the artwork used as templates the night before recording were stolen. Everything he painted was live and without reference.
 
Oh, I don't doubt it - he's actually a very talented painter.
It's the philosophy that isn't universally applicable.
 
8:41 PM
from TestEngine:
> public bool CanRun => AllowedRunStates.Contains(_state.Status) && _vbe.IsInDesignMode;
shouldn't that be !_vbe.IsInDesignMode?
 
I wondered that myself, but I thought there was a reason for it.
It got switched with commit 2daeca8a.
 
and that was apparently to fix a bug as reported in #4370
still reads weird, though.
 
Huh. That doesn't look related to the rest of the issue though.
 
hmm. I think I get it now - we do want it to be in design mode.
because it's not, it's in break or in running
neither which we want to run the test engine.
 
:facepalm:
 
8:51 PM
IKR?
did not realize until now that the meaning of "design mode" is now overloaded
 
Probably by design.
 
Pretty sure by lack of design.
 
@Comintern Which philosophy is that?
 
@IvenBach The philosophy that " mistakes are happy little accidents".
 
Gotcha.
I've been known to tell people "Happy little accidents, those are called siblings."
Many a frown have been given to me over that one.
 
9:03 PM
LOL
 
I can't be blamed for other peoples parents not getting it right the first time.
Back to CLI, git, and refactoring fun.
 
Web Applications SE? How long has that been around?
 
quite a while
 
@Comintern ever since people wondered whether they should use vanilla JS instead of jQuery?
 
Huh. TIL
 
9:13 PM
@this They should use neither.
 
@mansellan you have to admit, there's a recurring trend where the sucky languages gets to last the longest. We're still stuck with COBOL, C++, VB* and JS is just joining the club.
I suppose Java is kind of in the club, too.
 
waiting on webassembly. then JS can go away, and not be missed.
 
Java might be a little different. At least in my experience, it's hard to keep running for months as opposed to years.
 
But you ain't going to hear anyone going "yuck! I got a hand-me-down {lisp | smalltalk | schema | other hipster language } project "
 
@Comintern depends on how you define running... but there's OSGI for hotloading of applications
 
9:23 PM
At a former employer we had to play Run-time Roulette all the time - pick a run-time, see what busts.
 
@Comintern even on a web server? I think Java as a desktop solution is quite rare and usually short-lived.
 
so... it's theoretically possible and plausible for enterprise apps to run while being upgraded
 
Oh right, I'm talking about the ability of a bunch of different Java applications to co-exist for any given length of time.
 
IIRC you can have multiple JVMs side by side. If you're insane.
One is too many.
 
Or sane. That's the scary part.
 
9:25 PM
Yet, Minecraft is (was?) popular in spite of Java
 
@Comintern so long as you're not using CORBA to interact between these applications, you should be good
 
That reminds me, I must disinfect Java from my home laptop. Had to install it for a university course :-( I really must get into the habit of using VMs...
 
@mansellan you know that Larry is going to be looking at you with a disappointed face. Might even run you over with his yacht.
 
eek!
@this found a legit use-case for PS: theregister.co.uk/2019/02/26/malware_ibm_powershell
(for certain values of 'legit')
 
you know that the reaction is going to be "DISABLE ALL THE THINGS!" followed by "Oops we can't because...."
Really, the only protection that works is to... unplug.
 
9:49 PM
Duck check: When Excel is in another language the functions like VLOOKUP, INDEX, MATCH, etc... are they in the target language?
 
AIUI, sort of.
in the UI, yes, it'll be.
In VBA, uh, no.
 
@IvenBach RECHERCHEV, INDEX, EQUIV, yes.
 
But if I'm using a formula ="R"&row()&"C"&column() to populate values I'd have to update that...
 
yup.
Don't use R1C1
 
i8n is not easy.
 
9:50 PM
it's L1C1 in French :)
 
isn't there a LocalName property for that?
 
<~~~ Ignant 'Murican
I have never had a need for non-english compatability.
 
TBH I haven't used VBA to write formulas in years ...starting to think it's an anti-pattern or something.
 
I'm told that porting an Office document between two locales is... problematic.
 
I can see why.
 
9:52 PM
it "just works" if the formulas are just formulas. if they're hard-coded in macros.... yeah, problems.
 
This is for my VSTO I'm using to help teach myself more C#.
Converting my PMW functionality over.
@MathieuGuindon Any suggestion how to #DoItRight?
I confess disliking _currentSelection.Formula = "=\"R\"&ROW()&\"C\"&COLUMN()"; but don't know of another way to accomplish it.
 
hmm
Not if your Office installation is RU-RU or anything but EN-US. However, myRange.Formula = "=ROW(mySheet!$12:$12)" will work on any system. (do not use Set to assign a formula) — user4039065 Mar 1 '16 at 14:18
I need to play with this
ok that is funny
"is your entire spaceship is going to suffer a sudden and gratuitous existence failure" I can't stop laughing. As for the crew, and quoting a other What-if: they "wouldn't die of anything", they would just "stop being biology and start being physics" — Barranka yesterday
 
10:23 PM
@IvenBach Have a look at the documentation. One of the formula properties states that it is for RCW formulas in the language of the macro.
That is always English.
 
I should have checked documentation first.
 
There is another one for the language of the user/applications, which is the useless one with the localized function names and address format.
I think FormulaRC or something like that is the one you want.
Btw, RC formulas are a lot more convenient.
 
10:39 PM
> That refreshing scheme makes sense

Yes two minutes on subsequent refreshes. For example when I did the first refresh and then added the line "a=1" it took 1:55 to refresh again. And that is not referenced anywhere else. Might my system be doing a full refresh each time rather than incremental?

That's sort of why I thought you only needed to refresh once; because it seemed impractical to be refreshing frequently.
 
I'm a bit fuzzy about the ICommand lifetime - there is no explicit registrations for them in the CW so I'm guessing it's singleton. Is that the case?
Figures. After asking the question, I find the procedure. I was looking for ICommand but it's registering using Command and it's transient.
 
11:03 PM
The thing is that we basically have to register CommandBase because ICommand is not our interface but WPF`s, which might be used all over the place.
 
11:14 PM
Gotcha.
The tests has so many news going on...
 
We generally new up the instance under test.
and to do that, we require all dependencies.
The problem is that most test fixtures do not centralize getting the test instance into a single method.
 
yeah - I'm refactoring those into static method(s) to provide the arrangements for all dependencies, so that test don't have to new it up directly but rather provide only the dependencies it needs for its test
 
For the refactorings, I will do something like I have done for the quick fixes.
There will be methods available to get the refactored code based on input code and selection.
The individual fixtures only have to override the method providing the actual refactoring instance.
Well, of course there will be the odd ones I will not refactor. Namely, the ones using an IMessageBox.
 
funnily enough, I just ran into a test that needs to verify a messagebox. That does complicates the overloading of the static method approach I was using.
 
11:33 PM
@this That's kind of why I've been leaning toward "test harness" objects like MockedTestEngine - it makes it a lot easier to expose all the miscellania that might need more specific mocking or verification.
 
In my case, the message boxes that need to be checked should ultimately be extracted from the refactoring in one way or another.
It is not the refactoring's job to know how to get confirmation from the user.
 
@M.Doerner Regarding your comment on #4814, were you proposing adding a try at the site of the invocation?
 
00:00 - 14:0014:00 - 00:00

« first day (1726 days earlier)      last day (1454 days later) »