« first day (1804 days earlier)      last day (1376 days later) » 

12:01 AM
RELOAD!
[bruglesco/FleetCommand] 2 commits. 41 additions.
[rubberduck-vba/Rubberduck] 1 opened issue. 3 issue comments.
[Minesweeper] Games Played: 108, Bombs Used: 60, Moves Performed: 14665, New Users: 10
 
 
2 hours later…
2:21 AM
> Losing the attribute should be fixed, but @ThunderFrame's idea should still be implemented:

```vb
'@HotKey("T")
Public Sub DoSomething()
Attribute DoSomething.VB_ProcData.VB_Invoke_Func = "T\n14"
End Sub
```

The hotkey string/character is case-sensitive, and the <kbd>Ctrl</kbd> modifier is implicit. The attribute value simply needs to take (+validate) that character, append `"\n14"` (which presumably stands for the <kbd>Ctrl</kbd> modifier key).
> Losing the attribute should be already fixed now, but @ThunderFrame's idea should still end up being implemented:

```vb
'@HotKey("T")
Public Sub DoSomething()
Attribute DoSomething.VB_ProcData.VB_Invoke_Func = "T\n14"
End Sub
```

The hotkey string/character is case-sensitive, and the <kbd>Ctrl</kbd> modifier is implicit. The attribute value simply needs to take (+validate) that character, append `"\n14"` (which presumably stands for the <kbd>Ctrl</kbd> modifier key).
> Actually the annotation should be @ExcelHotKey, since it's apparently Excel-specific. stackoverflow.com/a/36961298/1188513
 
 
1 hour later…
3:34 AM
> **Justification**
Unless you're recording your macro, assigning a hotkey is annoying. So annoying, that most give up the obscure declarative (attribute) syntax and resort to a much less maintenance-friendly dynamic solution involving `Application.OnKey`.

Linking #3348.

Now that Rubberduck can add & modify member attributes and keep them in sync with annotation comments, implementing this should not only be fun and fairly trivial, it's also a very useful and rewarding feature to write.
 
@Duga That looks tasty.
I may snag that for myself. After my WIP are completed. Only 1 bite at a time.
 
4:03 AM
[rubberduck-vba/Rubberduck] SonGokussj4 pushed commit c837169d to next: added czech transl for missing strings; few eng fixes
[rubberduck-vba/Rubberduck] SonGokussj4 pushed commit 9752df76 to next: Merge branch 'next' into czech-transl
[rubberduck-vba/Rubberduck] SonGokussj4 pushed commit a25400a8 to next: czech transl for While...Wend loops
[rubberduck-vba/Rubberduck] SonGokussj4 pushed commit 20ee7cab to next: Merge branch 'next' into czech-transl
[rubberduck-vba/Rubberduck] SonGokussj4 pushed commit 961e62be to next: fixed some typos
Merge pull request #4958 from SonGokussj4/czech-transl

Newest Czech translations
> Version 2.4.1.37597
OS: Microsoft Windows NT 10.0.17763.0, x64
Host Product: Microsoft Office x86
Host Version: 16.0.11601.20178
Host Executable: EXCEL.EXE

**Description**
Collapse and expand buttons for grouping expand all and collapse all.

**To Reproduce**
Steps to reproduce the behavior:
1. Have inspection results.
2. Click on a grouping header to expand/collapse that header.
3. See all headers expanded/collapsed.

**Expected behavior**
Each header will expand/collapse ind
 
@Duga Forgiveness if already reported.
Better a bug twicely reported than never and forgotten.
 
> ref. #4954.

WIP - still need to make the `<code>` blocks better defined for the website to format properly:

```csharp
foreach (var example in Model.Examples)
{
<p>@example.Text</p>
<div class="code-area">@example.Code</div>
}
```
 
@IvenBach thanks!
 
@MathieuGuindon With me having crossed the streams for PR4956 you think it best to just redo it or cherry pick from a clean branch?
:le-sigh: I'll one day get git figured out right.
 
it's up to you - makes a good git exercise, but I wouldn't reject the PR for it
 
4:41 AM
[rubberduck-vba/Rubberduck] build for commit d0367185 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `94.74%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit d0367185 on unknown branch: 64.52% (target 0%)
 
@Duga woot, it builds!
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `94.74%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
 
