« first day (1750 days earlier)      last day (182 days later) » 

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 5 opened issues. 1 closed issue. 10 issue comments.
Minesweeper: Games Played: 163, Bombs Used: 72, Moves Performed: 20983
 
 
1 hour later…
1:29 AM
Draft for the 2.4.1 Release Notes - Did I miss anything?
4
 
 
2 hours later…
3:01 AM
@Vogel612 awesome!
 
 
3 hours later…
6:41 AM
Feels good being able to go through examples and refactor them without stressing.
Night pond.
 
7:29 AM
@mansellan One reason your PR is failing tests is that your new constructor for ClassModuleDeclaration does not pass all optional parameters to the main constructor.
Btw, we have zero tests covering a situation like the one introduced by the subtypes of ClassModuleDeclaration having a sub declaration type of ClassModule.
There might be things breaking because of it.
In particular, there might be places that assume that the result of DeclarationFinder.UserDeclarations(DeclarationType.ClassModule) still contains these declarations, which is not true.
So, this change already started by @Comintern with the document modules, should be followed/accompanied by adding new tests for the subtypes for all features of RD dealing with class modules.
 
 
3 hours later…
11:06 AM
@M.Doerner thanks, I'll take a look and see what tests I can add
 
 
1 hour later…
12:08 PM
BTW, I don't think the model is quite complete even with this PR. #4338 suggests there should be another abstract type of ComponentDeclaration between Declaration and ModuleDeclaaration for project components that are not modules.
 
 
2 hours later…
2:16 PM
Hi guys. You know Visual Studio. I needed a reference for my VB.NET project
Microsoft.Office.Interop.Excel.dll - is there a way to "include that into the .exe file"?
 
how would you normally go about getting that dll file? (i know jack about if you are allowed to bundle that into your exe, even if you can)
534
Q: Embedding DLLs in a compiled executable

MerusYou know, I haven't seen a good answer for this anywhere. Is it possible to embed a pre-existing DLL into a compiled C# executable (so that you only have one file to distribute)? If it is possible, how would one go about doing it? Normally, I'm cool with just leaving the DLLs outside and having ...

@SonGokussj4 Found that for embedding dll's
but id definitely check and see if you are allowed to bundle that dll. i dont know the rules
@SonGokussj4 after a little more googling i found social.msdn.microsoft.com/Forums/en-US/…
 
2:36 PM
Yeah, they're just the Primary Interop Assemblies (PIAs). They are intended for distribution - they don't actually contain any Office code, they just wrap the COM types for existing installations.
 
2:50 PM
posted on March 22, 2019 by CommitStrip

 
@Feeds Ha!
 
3:19 PM
mmm solar panel goodieness
so i live in a desert
we almost never get rain
though the last month has been ESPECIALLY rainy :)
now i have to temper my love of rain with my dislike of high electricity bills
 
3:44 PM
Thank you. I tried both ILMerge (Microsoft Official) and Fody... Just unable to get it to work. Anyway, I'm going home. Weekend awaits.

Thanks for the tip for Fody.
I'll try again on monday.

The thing is I've build it for Office 2016 and the customer has Office 2010 so....
 
oof.
OH, by the way, if they actually have office installed, the interop SHOULD work
you could test it with like a test comp using excel viewer or something (i think)
on the test machine since it would have the interop stuff you are linked to
then see if it actually works.
though that assumes excel would have to be installed on hte computer you run your application on.
 
> I got a report of a failure to build this repo, so I wanted to make y'all aware of the problem.

If you try to load `Rubberduck.sln` (or any individual project) in Visual Studio 2019 (Preview), it will fail. This is because `Sunburst.NET.Sdk.WPF/1.0.47` isn't compatible with 2019. From SunburstApps/MSBuildSdks#1, it sounds like Rubberduck should consider migrating to a different approach.

