« first day (1806 days earlier)      last day (1374 days later) » 
00:00 - 17:0017:00 - 00:00

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 3 issue comments.
[Minesweeper] New Users: 18, Games Played: 153, Bombs Used: 94, Moves Performed: 19432
 
 
4 hours later…
4:15 AM
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.01%`.
> The diff coverage is `94.74%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
 
@Duga that build should fail
wait, diagnostics were turned off on CI, weren't they?
 
4:36 AM
[rubberduck-vba/Rubberduck] build for commit 4e3c6b7a on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.16%`.
> The diff coverage is `49.18%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit 4e3c6b7a on unknown branch: 64.36% (target 0%)
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.16%`.
> The diff coverage is `49.18%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
 
4:57 AM
What’s your take on this @Hosch250 compared to how your stories from world building is confusing sometimes. reddit.com/r/WritingPrompts/comments/bpft8k/…
 
5:37 AM
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.16%`.
> The diff coverage is `49.18%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
 
5:59 AM
[rubberduck-vba/Rubberduck] build for commit 09675aed on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.16%`.
> The diff coverage is `43.64%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
[rubberduck-vba/Rubberduck] build for commit 09675aed on unknown branch: 64.36% (target 0%)
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.16%`.
> The diff coverage is `43.64%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
 
6:29 AM
0
Q: Searching a list of words in word document in the entire excel workbook

John doeHow to search for a list of words in a word document to check whether an entire excel workbook contain any of the listed words? If they do contain, how do count the number of times it occur? Dim wrdApp As Word.Application Dim wrdDoc As Word.Document Set wrdApp = CreateObject("Word.Application")...

 
6:41 AM
> After update to current latest release: Indent Project is visible at Start. After a parse all Indent menus are greyed-out again.
 
 
3 hours later…
9:26 AM
@Duga it seems like this has a wrong "CanExecute" implementation
 
 
2 hours later…
10:59 AM
> Thanks for reporting this.

Could you upload a log at least at error level? You can find tge log settings and a link to the log folder in the Rubberduck settings.

It seems that something goes wrong when evaluating the can execute condition. If there are exceptions, they will be logged on error level and the item will be deactivated.
> Thanks for reporting this.

Could you upload a log at least at error level? You can find the log settings and a link to the log folder in the Rubberduck settings.

It seems that something goes wrong when evaluating the can execute condition. If there are exceptions, they will be logged on error level and the item will be deactivated.
 
11:34 AM
@this That's for remote queries, which, IIUC, means "how long to allow a query to run on a remote server before timing out". Is that how the server is looking at this? I think that's how I was reading that yesterday...
and, in any case, I'm not hitting the default 10 minute timeout:
> "2019-05-17 07:27:25 INFO filesToProcess = 'SatSurvey' clinicID = '1' clinicName = 'xyz'"
"2019-05-17 07:27:59 ERROR Data insert error -- transaction rolled-back"
"2019-05-17 07:27:59 ERROR >>> ClinicID: 1 Table: SatSurvey Error: -2147217871 Description: Query timeout expired"
I'm hitting a max 30 second timeout, so it's got to be somewhere else
 
CommandTimeOut is 30 seconds unless specified otherwise. Where are you getting the 10 minutes from?
 
@FreeMan the documentation I quoted had DBPROP_COMMANDTIMEOUT, which is a OLEDB property equivalent to CommandTimeout exposed in ADO.
 
@MathieuGuindon that's the remote timeout period which is what @this linked to.
@this and... I need to set that in code...
 
> This worked for me (on SQL 2005 SP4):

SELECT * FROM OPENROWSET('SQLNCLI', 'Server=Blaha;UID=sa;PWD=Nisse;Timeout=5', 'SELECT @@servername')

It took 5 seconds until I got the error. If I changed it to 25, it took 25 seconds until I got the error.
 
which is weird. I must have set that on the server somewhere, because I do not have that in my code at all...
I'll try tweaking that.
 