Declaratively adding hotkeys to an #Excel #VBA macro is a bit ...arcane. How about making a new Rubberduck annotation instead? '@ExcelHotKey("A") Public Sub DoSomething() '... End Sub #CSharp #OSS #UpForGrabs #Contribute #YouCanDoThis https://github.com/rubberduck-vba/Rubberduck/issues/4959
Czech translations are now all up-to-date in the latest pre-release build: https://github.com/rubberduck-vba/Rubberduck/releases/tag/Prerelease-v2.4.1.4704 Thanks again @SonGokussj4CZ! #OSS #localization #kudos
 
 
1 hour later…
@MathieuGuindon The PredeclaredIdTemplate should stay. It is our only template at the moment. Moreover, it does not hurt to have it.
 
 
4 hours later…
9:43 AM
@IvenBach I'd prefer if you cherry-picked from a clean branch
I'm happy to provide assistance with that :)
 
@Vogel612 I’ll ping you about that when I’m actually awake and at work. #TacoTuesdayInducedInsomnia
I tried my best and couldn’t fix it solo.</iven>
 
 
4 hours later…
2:20 PM
Gents, if any of you are doing IT based stuff... blogs.technet.microsoft.com/msrc/2019/05/14/…
this one is pretty bad
 
2:43 PM
and it's not affecting "in-support" versions
 
Other than Win 7. And they issued a patch for XP...
Pity. XP can't bite the dust soon enough.
 
it's frankly a miracle that XP is still around
Win7 is not generally supported anymore, IIUC
 
It's on extended support until 2020.
Which includes security patches, but no new features.
 
3:18 PM
1
Q: IoC container for VBA

schwarzHad a nice read about DI here in VBA: https://rubberduckvba.wordpress.com/2016/07/05/oop-vba-pt-2-factories-and-cheap-hotels/ So now the next step would be use an IoC container in VBA. But I am wondering if that's even possible! I'm new to VBA and I cant figure out a few things: If done in VB...

 
^ an ambitious task....
 
3:45 PM
> I submit that if you've reached the point where an IoC container makes sense for your VBA project and you understand everything about DI and SOLID and write your code accordingly... then [not to take anything away from VBA but] my assessment is that you're completely ready to move on from VBA and work with more OOP-capable languages, such as VB.NET or C# - and use everything you've learned about OOP in VBA [...]
Oh, the irony. The "VBA is a perfectly fine OOP language" guy just said "if you know OOP, move on from VBA"
 
I also would imagine that if any other person who knows only VBA picked the project up would be all "WTF" 100x every minute.
 
"knows VBA" as in, "used it for 20 years without ever needing to make a class module"?
 
4:01 PM
yeah
there's lot of Morts out there
and I bet you they'll say "this is a mess. let's just scrap and start all over" and rewrite everything.... procedurally
 
IKR?
hmm. I wonder if we'd have seen the same mindset from a say, a C++ developer....
i still remember vividly the big WTF moment when I first encountered IoC/DI at work.
 
@this Woot! That mean's I'm not a Mort.
 
I think that's been long ago established the day you returned to the pond on day #2
Morts usually either a) doesn't even know there's a pond or b) stumbled once in their aimless wandering and kept on wandering, discarding any help or answers given
 
I'm too lazy efficient to be a Mort, and not smart enough to be an Einstein.
@Vogel612 How's your availability today for cherry-picking help? I have to clear my plate right now but I anticipate time in an ~hour.
 
4:12 PM
sure. in an hour is good.
just ping me again :)
 
Will do git guru :wink:
 
 
1 hour later…
5:19 PM
Heh, I just looked the personas over again. I'm mostly Elvis with a dash of Einstein when I'm not too tired/burned out.
Sorry, @IvenBach, work didn't take you.
I was just invited to sit in on the second-phase interview for someone else.
 
@Hosch250 are you sure that sitting in on the second phase interview for someone else does imply that?
just wondering, because I never had multi-phase interviewing
 
@Hosch250 It happens.
I'll keep using free time at work to keep deving and improving my skills.
 
@Duga -7 ...dang how do they do this.
 
@Vogel612 He interviewed a few months ago, and this company moves faster than that.
They said they just phone-interviewed this person and they sound good.
 
