« first day (317 days earlier)      last day (2863 days later) » 
00:00 - 21:0021:00 - 00:00

00:40
Wiki and website links need to be updated, which you probably already know.
Had to use the Tags option in Github to find.
@Mat'sMug Meet me in the VBA room, will you?
c:\windows\microsoft.net\framework64\v4.0.30319\regasm.exe "c:\program files (x86)\rubberduck\rubberduck.dll" /codebase /tlb
Oh, supper's on.
See you afterward.
If the installers aren't working well, you could try using Inno Script instead. I've found it to be pretty good.
@Rossco Maybe.
I'm pretty new to this project.
I wouldn't worry too much about it right now. I can have a go post-release to create a working script.
00:45
Its quite nice because it just runs from a single script file.
I see (well, not really).
Leaving now.
all good.
01:01
Back.
@Mat'sMug What did you change this time that broke it?
That command used to work...
@StackExchange @Hosch250 I think this may be relevant?
@Rossco Huh?
See what I linked to.
It doesn't seem to link to anything.
01:08
OK.
@Hosch250 I'm here
@Rossco yeah, I fucked up. turns out I earned myself a #WorksOnMyMachine award
@Hosch250 COM/VSTO add-ins for Office apps are easy. RD is a little bit more complicated than that ;)
01:28
OK.
01:57
@Mat'sMug Still around?
OK, I have a question (when don't I?).
lol
'sup?
Why do you include different files in the x64 installer than you do in the x86 installer?
which one(s)?
(starting VS)
01:59
The x64 has git2-e0902fb.dll, Rubberduck.Primary output, and Rubberduck.tlb.
x86 has Rubberduck.Debug Symbols, Rubberduck.Primary output, and Rubberduck.tlb.
oh, I should include the debug symbols in x64 too
it makes the detailed stack traces available, so we can have better bug reports
OK.
So, what about the git2-e0902fb.dll file?
git2-e0902fb.dll is a dependency of gitlib2sharp, ..which I don't recall adding manually. it's actually automatically discovered as a dependency when building the setup project
Hmm, it didn't add it automatically for me.
Also, there are a million versions of it floating around in the source.
So, where could I read the stack trace of why it keeps crashing?
what's crashing?
02:03
Well, why it fails to load.
I wonder...
No, that isn't it.
Or actually, it might be...
not very clear...
Why is the .tlb file from the Debug folder?
What is that file anyway?
Why isn't it a .dll or .exe?
In the x86 version, it is from the Release folder.
because a managed dll couldn't be referenced by VBA projects. it's the COM type library for the RD COM API. It exposes types such as AssertClass which the unit testing feature requires.
it should be from the release build
02:06
Hmm.
Trying to fix that.
it's from the release64 bin folder on my machine
Got it.
I needed to rebuild the thing as a release.
I'm going to post on SO in a bit.
If I take the downvotes for you, do I still get the shirt and mug?
Actually, I don't really care.
It'll be good enough if I contribute enough to get this on my resume.
Just looked at a number of static code analysis tools for #VBA. To everyone that paid $200-$999+ for that: we're sorry. Ducky's free.
@StackExchange didn't onebox that one for some reason
02:11
Got two 100% today, and one ungraded assignment.
One of the assignments got "Good job!"
nice!
Want to see it? Short video.
Hang on, I'm going to make it so viewers can't modify it.
I don't want my professors to have any problems, so I give them top privileges.
yikes
it's.. a 274MB download..
02:14
Yeah, I know.
Can't you view it on the web?
Oh, it is a .f4v file, so probably not.
@Hosch250 that one I can, the other one says "no preview available"
Yeah, .f4v files are flash files, but the videos usually render better when I export them from Premiere Elements (also Adobe software).
I can load up a .mpg like the second.
you don't have a youtube account?
I do, but I don't use it.
I actually don't have anything up.
that's the kind of vids youtube is made of
02:18
Honestly, I don't know if I can legally post the second video on YouTube.
It is a ballet trailer that isn't allowed to be distributed in any form, but we bought it.
I was going to take it off GDrive after I let you see it.
Isn't there any easier way to commit suicide than building an installer, lol?
2
I'll be stuck here forever, until my headache (or the raptors) get me.
I don't know why it doesn't work...
I thought I did everything write...
How do you debug it?
Is there some code that only runs when you are in debug mode or something?
Wierd.
wait, debug the add-in or the installer?
02:25
I think the raptors have got in the code.
Well, either/and/or/both!
the installer I can't, because I only have my laptop.
Same here.
Is there any way to see what/why/where/when/how it can't be loaded and what error happens?
the answer is in the windows registry
I know that the 32-bit and 64-bit Office/Windows are very different internally.
But why doesn't running that command work now, but did before?
so you're on 64-bit office, right?
02:28
Yes.
ok. there should be an addins64 key in your registry
Let me check.
Which folder?
under HKCU/Software/Microsoft/VBA/VBE/6.0/Addins64
and under that there should be a Rubberduck.Extension key
Right.
There is.
Hmm, we don't have a Manifest file.
What do those do?
We have CommandLineSafe, Description, FriendlyName, and LoadBehavior.
Wait, I thought LoadBehavior was suppose to have 3? It has 0.
3 is for "load at startup"; 0 makes it a manual load, so you'll have to load it from the "AddIns" menu in the VBE
but it will fail
02:32
Oh.
the Addins64 key makes RD visible as a VBE add-in
It starts at 3, but when it fails, it gets set to 0.
Yeah.
yeah that
OK, so what is 2 for?
Load no matter what?
And 1?
uh not sure
02:34
And what makes it fail?
And why did that command fix it before, but not now?
what makes it fail, is that it tries to find a CLSID for Rubberduck.Extension, and doesn't find it - or any of the other keys that are supposed to be registered for it
Where should they be, and what is registering (or rather, failing to register) them?
Supposing I entered them manually, what would the values be?
What is the (Default) key for?
"keys" are the "folders"
What folders?
Oh, OK.
in the registry. you're calling values "keys" and keys "folders" ;)
02:39
So, what is the (Default) value?
Oh, haha.
Well, they had a picture of a folder on the side, not a key...
not sure. it just... has to be there I guess.
Some programs modify it.
Anyway, where should the CLSID be?
right-click / new / key >> creates a new "folder" ;)
In the Addins64 key?
Is that a key or a value?
HKLM/SOFTWARE/Classes/CLSID/Rubberduck.Extension
02:41
Oh, that thing.
^^ there's a bunch of Rubberduck.X classes that should be registered there
wait a minute...
IIRC there should be a GUID under these keys
Yeah, there is .AssertClass, .Extension, .SourceControlClassFactory, .UI.AboutWindow, .UI.DockableWindowHost, and .UI.Settings._SettingsDialog.
and they all only have a (default) value?
02:47
Yep.
So, what should they really have?
...hold on
[HKEY_CLASSES_ROOT\Rubberduck.Extension]
@="Rubberduck._Extension"
they should have that "@" value
OK.
What should, the CLSID folder in them?
Or the actual values?
oh wait..
there should be this GUID under CLSID somewhere: {8D052AD8-BBD2-4C59-8DEC-F697CA1F8A66}
02:54
Yep.
Just default value their too.
Oh, hmm, nope.
@Mat'sMug Value of interest ^^
Is that what it should be?
So, what is wrong?
I... don't know.
02:59
Maybe it is my version of Office.
2013?
x64 2013.
but you got RD 1.2x to work, right?
Yeah...
then 1.3 has to work.
03:02
But it doesn't.
but it will.
Apparently, it has the intention of not.
Every bad man has a plan, and soon he will execute it.
And then, he will execute YOU (to the bug)!
(So my U doesn't boot me out for plagiarism, all credit goes to Disney's Bolt.)
Well, most credit.
So, what should the values be here:
the CLSID's should match the corresponding GUID keys
and they do (on my machine)
OK...
Hmm, I don't have {69E194DA-...}
like, if you search for a key by the name of 06996BB2-AD56-33CD-8B25-6000FC14C48E, you ... wait, what's 69E194DA?
03:09
The AssertClass.
well the rest of my sentence was going to be "you find the AssertClass registration"
hold on
I don't have any of these in the Classes folder.
hold on hold on
OMG
Did I solve it?
namespace Rubberduck.UnitTesting
{
    [ComVisible(true)]
    [ComDefaultInterface(typeof(IAssert))]
    [ProgId("Rubberduck.AssertClass")]
    public class AssertClass : IAssert
03:15
Did I?
I think I need to stick the GUIDs into the code.
OK.
Try that and send it to me.
You shed light on an issue there.
I think
03:36
@Mat'sMug Does that person seem like a troll to you?
new user. just young.
04:27
@sᴉɔuɐɹɥԀ Talking about me?
@Hosch250 No
This blaizor person.
@Hosch250 I'm not sure I need to hardcode the GUIDs there.
OK.
@Mat'sMug I have no experience with this, unfortunately.
understandable, COM interop is the future COBOL
Lol.
So basically I should stick with Universal apps, especially the way .NET is going cross-platform?
04:38
depends what you want to be coding ;)
I want to get on the new Windows Store/Windows Phone Office team.
yeah.. .not quite the COM stuff!
> v1.3 x86: 7 downloads
 
