« first day (1845 days earlier)      last day (20 days later) » 

12:00 AM
[rubberduck-vba/Rubberduck] 1 opened issue. 4 issue comments.
Oh bother. It's the end of the day and I've not figured it out. Time for some huney grilled blue cheese samiches while I fumble through it at home.
[Minesweeper] Games Played: 94, Bombs Used: 63, Moves Performed: 12554, New Users: 16
3 hours later…
2:50 AM
Found a Rubberduck icon made with circles. Interesting read designsystems.com/iconography-guide
7 hours later…
9:34 AM
@IvenBach you don't... you don't want to observe the defaults. They are fixed. That's where the implementations for ConfigurationService come in.
.... did I name it ConfigurationService?
1 hour later…
10:41 AM
been using git for my Excel development.
I've got 2 files in my master branch that it says are untracked.
They should be in a different branch, but git won't let me switch to the correct branch to add them.
What are the appropriate steps to fix this?
I can't move the files, they don't seem to physically be on disk where I've CD'd to for my project
Yes, yes they are. I haven't had coffee yet this mornig.
Would it make sense to physically move the files elsewhere
switch to the correct branch
move the files back to the proper `git` directory
add/merge/whatever the files into the proper branch?
11:07 AM
yea, that should work
Thanks, @Vogel612. Is that the "proper" way of doing it? Is there a "proper" way of doing it, or is it "whatever works"?
Interesting. I did that, and when I went to copy them into the working directory for the proper branch, Windows nicely told me they were already there. A git diff indicated that the files I had are identical to the versions in the branch I'd just checked out.
If I switch branches away from a branch with a new file, does git not delete that file from the working directory?
hrm, no, it seems that when I check out a branch, my working directory contains exactly what should be in that branch.
I think I hosed myself by exporting the code from Excel with those modules while working in the wrong branch.
This is gonna be a pain!
When working in VBA, I really need to drop all code modules, then import whatever's on disk. That will be the only way to ensure that my current [Excel|Access|Word|whatever] file is true to the branch I'm on.
11:36 AM
^there's a fun ID to remember... goes to find his hex converter.
finds hex to ASCII converter instead: "Adolfo"
12:38 PM
don't you mean AD01F0?
1 hour later…
1:42 PM
Q: Excel VBA - Currency Conversion Function (Historical Date)

Joanna MikalaiI am using this sub which works fine but outputs a table with rates Option Explicit Public Sub GetTable() Dim sResponse As String, html As HTMLDocument, ws As Worksheet, clipboard As Object Set ws = ThisWorkbook.Worksheets("Sheet1") With CreateObject("MSXML2.XMLHTTP") .Open...

1:58 PM
grrr... working from home today and my git notes are at work.
to merge with my local master I need to:
1) commit to my branch
2) check out master
3) git merge <branch>
@FreeMan i felt the need to be smart assy... but then i felt the need to be lazy, good luck
2:16 PM
with your git stuff
Unless you have unsaved work on your local, you don't need to commit.
Wondering if anyone knows whether the p-code is different for Foo!Bar compared to Foo.Items("Bar") -- more in particularly whether Bar gets compiled as something else than a string literal when using bang operator.
@this huh, why would it be? assuming it is a compiler-assisted default member call, that is
I mean, I'd expect it to be 100% equivalent. unless... unless the p-code isn't as low-level as I imagine it :/
2:36 PM
@Hosch250 I did. thx for the confirmation
@MathieuGuindon I didn't have a reason to expect it to not be same; just was wondering if it was possible.
depends if it has its dedicated opcode, or if the compiler is the one doing the "translation", I'd guess
that said I know nothing of p-code, other than the name
new RD feature: op-code / p-code viewer
2:57 PM
> Rubberduck /> View Disassembly
@this you know SQL data types better than I do... did I just stick a foot in my mouth here?
But, TINYTEXT is not a VARCHAR, as a TEXT data type it's closer to being a blob of bytes, which probably explains the 16 you were getting instead of the supplied string - so the ordinal parameters worked better than the named ones. Consider avoiding the more exotic data types and sticking to VARCHAR. If the reason for TINYTEXT is a performance concern, see "TINYTEXT is probably never a good idea". — Mathieu Guindon 55 secs ago
everything is a blob of bytes, mug
the hell.. tinytext?
wouldnt use it
Pretty much.
3:20 PM
do you guys often access Acitve directory for permissionsy stuff?
or to get user data
Never, but my work uses it.
I did that long ago
long, long time ago
I don't work on that side of it. The web side has it's own user/permission/etc data.
and for the same reasons - I prefer to use SQL Server permissions whenever possible
ah, i never use web stuff
3:22 PM
@KySoto I don't. When I set up a new app/db I have the sysadmin create a new security group and I setup the login and perms for it in SQL Server, but I never needed to query AD directly
doh spot the mistake:
i = 26
Select Case i
   Case i = 26
     'doesn't execute...