As mentioned there, one option is to wait for .NET Core 3.0 and its associated SDK, which [will suppo
 
4:01 PM
@Duga To me this sounds like we simply should not use VS2019 until they finally add support for WPF in the new project format.
 
@M.Doerner Depends on whether Sunburst will add support, but yeah. 2019 isn't even out of preview yet.
 
"Doctor, it hurts when I do this" - "Well then, stop doing that!" ...we just barely got 2017 to build RD semi-not-too-flaky. I'd prefer we hold off on 2019 for a while...
2
 
4:08 PM
@Hosch250 Have you followed the link?
 
Yes.
> This is because Sunburst.NET.Sdk.WPF/1.0.47 isn't compatible with 2019.
 
@Vogel612 critical? ...easiest work-around is to use VS2017, how critical is it that 2019 can build RD?
 
One of our NuGet packages isn't compatible with 2019 yet.
@MathieuGuindon Technically that was because of the .csproj file change.
 
To me, it suggests that sunburst is discontinued.
 
4:10 PM
@M.Doerner No, it just means that version doesn't support 2019.
 
> Thanks for reporting this. As it stands, I think waiting for .NET Core 3.0 is the thing we want to do. We spent a lot of time to get the csproj files to the "new csproj" format, removing the Sunburst Sdk would imply at least partially reverting that effort.

Sunburst was initially intended as a crutch until the new csproj format supported WPF and WinForms builds correctly, as such this issue is a useful reminder to pay off that particular technical debt :)
 
The link in the issue.
 
Ohh.
 
@Duga fair enough
 
4:10 PM
@MathieuGuindon it's critical because it completely breaks the build, not because time is of the essence.
 
Oh, yes, SunBurst isn't needed since .NET Core 3.0 added proper support.
 
I'd assumed we want to migrate to 2019 sooner or later, I'm using critical as more of a "blocker" here
not really attached to that particular label, though
 
And, FWIW, just using 2019 doesn't imply changing the build.
I don't think we can even move to C# 8.0 because, IIRC, it requires updating the SDK target.
 
Oh, really? I thought it was just that most goodies would not be included.
 
I've yet to get used to 7.2, 8.0 can wait...
 
@M.Doerner Oh, might be the case.
 
@Duga I'm taking this one into my list of stuff, especially considering I wanted to check out Cake for building the ducky and touching that kinda lends itself well to also touching the VS2019 support ...
Now I only need to get through my backlog of real life issues and then I may even be able to get some stuff done on RD
I won't be able to finish the 2.4.1 release this weekend if I don't get it done tonight...
 
All that needs to happen is the release notes and merging the PR to master, right?
 
release notes are drafted, the version increment needs to happen
 
Oh.
 
4:20 PM
note that the release notes currently are just my somewhat incoherent rambling at 2AM yesterday...
 
What were you doing up that late.... /jk
Some of my brothers like to stay up until 2-3 AM and get up at noon.
 
trying to get a factorio lazy run off the ground.
been ages since I was able to actually take a proper break from stuff
 
I have to go to bed at 9-10PM if I want to be reasonably awake for my drive in to work at 7AM.
 
yea, working hours does that to you :)
 
