« first day (1006 days earlier)      last day (2174 days later) » 

00:00
@IvenBach I think mine was installed with the Windows SDK. If you have VS installed, I'd just search your C drive for it.
or install OleWoo
RELOAD!
OleView seems to choke on some libraries
[Hosch250/CheckersUI] 1 commit. 46 additions. 3 deletions.
Or put a breakpoint in the ReferencedDeclarationsCollector. :-)
00:01
[retailcoder/Rubberduck] 25 commits. 241438 additions. 112609 deletions.
[rubberduck-vba/Rubberduck] 35 commits. 13 issue comments. 71826 additions. 36537 deletions.
or install the future Rubberduck 3
@Comintern I'll check for it at home. Always curious to learn new things.
00:04
Left("Foobar", 3)
Left and Left$ don't really exist in the TLB
@ThunderFrame Then what exists? I use left and I know it works. This explanation is going to give me a headache I bet.
_b_var_Left and _b_str_Left
:notamused:
The first returns a Variant, the second returns a String.
00:08
Why are they named they way they are?
The $ at the end is a type hint. VBA uses the type hint to decide which function to call internally.
And the b stands for "basic"
Huh. TIL.
@Mat'sMug ok
I'd figured it was something dumb like "be a Variant, Left".
00:10
they're creations of VBA to alias the real (but hidden) functions like _B_var_LeftB
lol
@Comintern has to do with how BASIC strings aren't null-terminated like C strings I think
Ah BSTR v CSTR.
anyone care to guess what the result of this is?
aka proper Hungarian notation ;-)
00:13
?[_B_var_LeftB]("ABCD",3)
That's why Len(string) is so fast. With a null terminated string it would require a full traversal of the string.
@ThunderFrame Segfault.
@Comintern Seriously ?[_B_var_LeftB]("ABCD",3) Returns "A"
^Force of habit.
I just jump to the conclusion at a good portion of my code or your code has a decent probability of a segfault. I know for my code it's a good first guess.
00:17
no, I mean the result of the function
Unicode.
paste it into you immediate window - it's like _B_var_LeftB is ignoring the second argument
/0A/0B/0C/0D
You asked for the leftmost 3 bytes...
00:17
ah
Left != LeftB ;-)
I thought the alias was using a B on the end, rather than it being an alias for LeftB
And MidB is a freak'n statement too...
Stupid keyboard hook.
WTH did MS have to stop calling CallNextHookEx in Office 2013?
@ThunderFrame From this point on I got lost... Could one of you give me an explanation/implication of what that means?
ThunderFrame confused left and leftb
00:24
> A BSTR (Basic string or binary string) is a string data type that is used by COM, Automation, and Interop functions.
Is it just that the LeftB is dealing with the Bytes and you need to know how the computer stores the information to truly appreciate what's going on?
LeftB, RightB, MidB, LenB all deal in bytes
?LenB("a")
Should print 2
?Len("a")
Should print 1
Useful when reading/writing from/to binary files
I suppose
Never needed to use them as far as I recall
Although, they probably perform better than their no-B brothers
LenB is more useful for Types
It's also useful for sizing byte arrays to pass to API functions.
Type Foo
    Bar As Long
    Baz As Long
End Type

Public Sub Example()
    Dim x As Foo
    Debug.Print LenB(x)  '<- 8
End Sub
Ah, yes!
Public Function Is64Bit() As Boolean
    Static test As LongPtr
    Is64Bit = LenB(test) = 8
