« first day (2261 days earlier)      last day (919 days later) » 

12:01 AM
RELOAD!
[rubberduck-vba/Rubberduck] 1 closed issue. 3 issue comments.
[Minesweeper] Games Played: 105, Bombs Used: 94, Moves Performed: 13287, New Users: 17
 
12:55 AM
[rubberduck-vba/Rubberduck] build for commit 70edc915 on unknown branch: AppVeyor build succeeded
> @MDoerner Thanks for reviewing this PR so it can be included in the next release. I preferred your naming suggestions - so they have been incorporated. All other comments addressed as well.
 
1:40 AM
 
1:57 AM
> **Rubberduck version information**
Version 2.5.0.5524
OS: Microsoft Windows NT 10.0.14393.0, x64
Host Product: Microsoft Office x64
Host Version: 16.0.12527.20880
Host Executable: MSACCESS.EXE

**Description**
Auto completion doesn't seem to work sanely when in a middle of string. This becomes quite annoying when constructing long strings that needs variable interpolated.

**To Reproduce**
Given the code:
```
foo = "abc| def"
```

I want to modify this and insert a variable, so
 
2:13 AM
> Something is off with the condition / expected behavior - if the number of double quotes on either side of the caret isn't odd, then the caret isn't in the middle of a string literal.

The first quote was inserted without AC intervention *because* the caret is in the middle of a string literal; seems what you really want/expect, is for AC to *stop* bailing out inside a string literal.

If AC doesn't bail out, then the first `"` keypress would have resulted with `"|"` and the manual concate
> Something is off with the condition / expected behavior - if the number of double quotes on either side of the caret isn't odd\*, then the caret isn't in the middle of a string literal.

The first quote was inserted without AC intervention *because* the caret is in the middle of a string literal; seems what you really want/expect, is for AC to *stop* bailing out inside a string literal.

If AC doesn't bail out, then the first `"` keypress would have resulted with `"|"` and the manual conca
> If you mean from this:
```
foo = "abc| def"
```
+ `"` keypress to:
```
foo = "abc"|" def"
```

that might work.... _provided_ that the VBIDE doesn't try to get cute and insert a `;` or something silly.
> I think what is requested here is that AC does not kick in if the line ends in a non-terminated string literal.
 
3:24 AM
@Duga crap didn't think of that - indeed that's precisely where the VBE would step in and screw it all up
@Duga that's quite possibly the only solution; VBE steps in and messes everything as soon as SCP attempts anything.
 
> Linking #5340
> Argh that's correct, VBE steps in unless we push the feature into mind-reading territory and complete with " & | & "... wait what if it actually did that, and did ""| when the Ctrl key is being held down?
> Argh that's correct, VBE steps in unless we push the feature into mind-reading territory and complete with `" & | & "`... wait what if it actually did that, and did `""|` when the Ctrl key is being held down?

Otherwise yeah, bailing out is the only possible solution.
 
3:56 AM
> The *default* should probably be no-op / bail out.

Perhaps configurable Ctrl/Shift + `"` combos can then be added to *explicitly* (as in "I asked for this to happen")...

- Split the string at caret position and `&` concat the parts: `"abc|xyz"` -> `"abc" &| "xyz"`.
By placing the caret after the `&` operator, we help avoid the operator accidentally parsing (by both RD & VB) as a type hint. It also makes it seamless to then just start typing some variable's identifier name. Backspacin
> The *default* should probably be no-op / bail out.

Perhaps configurable Ctrl/Shift + `"` combos can then be added to *explicitly* (as in "I asked for this to happen")...