And now you have to stop taking a proper break again right away? :(
 
4:22 PM
Kinda. I organized the repairs for the dishwasher today, also signed my continuation contract for work...
 
I thought you hated that place, LOL.
 
I was allowed to rip out OSGI and now I can actually use IntelliJ to deal with the crap in that project
 
FWIW, it's great that they gave you free reign to clean up their systems, more or less.
I'm not allowed free reign in our systems.
But I have gotten a lot of excitement around my prototype replacement system.
At least one of the architects is interested in it. I haven't talked to the other yet.
The other has been super busy with Azure.
 
I'm supposed to get the thing into a working state ASAP. Aside from that I'm pretty much free
The working state thing means I get to keep most of the old mess around for a large component that's critical and entails herculean efforts to refactor
 
LOL.
Do you have an estimate of how much longer it'll take?
 
4:27 PM
not the slightest clue
 
Ouch.
 
We dropped the whole platform this thing is running on
 
At that point, it's almost honestly faster to rewrite.
Because otherwise you have to figure out what it does vs what it should do.
 
There's no way to do that, actually. No clean requirements docs.
soo ... what it does is exactly what it should do
 
LOL.
 
4:28 PM
which has obvious disadvantages...
 
Same for our systems at work--unless it's obviously broken, then we write new specs.
And it's obviously broken in many places every time we try to change something.
And most of the time, the "new specs" never get written down. Just put in a ticket and get buried.
 
it doesn't really help that the project is under semi-active development bodging by a few students and one stakeholder
 
LOL.
 
Sounds like you're writing requirements for a moving target.
 
Also, I've come to the conclusion that if it's ever my choice, I won't hire a dev who doesn't know an FP language.
 
4:31 PM
Hosch or me? Because I am not going to start writing requirements now
@Hosch250 do elaborate?
 
Devs that know that are more likely to be up-to-date and better rounded in their knowledge.
 
lol...
 
The vast majority of the others are all "FP doesn't do anything useful", and don't even realize the favorite parts of their language are inspired by FP (looking at C# devs here).
 
not really. LISP is a proper functional language, but I wouldn't hire someone that only has LISP in their FP arsenal, honestly
 
It even came up at work yesterday. Someone said "MS supports F# for azure functions. I disagree with them and don't think they should've supported it."
I was like WT*...
 
4:33 PM
lol. someone didn't understand what the .NET Framework is
 
They are one of our architects.
The one who thinks that design patterns should be taught before the language.
 
also ... azure functions sounds like a totally object-oriented thing
 
To someone who only knows JS and is trying to break into C#.
@Vogel612 Not quite. It's basically a web API kind of thing that runs on triggers.
Except it's supposed to be really light-weight.
 
so it's first-order functions?
 
It's more like a serverless app.
 
4:36 PM
it's lambdas in the cloud, right?
 
That's very light weight and supposed to have one job.
Not quite.
Same concept, but not quite just a lambda.
 
meh. close enough to call it FP, IMO
 
It's a full API.
But yes, it basically is.
It basically handles a web request and can write to disk and return direct responses and stuff.
Azure can run it on a timer, on an event trigger, like adding a file to blob storage, on a github webhook, etc.
 
that's all push-based. Not at all different from just calling a function.
 
Yes.
They are pretty cool, actually, and can do a lot of things, but this person didn't get that it would actually run on any .NET DLL that implements the right interface(s), regardless of the parent language.
Or however you mark it as an azure function; I don't quite remember that bit from his presentation--but I'd need to look it up myself if I used it anyway, so..
It uses attributes everywhere to mark inputs/outputs. I'm beginning to hate attributes.
ASP.NET supports them on view models to handle data validation on the front end automatically. EF uses them to designate keys and stuff if you don't do the fluent-API or whatever it's called, which is much nicer.
If you aren't careful, you can end up with like 3-5 attributes on a single class.
 
4:42 PM
that's not really that many, you know?
 
The display name for the field, whether it's required or not, valid ranges, etc.
When you put each one in its own bracket on its own line it is.
So it's easier to comment them out, you know?
Not to mention that you don't comment them anyway ever.
Right now, I'm working on writing extensive unit tests for one of my prototype's microservices when I'm not chatting or smashing bugs.
 
Not funny, LOL.
 
@Hosch250 heh, in that case you should have pointed out that they also support VB.Net on Azure Functions... :-)
 
@mansellan He had that on his presentation too.
 
4:52 PM
lol
 
Didn't make any comment. That's an OOP language, and it's perfectly OK to use that one.
 
for some values of "OK" :-)
 
/shrug
He's always saying how FP is busy dying.
And I'm just laughing in my sleeve since C# is borrowing FP tools left and right.
C# 8 nullable references is basically because they saw how successful FP languages with their monad thing for that.
Pattern matching, Linq, even async/await.
That was added after they saw how cleanly F# had it.
TBF, it's probably far easier to support it in stateless FP languages.
But still, they, as a general rule have better support for asynchronous programming. Some to the point everything is async by default and the user can't even opt out.
 