4 hours later…
08:44
@Hosch250 my 2c. I reckon go with .Net. It has the benefit of getting all of the features that everyone wanted in previous technologies.
I'm predicting that a large part of MS's software will end up rewritten in .Net.
 
8 hours later…
17:06
@Rossco Thanks.
@Mat'sMug How's it going?
 
1 hour later…
18:18
@Mat'sMug @Mat'sMug More data!
It is loading the stuff in apparently the wrong place!
Instead of Classes\CLSID\{}, it is in Classes\Wow6432Node\CLSID\{}
18:55
OK, just to let you know what I tried:
I tried adding the required keys manually, and it worked for the keys whose CLSID value did not change, but not for those that did change with the installation.
I'm not sure how much control we have over this... Are these values created automatically by the system for each install so they don't interfere with other applications?
Oh, another fool mistake.
Still didn't work...
19:22
Most of the CLSID's are static. if I recall correctly, they're the GUID's we generated and marked them with. Might be an outlier or two that's generated by the installer though. I'm not sure without double checking the code base @Hosch250
19:39
Hi!
@RubberDuck good think I pre-released.
I just found a bug in refactor/rename form controls... as I was taking shots for an article on RubberduckNews
Is there trouble? I've been trying to knock out my class work for the week. (between loads of laundry)
@RubberDuck seems the GUIDs are autogenerated
I thought they were hardcoded, too ...and then noticed AssertClass has no GuidAttribute
Maybe I didn't recall correctly.
I thought I changed that? Did I mean to and forget?
@Hosch250 THAT
@RubberDuck I don't know. it might not matter. x64 is shoving the keys under the wow node.
but it can't hurt to hardcode them either.
Well, I'm almost done with all my class work for the whole week. I'll actually have some time soon.
I managed to actually learn something too!
Anonymous classes. I had no clue.
19:48
anonymous types actually
LINQ loves 'em
don't dare passing them around as dynamic parameters though
Dammit I can't believe I let that bug through
20:06
What bug.
        private void RenameControl()
        {
            try
            {
                var form = _vbe.FindCodeModules(_view.Target.QualifiedName.QualifiedModuleName).First();
                var control = form.Parent.Designer.Controls(_view.Target.IdentifierName);
                control.Name = _view.NewName;

                foreach (var handler in _declarations.FindEventHandlers(_view.Target))
                {
                    var newMemberName = _view.Target.ComponentName + '_' + _view.NewName;
var newMemberName = _view.Target.ComponentName + '_' + _view.NewName;
I thought you just killed the bugs there?
I know
but _view.Target.ComponentName is getting concatenated into the handler name
that's dumb
Hmm.
I'm looking at generating a static GUID for those three problematic classes.
should be
var newMemberName = control.Name + '_' + _view.NewName;
20:09
OK, change it!
wait, no.
ugh
yeah, I'm fixing it asap
OK, yup, some of them didn't define a GUID.
Fixed one, now for the rest.
oh great. now I borded the VBE
Hope you have source control set up.
20:22
If you wrecked Rubberduck, you can recover from source control.
well hello, it's on GitHub
lol
I think it's my registry that I wrecked
I know, just joshing you.
Oh.
Lol, that is worse.
Want mine?
nope.
I know what the keys are
I just need to scrub it clean and start over.
again.
20:26
Hmm, isn't there an easier/better way than adding the keys to CLSID manually?
that's what regasm.exe does
So, we need to tell it "which" CLSID to add the keys to.
the GUIDs yeah
So, do you have any ideas, or should I look it up?
oh crap. we really need that.
I have I don't know how many keys for AssertClass
20:28
BTW, I set up GUID's for all the classes.
good
@Hosch250 ideas for what?
One question, though.
To tell it which CLSID to install it to.
adding a GuidAttribute does that
What if another developer uses the exact same key, and the application gets installed on a computer that has Rubberduck?
OK.
SO, I'll rebuild and install.
then there's a clash.
20:30
And what happens, we get blamed?
it's highly unlikely though
Isn't there a better way that prevents clashes 100%?
not that I know of
one way is to hard-code the GUID we register a class under, so we always use the same set of GUIDs between versions
20:31
Yup, I hard-coded them.
Hmm, two fails.
I don't know what I did.
Found the error.
Lol, and what an error!
I tried to give two classes the same UUID by accident!
3 succeeded.
well that's one way of clashing ;)
What happened was I copy/pasted the string, and forgot to update it.
Still doesn't work, though.
OK, better and better.
It created an empty key, but there are no values in it.
I'm rebuilding the solution, then I'll push it.
Done.
The values are still going in wow6432Node
20:47
@Hosch250 I believe that is why it's not registering and "the addin could not be loaded"
Me too.
So, how do we change this?
that's the question.
The question of life, the universe, and everything, right?
Is this "skiwi" Frank Van Heeswijk?
Yup to both?
20:51
lol
yeah
I think I have 30-some versions registered
You build a version that often?
every time I registered a debug build I created a bunch of GUIDs in my registry
Oh, I see.
thinking I'd overwrite the same ones every time
Time to clear that out, I guess.
You should overwrite the same ones now.
Did you get my changes?
20:53
did you make a PR?
I just sent them to the master.
I should probably clone it.
that's your master I believe
Oh.
OK.
How to make a PR from VS?
no idea
Got it.
Sending as soon as I log in.
403 error: An error occurred. Detailed message: Response status code does not indicate success: 403 (Forbidden).
Lol.
> An error occurred. Detailed message: Success did not occur.
20:57
I think I must have deleted about 20 keys for Rubberduck.UnitTesting.AssertClass by now
dammit
Just delete the entire key.
They will be recreated when you install it again.
deleting HKLM/SOFTWARE/Classes/CLSID doesn't sound like a very good idea
Oh.
I thought you meant Classes/Rubberduck.---
00:00 - 21:0021:00 - 00:00

« first day (317 days earlier)      last day (2863 days later) »