- Split the string at caret position and `&` concat the parts: `"abc|xyz"` -> `"abc" &| "xyz"`.
By placing the caret after the `&` operator, we help avoid the operator accidentally parsing (by both RD & VB) as a type hint. It also makes it seamless to then just start typing some variable's identifier name. Backspacin
 
 
5 hours later…
8:35 AM
@MathieuGuindon Ah Hi! :) I'll get into that on the weekend. I see you've written something on 7th July but no mention/ping? I'm not even sure how ping on twitter works. No StackExchange notification either. Just write here next time and I'll react to that in few days or can you send messages on Twitter? :) Anyway I'll gladly try to finish it until sunday.
Anyway, in the past 3-4 months, I was learning C# ASP.NET Core 3.1 MVC / MSSQL / Repository patterns / Entity Framework / JavaScript stuff. Maybe, in a bit of time, I'll finally be able to contribute with some code :-) C# is not black magic for me anymore. I hope so. Didn't open RD Code for quarter of a year.
 
9:20 AM
 
 
1 hour later…
10:34 AM
@SonGokussj4 That's all? slacker...
good morning, @this. I'll get a cuppa down, and read through the morning's email & will be digging back into that SSIS issue
 
@FreeMan I'll bury my head in the ground and be embarrassed.
 
10:50 AM
@SonGokussj4 Mat's ping here would probably have worked, but just because he is a mod. My ping did not reach you because you had not been in the chat for 14 days at that time.
 
I see. Maybe e-mail? Or some form of another message in the future?
 
11:10 AM
@SonGokussj4 As you should! ;)
 
 
1 hour later…
12:24 PM
@FreeMan fyi today is going to be busy for me so can't say whether I'll be available
 
Oh, sure, abandon me in @this, my time of need... :/
Yeah, I get it, no worries. I always appreciate any help y'all give!
I think you may have been right that maybe I didn't parameterize the connection string, but anytime I hit Parameterize on the connection it sets me up to create a new parameter, and I don't see how to determine what's already been parameterized.
off to search the webz I go
 
1:14 PM
according to this it looks like I'm using the project deployment method because:
> A project, containing packages and parameters, is deployed to the SSISDB catalog on an instance of SQL Server.
and I have the project visible in my SSISDB catalog on my server. So... continues to dig...
 
1:27 PM
nope, still no dice.
created a parameter for InitialCatalog using my $Package::Database parameter... which is wrong, because it's $Project::Database
changed it to $Project::Database, deployed to the server, executed, still nothing.
:(
continues to load into my Dev environment.
continues digging
 
1:43 PM
Since the project is using the parameter as the InitialCatalog now, I need the db name, instead of the full connection string. Editing the "Prod" Environment to pass in the name of the production server instead of the connection string.
no dice
data is still loaded to the Dev server
 
1:55 PM
#ShootingRandomly
 
@SonGokussj4 cool, will power-ping you here in the future if I can't reach you otherwise - I just wouldn't want you to feel coerced in any way into contributing; this should be fun, not a chore =)
@FreeMan I almost never use an initial catalog and make the queries specify the database - could your components be doing something like "select * from devdb.dbo.table"?
That would override the initial catalog config
 
Don't think so, I'll double check...
Here's the config in the package:
When I edit the connection itself, it shows the "ReportingDev" as the instance it's connecting to.
 
Yeah but individual data source (/destination?) components can override this
 
I changed the parameter to "Reporting", and looked at the connection config again and it shows up as "Reporting" now.
will go check the queries, just to be sure
 
So that part looks good, problem must be further downstream
 
2:04 PM
I just checked all the component steps - everything uses the one, single connection manager, and all references internal to that are to dbo.<something>
nothing that I'm seeing that looks like a hard-coded server instance
I've got one stored prod that's getting called, so I'll have to double check that, but the data isn't even getting loaded to the proper temp table before the SP is called, so even if there's an error there, it's breaking before that
ok, gonna try something, just for funzies...
 
@MathieuGuindon It is fun for me :-) Well, I won't say it't not boring in any way... Some words are hard to translate and it's getting on my nerves sometimes. But I love the project and want to help even more in the future so... The "fun part" is exceeding the "have to" part a big time. Don't worry and contact me anytime you want.
 
Thanks a bunch!
 
