« first day (1265 days earlier)      last day (1915 days later) » 
00:00 - 22:0022:00 - 00:00

12:00 AM
RELOAD!
[CodeReviewCommunity/CodeReviewCommunity.github.io] 1 opened issue. 1 issue comment.
[rubberduck-vba/Rubberduck] 7 commits. 2 opened issues. 1 closed issue. 3 issue comments. 1622 additions. 495 deletions.
 
Just looked it up: all you need to do is add .IncludeNonPublicTypes() after FromAssembly.
 
12:42 AM
Ha, nice
 
12:56 AM
hmm, this makes it sound like a bad thing to do....
seems to imply that registering internal types will expose them as public in the container?
 
@this doesn't seem like a problem... unless you're somehow exposing the container to your API clients?
 
1:50 AM
@IvenBach there is an update to VS recently in my feed. blogs.msdn.microsoft.com/visualstudio/2017/11/20/… Just wondering if you noticed any differences should you update to the latest.
 
 
1 hour later…
3:10 AM
[retailcoder/Rubberduck] retailcoder pushed 13 commits to ListenerPrecautions (only showing some of them below)
[retailcoder/Rubberduck] IvenBach pushed commit a60d2b62 to ListenerPrecautions: ExceL.EXE -> EXCEL.EXE for about box
[retailcoder/Rubberduck] MDoerner pushed commit 096c0851 to ListenerPrecautions: Moved wrongly positioned try catch into the dispatched delegate in AppCommandBarBase and added further try catch blocks around COM interaction.
[retailcoder/Rubberduck] MDoerner pushed commit 0faae3f9 to ListenerPrecautions: Introduced catch, log and swallow approach for all exceptions in delegates dispatched to the UI thread.
Merge pull request #3546 from MDoerner/FixingTryCatchOnDispatch

Catch & log exceptions thrown from UI dispatches. Enhances protection against annoying COM exceptions thrown by CommandBars.
add test and symptomatic fix for jagged arrray resolution

see #3098
Merge pull request #3554 from Vogel612/jagged-arrays

Stop crashing resolver on jagged arrays.
[retailcoder/Rubberduck] IvenBach pushed commit b0cead93 to ListenerPrecautions: Convert user-facing string pull from resource file.
Merge pull request #3541 from IvenBach/next

Version info copyable from about window
[retailcoder/Rubberduck] retailcoder pushed commit 5573dc65 to ListenerPrecautions: Prevent one failing listener from blowing up the whole parse task.
 
@Duga hmm, but it is an "unexpected exception" then...
 
[retailcoder/Rubberduck] retailcoder pushed 118 commits to next
[retailcoder/Rubberduck] retailcoder pushed 12 commits to next (only showing some of them below)
[retailcoder/Rubberduck] IvenBach pushed commit cdf4f5fc to next: RD Version, OS, Host (Product,Version,Executable) to clipboard for About window
[retailcoder/Rubberduck] IvenBach pushed commit a60d2b62 to next: ExceL.EXE -> EXCEL.EXE for about box
[retailcoder/Rubberduck] MDoerner pushed commit 096c0851 to next: Moved wrongly positioned try catch into the dispatched delegate in AppCommandBarBase and added further try catch blocks around COM interaction.
[retailcoder/Rubberduck] MDoerner pushed commit 0faae3f9 to next: Introduced catch, log and swallow approach for all exceptions in delegates dispatched to the UI thread.
Merge pull request #3546 from MDoerner/FixingTryCatchOnDispatch

Catch & log exceptions thrown from UI dispatches. Enhances protection against annoying COM exceptions thrown by CommandBars.
add test and symptomatic fix for jagged arrray resolution

see #3098
Merge pull request #3554 from Vogel612/jagged-arrays

Stop crashing resolver on jagged arrays.
[retailcoder/Rubberduck] IvenBach pushed commit b0cead93 to next: Convert user-facing string pull from resource file.
[retailcoder/Rubberduck] IvenBach pushed commit 6cba3a36 to next: Merge branch 'next' of github.com/rubberduck-vba/rubberduck into next
Merge pull request #3541 from IvenBach/next

Version info copyable from about window
 