End Function
00:39
#If Win64 Is64Bit = True #Else Is64Bit = False #EndIf
^ should compile in vba6 ;-)
There was some reason I used that once, although the why completely escapes me now.
So it looks like I'll be presenting on Rubberduck at the Microsoft Sydney campus in July.
3
:thumbsup:
@Mat'sMug Where can the character representations of the letters be found it?
00:44
Would this be similar to using a Number falling within [65-90,97-122] inside of =Char(Number) on the worksheet?
Exactly the same.
The blind pig finds another truffle!
That makes sense why all the values with LenB() were returning 2 with [a-zA-Z] and LenB("AA") was 4
@ThunderFrame huh that's awesome!
@Mat'sMug Financial Modeling Conference - ModelOff's Global Training Camp
01:20
> Rubberduck.Setup.2.0.12.0.exe (5.86 MiB) - Downloaded 100 times.
Last updated on 2017-03-05
@ThunderFrame I hope everything goes well. You've put a lot of work into it so far.
Even after seeing the sausage being made I'm committed to eating more.
3
01:45
@IvenBach do you know about regular expressions?
I ask because I'd like to walk you through the heart of Rubberduck - the VBAParser.g4 grammar; it helps if you know how regex works ;-)
@Mat'sMug I've used them and feel I have a basic understanding of them.
Don't use them all too often. As such I'm not extremely comfortable with them, yet.
not a problem - it's not like Rubberduck's parser is all regex (turns out it was, before we discovered Antlr)
I'm very interested in learning. It'll have to be once I get home. An hour or so and I should be home.
awesome
I hope my class explanation wasn't too horrible for @puzzlepiece87 earlier.
02:01
I thought it was fine :)
That makes 1 of us. I know what I want to say, it makes sense to me, but when I'm explaining it to others I get blank stares.
[rubberduck-vba/Rubberduck] MDoerner pushed commit 5e30a0c5 to next: Fixed stupid error in the RubberduckParserState
[rubberduck-vba/Rubberduck] MDoerner pushed commit 923d97de to next: Some cleanup in the DeclarationFinder
@IvenBach I totally understand... I'm hoping I can explain RD's parser :)
[rubberduck-vba/Rubberduck] build for commit 280f29f2 on next: AppVeyor build succeeded
02:05
I'm sure you'll be able to explain it fine. The real question is whether or not I'll be able to understand what you're explaining.
I'm hoping I understand what I'm explaining lol
the grammar should go smoothly though
100+ downloads already for v2.0.12 - and with that today, all versions combined, Rubberduck hit 10,000+ downloads! Thanks for your support!
great, first like is a "buy followers & likes" spam account lol
crap, what was I working on
makes a PR just to see the diff
[retailcoder/Rubberduck] MDoerner pushed commit 5e30a0c5 to rd-next: Fixed stupid error in the RubberduckParserState
[retailcoder/Rubberduck] MDoerner pushed commit 923d97de to rd-next: Some cleanup in the DeclarationFinder
@Duga huh?
[rubberduck-vba/Rubberduck] build for commit 817509e9 on next: AppVeyor build succeeded
> Reopening. The referenced commit was sort-of-reverted, because it made context-sensitive selection description annoyingly flaky. Truth is, the FindSelectedDeclaration function needs a serious refactor.
> Declining in its current form - also... I think we have something like 60 pending inspections requested/suggested but not implemented.
02:25
@Mat'sMug You should schedule some "classes" for those of us who'd like to contribute but need some guidance.
@FreeMan that's a good idea. I'll save the conversation :)
> @rubberduck203 It's 5 tests, all related to binding in the resolver. Usually about 2 or 3 will fail on my home machine and 1 or 2 on my work machine. It's never the same ones, and they always pass (at least for me) if they're run by themselves.
> @comintern I've had an instance or two of one (or two) failing more than once. like, had to run it individually 3 times and it turned green. Slightly annoying issue!
> That's actually very telling @comintern. Tests are cross talking. Multi-threading was mentioned. Is async-await involved here or something lower level?