@SonGokussj4 wo0t!
nope, stumble at the first hurdle.
Step 1 of the process is to truncate the temp table into which the CSV is loaded. I added a couple of records there by hand, and after executing the process, they remain.
There are no errors recor... hey, wait, I've been messing with it, maybe there are errors in the SSIS run log now
(BTW, the SP in question doesn't even specify dbo., so it's not hard coding the server)
 
0
Q: Sheet display in function of date and time on open and save

Patates PiléesHere's a simple one for u guys, The code is called upon workbook_open and BeforeSave, it displays the right sheet in function of date and time (Day vs night shift vs date). The code run trough the sheet and activate it if the date on sheet is the same as the actual date. Since there's 2 sheets wi...

 
be aware that not specifying the dbo may mean it ends up in yourUserName.foo
 
2:16 PM
^ will fix!
 
normally it searches the yourUserName "schema" first before searching the dbo. I don't remember the conditions but it's possible to create a table that's in yourUserName schema and then later have an error finding it in dbo or whatever. Two-part naming is recommended. Three-part naming, of course, is problematic for reasons you already know about.
Leave it to Microsoft to create a situation where one-part naming and three-part naming is problematic and therefore you need to do two-part naming. :shrug:
 
#SeemedLikeAGoodIdeaAtTheTime
OK, here's the result of the latest package execution (wait... it makes sense...)
It's properly getting the Prod environment, so that's good! The failure is on the last step where it does a file-system rename. The destination file already exists (after having run this 20 time this morning), so that's the step that's failing.
The bad news:
The Database parameter (not sure how I've managed to get 2 now) is still pointing to "Dev"
I'm sure one is a package level and one project level? (or something similar)
at least I've got the idea of where to look
Yeah... I've got a Project level parameter set properly
the Package level param is "wrong" (pointing to Dev)
but... the connection manager is set to use the Project level variable!
 
e.g. [$Project::Database], not [$Package::Database], right?
yeah
 
bizarre...
I might try a rebuild and redeploy, just for fun.
 
try and delete the package variable
 
2:26 PM
that too...
Deleted the pkg variable.
Did a rebuild on the whole sln
deleted the project from the server
reran it and got an error that my environment reference is now broken. :(
off to fix that up
 
Which is a good sign, because it means that the environment ID that I was intending to use is the one that was being used (since it was reported in the error message)
 
Yahoowieeeeee!!!!!! it worked!
Additionally, I had to add the environment variables (could have probably just reused the old ones instead of deleting & recreating them) to the newly re-added package, then it worked!
Whew!
Thanks to @this and @MathieuGuindon for the kicks and nudges in the right general direction. You got me thinking about the other things that I just ass-u-me'd were OK.
Only problem: I changed so many things at once right at the end, I'm not really sure which one fixed it. :(
 
the thing is that I'm not sure if it was the redployment or the deleting the extra variable that actually fixed it jinx
 
2:44 PM
lol. yeah, that.
on the bright side, I did just have a click on the environments...
 
woot woot
 
I've deployed each of my CSV load packages to its own folder in SSISDB. I now realize that I can have a folder for "CSV" load, or "Project X" loads, deploy multiple SSIS packages within each one, then have one set of "Dev"/"Prod" environments that they can all reference.
So I got something useful out of it!
:)
 
@FreeMan doing your part to stop the climate change, eh?
 
um, yeah, sure!
I could save half a dozen electrons, or so.
 
:-O
 
2:48 PM
@this that would be the user's default schema, normally "dbo" but yes each user gets a schema named after them and that could easily be the user's default schema. Implicit defaults are evil whether it's VBA code or server config! =)
 
thanks again!!
@MathieuGuindon Yeah. I've been trying to do a better job of specifying schema all the time, but it's not fully habit yet
 
@MathieuGuindon my memory is hazy but I thought default didn't matter for the resolution of ambiguous objects?
I personally think they should never have had that construct at all but #Reasons.
 
Oh, IDK about that. Thinking a user's default schema config should have a say in exactly what exec MyUnqualifiedStoredProc ends up executing.. no?
 
VSTA- is this some sort of "replacement" for VBA like VSTO (or whatever it was) was supposed to be?
 
Visual Studio Tools for Applications (VSTA) is a set of tools that independent software vendors (ISVs) can use to build customization abilities into their applications for both automation and extensibility. Those customization abilities can be used by end-users to tailor the ISV's application within a managed extensibility environment just like Visual Basic for Applications. == History == Visual Studio Tools for Applications was announced by Microsoft with the release of Visual Studio 2005. The first Community Technology Preview (CTP) of Visual Studio for Application was released in April 2006...
"Microsoft Visual Studio Tools for Applications 2012 exposes an unmanaged class that you can use to start and automate the Visual Studio integrated development environment (IDE)."
"Microsoft Office increased sales and became entrenched in the business processes of many corporations when they added VBA, which let customers add their own features. Many other companies have licensed VBA for their own products and seen similar results.Now the next generation of customization tools is ready. Built on Visual Studio and the .NET Framework, VSTA provides a more powerful customization toolset for ISVs, their customers, and their partners."
Yeah, it looks like you can add VB.NET and C# code window behind your application instead of VBA. Which is odd because Microsoft never offered this for Office themselves...
 
3:40 PM
@HackSlash narrator: the next-generation of customization tools actually sucked and VBA stuck around for two more decades while its prospective successors dropped like flies every 3-5 years or so
3
 
lol
 
I heard a Morgan Freeman voiceover
 
3:52 PM
@MathieuGuindon see, i gave up on memorizing the intricate & byzantine scoping rules of T-SQL, reduced it to a slogan: "two part naming good, everything else bad"
@HackSlash at that time, I think they were crapping over themselves about the security. "Oh we can't have the plebites have the IDE integrated in Office!" only to wonder why VSTO was a giant flop.
 
Well, that certainly answered my question. Thanks for DuckDuckGoing that for me! ;)
 
 
1 hour later…
4:56 PM
Weird that I have to go with WorksheetFunction.RoundDown and that there isn't a native VBA RoundDown function...
 