11:44 AM
Ah, lovely - openrowset =)
 
As I said, linked servers => expressway to hell.
 
@MathieuGuindon yeah... leave me alone. it works was working
 
...until you look at it sideway
 
but... I didn't look at it! Heck, I sacrificed a whole server to it!
 
It is merciless, yes.
 
11:47 AM
FWIW I'm going to be merging the xmldoc PR tonight before I resume the website work.
 
Ugh... God module. This so needs a refactoring!
 
Why, yes, I do!
 
the roslyn diagnostics were turned off so we don't bust the max build time on AV, right?
 
I think that's a question for @Vogel612
AFAIK, no.
 
Hmm then the build should have failed... unless I did something wrong with my diagnostics
...in which case the PR isn't good to go
 
11:49 AM
Gimme a minute, I'll take a look
 
writing roslyn diagnostics is fun though
 
@this wow... that took a minute...
 
:D
@MathieuGuindon i might have missed the memo but am I to understand you added an analyzer to look out for missing xmldoc?
 
For inspection classes, yeah
 
11:52 AM
> i might have missed the memo
^story of my life, it seems...
 
No worries, will resend you the memo on TPC cover page.
 
for some of them a quickfix should be implementable, but I didn't go there for now
like, an inspection with a [RequiredLibrary("Excel")] attribute should have <reference name="Excel"/> in the xmldoc
 
@MathieuGuindon here's something for you:
> Inspections\Concrete\ImplicitByRefModifierInspection.cs(37,1): warning CS1570: XML comment has badly formed XML -- 'Expected an end tag for element 'example'.'
 
wait, now they're "TPC" cover pages? What happened to the "TPS" cover pages????
 
@Vogel612 woopsie
but that's not our custom diagnostics though
 
11:56 AM
nothing else mentions 'example' though in the build log, so the analyzer doesn't seem to run
so I'm now going to check why.
 
that means the COM wrapper diagnostics aren't running either
 
probably, yeah :/
build:
  verbosity: minimal
  project: Rubberduck.sln
^^ this is how we build the solution
with Release|AnyCPU
 
Hmm - TBH, I've never used XContainer.Element method before. Doc seems to imply it only does one level deep?
 
oh, duh - it's all one level deep anyway
anyway #TIL. I usually just used the XPath query to allow for arbitrary depth search.
 
12:00 PM
I try to avoid xpath if I can =)
 
@MathieuGuindon do you have a VS handy?
 
Yeah. Stringified search are fun.
 
because I don't see anything wrong with the project setup..
 
@Vogel612 not atm, no
 
When you do, please check whether the analyzer is present locally
 
12:02 PM
FWIW, for COM analyzers, I usually expect that simply commenting out the Guid attribute is enough to get it yelling at me
 
I think there might be something happening with the Release build matrix
but that's just grabbing at straws...
 
A ...glitch in the matrix?
 
build matrix is the platform and configuration specification
if we'd want AV to build x32 and x64 separately, we could specify:
platform:
 - 32Bit
 - 64Bit
 
all platform and configuration combinations form the "build matrix"
AV doesn't have explicit configuration disabling analyzers, so something should be wrong with local analyzers.
 
12:07 PM
fwiw I couldn't figure out how to run them manually/locally, figured I'd push them and see if AV runs them
 
off the top of my head: "Tools > Analyze Solution", but that might be wrong
there is a way to force running them from the window toolbar
 
I'm missing a link somewhere - how does VS know to load the custom analyzers?
 
we reference them
 
RubberduckBaseProject.csproj, lines 43-47
 
normally we would use a VS add-in or a nuget package but neither are friendly for getting setting up quickly for what is essentially a project-specific analzyer
 
12:12 PM
At first I wanted to write unit tests for that... but loading the .xml file from disk felt all kinds of wrong
 
no, you should just pass it the dummy code string with xml-doc embedded, no?
 
^ that
 