5:26 PM
ah, okay.
Did they not send out a rejection?
 
Next phase is the on-premise interview.
No, apparently they didn't.
I wouldn't know, TBH, because I was hired first try. I never heard that Iven got a rejection.
 
companies like that are the worst. Just ghosting people that you interviewed is not a good thing.
 
FWIW, even MS did that to me.
 
yea, I assume it's a liability thing
 
Sam Harwell said they got back to him with some really good information when he failed.
But, I never heard back.
(Yeah, Sam Harwell failed an interview at MS once.)
 
5:29 PM
@Vogel612 that's... 99.999% of companies in my [little job-hopping] experience
 
Oh, you guys might be interested in the presentation I created: motivactionllcus-my.sharepoint.com/:p:/g/personal/…
 
I can understand not hearing back for a resume, but after an interview I'd expect the company to send at least some indication that they're not interested...
 
come to think of it, I don't recall the last time I interviewed without landing the job
heck, HR doesn't even have my resume here
 
How do you know?
Someone might have given it to them :D
But, TBH, they don't keep resumes anyway, from what I've seen.
 
the CEO gave me a phone call one day, said "you want to come over for an interview?"
 
5:32 PM
It's not really useful once you have the job.
 
had the gig before I even set foot in the building
 
How'd the CEO know you?
 
from a previous job 10 years earlier
 
Oh.
I was thinking maybe it was your rich uncle, or something :P
 
lol nah.. tbh I'm scared to death of what happens if I have to start looking
 
5:35 PM
You'd do just fine.
I'm not worried. I'm open to relocation, and I've got a reasonably large savings account.
 
@MathieuGuindon Scared of what?
You got brains and looks. What more could you want?
 
IDK, taking a $10K-$20K drop to avoid being forced to work on-prem downtown (and thus keep my sanity), while being the sole source of revenue for the family... stresses the crap out of me :)
 
One day I hope to have the leverage to work from home.
 
5:55 PM
@MathieuGuindon interview at SE for a CM position or "head of internal tooling"
@IvenBach what's the status on the git thing?
 
Right now I have a branch checked out for Issue2947 with changes not staged for commit.
 
@Vogel612 LOL SE employs brains like Nick Craver and Marc Gravel... I'm #NotWorthy
 
@Vogel612 IIRC switching branches will still have those pending changes brought along too.
 
@IvenBach correct
 
@MathieuGuindon We're here to inflate your ego. Go for it!
 
5:57 PM
although, I could probably help fixing their stupid swag spreadsheet
assuming they haven't ditched it already
 
@Vogel612 Do I stash those changes or create a commit that will eventually be squashed?
 
well ... do you need those changes?
 
I will as it's current progress on 2947
 
then do one of these things :D
it's easier now to commit, but easier later to stash, assuming you don't forget you have the stash
 
I stashed them inadvertantly when trying to just view the stash.
 
6:01 PM
well, that means they're stashed now, congrats :)
check out a clean branch to cherry-pick the commits to. the name doesn't terribly matter, so long as you check it out based off of an updated next
 
mkay clean branch checked out.
What I don't know how to do is cherry pick from another branch.
 
git show HEAD is at "Merge pull request #4958 from SonGokussj4/czech-transl"?
 
Correct.
 
aight. git cherry-pick takes "commit-ish"s
so that can be a branchname, tags, or hashes
we want hashes, because everything else is a bit confusing
 
Do I use git reflog to figure out which hash I want to cherrypick?
 
6:05 PM
no.
git log does that for you. You basically only need reflog when you broke something
reflog is basically the undo stack for git
seeing your PR I assume you want to have the commits "Replace literal string in favor of nameof()", as well as "Add filtering for TestExplorer" and "Sort filter list"
 
git log only has the history for the current branch. It shouldn't have the commits.
 
when you look at these in the GitHub UI, there's some small grey text to the right
git log can do --all and takes an entry-point argument. it can list the history for any branch :)
git log Issue4149_TestExplorerFilter
^^ should work just fine.
the GH UI already tells us what we need to know though.
 
what does the Issue4149... correspond to in git log [<options>] [<revision range>] [[--] <path>…​]?
 
revision range
 
mkay. Thanks. I still struggle with documentation.
used git log Issue4149... and have the results listed.
 