i think it's Floor
or Int
 
Just be aware that Int and WorksheetFunction.RoundDown don't work the same way on negative numbers.
Int(-1.5) and WorksheetFunction.RoundDown(-1.5,0) give -2 and -1 respectively.
 
makes sense, though. Int is just truncating the fractional part.
I thought Floor() existed but it doesn't in VBA.
 
@this yeah. Depends what you want to do, I guess... I always just remember that RoundDown rounds towards zero.
 
5:12 PM
:derp: I tried Floor, but obivously it wasn't recognized. Then I went with Clng(), but that rounds.
Thinking "don't go with Int, it just gets converted to Long", I never thought of Int().
sigh...
 
to be fair, Int() is problematic in other ways.
e.g. Int(1.9999999999999999999) = 2
(it works up to 14th? 15th? digits before it faceplants.
 
lol
I'll just stick with WSF.RoundDown() then, I guess...
 
6:34 PM
[rubberduck-vba/Rubberduck] build for commit 61795eff on unknown branch: AppVeyor build succeeded
 
6:53 PM
 
7:30 PM
> **Rubberduck version information**
The info below can be copy-paste-completed from the first lines of Rubberduck's log or the About box:

Rubberduck version [...]
Operating System: [...]
Host Product: [...]
Host Version: [...]
Host Exec
[RDBug.docx](https://github.com/rubberduck-vba/Rubberduck/files/5076806/RDBug.docx)
utable: [...]


**Description**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go
 
7:53 PM
> Looks like a non-standard setup wrecking COM registrations or something. `VBClassicExtensibility.VBProjectClass` is not something you *normally* see in a VBA host.

Perhaps VB6 was installed after Office 2019? Installing Microsoft products in non-chronological order tends to break COM registrations that way, too - although I'm wondering how it successfully dealt with the `IVBE` interface at startup if `IVBProject` is a problem.

Not sure what we can do other than fail more graciously, ...b
 
 
3 hours later…
11:13 PM
@Feeds I will now refer to my house as my "haunted plague box".
 
@Duga @retailcoder I can't log into GH at the moment to comment, but it looks like that error is caused by a clash with MZ Tools, see #3837.
> (VBClassicExtensibility.* interop assembly belongs to MZ-Tools, Microsoft.Vbe.Interop.* interop assembly belongs to RubberDuck).
^ carlos
 
11:31 PM
@mansellan bingo
Cue Carlos telling us we need a COM shim in 3...2...
 
lol yep
 
feh. IDK.
remember, no appdomains in .NET 5
so shims will be moot then.
 
or COM addins can't use Net 5...
 
11:35 PM
I'm hopeful that by then, .NET 5 will support the Automation so it'll still work
 
> On .NET Core, the AppDomain implementation is limited by design and does not provide isolation, unloading, or security boundaries. For .NET Core, there is exactly one AppDomain. Isolation and unloading are provided through AssemblyLoadContext. Security boundaries should be provided by process boundaries and appropriate remoting techniques.
 
Noting that Carlos' comment is about AutoDesk hosts though
 
true, but MZ is definitely in the mix here, it's his interop namespace.
 
don't forget the .NET Core loads COM differently
 
11:38 PM
oh?
 
wait is MZ 8.x on .net core?
 
highly doubtful
 
i.e. did he make a VBIDE add-in with core??!!
@mansellan my thoughts exactly
 
No I doubt it, too.
.NET Core does do COM interop but we are missing support for Automation
e.g. automatically generating a type library
 
ah ok yeah
 
11:40 PM
hmm, and I guess the work-around is to wire that up with some C++ voodoo?
or it's just not a possibility at all?
 
uh, you could but why?
Ok, let me clarify.... the way .NET Core handles COM interop has changed in such way that shims are now irrelevant.
 
@MathieuGuindon v8 has been since 2015. i would have thought any move to core would be labelled v9. Recent releases seem to be fixes and minor enhancements.
 
good points
 
See, in .NET FX, you had the mscoree.dll doing all the interop'ing for you. But if the processes use the same mscoree.dll, you can see where that becomes a problem.
In .NET Core, it now generates its own proxy DLL instead of using mscoree.dll to do the interop'ing.
since it's its own DLL....
 
11:43 PM
ah ok, so maybe the fix for clashing with MZ is to wait for Core to support Automation
 
or to make some shim
 
which is supposed to come in .NET 5
 
which is 3 months away...
 
so hence my lack of motivation to address this issue.
 
11:44 PM
^
 
ok
So in theory in 3 months we can build RD on Core???
 
that said, I better check that it's still coming. MSFT said it was but
Yes.
well, assuming it fully supports the Automation specification, at least.
 
well, it won't be called Core by then :-)
 
^
 
we can scream about everything that doesn't work, no?
> pull requests welcome
Is that part of core open-source?
 
11:47 PM
should also mean that we can ship self-contained too, no more need to support older CLRs, we just include a private one.
 
and we can upgrade to the latest & greatest C# and keep up with the framework
 
possibly with two installers - 1 large(ish) self contained one for users that can't install a CLR, and a smaller one that works with a systemwide CLR
 
hm yeah installer dynamics probably change quite a bit
 
not sure that dl size is that important these days tbh
 
11:48 PM
with trimming, I suspect self-contained would add 30MB or so
(they are going all-out to make trimming as effective as possible for v5, for blazor)
 
it depends. I do hear about certain group of users having heart attacks about 5mb dl size
 
I remember downloading a 3.5 MB .mp3 file overnight. ...DLL size is irrelevant IMO
 
I agree. But what if you're on a metered connection?
 
I mean sure don't bloat it on purpose
 
it'd have to be pretty fierce if 30MB costs much...
 
11:50 PM
(are there still people on metered connection? Last time I heard, australia still has it)
 
satellite I suppose
any RD users on Pitcairn Island?
(population 50)
 
probably best to keep kids away. Heck, keep yourself away.
 
lol ikr...
 

« first day (2261 days earlier)      last day (919 days later) »