12:30 PM
hrm... running the query (stored proc modified to execute) from SSMS with Query Plan and Statistics on. It's run for 29 minutes without going to completion or timing out.
Something's not right in Denmark...
 
check if it's blocked or waiting.
 
kindergarten hat on how do I do that, Mr. this?
 
make it easy on yourself. Download and install sp_WhoIsActive
Normally I run it with EXEC master.dbo.sp_WhoIsActive @show_sleeping_spids = 2;
there are several other parameters for filtering; see the documentation.
In case you can't do that because you are not worthy enough, just run the built-in procedure sp_who or sp_who2
and if needed, sp_lock
^ that one is mucho fun
 
> Warning: The join order has been enforced because a local join hint is used.
Msg 300, Level 14, State 1, Line 40
VIEW SERVER STATE permission was denied on object 'server', database 'master'.
Msg 297, Level 16, State 1, Line 40
The user does not have permission to perform this action.
Msg 300, Level 14, State 1, Line 333
VIEW SERVER STATE permission was denied on object 'server', database 'master'.
Msg 297, Level 16, State 1, Line 333
The user does not have permission to perform this action.
^ I'm not worthy
 
TBH, I'd rather do it with DMVs since with DMVs, you can filter it much easily than with lame stored procedures. However, those have the appeal of being easy to execute.
Nope, you ain't. You'll have to content yourself with built-ins, then.
Come to think of it, the security might filter too much from the sp_** or DMVs, so you'd be blind, too.
 
12:41 PM
Not worthy to run sp_lock, either
I get output from sp_who*!!!
 
but did you get all, really? ;-)
 
sp_who:
spid	ecid	status	loginame	hostname	blk	dbname	cmd	request_id
65	0	runnable                      	MHG\bshepard	GWX09MOHCWS003                                                                                                                  	0    	Reporting	SELECT          	0
 
that's.... you.
 
SPID	Status	Login	HostName	BlkBy	DBName	Command	CPUTime	DiskIO	LastBatch	ProgramName	SPID	REQUESTID
65   	RUNNABLE                      	MHG\bshepard	GWX09MOHCWS003	  .	Reporting	SELECT INTO	421	11	05/17 08:40:48	Microsoft SQL Server Management Studio - Query	65   	0
 
so yeah, you're blind.
you can see only yourself but you can't see anyone else.
 
12:42 PM
that's nice, who2 output wrapped
well, I'm running it from SSMS...
so it makes sense that it's me. But, I guess I can't see if any other processes are running/waiting/blocked, right?
 
1 min ago, by this
Come to think of it, the security might filter too much from the sp_** or DMVs, so you'd be blind, too.
 
le sigh...
our other guy may have a bit more rights than I do. I'll ask him to run it
 
At this point, it's time to use another lifeline: Call your DBA.
 
but... I'm not sure if he's in the office.
 
pppffftttt what kind of a DBA is he?
DBA has to be chained to the server, for crying out loud!
 
12:44 PM
yeah, I may have to get him involved. Was reasonably useful and responsive yesterday in running the config changes I needed.
I'm getting close to manually pasting data in via Access linked table, though. I've got to get this report out!
 
no, that'd be too slow
Access will perform inserts one by one.
 
It'll take less than 24 hours, which is what this has taken so far...
 
Yeah, there's that. You probably are better off writing VBA procedure that builds up a PTQ up to 36K character limit and execute it in chunks.
 
^ English?
I can insert a couple hundred lines in the temp table via Access then run the SP to pull it from the temp table & insert it into the proper tables...
 