6:10 PM
so the commits you want. you see them in the output?
they will show the commit hashes
 
Yes. Do I need the full hash or can the last 7-10 chars work?
 
you need a unique prefix
 
Not understanding.
Do I have to prefix it with something?
 
no.
consider a repo with the following commits:
aaaaab
aaaaba
bcaaba
if you said git cherry-pick aaaa, git wouldn't know which commit you refer to
because it can be one of the first two
but if you say git cherry-pick b, git knows
usually the first 5-7 characters are enough to identify a commit
 
Is it typical to start with the first characters?
git cherry-pick aeca695af is what I was going to start with to grab the commit "Replace literal string in favor of nameof()"
 
6:14 PM
that won't work. at least not the way you expect it to
you can use git show to have it tell you what commit that refers to
in this specific case, it's not referring to anything
you need to start at the start of the commit hash
that commit's full hash is f614a80524ef365c6601ac5d376540daeca695af
 
just tried git show aeca695af and ambiguous argument
 
so you start at the start and take a handful of chars: f614a80
 
Is there an easier way to use GitBash to copy paste?
 
you could even go as far as using only f614a, that's still unique
@IvenBach not use windows?
don't know, I usually got along okay with it.
 
I am on Windows but use GitBash because it lets me go back farther.
cmd.exe has a limitation of only so many lines.
I'm just used to GitBash now and using that over cmd.exe
 
6:18 PM
I like that :)
did you understand how it works now?
 
I use cmd.exe still.
 
git show f614a805 does display the changes
I think I have enough breadcrumbs right now.
 
I never hit the limit of the up arrow to go back.
 
@Hosch250 It's not about the command history, it's also about the output history.
 
^
 
6:19 PM
Wait, cmd.exe has like 10k lines, or something. How would you fill that up?
 
mumble mumble shrug mumble PEBKAC. This is me we're talking about. I habitually FUBAR things.
 
LOL.
 
I need to make a shirt for myself:
> His PEBKAC be 2 stronk
 
6:31 PM
@Vogel612 :derp: that explicit callout makes me see it now on the PR page. :+1:
 
the GH UI has tons of information in it, if you know where to look
they did a really good job on it, IMO
I do have github refined though, just to cram some more information into that UI :D
 
yeah.. I'm still working on it all. Sadly I feel like I need the explicit breadcrumb before things start falling into place.
Lets see about pushing this cleaned up branch to my PR branch. Wish me luck.
 
git push has the following syntax: git push [remote] {localBranchname:}[remoteBranchName]
 
#MakesMyDay
 
i wish there was a git punch command @Vogel612
 
6:38 PM
Guess I'm in trouble now.
 
@Hosch250 huh? whatchu do?
 
Work is resort-casual from memorial day to labor day.
Business-casual the rest of the time.
I wear blue jeans to work in business casual. That's OK...
Even badly faded ones.
 
i wear blue jeans and some sort of shirt every day
as long as its not holy
 
But khaki shorts of the most business-like type available? Nope.
Not until memorial day.
 
and yes i meant to spell it that way
 
6:40 PM
@KySoto LOL.
 
xD
 
this was literally the first time I heard "resort casual"
 
Id prefer not to burn you see
i think i just have to come to work in clothing that is whole, and no shorts
 
for safety reasons
 