oh agreed. was just commenting on VB.Net's general lack of goodness in general :-)
 
Yeah, I do the same :)
And then, you know what's in discussion for C# 9? Better support for type-guessing on fields, methods, and properties.
Another thing inspired by FP languages.
 
4:58 PM
Never understood why anyone learns it. 99% of the curve is gonna be the concepts and framewroks. Understanding semi-colons too adds very little....
when I jumped from VB6 to .Net, I didn't even contemplate VB.Net
 
Right now, I miss having you guys tell me that my tests are testing too much.
[Fact]
public void Update()
{
    var foo = new Foo();

    var fooData = new List<Foo>
    {
        new Foo()
    }.AsQueryable();

    var foos = MockDbSetCreator.MockDbSet(fooData);
    var bars = MockDbSetCreator.MockDbSet(new List<Bar>().AsQueryable());

    var context = new Mock<ProgramDatabaseContext>();
    context.Setup(s => s.Foo).Returns(foos.Object);
    context.Setup(s => s.Bar).Returns(bars.Object);

    var controller = new FooController(context.Object);

    var result = controller.Create(foo);
I think that's somewhere between 2-5 tests.
And I might switch to NUnit so I have Assert.Multiple.
Because some of these do make sense to be in one test.
For example, the top two go together, and 3/4 are both just making sure the right DB methods get hit.
 
Aren't unit tests only supposed to have a single Assert to test once?
 
@IvenBach Arguably.
 
At least for my simple world.
 
Sometimes it makes sense to have multiple, for example asserting on multiple properties of a result after a change.
Some frameworks have support for Assert.Multiple that lets you combine them into a single assert and tells you which points failed.
Assert.Multiple(() =>
{
    Assert.AreEqual(5.2, result.RealPart, "Real part");
    Assert.AreEqual(3.9, result.ImaginaryPart, "Imaginary part");
});
 
5:13 PM
Was it Ninject that was doing that before?
 
Hmmm?
Ninject is just an IoC container, not a testing container.
 
I thought there was something like that in the RD code, somewhere.
Where multiple tests were being done.
 
Syntax check: virtual public or public virtual which is preferred?
 
Accessibility modifier goes first in my world.
 
@Hosch250 resharper agrees
 
5:39 PM
@Vogel612 Good game for sure. Just found a new one called Satisfactory thats a LOT like factorio in 3d
@Hosch250 What is an FP language?
 
@KySoto Functional Programming. Think C# lambdas on steroids.
 
hmm
i dont think id ever get hired in a "real" programming environment
im like in that crappy spot between an enthusiast and an ameture programmer
 
@KySoto A kindred spirit coder.
 
and im in a situation where i dont get to do any "real" programming, and i dont have time to try to make VBA code similar to real programming in the way everyone here talks about
with all the different ways you look at it
 
@KySoto remember that real men uses sandpaper for toilet paper
 
5:43 PM
using interfaces etc
@IvenBach too true
 
@this Correction, corn kobs.
 
@this unless you are deployed, then you just have sand IN your toilet paper
 
(IOW, "real" is usually an absurd ideal)
 
@this BTW Aren't you supposed to be schmoozing at your summit?
 
it's already done
It's usually 3 days, though I stayed for 4th day which was yesterday
 
5:45 PM
i had such a bizarre thing happen yesterday
i was using an insert query with all of the values i needed to insert as parameters
i double and triple checked i wasnt getting errant values in the parameters
but it kept on telling me that i was trying to set a variable to null that wasnt a variant
i couldnt find what the heck it was talking about
 
context?
 
a function that takes a form and saves the data from it
there are 7 forms that are designed very similarly
so i figured one save function made more sense then rewriting it 7 times
i only changed it to open a recordset on the table to add the field values in, and it worked just fine
i couldnt see anything wrong with the query
 
the error is generally because you tried to put a null value in a non-nullable field
 
i ended up writing a sub to dump the parameter values
i made every field except the pkey nullable to check that
well and bit fields
oh i take it back, i didnt set 2 int fields to nullable, but i KNOW the values inputted were not null.
 
would have to see the original query
 
5:52 PM
PARAMETERS cid TEXT (7)
	,ct Long
	,cta Long
	,pid TEXT (7)
	,c BIT
	,ag BIT
	,en TEXT (35)
	,dop BIT
	,pp BIT
	,em BIT
	,con BIT
	,eh BIT
	,es BIT
	,mp BIT
	,lu DATETIME
	,lub TEXT (35)
	,ds longtext
	,vr bit;

INSERT INTO dbo_Engineering_Trace_ChangeIdHeader (
	ChangeId
	,ChangeType
	,ChangeTypeAllowed
	,ParentChangeId
	,Complete
	,AutoGenerated
	,Engineer
	,DrawingOfProduct
	,ProductionProcedures
	,EngineeringMaster
	,ChangeOfNotification
	,EquipmentHardware
	,EquipmentSoftware
	,ManufacturingProcess
 
are you actually setting all of the parameters?
 
yes
that table definition
the actual code where i set the values
           Set qry = dbLocal.QueryDefs("qryChangeIDHeaderAdd")

           qry.Parameters(0).value = argF.txtChangeId
           qry.Parameters(1).value = argChangeType
           qry.Parameters(2).value = ChangeAllowed
           qry.Parameters(3).value = argF.cmbParentChangeId & ""
           qry.Parameters(4).value = IIf(vr, False, (ChangeAllowed = 0))
           qry.Parameters(5).value = False
           qry.Parameters(6).value = argF.txtEngineer
           qry.Parameters(7).value = argF.chkDrawingOfProduct
all of the forms have the fields that are listed
argF is the ref to the form
vr the variable that stores if process needs to have a second person verify the work
well a change type
 
you're reading directly from the controls' value
what if they contain nulls? (e.g. a new record)
 
yes. i dumped the values when the query failed to execute
 
that would cause the errors, IIRC.
 
5:57 PM
they dont
unbound forms, and it validates that everything is filled out before it gets here
P(0)[cid]=CAA0250
P(1)[ct]=64
P(2)[cta]=0
P(3)[pid]=CAA0010
P(4)[c]=0
P(5)[ag]=0
P(6)[en]=Mathew Myers
P(7)[dop]=0
P(8)[pp]=0
P(9)[em]=0
P(10)[con]=0
P(11)[eh]=0
P(12)[es]=0
P(13)[mp]=0
P(14)[lu]=3/21/2019 1:21:31 PM
P(15)[lub]=Mathew Myers
P(16)[ds]=Stuff
P(17)[vr]=0
thats the parameter dump
also by the way, my names Mathew lol
all i did to change it (and make it work) was
        Set rsChangeIdHeader = dbLocal.TableDefs("dbo_Engineering_Trace_ChangeIdHeader").OpenRecordset(dbOpenDynaset, dbSeeChanges)
        vr = VerificationRequired(argChangeType)
        With rsChangeIdHeader
            .AddNew
            argF.txtChangeId.Requery
            .Fields("ChangeId").value = argF.txtChangeId
            .Fields("ChangeType").value = argChangeType
            .Fields("ChangeTypeAllowed").value = ChangeAllowed
            .Fields("ParentChangeId").value = argF.cmbParentChangeId & ""
so all the values in the form were the same
exactly the same
i already deleted the record because im dealing with live data
this whole thing just doesnt make any freakin sense to me
 
@Vogel612 You there? I have a question regarding .csproj files in the old format if you're available.
 
6:12 PM
Kysoto, no, doesn't make sense but I'd have to look at it another day to see what exactly causes the error.
 
6:58 PM
@IvenBach dinner right now, but do ask
@KySoto you're kinda late to the hypetrain there
 
which train? :p
 
@Vogel612 was regarding importing a WinForms into a project and not having it's files be considered part of the main Form.cs
chat.stackexchange.com/transcript/message/49607571#49607571 and the messages that continue on with it.
My word usage and spelling is particularly terrible today.
 
I'm afraid that's somewhat outside my range of comfortable expertise...
 
mkay.
 
all that's left to do is hit the buttons
2
 
8:03 PM
[rubberduck-vba/Rubberduck] build for commit 3e074f78 on unknown branch: AppVeyor build succeeded
[rubberduck-vba/Rubberduck] build for commit 3e074f78 on unknown branch: 64.53% (target 0%)
 
8:39 PM
Offtopic: The new Aladin movie won't be so bad, I think :) After the last trailer.
Oh and thanks for mentioning me in the release notes for Czech transl :) Warms my heart :D
 
9:03 PM
-_- looks like the same stupid bug is hitting me.
 
9:23 PM
I got googly eyes right now. Talking with my co-worker that has C experience, he's confident we could convert the Excel Workbook into its own dedicated environment.
C# coding would be a neat shift.
 
10:01 PM
@IvenBach um... wat?
 
We have a workbook full of engineering calcs that really should be its own dedicated program.
Co-worker who was recently hired worked previously for a software company that wrote engineering software.
Brought up the idea to him and he's already done similar thing with Access. Writing an assembly that's called from Access to speed up calculations.
He's been getting up to speed with projects he'll be managing and hasn't had the time.
 
Hmm interesting. Would have liked to see how that was done.
I usually figure that calling an external assembly to do calculation from a query would be more likely to kill the performance, not improve it, due to the overhead associated with marshaling data across the boundary often.
Even if it's unmanaged, it still would have to be a COM call, I think.
 
@this By all means. I'll give you a heads up if/when we tackle it.
It'd be a minor way to pay the @pond back with knowledge transfer.
 
10:18 PM
@this could you pass raw pointers to the internal memory space around?
cuz that's the only way I can think of to sidestep the marshalling
 
kind of but that would make it very fragile
I think the longs and doubles generally don't need marshaling
it's usually the strings that is problematic since you must use COM functions to manage those strings
but in the end, you would still have to read individual pieces out of the internal structure into a marshal-able variable, pass it, let it do its thing, get the return back and transform it back to the original structure.
Calling such function from an Access query or an Excel worksheet function would necessarily traverse the boundaries for each invocation needed and that extra overhead can quickly add up
 
If you do C for pure numbers though, I think it could be faster.
C is awesome at number crunching.
 
holy crap my mobo just beeped a heavy warning at me without any prior notice.
 
And VBA isn't really designed for heavy engineering number crunching.
 
quit the game, CPU temp at ~47°C when I got hwmonitor open
this is such a nuisance
 
10:28 PM
Yeah, I can see that - I just don't know where the threshold is when you can see improvement.
If you made a function to add x to y and return it, that would be dumb
Would calculating standard deviation be enough? Probably not.
 
isn't there a builtin for STDEV?
 
Yes there is, the point is whether the threshold will be met for something like that. I think not.
I guess to outweigh the added overhead, it'd have to be something like... calculating the fourier series?
 
honestly if there's an EXCEL builtin that one's most likely to be faster.
 
IDK.
 
hmm... quick inverse fourier transform is something that I can see being slow in excel
 
10:31 PM
Ayup. So I'm not having an easy time visualizing what engineering function would be benefited having a C DLL being called
 
 
1 hour later…
11:48 PM
Are we looking to replace the DeclarationType enum with an inheritance hierarchy in the short or long term? I feel like maybe my PR has landed in the first stages of that... Should I be looking at reworking tests in that direction?
 
@pond Enjoy the weekend all.
 

« first day (1750 days earlier)      last day (182 days later) »