End Select
yep my day's going along swimmingly
Should be Case 26..
that's Case True i.e. Case -1, and that's not 26
3:25 PM
the joy of working with a loosely-goosely typed language, I suppose
well i made a thing that i thought was neato burrito
Public Enum adProperties
    adpSam = 1
    adpName = 2
    adpEmail = 3
    adpDisplayName = 4
    adpUPN = 5
    'i can add more as needed.
End Enum

Public Function getADPropertyName(ByVal argIn As adProperties) As String
    Dim out As String
    Select Case argIn
    Case adpSam
        out = "sAMAccountName"
    Case adpName
        out = "name"
    Case adpEmail
        out = "mail"
    Case adpDisplayName
        out = "displayname"
    Case adpUPN
        out = "userPrincipalName"
    Case Else
@MathieuGuindon Yep, exactly. I had to debug step before I realized my boneheaded mistake
i went and bleeped out my domain info from the function
@KySoto that function wants to wrap a static dictionary I think
3:54 PM
> I had previously had things set up to not load RD and MZTools on startup to control load times on large, disorganized projects. Today I went in and changed both to load at startup. Then I realized they weren't loaded so went in and clicked "Loaded". Now Excel won't open the VBIDE; says waiting on another application to complete an OLE action.
I then downloaded the latest pre-release (2,4,1,4742) thinking a clean install would fix things. It hasn't.
@Vogel612 github.com/ivenbach/Rubberduck/blob/next/Rubberduck.Core/… is what I'm trying to use. I had it working before to save a backing field. In making the field use a generic private readonly ObservableCollection<GridViewColumnInfo> _toDoExplorerColumns; I now have it barf when assigning it in the ctor.
_toDoExplorerColumns = new DefaultSettings<ObservableCollection<GridViewColumnInfo>, Properties.Settings>().Default; since there are no results returned.
AFAICT it's caused by the Rubberduck.Core>Properties>Settings not allowing me to use a generic type.
<?xml version="1.0" encoding="utf-16"?>
<ColumnHeadersInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" IsEnabled="false">
    <Width />
    <Width />
    <Width />
^ Is the xml that's generated when I manually skip over that part, reorder columns and have it persist them out to the config file.
Not knowing how to either properly select a generic from the dropdown list isn't helping.
I've tried creating a temporary class ColumnHeadersInformation to fake it and see if that'd be valid. It didn't work.
TFW your bonus is :/
TFW there is no bonus...
@Duga that's ...remarkably slim
4:18 PM
@MathieuGuindon which part?
the dumb questions come from brain derp, i need coffee
but cant have coffee at my desk -___-
does it make more sense to do it that way?
it's the same thing really
is there any advantage to doing it that way?
Static values As Dictionary
If values Is Nothing Then
    Set values = New Dictionary
    values.Add adpSam, "SAMAccountName"
    values.Add adpName, "name"
    values.Add adpEmail, "mail"
    values.Add adpDisplayName, "displayname"
    values.Add adpUPN, "userPrincipalName"