A PTQ can contain up to 36K characters in its SQL statement. So you would be able to insert several lines (e.g. INSERT INTO ... VALUES (...), (....), (....), (...)...
 
12:48 PM
oh. Yikes!
 
and the PTQ means that the entire thing is executed server-side; there's no back'n'forth as would be the case w/ a linked table pasting.
 
PTQ = Pretty Terrible Query?
 
Pass Through Query
 
or that...
Hi @ILoveStackoverflow! Never mind the somewhat off topic conversations. Is there something RubberDuck we can do to help you?
#Ivensnothere
 
Hi
Is there any .net dev here ?
 
12:53 PM
I think most of us know C#. :)
 
I am bit struggling with this question
-1
Q: How to reduce tight coupling of some code from a class?

ILoveStackoverflowI have an algorithm to create a version for an entity and then I save that version against below 2 entity: 1) Variant 2) Category Below is the flow of my method execution : 1) Tranformation logic 2) Version Code : public class Variant { public int VariantId { get; set; }...

 
I can only echo what candied orange already said in your discussion. The problem you're solving with the code is not clear enough to give specific advice...
 
0
Q: Look for better code copy paste from one sheet to another

C.EdoI wrote this code and it worked well as I want. To look for some values and copy paste the result to another sheet (online for selected column) I want to know the opinion from this community regarding my code I just learned the VBA for 1 week. Hope you can share some good advice, thanks :) Op...

 
@PeterMTaylor Interesting.
 
1:18 PM
@this huh, how would that help ensuring all inspections have xmldoc the website can consume?
 
@MathieuGuindon by unit-testing the analyzer?
 
^
 
well, I've got our DBA on the line (seems he is chained to his server after all). We'll see what happens...
 
@Vogel612 Is there anything i can add to help more on that ?
I even got downvote,dont undestand why
 
1:39 PM
the problem is that you didn't clearly express why your entities are set up the way they are...
what domain problem are you solving?
 
I have created a class library and what it does is perform tranformation logic by reading data from database
So basically I have 2 steps involved in this process :
1) Tranformation
2) Versioning
So that is how i designed this 2 functionality in my question
 
Where do Variant and Category come into play then?
 
Oh I see - no I was referring to tests instead of the analyzers
 
@MathieuGuindon lol yea that wouldn't make a lot of sense.
 
2:09 PM
ugh... code changes made it to production, but config table changes didn't. :(
At least that was a simple fix (for a different problem).
 
After the version is created,I want to save version againts 2 entities Variant and Category.Now both this are database operation hence I wanted to seperate out database operation in another class hence I have created VariantRepo and CategoryRepo.
As you can see here in this code :
Once the version is created :
variantVersion = _entityVersion.GetVersion();
I call below method to update version against variant in my Variant_VersionMapping table
Same goes for Category where i update version against category in my Category_VersionMapping table using below method :
CategoryRepo.UpdateCategoryWithVersion(_connectionString,categoryIds[i], version);
VariantRepo - Handles all database related operations for Variant Entity

CategoryRepo - Handles all database related operations for Category Entity
So this is the purpose of above 2 static class
@Vogel612
 
TFW you google something and the first SO question was answered by you....
2
 
lol. more frequently (in my case anyway): you google something and the first SO question is one you've upvoted the answer to... 5 years ago
 
@ILoveStackoverflow I don't understand why you're trying to avoid coupling the classes when you hardcoupled the business logic. What you want is to have the same version apply to a number of Categories and a number of Variants. Subdividing database operations by Entity is a cargo-cult pattern and the issue is that you're trying to separate something that affects two entity types at once into two classes. Don't do that
Either the Version changes should be in their own database interaction class or the business logic needs to fit the current design. Since the second is probably not what you want...
 
following tutorials it's easy to forget that the goal of repository pattern is to decouple data access from the rest of the application logic, so you can test the application logic without hitting the database.
 
2:24 PM
Actually I am confused where to put what and that is where I end up mixing thing
 
I'm not sure I 100% understand the problem but I'm struck with the impression that the database operations needs to be encapsulated into a stored procedure.
 
I was too kinda thinking that whether its good to put version related update logic in version class or not
 
Because that's a database's concern, not application's concern.
 
is "version" an entity or more like a "record version" metadata piece of info?
 