3:27 AM
[rubberduck-vba/Rubberduck] IvenBach pushed commit da952f19 to next: Fix blue background.
[rubberduck-vba/Rubberduck] IvenBach pushed commit b1afd602 to next: Interim commit
[rubberduck-vba/Rubberduck] IvenBach pushed commit 0650b076 to next: Merge branch 'next' of github.com/rubberduck-vba/rubberduck into 2946_Toolstrip_Backing
[rubberduck-vba/Rubberduck] IvenBach pushed commit cd113a89 to next: Unit testing XAML bug fix.
[rubberduck-vba/Rubberduck] IvenBach pushed commit 70a55309 to next: Expression bodied accessors from R# introduction.
[rubberduck-vba/Rubberduck] IvenBach pushed commit 9222ba76 to next: Comment removal
[rubberduck-vba/Rubberduck] IvenBach pushed commit e3f55870 to next: Remove excess spacing
[rubberduck-vba/Rubberduck] IvenBach pushed commit 24a2bb6d to next: Revert overeager pattern matching
Merge pull request #3544 from IvenBach/2946_Toolstrip_Backing

UI Tweaks
[rubberduck-vba/Rubberduck] build for commit e67b182e on next: AppVeyor build succeeded
 
 
5 hours later…
8:29 AM
> A StackOverflow user got tripped on this:

https://stackoverflow.com/questions/47429509/excel-vba-check-if-number-is-null-doesnt-work-as-expected