End If
getADPropertyName = values(argIn)
it replaces the Select Case block
4:23 PM
so dictionaries are faster then a select case? or is it just a cleaner thing
Select Case will evaluate each block in sequence, so worst-case you check 20 conditions before the 21st evaluates to True
ok, that makes sense
with a Dictionary you get a O(1) hash lookup (or a "key not found" error)
thinking about it
i have several things that would make sense to do that to.
4:38 PM
not going to lie @MathieuGuindon i think it would have been several years before i came up with something like this
You there Mug?
Any idea why I can't add a generic as one of the defaults?
I'll need more context than that :)
I know that was vague. Trying to research it myself presently.
This is coming from the ToDoListConfigProvider.
Where in the ctor the backing field _toDoExplorerColumns is assigned.
54 mins ago, by IvenBach
@Vogel612 https://github.com/ivenbach/Rubberduck/blob/next/Rubberduck.Core/Settings/ToDoListConfigProvider.cs#L11 is what I'm trying to use. I had it working before to save a backing field. In making the field use a generic private readonly ObservableCollection<GridViewColumnInfo> _toDoExplorerColumns; I now have it barf when assigning it in the ctor.
That small section when I pinged Vogel.
The default settings doesn't find anything of type ObservableCollection<GridViewColumnInfo>.
I've attempted to add it as a type to Rubberduck.Core>Properties>Settings. Each time there's a "Type 'Foo' is not defined" message.
4:58 PM
what's Foo in that message?
Q: How to efficiently loop through paragraphs and make simple changes with Word VBA