6:41 PM
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4956?src=pr&el=h1) Report
> Merging [#4956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.03%`.
> The diff coverage is `31.03%`.


```diff
@@ Coverage Diff @@
## next #4956 +/- ##
=========================
 
@Duga @Vogel612 Does that comply more with your standards?
 
YES!
very nice, I like :)
 
Thanks for the help.
 
What I should do is put on my Hawaiian shirt to finish the day :D
 
6:45 PM
(Work gave it to me, so I just threw it in my cube.)
 
@IvenBach I think the ICollectionView Tests should be modified in the constructor not only to have SortDescriptions but also FilterProperties. That should change the way you wire up the filtering a bit...
I'm not 100% sure how it works, but setting the Tests.Filter every time seems wrong to me.
the LiveFiltering property seems related here
 
7:07 PM
[rubberduck-vba/Rubberduck] build for commit c3e86730 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4956?src=pr&el=h1) Report
> Merging [#4956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.03%`.
> The diff coverage is `31.03%`.


```diff
@@ Coverage Diff @@
## next #4956 +/- ##
=========================
[rubberduck-vba/Rubberduck] build for commit c3e86730 on unknown branch: 64.5% (target 0%)
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4956?src=pr&el=h1) Report
> Merging [#4956](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4956?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.03%`.
> The diff coverage is `31.03%`.


```diff
@@ Coverage Diff @@
## next #4956 +/- ##
=========================
 
7:33 PM
 
8:14 PM
 
so the gist of it is: TrendMicro, Norton and McAffee AV source code has been compromised?
I'm pretty sure that exploits tailored against these need a bit of time to develop. A few weeks at least
 
This is probably actually good news.
It'll force them to close any holes that are found.
 
8:34 PM
a lot of their detection is probably heuristic anyways.
And that heuristic is most likely at least partially trained through some AI methods.
So it's going to be hard to circumvent even when you have the source code.
 
8:57 PM
@Vogel612 That's really not what most attackers will look for. They'll look for ways to bypass the analyzers or disable them entirely.
Feature flags, badly-structured if clauses, little things like that.
 
@Hosch250 You have any experience with WPF and binding the DataGridTextColumn.DisplayIndex to a property?
I've been trying for far too long and can't make any progress.
 
True and false.
I have experience with WPF, I don't have experience with that particular binding.
 
mkay.
I feel like I'm wasting time and not progressing on this.
 
Make an MVCE.
 
Currently doing that.
 
9:01 PM
Just hard-code values into a VM and run it.
See if you can get that to work.
And remember--properties in WPF are evaluated in the order they are added.
And you might be trying to populate the display index from the binding before it is populated on the VM?
 
<DataGridTextColumn Header="Description" Width="*" DisplayIndex="{Binding DescriptionIndex, FallbackValue=3}" /> is giving me the expected result in the designer but I don't get any change when I reorder the column.
 
Any change where?
I think you need to add Notification=PropertyChanged or whatever it is in your binding.
 
When I reorder the column there' nothing notifying the property
 
Otherwise, it will only update it on an "explicit" trigger, like losing focus (for text fields).
 
9:22 PM
PropertyChanged event is being raised when initially set a value but reordering the headers doesn't change the binding. I'm missing something.
 
 
1 hour later…
10:29 PM
Any living soul?
 
\o
 
Hi guys. I need help. Any idea would be nice. I transformed my project logic.
(excel)

I've got Module 'mControls' where I have defined 'Public activeControls As New Scripting.Dictionary'.

On my form code-behind, I've got procedure 'InitControls frm:=Me' which iterates over all controls and initialize each of them to their respective class (clsUserListBox, clsUserTextBox, ...)
And then sets them into dictionary.
Dim userLst As clsUserListBox
Set userLst = New clsUserListBox
userLst.InitializeWithValues lstCtrl, frm
Debug.Print "Adding [" & userListBoxName & "]"
' userListBoxName is combination of 'formsname_ctrlname'
Set activeControls(userListBoxName) = userLst
Now the form appears, I do stuff with it and when I'm done I press Cancel/Save and I kill the form (no hide yet) and it disappears.
Now the problem is - I have still in memory, in that public 'activeControls' dictionary them user classes.
What's the best way (where to write the code) to resolve this? Should I iterate over all forms controls on Save/Exit/X and delete my userControls from that dictionary if the Key equals 'formname_ctrlname'?
My head is really confused about the right procedure here...
For now, I have:
''''''''''''''''''''''''''''''''''''
' Form closed by X or BTN - btnClose
'---------------------------------------------------------------------------------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

    Dim ctrl As MSForms.Control
    For Each ctrl In Me.Controls
        Dim ctrlFullname As String
        ctrlFullname = Me.Name & "_" & ctrl.Name
        If collUserListBox2.Exists(ctrlFullname) = True Then
            collUserListBox2.Remove ctrlFullname
        End If
But thinking if there is a better way so I don't have to do this on each form_QueryClose
 
11:07 PM
collUserListBox2 should be activeControls
 
11:58 PM
@IvenBach You have to handle the DataGrid.ColumnReordered event and subsequently update the VM.
 

« first day (1804 days earlier)      last day (1376 days later) »