```vb
Sub testNull()
Dim a As Variant
Dim b As Double

a = Null
b = 0

If a = Null Then
MsgBox (a & "null") 'doesn't print
ElseIf a <> Null Then
MsgBox (a & " not null") 'doesn't print
Else
MsgBox (b & " don't know") 'prints
End If

If b = Null Then
MsgBox (b &
 
 
2 hours later…
10:21 AM
@Mat'sMug Yes the exception is unexpected. Moreover, the other change in the commit would have been even worse since it would have disabled all our parsing error reporting.
 
10:59 AM
Hi everone.
I was wondering if someone could take a look at my latest comment in github.com/rubberduck-vba/Rubberduck/issues/3555
I have been searching for the solution online, but I cannot find anything useful
The OnCreate that I'm trying to use was suggested by @M.Doerner in another thread
I'm sorry for being so demanding :)
My exposure to DI is limited to small web apps
 
 
2 hours later…
1:48 PM
@Kapol There are multiple solutions to our problem with the cyclic dependency regarding the settings. I will write a comment regarding this in the corresponding issue. Then we can see which way we want to go.
 
1:59 PM
@M.Doerner Thank you
 
 
1 hour later…
3:28 PM
> I strongly object to ignoring the .frx files by default. This makes the repo lose all "design" information of the forms which can be **a lot of work** to redo.

Instead I think we should be intelligent about only replacing the .frx file in the repo when it *actually changed*. [VbaDeveloper](https://github.com/gkuenzli/vbaDeveloper) (a VBE addin to export source code during each Excel file save) has a great [feature idea](https://github.com/gkuenzli/vbaDeveloper/issues/2) regarding this. It s
 
3:53 PM
Hi folks! :-)
 
> @Merlin2001 agreed - the .frx includes vital binary information including and not limited to embedded icons and whatnot: outright ignoring these files means data loss, and that can't work. Thanks for the ideas!
 
@SonGokussj4 hi!
 
I have a little problem with the TestExplorer and testing if two dictionaries are equal
Dim Dict As Scripting.Dictionary
Dim DictOrig As Scripting.Dictionary
Dim Item1 As New Collection
Dim Item2 As New Collection
Dim Item3 As New Collection
Set Dict = StrToDict("table: CURVE; headers: [ID, NUM]; clickable: True")
Set DictOrig = New Scripting.Dictionary

Item1.Add "CURVE"
Item2.Add "[ID, NUM]"
Item3.Add vbTrue

DictOrig.Add "table", Item1
DictOrig.Add "headers", Item2
DictOrig.Add "clickable", Item3
These will pass without a problem:
 
I believe you'll have to iterate the key/value pairs ...wait, your values are collections??
 
Assert.IsTrue Dict.Keys(0) = DictOrig.Keys(0)
Assert.IsTrue Dict.Keys(1) = DictOrig.Keys(1)
Assert.IsTrue Dict.Keys(2) = DictOrig.Keys(2)
Assert.IsTrue Dict(0) = DictOrig(0)
Assert.IsTrue Dict(1) = DictOrig(1)
Assert.IsTrue Dict(2) = DictOrig(2)
This wont
Assert.AreEqual Dict, DictOrig
 
3:56 PM
AreEqual is meant for value types
if you mean to test reference equality you should use AreSame
 
Yup. That's status-by-design.
 
Yes. They have to be. (Arrays/Collections, I used Collections)
Nn, reference not. Need only the values.
 
Also, for collections, you need .SequenceEqual
 
IIRC we added an assert method specifically to work with arrays, but ^^ that.
 
Although, I don't know if we have that.
 
3:56 PM
won't work with collections
@Hosch250 we do
 
Awesome.
 
works with arrays though
 
Oh.
 
well now the test pass without a problem with those 6 Asserts. So I don't use .SequenceEqual on Collections?
 
you can try... pretty sure it blows up
 
4:04 PM
0
Q: Storing and Retrieving data with User Forms in Excel 2010

MaldredI'm currently designing a check list for my office using Excel that requires the user to save anywhere from 4-10 documents that need to be saved in the same folder as this check list. I thought it might be easier to consolidate everything into one Excel file by using User Forms. I noticed that it...

 
Hmm this method does not exist. Assert.SequenceEqual
from help, there are only:
AreEqual, AreNotEqual, AreNotSame, AreSame, Fail, Inconclusive, IsFalse, IsNothing, IsNotNothing, IsTrue
 
check SequenceEquals
 
        /// <summary>
        /// Verifies that all of the items in 2 arrays are equal. The assertion fails if any items is different, if either the lower
        /// bounds or upper bounds are different, or if the ranks (number of dimensions) differ.  This can be used for arrays of arbitrary
        /// dimensions and arbitrary bounds.
        /// </summary>
        /// <param name="Expected">The expected sequence.</param>
        /// <param name="Actual">The actual sequence.</param>
        /// <param name="Message">An optional message to display if the assertion fails.</param>
yup, with an s
note the documentation explicitly states it's for comparing 2 arrays
 
Yeah, I've got Message "[expected] and [actual] are Nothing. Consider using Assert.AreSame" for comparing Collections with SequenceEquals.
So the best is to create a for-cycle and iterate through keys/items of both dictionaries.
 
hmm, a bit misleading, but fails by design :)
yeah
well the keys would be arrays, so you can Assert.SequenceEquals d1.Keys, d2.Keys
 
4:11 PM
Just for the info, where is the documentation? If not on Repository Wiki?
 
Probably nowhere.
We s*** at documentation.
@Mat'sMug That'd be another place we could automagically load the docs into the website.
 
:-) Ok.
@Mat'sMug Yes, it works. Thanks for the idea. :-)
 
@SonGokussj4 that [Description] attribute actually populates the member description text if you're early-binding and viewing the library in the object browser
if you're late-binding... tough luck, yeah
 
@Mat'sMug / @Hosch250 if we consistently used the xmldocs, then it can be made a build step to rebuild the documentations?
 
"if", yeah
 
4:19 PM
document as we go
 
:)
 
then reject PR missing xmldocs, done.
bring out the banhammer.
 
lol
 
or is it dochammer?
doesn't sound right....
 
@this Yup.
Just check a box in the project settings.
 
4:20 PM
OTOH, what we put in xmldocs isn't necessarily public. :(
they wouldn't be interested in seeing documentation for a parser rule context, for instance.
 
We could exclude specific projects, or just say "it's out there, you don't have to read it".
 
well, for one thing, i think we do need developer documentation and public documentation.
==> complicated build step to chop'n'assemble the xmldocs
 
Well, no.
We just dump them all into an XML doc and only load the ones on the website with a certain attribute, or something.
We can add custom attributes to the doc...
/// <Scope>Internal</Scope>
 
/// <WebsiteContent>true</WebsiteContent>
 
so instead of doing that as ab uild step, we chop'n'assemble for website
 
4:25 PM
Basically.
 
once you have the XML, LINQ-to-XML can to the chopping
 
It's a breeze with Linq-to-XML.
 
Ha, Ninja'd.
BTW, hope you are feeling better, @Mat'sMug.
 
yeah. we'll have to do that. Otherwise, the documentation will never be updated.
the nice-to-have bow ribbon on the top would be a way to connect the changes on xmldocs to the wiki articles, so we can see which may have been obsolete and thus needs review.
because xmldocs are primarily good for what but not so good for why or the big picture.
 
4:29 PM
there are projects out there building a github.io website off their docstrings
 
great! let's steal borrow their wheels!
 
Java & Python seem easier to wire up though
I think we can just dump the xml on the RD-WEB repo (along with the RD dlls) and implement the doc-reader there
 
and what about the wiki articles?
 
that's markdown... less obvious
[This documentation has moved \[here\]](rubberduckvba.com/docs)
^ could do :)
#MsdnStyle
 
well, i'm thinking that in the end, there should be a way to have 2-way links between articles and xml-docs
that way, user learning RD (whether as a consumer or as a contributer) can follow through.
#AmIAskingTooMuch
 
4:43 PM
> NOW HIRING: documentation writers, technical writers. Awesome team, PTO as needed, paid on delivery with many "thanks!" and tons of recognition, and possibly yearly with a mug and/or a t-shirt and other swag. APPLY NOW!
 
^
 
Someone once told me that in old Soviet Union, such work was "paid in enthusiasm" :)
granted, the difference is that they're usually the one holding the gun to the worker.
We don't do that.... right?
 
lol
 
<joke>I wasn't going to say anything but...</joke>
 
I love this, though.
 
5:23 PM
> First of all, I have not tried to figure out where the CW exception is coming from, so far.

Let me recapitulate where the circular dependency in PR #3534 is coming from. After that I will pose some design/functionality questions to determin whether the settings file actually solves the problem. Finally, I would like to point out some opions we have in case we want to take the route where the circular dependency cannot be avoided easily.

## The Base Problem ##

The basic problem why con
 
@this And that wouldn't happen here because those guys would be dead before they finished the line in the second panel.
Not for being communist, but for throwing a coup like that.
 
> First of all, I have not tried to figure out where the CW exception is coming from, so far.

Let me recapitulate where the circular dependency in PR #3534 is coming from. After that I will pose some design/functionality questions to determin whether the settings file actually solves the problem. Finally, I would like to point out some opions we have in case we want to take the route where the circular dependency cannot be avoided easily.

## The Base Problem ##

The basic problem why con
 
@Duga re-starred actually
 
You watch them stars like a hawk.
 
I like to see who's knowing about RD. ^^^^ this guy owns the VbaDeveloper repository, which mentioned RD in a recent issue
 
5:37 PM
@this An equally good one is the one: You have three candidates to choose from. The Communist party, the Communist party, and the Communist party.
 
> First of all, I have not tried to figure out where the CW exception is coming from, so far.

Let me recapitulate where the circular dependency in PR #3534 is coming from. After that, I will pose some design/functionality questions to determine whether the settings file actually solves the problem. Finally, I would like to point out some options we have in case we want to take the route where the circular dependency cannot be avoided easily.

## The Base Problem ##

The basic problem why
 
@Duga Now without all those stupid mistakes.
 
lol
 
@Mat'sMug People get perturbed when they see you may start eating their lunch.
 
6:02 PM
@BrandonBarney Did you get to the prime number generator in Clean Code and go through the refactoring of it?
 
I think I got to it, but I didnt go through the refactoring of it.
 
6:23 PM
Lots of little stuff I knew started clicking into place once I finally saw what all the alphabet soup 1 and 2 letter variables were doing. Sounded like Snap, Crackle, Pop for a while in my brain.
 
7:06 PM
1
Q: Excel VBA: Potential code optimizations

DarukiThe code below does the following: Look through rows 10 and the lastrow of a sheet, and based off certain criteria, loops through each row If the scenarios match, then the code will drop in 0s and 1s onto another sheet in a formulated range In some scenarios, the code will fill down formulas. ...

 
7:50 PM
#TIL you can enable/disable a breakpoint while it's still there.
 
Yup :)
You can also put a condition on it.
 
That one I'd known.
 
Ah. It's really handy sometimes.
One thing to watch out for, though--it slows it down--a lot.
 
Also #TIL Run Execution To Here shortcut is the green >| next to the line.
 
F10 Step is good too.
 
7:56 PM
And F11.
 
Office closes in an hour.
Is that Step Back?
I only know that as Full Screen.
 
F11 = Step Into
 
Ah.
 
F10 = Step Over
Shift + F11 = Step out. I really like this one.
Blargh.... Who'd have thought changing a single variable assuming it wouldn't break anything would take me 30 mins to figure out how to properly correct it. Wish I had unit tests for this. #GladItsATestingEnvironment
The axe wielding lunatic makes so much more sense now.
 
Finally got something to do?
 
8:03 PM
No. Working on Clean Code and refactoring the example for prime number generation.
 
Oh.
Don't use Java :P
 
I wrote out the fugly code and am doing my own refactoring and then will compare with the final result.
Never said I was using Java :wink:
 
Use JavaScript. I hear it's more fun.
 
@this I ought to mute you for that :P
 
I say that a programmer isn't a real programmer until the programmer has done JavaScript.
 
8:06 PM
^ I'm happy to be a script kiddie?
 
I say that a programmer isn't a real programmer if they do JavaScript of their own accord.
3
 
Feh. Could they really not? "I'll build you a website but it will be 100% PHP/C#/Java because I choose to not do JavaScript." Good luck.
 
@this TypeScript for the win.
 
AKA JavaScript with a lipstick
La mona vestido de sepa, la mona se queda.
 
At least it has lipstick--and a compile-time type check.
Better yet, use F#.
 
8:09 PM
does it transcompile to JS?
 
Right, but the JS isn't your problem.
 
hadn't a good reason to use functional languages yet.
 
Just because the browser runs JS doesn't mean you have to write it.
 
@this Italian?
 
no Spanish -> A monkey dressed in silk is still a monkey
 
8:10 PM
@this JS is a good enough reason...
 
'Aunque una mona se vista de seda una mona se queda' is how I always heard it.
 
ah, didn't remember it correctly
thanks for the correction.
 
There's also a lot of leeway with how it's said from country to country.
 
Hosch, but see, my problem with the TS (or even F# transcompiling) is that you are just building on the top of abstractions. When it goes wrong, you're hared.
when i look at a typical front-end web developer toolkit, I think that they use wayyy too much tools.
 
Then why don't you go write hex code?
You sound a lot like the hex programmers when Assembly came along, and like the Assembly programmers when C came along, and the C programmers when C++ came along.
 
8:13 PM
LOL. Because C#'s good enough.
 
And so is F#.
 
I know, I know.
If writing a web front-end code in F# means less tools, good.
Abstractions can be good but too much of it.... well, things get weird.
And that's what I see with all those JS tools, frameworks, library, whatever else they came up with.
There's a new flavor-of-the-day JS something
 
That's one of the best reasons to use F#. Because you don't have to care a mite about the JS side of things.
Just set up the Fable transpiler, and you're golden.
 
and they're all wondering why they get that funny bug that only occurs on 2nd tuesday of a month
 
Eh, they'd be wondering anyway.
 
8:15 PM
Hmm. Interesting. Will keep that in mind.
LOL
and suppose I were to use F#, do I get to debug the JS?
 
8:38 PM
<offtopic>Hi guys! :) Do you know someone (person/company) looking for a remote VBA developer? Thanks! :) </offtopic>
 
8:49 PM
My company is, but we specialize in Access work. We do lot of Office automation, so VBA skills should be easy to translate between Office products. If you don't mind working with Access projects, apply away.
 
@this Sure--in the browser.
Sorry, working hard for once :P
 
Hosch, let me rephrase that a bit.
could I get to debug F# while running a browser?
e.g. interactive debugging?
 
Not sure. I've not used it myself, but I have friends/acquaintances who do.
 
GTK.
I'll find an excuse to use F# for a web project shortly then. :)
 
At work we are switching to TypeScript. Or hoping to--we just need to start.
 
8:57 PM
So you don't actually use F#?
 
Not at work.
> Not sure. I've not used it myself, but I have friends/acquaintances who do.
 
Ah ok thought that was in reference to interactive debugging
 
Oh, well, both.
I'd recommend just doing some small F# dev first--it's a bit, well, different than OOP.
 
ayup.
will need some brain wrapping.
 
TTGH!
 
9:09 PM
Enjoy the extended weekend. Thanks for your help the past few days.
 
@this you wouldn't happen to know if there's a VBA equivalent for something like this, would you?
=INDEX(tblShipToLocations[Selection],MATCH(Header_Account,tblShipToLocations[Customer],0),1):INDEX(tblShipToLocations[Selection],MATCH(Header_Account,tblShipToLocations[Customer],1),1)
it's a dynamic named range that gives me the ship-to locations under a specific customer account
 
@Mat'sMug Zou mean in Settings of Rubber Duck? Late Binding is there as Default. Should I change it to Early Binding?
Or is there a problem in the code because if I type Assert. nothing comes as help, I have to remember all Assert functions.
 
That's what late binding is, no intellisense. It's getting you the object without the benefit of pre-compile assistance.
I don't understand it as well as the other ducks here.
If you use Early Binding you will get access to intellisense. No more having to memorize them all.
I previously had an issue with trying to use early binding.
 
@Mat'sMug don't use Excel like a database. :) Use an actual database.
Were it up to me, I'd probably dump it in a table, and use SQL on it than trying to write a VBA function to find it.
FWIW, you could avoid the need to dump into a database if you use ACE engine which can consume Excel data as if it were a SQL table.
 
9:25 PM
@this no shit
 
Sorry I couldn't be more helpful. That's what we usually do when our clients come to us with unmanageable excel spreadsheets -- we convert them into Access applications that generates Excel reports.
 
I would, if I had MS-Access
that said it makes a nice "real-world" piece of code that actually puts MVP into application... and it's fully warranted
and it's beautiful :)
I even have a view that's shared between two distinct presenters
just so happens that a CustomerAccount and a ShipToLocation both need the same set of fields
 
00:00 - 22:0022:00 - 00:00

« first day (1265 days earlier)      last day (1915 days later) »