Any chance you guys can link me to one of the tests?
@Mat'sMug umm... I don't see it. At least not yet.
02:41
> @rubberduck203 EnclosingProjectComesBeforeOtherModuleInEnclosingProject is a good example. The multi-threading would be in the parser - IIR it's all just straight-up parallel threads. I don't recall any asych-await.
02:53
@Mat'sMug What would you think if you could write C# inline in WPF XAML docs?
yuck?
Kind of like you can do in a cshtml doc in ASP.NET.
So, you could inline converters where they make sense.
I don't mean to that extent, just a little bit.
you could always put them in the code-behind... which is a partial class
Oh, a sub-class?
I never thought of that.
I think if people can inline C# in XAML markup, it's going to get abused like there's no tomorrow
02:55
Except, I'm not sure if you could bind them properly that way.
Probably :/
I tried out the new C# features today, except for pattern matching.
You can't just use the tuples thing--you have to reference System.ValueTuple first.
makes sense
You can't just use the tuples thing--you have to reference System.ValueTuple first.
you just said that
so it's more of a framework thing than a language thing
I'd much prefer the opposite direction - making it easier to emit xaml from the code behind.
I only typed it once.
02:59
So would xaml inlining be like string interpolation?
Kind of.
I avoid that like the plague. When you have functionality encoded into string literals it makes it a serious PITA to refactor.
Well, no, it would actually be compiled, like in the .cshtml files.
var foo = "Foo's bar baz = {bar.Baz}"; doesn't play nice with thing like find all references.
It breaks at run-time, not compile time.
I don't get what in the world you are talking about.
I was talking about something like:
03:03
@Comintern R# pays no mind
<TextBox Text="{Binding Foo, Converter=@{C# code here}} />
VS either actually
Then, the tool that compiles the XAML into C# will just make that a converter automatically.
I don't think you need converters that often.. there's almost always a better solution that doesn't involve one
Like, introducing an intermediate variable in the VM?
03:05
Try building the interpolated strings at runtime. That came up in a code review at work a couple months ago.
eek, inline C# in XAML sounds like ASP Classic
@Comintern I have no idea what you are talking about.
downloads FrontPage.NET
@Mat'sMug I take it there haven't been any requests for RD support in FrontPage VBE?
03:07
ASP.RD?
FrontPage was a VBE host?
Which MS intern thought adding an IDE to the FrontPage IDE was a good idea
@Mat'sMug yep, I think so
> Thanks. Man, I miss VS right about now. I don't see anything obviously off, but *anytime* I've ever run across an issue where a test ran in isolation, but not many at once, one of two things was going on.