Ahmed AUThis is regarding my answer with SO post How to remove paragraph marks with different format in MS-Word. My primary question, is there any way performance of the code could be improved to operate on document as intended by OP (2.2 MB and has 2.1K pages, 871K words, 4,6M characters including spac...

@MathieuGuindon System.Collection.ObjectModel.ObservableCollection<Rubberduck.Settings.GridViewColumnInfo>
In the Select a Type dialog I' can't find the System.Collections namespace. There is a System.Collections.Immutable namespace.
Hrm... Nothing is in it though.
> Post your RD log: %appdata%\roaming\rubberduck\logs
5:29 PM
@QuackExchange i think the proper answer is... dont...
I can get the setting to accept Rubberduck.Settings.GridViewColumnInfo but any form of generic collection fails.
> 2019-06-25 12:34:08.6656;INFO-;Rubberduck._Extension;Rubberduck is shutting down.;
2019-06-25 12:34:08.7346;INFO-;Rubberduck._Extension;No exceptions were thrown.;
maybe im just bein mean...
5:53 PM
> I did a shutdown/restart and it seems to have resolved the issue. I'm guessing Office and/or Windows just got confused.
6:33 PM
hrngh... #TIL you can paste XML in the settings window and it will auto add the <?xml version="1.0" encoding="utf-16"?> and <Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> to it.
I have been adding that all this time. :embarassed:
@Duga The whole log may have been handy...
to early bind the ADODB recordset or to latebind...
the db i was dev'ing in was bound on ado 6.1
but i think i saw somewhere that access 2007 might not like ado 6.1
6:50 PM
no, 6.1 is fine
it will switch to 2.8 smoothly
it's the 6.0 that you should not use
Why the answer usually blatantly obvious when you finally get to it?
though I'm usually for late binding, ADODB is a rare exception I make for early-binding.
@IvenBach hence the saying: "experience is recognizing the mistake when you make it again"
~.~ I've been chasing my tail this whole time. The answer was right in front of me too.
@this so if i automatically set the ref to 6.1 when the db is created, i wont have any issues if the app is ran on 2007?
yes. I had a customer in that situation before, and from testing, I had to develop using 6.1 rather than 2.8 or 6.0
If I used either 2.8 or 6.0, then it would go bust on other computers
7:05 PM
good to know it works
i dont actually even have 6.0
Just got props for my vertical coding monitor Iven.Happy++;
I don't think that exists on any non Vista Win7 builds.
no, my mistake - Win 7.
7:33 PM
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4986?src=pr&el=h1) Report
> Merging [#4986](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4986?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/4f387a27228c881a76258dce1aba8f35c73ed847?src=pr&el=desc) will **decrease** coverage by `0.09%`.
> The diff coverage is `10.84%`.

@@ Coverage Diff @@
## next #4986 +/- ##
[rubberduck-vba/Rubberduck] build for commit 520af054 on unknown branch: 64.13% (target 0%)
One of those commits is missing several files.
[rubberduck-vba/Rubberduck] build for commit b012713e on unknown branch: AppVeyor build failed
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4986?src=pr&el=h1) Report
> Merging [#4986](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4986?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/4f387a27228c881a76258dce1aba8f35c73ed847?src=pr&el=desc) will **decrease** coverage by `0.09%`.
> The diff coverage is `10.84%`.

@@ Coverage Diff @@
## next #4986 +/- ##
@Vogel612 you there to assist?
I want to edit a commit message but every time I try to rebase I get merge conflicts. This is in spite of already having merged/fast-forwarded.
7:50 PM
diamonds commit messages are forever
Even if they aren't already merged?
ideally you keep the messages as-is (write them how you need them in the first place), or edit them before they're pushed to your fork (while they're still local commits)
I missed that one.
Leave it for future me to look back on it as part of my posterity of learning?
I suppose :)
Just remember that when I started I warned you about allowing me near the code base.
7:58 PM
FWIW "IVEN Figure out how to convert to use ObservableCollection<T>" is much better than "57th attempt. Please work."
"Attempt to convert and use ObservableCollection<T>" was going to be the amended message.
oh, the original still says "please work"?
That's the original message.
all good
I tried to git rebase -i to rename it. Merge conflict when doing that however.
8:01 PM
FWIW I'd look at how other settings collections are handled; presumably none of them are serializing the viewmodel itself.
It's not the VM that's being serialized. Only the column orderings on it.
FWIW I say FWIW way too often
@IvenBach a property of the VM
you could take the observable collection from the VM, go .ToArray, write that to some xml-serialization friendly settings class, and when deserializing you make a new ObservableCollection<Thing>(thingsArray)
[rubberduck-vba/Rubberduck] build for commit 896a1612 on unknown branch: AppVeyor build failed
8:16 PM
Huh. Why's there a ..\\Graphics\... in ci.appveyor.com/project/rubberduck-vba/rubberduck/builds/…?
huh that's the double backslash thing again
@Duga :grumble: you were working without a build error the entire time I was testing. Why start now with a thrown error?
8:32 PM
> So, here's what the VBA context menu looks like with the changes (including shortening add/collapse):

@Duga Toyed with the idea of adding a 'File' icon, but that glyph is already (ab?)used for test modules. Wondering if they would be better represented by a conical flask?
uh, just realised Import is still there.... fixing!
> So, here's what the VBA context menu looks like with the changes (including shortening add/collapse):

> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4986?src=pr&el=h1) Report
> Merging [#4986](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4986?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/4f387a27228c881a76258dce1aba8f35c73ed847?src=pr&el=desc) will **decrease** coverage by `0.09%`.
> The diff coverage is `11.39%`.

@@ Coverage Diff @@
## next #4986 +/- ##
[rubberduck-vba/Rubberduck] build for commit 896a1612 on unknown branch: 64.14% (target 0%)
8:51 PM
I think it should have found it's happy place now.
If nothing else this has helped me practice my git-fu.
How would I explain reference-type vs value-type variables for the need to use the set keyword when assigning objects to past-Iven? Co-worker asked me the why and I had to tell him "Just use it for now because you have to".
I really really really don't like those kinds of answers and want to come up with an explanation for it.
9:06 PM
The reason why you have to use Set is because of default members.
And the other stuff about object Let coercion.
Btw, these rules are why you get rather unhelpful error mesages whenever you forget to use Set.
Unless you are in the situation that the rules lead to a valid assignment, which you probably never intended to happen this way.
[rubberduck-vba/Rubberduck] build for commit e82c4b94 on unknown branch: AppVeyor build failed
9:26 PM
I'm attributing that build failure to ..\\.. this time.
@M.Doerner again with the not-so-helpful default members.
But that makes so much sense.
In other languages without such a feature, e.g. C#, there is no syntactic distinction between assigning a reference type and a value type.
Actually, that is not even the right distinction in VBA.
Technically, arrays are reference types.
An assignment to an array variable does not copy the array.
Getting close to 900 stars.
Q6 – What is the difference between a framework and library?

You call library. Framework calls you.

Ian Boyd/Stack Overflow
A library is a tool. A framework is a way of life.

James Curran/Stack Overflow
Quotes from carlcheo.com/compsci. @ivenbach
What is object oriented programming
Objects are like people. They’re living, breathing things that have knowledge inside them about how to do things and have memory inside them so they can remember things. And rather than interacting with them at a very low-level, you interact with them at a very high level of abstraction, like we’re doing right here.

Here’s an example: If I’m your laundry object, you can give me your dirty clothes and send me a message that says, “Can you get my clothes laundered, please.” I happen to know where the best laundry place in San Francisco is. And I speak English, and I have dollars in my pocket
9:44 PM
Layman's terms had me sold. Skiwi'd and reading as soon as I finish this article.
Cool :) enjoy your day.
> @mansellan that looks great!
10:02 PM
:+1: for that reference
10:17 PM
I feel like I want to resurrect my menu\command branch (if I can remember where I put it!). The trouble is, it's very definitely (and deliberately) an opinionated design - I think it works great, but y'all might hate it. Perhaps I should write up a draft PR, explaining why it is how it is, get some feedback, and see if it's worth finishing?
@mansellan is there an issue for it?
@MathieuGuindon No, it was a skunkworks thing :-) Can't remember what sparked it, might have been some tangential thought I had on another issue, I don't recall...
make one, then the PR can reference the discussion there, and close it =)
ok sounds good :-)
will have to find which laptop / OS I put the code on first, so I can write up what the hell I was thinking!
I am sure that no matter how we go with the menus, it's going to be opinionated.
Mainly because it boils down to polishing the turd that is MS Office's lovely command system
10:26 PM
yeah, that's what I was finding...
if whtaever you have improves the overall experience from RD's POV, I"m all for it
Polished turd > unpolished turd
It was very much tackled from a developer-experience POV, make a nice internal API
some may take issues with that assertion --- preferring to not have any turds but....
Slap some lipstick on that 1998 Microsoft pig :-)
(uh, not sure if that's un-PC these days?!?)
rapidly googles etymology
yep, no "Controversy" section, we're golden: en.wikipedia.org/wiki/Lipstick_on_a_pig
huh. thought it all started w/ Sarah Palin
but apparently that has been a thing since 1926
10:35 PM
@mansellan "It's not my non-PC side that's showing, that's just me." should be your defense.
I'd go for "I'm not PC. I'm a Mac"
@IvenBach good call!
@this that too :-)
also, cool, I pushed it to origin. That's unlike me :-)
@this TROLOLOL. I need to use that next time.
Also need that on a T-Shirt.
@IvenBach not sure if you've tried it yet, but I think you might be ready for TortoiseGit. Now that you have a decent awareness of Git and its CLI, you should be able to make sense of its UI.
I'm kind of a one trick pony one quack duck. I've not had any bad experiences with git that make me look for another VCS.
10:41 PM
it's not really another VCS
And any bad experience have been resolved since educating myself and understanding it was actually my fault all along.
TortoiseGit is just a lipstick slapped on a pig a UI over GUI.
Oh no sorry, its just a UI for Git
adds stuff to your Windows explorer right-click menus
so... It's guit?
close enough to guilt
10:42 PM
and its commands are directly analogous to what you'd type in command prompt.
^^^I read it as guilt first.
@this ^
Yeah, I'm guilty of being a lazy ass.
@this it's good for learning... I guess
I'm actually liking the challenge of using the CLI and forcing myself to RTFM.
10:43 PM
If you don't know Git, it's confusing as hell, it's not a learner UI. Once you understand Git though, it's quicker IMO
@MathieuGuindon maybe, IDK. that would depend more on the person. If you blow through the dialogs, you would never notice, I think.
I have to agree w/ @mansellan - you still have to grok the workflow around git. A UI isn't going to help with that.
@mansellan I've benefited from slowing down and thinking about what I'm doing with git. Ping me in ~6mo and I may be ready to give it a try. Adding several files is tedious when git add . isn't possible.
for learners too delicate for CLI, I usually recommend SourceTree or shudder VS Team Explorer
Team Explorer is way too automagic-don't-peek-behind-the-curtain for my liking.
^ VS Team Explorer just made me frustrated since I didn't know what it was actually doing.
SourceTree has the nicest branch diagrams I've yet seen though
10:46 PM
^^ I agree
VS Team Explorer = HALP!!! It's not working. I don't understand everything it's doing so someone come help hand-hold me through the process.
Yeah, pretty much why I hated it
at least TortoiseGit has the decency to show the actual command it executed
I felt bad continually floundering and nagging the other ducks at the pond for help. That's why I forced myself to the CLI.
> **Rubberduck version information**
OS: Microsoft Windows NT 10.0.17763.0, x64
Host Product: Microsoft Office 2016 x64
Host Version: 16.0.4834.1000
Host Executable: EXCEL.EXE