2:27 PM
So instead of trying to effect changes in code and then replicate it to database, I'd rather effect the changes in database and replace the objects that were affected by the change in database. That also allow you to get a bit more immutability with your entities.
 
Yes its a metadata piece of information
 
I built a data warehouse here at work, and my Customers table is a slowly-changing dimension; the natural key includes the customer code and what you would have as the version (I'm using EffectiveFrom/EffectiveTo datetime columns, but the result is the same: any given customer entity can have many PK IDs / "versions")
when I need to pull a list of all customers, I select from a LastImageCustomers view that selects all rows where EffectiveTo is null
i.e. any application written against that database effectively ignores the "version"
but, my customers come from some ERP system, not an application
so the version handling is the job of some overnight ETL process
 
This is also my long running process where I have some transformation and versioning generation part
 
Either way, that's pretty much database's concern.
 
agreed
 
2:35 PM
Applications, especially when it's a OLTP, has no business in knowing the previous versions.
 
slight disagree here - if I pull all orders, I don't care what version of customer 1234 each order was made against - but if I only pull orders made agaisnt the last image of a customer, my reporting isn't seeing the whole picture
 
Hence the part "when it's a OLTP"
 
I guess I'm unclear on the concept of OLTP :)
 
e.g. we're focusing on the situation right now.
 
right
essentially like my source ERP system: it's operational; there's no record history in there
customer 1234 has always been under salesrep John Doe
 
2:38 PM
Right.
I think what @ILoveStackoverflow will want to do is focus on the separation between data operations vs. application operations. The application should be simply making requests to the database to make data changes, and accept the objects as-is from the database.
Out of curiosity, are you using Entity Framework?
 
I am using Ado.net
 
posted on May 17, 2019 by CommitStrip

 
Okay. Maybe you should look at using dapper?
 
ADO is fine
 
2:43 PM
that may help you with separating your data work from your application work.
 
but that is not a problem
 
you want your app to only care about a Customer entity. then when you update that entity, or create a new one, you want to pass that entity object to a method that will populate the parameters to some SaveCustomer stored procedure.
 
Yes, ADO.NET is preferable over EF. The problem is more about helping separating the concerns, really. Dapper may make it easier, or not.
What Mat sez
 
SaveCustomer then determines whether the record is new (and thus it's a simple insert), or if it's modified - and then it determines whether to make a type-1 or a type-2 update, and proceeds with it
type-1 is just a plain old update that overwrites the "last image" record
type-2 invalidates the previous "last image" and insert a new one, that becomes the new "current version"
what determines type-1 vs type-2, is what fields have changed and which ones you want to keep a history for
in my case I care to keep the history of what sales rep a customer is associated to
so if I update a customer and its sales rep has changed, type-2 update logic kicks in
but if it's only their contact email that changed, it's a type-1
historical records are never, under any circumstance, updated
 
Mat out of curiosity, have you ever looked at system versioned tables?
 
2:50 PM
no
just data warehousing stuff
 
Imagine it's a bit too late for the current application, though. Seems nice since it moves all the logic out of your stored procedure so you can just do more simpler queries.
 
well... I don't have stored procedures or code doing that... my SSIS packages handle it
and since SSIS "slowly changing dimension" components suck, I implemented the logic manually
still, works beautifully
but yeah, bloody complex
 
Yeah. I really don't want to write one myself. :)
Much less one that's generic and applicable to any database.... :-O
 
oh, don't get me wrong - it works wonders... until you need to change anything in it
 
I've had clients who came in "inventory is easy! You guys can totally program it in a day or so!"
 
3:01 PM
lol
 
but as soon as we get to the details, they're all "you're making this way complicated. Why can't it be simple. Stop asking us 1000 questions."
 
classic
 
IKR?
so anyway, my hat's off to you good sir for having implementing the SCD yourself.
(among other things)
 
3:26 PM
in other news, RestEase is pretty damn awesome
 
3:44 PM
 
fun
 
that is awesome
 
@FreeMan Thanks for covering while I was MIA.
 
easier to read here:
524
A: REST API error return good practices

Omar AliA great resource to pick the correct HTTP error code for your API: http://www.codetinkerer.com/2015/12/04/choosing-an-http-status-code.html An excerpt from the article: Where to start: 2XX/3XX: 4XX: 5XX:

 
the problem with most REST APIs is that they don't correctly do that
at least with most that I dealt with.
400 is such a catch-all
and of course there's rest APIs out there that return 200_ok with a JSON like { "error": true, "status" : [http code here] }
 
3:50 PM
lol Twitter actually issues HTTP 420 "enhance your calm" instead of 429 "too many requests"
@Vogel612 ugh
 
most people seem unaware that you can return entities with any status code
 
@Vogel612 I hate that. I've even seen developers who go "OMG I got 400! How will I know what went wrong! PLZ fix and give me 200 + error!!!!11133lj3rfldjlkdgww"
 
I mean... it's a bit harder with the 5xx family, because usually you don't want to return the info there, but for the 4xx family...
 
@IvenBach we all do our part. ;)
 
Mine deals with floundering.
 
3:56 PM
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.16%`.
> The diff coverage is `43.64%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
 
4:06 PM
I'm missing something. when I sent a "manual" HTTPS request against the REST API yesterday, I was able to tell it to use Tls12 for security protocol... can't seem to find where it's documented for RestEase
 
why would you even want to force TLS1.2?
you want to go for TLS1.3 if it is supported.
 
there's 1.3 already?
 
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
because Tls13 isn't in the enum :)
 
@this google made it default for a bit in 2017
 
gee whiz. I'm behind this stuff. Here I thought 1.2 was the latest and greatest.
 
4:13 PM
openSSL 1.1.1 has 1.3 support
 
we went some pains to ensure that 1.2 was the exclusive protocol support
 
so, that static Manager thing fixed it
 
and TBF I absolutely hate that this is deep in the Windows OS
that's why one has to monkey with the static manager and with registry settings and then cross the fingers that it worked.
 
@MathieuGuindon you should be able to force the behaviour you want by providing a custom HttpClient
 
> Revisiting this thread....

I have an Autodesk product, Fusion360, installed along with MZTools 8.0.0.1644 and Rubberduck 2.4.1.4627. I keep getting the ""InvalidCastException: Unable to cast object of type BClassicExtensibility.VBProjectClass' to type 'Microsoft.Vbe.Interop._VBProject" error even when I don't have Fusion360 running. The solution stated was to unload/load MZTools and Rubberduck using the Add-in manager, but what does that mean? I tried manually loading MZTools and Rubber
 
4:16 PM
I would suggest that to make outbound requests like WebRequest and HttpWebRequest safe, you should follow steps to disable SSL fallback as detailed in my question at stackoverflow.com/questions/26389899/…. Basically you run this line of code first: System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; As I understand it, the registry fix detailed in this answer only applies to inbound connections. — Jordan Rieger Feb 16 '15 at 20:17
^ ~sigh
.NET Framework 4.8 has Tls13
 
I guess TLS stands for Totally Lame Security.
 
you probably could use it's value even on .NET versions below it
 
I wouldn't be surprised. After all it's Window OS thing.
 
so maybe: ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | 12288;
 
hmm. don't you have to cast it? .NET strong-types the enum.
IDK if it will let you do (MyLameEnum)1234 // not in MyLameEnum
 
4:19 PM
yeah cast is needed
and that protects against poodles?
 
will it accept any number?
I'm thinking no.
In which case, #SOL
 
@this the compiler? or the SecurityProtocol?
 
@MathieuGuindon Can you not just set a custom header? Not sure how that works, but I know headers are covered in the readme.md
 
> Starting with the .NET Framework 4.7, the default value of this property is SecurityProtocolType.SystemDefault. This allows .NET Framework networking APIs based on SslStream (such as FTP, HTTP, and SMTP) to inherit the default security protocols from the operating system or from any custom configurations performed by a system administrator.
 
^ probably the best option
 
4:21 PM
@mansellan TLS is in the TCP connection negotiation
 
@mansellan it's lower-level than the request IIUC
 
ah ok
 
you can then just whack Windows OS.
 
sooo... HTTP headers don't affect it at all
@this the docs say it validates the value is a member of the enum...
 
yeah I didn't think that one through :-) Custom HttpClient sounds like the winner
 
4:21 PM
sooo ... probably SOL
 
so... if I'm on VS 2015 here, I'm F'd?
 
@MathieuGuindon not necessarily, because you can target .NET Framework 4.8 from 15
the target framework determines which standards are available
 
That's moronic.
Why should framework have any say in a OS feature?
 
the best solution would be to keep it at system default and deploy a group policy that terminates connections using anything below TLS1.1
 
Which is totally easy to do, BTW.
 
4:23 PM
@this it doesn't. It determines which OS features the framework knows about, though.
and the docs suggest that these numbers are validated.
if that validation is on OS level, you should be able to put in that number thingy.
if it is at the framework level, you're fucked
 
latest I can target is 4.7.2
 
@MathieuGuindon pull up an immediate window and try setting that property
 
> The .NET Framework 4.6 includes a new security feature that blocks insecure cipher and hashing algorithms for connections. Applications using TLS/SSL through APIs such as HttpClient, HttpWebRequest, FTPClient, SmtpClient, SslStream, etc. and targeting .NET Framework 4.6 get the more-secure behavior by default.
 
> 'SecurityProtocolType' does not contain a definition for 'Tls13'
 
4:26 PM
NICE
 
indeed
 
🎵 Moooooorrrrrrrrroooooooooonnnnnnniiiiiiiiiicccccccccc 🎵
 
fml, bring them poodles
 
hmm. I'm a bit worried though
reading up on 1.3 it claims to be both faster and more secure
 
[rubberduck-vba/Rubberduck] build for commit 2ec82ecf on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.16%`.
> The diff coverage is `43.64%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
 
4:32 PM
more secure because it cuts out all junk algorithms, so that's fine.
 
[rubberduck-vba/Rubberduck] build for commit 2ec82ecf on unknown branch: 64.36% (target 0%)
 
but more faster because it does less handshake and more remembering. That worries me slightly. Remembering & skipping step may mean new exploits.
(this is just me being overall over belts'n'supsenders paranoid)
 
baffled by what poodles have to do with HTTP security...
back to my original timeout problem - it may be an issue with Truncate Table x. I'm trying to load my data by hand now (it's time to get this report run by any method necessary) and I'm trying to truncate the temp table before loading the next set of data and it's been executing for 5+ minutes...
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=h1) Report
> Merging [#4961](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4961?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/6134c87f139b5578a667a3e929054b6e7ec73393?src=pr&el=desc) will **decrease** coverage by `0.16%`.
> The diff coverage is `43.64%`.


```diff
@@ Coverage Diff @@
## next #4961 +/- ##
=======================
 
ok, the request comes back with a response
now to deserialize orders...
 
4:38 PM
I can Delete From TempTable and get an instant response. If I Truncate Table server.schema.TempTable (on the now empty table), it just runs...
 
so don't?
 
yeah, but WHY?????
modifies the SP to Delete from so the stupid thing will work for now...
and... now it's spinning on ALTER PROCEDURE.
ARGH!!!!!!
these things shouldn't take sysadmin rights should they???
seriously??? In SSMS I scripted the SP as Create to new window, change the Create to Alter, changed the Truncate table x to Delete From x, and now the Alter won't run.
 
you have alter permissions in that db/schema?
 
feels like you're being deadlocked
mostly likely with yourself
 
4:59 PM
@MathieuGuindon I did before they built us a new server...
 
00:00 - 17:0017:00 - 00:00

« first day (1806 days earlier)      last day (1374 days later) »