1. The test was inadvertently keeping global state (this one isn't).
2. A test was running a "fire and forget" asynchronous method.

I'm theorizing that something is being spun off into the background, but the test doesn't know to wait for it. I don't see anything that would be doing
03:08
gosh... I suppose it "just works" then
> Thanks. Man, I miss VS right about now. I don't see anything obviously off, but *anytime* I've ever run across an issue where a test ran in isolation, but not many at once, one of two things was going on.

1. The test was inadvertently keeping global state (this one isn't).
2. A test was running a "fire and forget" asynchronous method.

I'm theorizing that something is being spun off into the background, but the test doesn't know to wait for it. I don't see anything that would be doing
I'd check, but I usually go out of the way to exclude FrontPage from my Office installs.
I know it doesn't sound like something I'd do, but back in the day, I worked out some strange combination of line_continuations and square brackets that made FrontPage more usable.
3
03:12
I think I might be forced to deal with RegisterHotKey.
I thought I could bypass the LL keyboard hook bug in Office with a debug hook, but there really isn't a good way to deal with the fact that a keypress generates 11 callbacks...
...and 11 more when you release the key.
Oh gosh, @Mat'sMug, how did you guys pull this off? twitter.com/rubberduckvba/status/837120748829491200
Something in the resolver?
I has returned
woot!
The parsing certainly couldn't get much faster, and the declarations finder usually goes really fast too.
The references resolver is (was) the slowest stage when I left...
@Hosch250 90% of that is the declaration finder.
03:17
the inspections are the slowest thing now
What did you do?
[magic.gif]
We cached all of the common lookups.
@Mat'sMug do you have time to review the parser like you mentioned earlier?
@Mat'sMug Are they in the parse pass now?
03:18
@Hosch250 not yet
Ah, interesting.
@Mat'sMug That will slow it down.
How so?
The further inspections get from Declaration lists, the better.
@Hosch250 not much - it's one function call that's given a target and decides whether to tack an inspection result onto it
Calculating the inspections is what takes a while.
Although technically, we can cache the ones for modules that weren't changed.
That might be something we could look into.
@IvenBach got VS/RD open?
@Hosch250 exactly
03:20
I'll leave you to your fun--dishes time.
later!
@Hosch250 Only because they are trawling lists of 10s of thousands of Declarations. The more information that the parser contexts hold, the less we need to do that.
Oh, spring vacation is next week.
I have VS open but need to update RD. How again to I get my version updateto the latest release?
I'm going to be fiercely busy though, anyway, so RD might have to wait until summer.
03:23
@IvenBach I usually click the repository link at the top-right of this screen, hit "new pull request", and PR [next] into my fork
That's in VS or on github?
At the compare changes screen
which is base and which is next?
the dropdown on the left is the "target"
the dropdown on the right is where it comes from
so left would be your fork, right the main repository
room topic changed to VBA Rubberducking: Discussions about general VBA. Also the war room of the Rubberduck project (rubberduckvba.com | github.com/rubberduck-vba/Rubberduck). [antlr] [com-interop] [parsing] [rubberduck] [vb6] [vba] [whiskey-tango-foxtrot]
03:28
now they're actual tags that link to CR questions :) ..except for one though
Did I get that correct?
looks like you put the main repo as the recipient
oops let me switch that
so Left is my repository and the right is the main?
@Mat'sMug ^
03:30
yeah. left is where the commits go, right is where they come from
continuous-integration/appveyor/pr — AppVeyor build cancelled
I'm getting an error
This branch is out-of-date with the base branch
Merge the latest changes from next into this branch.
same
huh
I don't think my initial errors were ever resolved
base (left) is your fork, head (right) is the rubberduck-vba/Rubberuck repo?
03:33
Yep, at least I do believe so.
[rubberduck-vba/Rubberduck] build for commit 166f2e3f on master: AppVeyor build succeeded
So it just succeeded?
@Duga is only reporting what's happening on the main repo
well, unless you setup the webhook on your fork too
everytime a PR is created, AppVeyor schedules a build for it
if the PR breaks tests, the build will fail
do I do the pull request from my page github.com/IvenBach/Rubberduck or from RD page github.com/rubberduck-vba/Rubberduck?
03:37
yours
github redirects to the fork you pick as a base
That's probably why then. Retrying from mine
feel free to close PR #2 then ;-)
@Mat'sMug Makes a lot more sense now.
hi @PeterMTaylor!
03:40
I set it up like the image but it becomes
There isn’t anything to compare.
Ah I'm caught browsing! ;)
Howdy to all
Didn't seem to like me switching the requests around.
@PeterMTaylor I'm struggling to be taught by @Mat'sMug!
I must say jolly good chap! You are learning well ;)
@Mat'sMug Close that one, correct?
or Merge pull request?
03:43
eh, merge it - you'll make plenty of PR's anyway
Alright. That seems to have succeeded.
woot!
ok, so.. I'm looking at VBAParser.g4 in Rubberduck.Parsing/Grammar
So I now download the zip from my repo and extract it to me local folder for VS?
clone it
you can do that from within VS I think
Team Explorer>{Sync|Fetch|Pull}?
03:47
yeah
Do i choose Sync or Fetch or Pull?
wait is the team explorer connected to your local already?
pull
From what I recall Team Explorer is connected to my local but that one hasn't been updated
pulling will do that
are you in the [next] branch?
03:49
did you pull?
Clicked it and 'Cannot pull because there are uncommitted changes. Commit or undo your changes before pulling again. See the Output window for details.' came up
ok so you have local changes that haven't been committed yet - you need to either undo or commit them before you can pull the remote
how do I go about undoing since they won't be what I want
in the changes tab, right-click each file.. IIRC you can right-click the namespace too
select "undo"
then pull the remote changes in
Repository updated to commit 5882d5e5.
03:56
:+1:
ok. so bring up VBALexer.g4
Just for my knowledge. If a change is made in the repo I'm trying to pull from, and I make a change to my own local files. I'm not able to successfully do a pull till that conflict is resolved?
9 times out of 10 you won't see a conflict.
it's not necessarily a conflict - your local changes must at least be committed before you can merge the remote stuff in
And what does committing my changes entail?
All this is completely new to me so bear with me.
that's fine - it means you're committing these changes to your repository.. they're "officially in" if you will
any modification you make to the code can be undone like you just did in the team explorer
03:59
and committing isn't to my local but to my GitHub repo?
commits are local

« first day (1006 days earlier)      last day (2174 days later) »