Entering a blank @Folder annotation causes the RD Code Explorer to hide the module.

**To Reproduce**
1. Paste this annotation in any module: `'@Folder("")` or `'@Folder()`
2. Refresh RD.
3. Notice the module has disappeared from Code Explorer.

**Expected behav
@Duga bug or feature?
10:50 PM
bah, pull upstream/next into an ancient branch, get conflicts. Thankfully, few.
> Nice find! I agree without a valid folder a module should show up under the default folder, like the annotation wasn't there.
@mansellan git fetch upstream next followed by git merge upstream/next makes it much clearer than git pull upstream next.
@IvenBach get away with your CLI voodoo... If TG can't do it, I don't want it ;-)
Mkay. :walks-away-slowly:
10:56 PM
CLI opened up pandora's box for me.
confused normally, opening Pandora's box is ... a bad thing.
Yeah about that... All the bad stuff had been let out previously. All that remained was the good stuff I'd been lacking.
TBF, my nuke option is Beyond Compare. Interactive rebase, mkay, ain't got time to learn that. Just grab both branches and diff\merge them visually with BC.
Still using survival techniques I learned from VSS :-)
p.s. Iven, don't follow me. you're doing it right, i'm hacking like a cowboy!
Mkay :walks-a-bit-faster:
I cowboy coded for too long and never got anywhere.
The pond changed that thankfully.
/aside - should we have a "Refactoring" issue template?
@Duga uh, didn't mean to open that just by pressing Enter! Ignore for now :-)
No description provided... FML
> Currently, we have a fragmented approach to defining menu and command bar layouts for:
- COM menu bars
- COM command bars
- WPF toolbars
- WPF context menus

COM items are registered for IoC, have metadata specified in code (*MenuItem classes), and are ordered using reflected enums. WPF toolbars and context menus are defined directly in XAML.

Let's abstract and unify this, such that a command hierarchy can be specified explicitly using a single approach, injected into any container, a
> Currently, we have a fragmented approach to defining menu and command bar layouts for:
- COM menu bars
- COM command bars
- WPF toolbars
- WPF context menus

COM items are registered for IoC, have metadata specified in code (*MenuItem classes), and are ordered using reflected enums. WPF toolbars and context menus are defined directly in XAML.

Let's abstract and unify this, such that a command hierarchy can be specified explicitly using a single approach, injected into any container, a
@Duga that'll do for now, will have to get back into where my head was back then to really flesh it out

« first day (1845 days earlier)      last day (20 days later) »