« first day (1743 days earlier)      last day (1437 days later) » 
00:00 - 17:0017:00 - 00:00

12:02 AM
RELOAD!
[banane-io/pdb-frontend] 1 commit. 38 additions.
[bruglesco/FleetCommand] 1 commit. 165 additions. 1 deletion.
[Cardshifter/Cardshifter] 1 commit. 1 addition. 1 deletion.
[Hosch250/CheckersWebsite] 1 commit. 53 additions. 2 deletions.
[rubberduck-vba/Rubberduck] 6 commits. 1 closed issue. 8 issue comments. 3321 additions. 1919 deletions.
[Zomis/minesweeper-core] 15 commits. 258 additions. 84 deletions.
[Zomis/minesweeper-flags-client] 12 commits. 417 additions. 279 deletions.
Minesweeper: Games Played: 119, Bombs Used: 58, Moves Performed: 14971
 
So.. ODE menus light up in Office x64, and VBA7 code compiles in a Standalone project... Make doesn't quite work, because I need a public createable component, which I think I need to register the ActiveX designers for. So a little more work to get all the OCXs installed... but it's looking... possible.
Oh wait, I can't use 32-bit OCXs in 64-bit Office (duh). Might need to find \ build a 64-bit OCX?
 
what OCX you need?
 
Not sure - the original ODE is set up to make COM add-ins, and has the Add-in designer from VB6. It also lets you start with an Empty project, but not sure what the idea is there as you can't set public creatable on classes in VBA VBE
 
oh, i think I know what you mean
 
I just made some good progress on my prototype (yeah, working on it after work... It's fun!).
 
12:14 AM
I think something that can import a public entry point would be sufficient
 
Unfortunately, it's private, and I can't connect Duga to it :(
 
tbh I can't believe its as close as it is. there's bound to be a showstopper somewhere...
(Sorry when I said OCX I meant ActiveX designer - been a while since I used this tech!)
 
you mean this: C:\Program Files (x86)\Common Files\DESIGNER\MSADDNDR.DLL, right?
 
yes
but that's 32
 
yes, now, there should be an assembly....
since RD itself has to use interface from that
 
12:17 AM
I wonder if C++ has a 64-bit equiv...
 
but not the DLL, IIRC
Extensibility.dll I want to say
 
I don't follow sorry? Office 64 can't load 32-bit ActiveX right?
Ah ok so according to the manual, Empty Project is intended for use with the Data Environment or Data Report designers.
 
trying to find that DLL - I'm saying that RD can work in 64-bit even though it has the same dependency (IDTExtensibility2 comes from that DLL, but RD uses Extensibility.dll, provided by .NET, not the MSADDNDR.DLL)
C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\extensibility.dll
says it's not loadable type library, tho.
 
12:38 AM
hmm...
 
but the 64-bit shoudl exist for that DLL (in Program Files, of course)
 
is it activex though?
 
has to be.
let me see how it's registered.
 
> There are 5 steps you could take after which you could repost your code here.

Use 'Option Explicit' in each module and address the errors that this will show.

If you are able, install the RubberDuck addin. Use the 'RubberDuck' addin to do a code inspection and then address all the issues you find.
Thank you so much! I'd never heard of RubberDuckVBA, what a great tool. I did my best to follow your advice. I'm now using 'Option Explicit' and declared the variables I'd missed, did a code inspection and resolved all the errors/warnings, and did my best to use more descriptive variable names. There were a few places where I was unsure how to best replace the Hungarian Notation with more meaningful variable names such as with oRng, as I don't know that I completely understand it's usage. I've edited the post with the revised code if you have any additional suggestions. — Abernaughty Mar 10 at 4:23
oRng
 
oMg
 
 
1 hour later…
2:09 AM
so it's really trying to make this DLL. I can see the status box say "writing DLL", then a dialog pops up saying "could not execute Link.exe". I think that's the MSVC linker, so perhaps I just need the 64-bit version.
Oh, I solved the public creatable thing btw
 
2:22 AM
Hmm, the version of link.exe I tried didn't work
giving up for today
 
 
8 hours later…
9:55 AM
@MathieuGuindon @Duga is now ready for your stats
 
 
2 hours later…
11:37 AM
@rubberduckvba @ThunderXFrame He was a very good friend of mine. I will miss him greatly. I think he would be very pleased with this way of remembering him.
@SimonForsberg thanks! I'll wire this up in a week or two =)
 
@MathieuGuindon :( That's sad. Was this someone who hanged out here in this chatroom as well? I think I recognize the name.
 
Not sure, I think it's another Peter =)
It's a different Twitter account anyway
 
@MathieuGuindon Wait... who was it that passed away?
 
yes
 
And was ThunderXFrame a member of this chat room?
 
@MathieuGuindon then he goes and posts complete code that could use a review itself:
1
A: A Word macro that processes trainees' dictation, highlighting errors and checking accuracy

FreeflowHaving provided so much comment I thought it was only fair to post what my version of your code would be. There is a deliberate error in the code. I wonder what your thoughts are on how easy it is to spot? I also can't guarantee that the code will work as intended(although it does compile) as ...

 
So, I have an obj file, just need to turn that into a dll
 
@MathieuGuindon :'(
When did this happen? The earliest I see in chat is this:
Feb 22 at 20:23, by Mathieu Guindon
BTW I've been in contact with Victoria (ThunderWife), and we have her thanks and blessing to go ahead and include "in memoriam" stuff in RD.
Dec 20 '18 at 21:57, by Mathieu Guindon
 
12:05 PM
@SimonForsberg yup, there
 
Sep 1 '18 at 13:07, by ThunderFrame
@SimonForsberg shaking of the head would be a "No" then? Let's set @MathieuGuindon a real challenge, and get him to reproduce the Diamond Problem in VBA.... Now that would be a feat.
I think you should do this @MathieuGuindon ^^
 
Uhm, yeah sure =)
 
Dump of file C:\my\Shared\Project1.OBJ

File Type: COFF OBJECT

FILE HEADER VALUES
             14C machine (x86)
               D number of sections
        5C8B91F7 time date stamp Fri Mar 15 11:52:23 2019
            4C9C file pointer to symbol table
              C5 number of symbols
               0 size of optional header
               0 characteristics
bah
ttgtw
 
1:17 PM
@mansellan I wonder if it might be trying to linking another obj file that's used to initialize the DLL. Do you know what command the link.exe is given?
 
yes, i intercepted that
1 sec
@this I was pointing out though that 14C machine (x86)
so it looks like the compiler was instructed to emit x86. Not sure if that can be intercepted...
VM installing updates. I really should disable their netowork...
OK so link.exe was given these args:
C:\Users\Andy\Documents\Project1.OBJ
/ENTRY:__vbaS
/OUT:C:\Users\Andy\Documents\Project1.DLL
/BASE:0x11000000
/SUBSYSTEM:WINDOWS,4.0
/VERSION:1.0
/DLL
/INCREMENTAL:NO
/OPT:REF
/MERGE:.rdata=.text
/IGNORE:4078
 
1:32 PM
If RD is going to do it itself, it'll have to do itself without going through ODE. We'd have to replicate the process.
 
Not sure that's possible...
 
why? It's just ones and zeroes.
 
You mean find how the VBE is calling the compiler?
Could work, I doubt the license check is in the compile stage
 
the issue might be that even if this section was unlicensed, if it throws up dialog, it would not be pretty for RD to automate
 
what is ODE?
 
1:35 PM
Out of Developer's Experience
 
Office Developer Edition. Was discontinued after Office XP.
 
See, my acronyms works!
 
lol
TBH If I can make a 64-bit dll, by any means, from classic VB code, that would be incredible.
The utility for RD comes after :-)
Need to do some more Procmon snooping...
 
Yeah
 
I was thinking you were misspelling this
so was that the version required back in the dark ages if you wanted to write some VBA?
 
1:42 PM
@FreeMan No, it was a special (overpriced) edition that did a few more tricks, like allowing DLLs to be built from the VBA VBE.
If it had survived longer, we would have had 64-bit VB executables long ago.
So, now tryna see if it can be resurrected through hackery
 
In my case, I just wanna to have VBA code housed in a DLL, independent of the host file format.
For example, you cannot write VBA code in say, an Access file and then reference it from Excel VBA project
all hosts allow referencing only to their own file formats, which is pretty dumb if you ask me.
The other good reason to have a DLL is that it also means you can safely strip out the source code and thus get all the functionalities of an ACCDE just for your VBA code.
 
@mansellan hackery, quackery, duck!
the code ran up a cluck
the bug struck one, the code was done
hackery, quackery, duck!
 
This is where I knew something about C - beyond a certain stage in the process, the build tooling is shared.
Be interested to get @Comintern's take on progress
 
2:00 PM
@mansellan I've been a bit slammed, so you might have to catch me up a little bit. You have an obj file that was compiled from VB?
 
Yeah, from Office 2010 :-)
 
So you pretty much only need to run a linker on it, right?
 
Applied the Office Developer license keys to it, and all the Make stuff showed up
Well yes, and I think the MSVC one (of the right vintage?) might do the trick
 
the blocker atm is that the obj file that got built was x86. So I need to do some more snooping to see if I can influence that...
 
2:02 PM
I'm not sure it would even need to be the right vintage after you have an obj file.
An obj should just be a generic COFF file IIR.
 
No specific question for you atm, just when you've got a chance to look at progress you may have some ideas
@Comintern yeah dumpbin says so
 
I'd play around with running link.exe on it. Do you think you have the full obj set it would need?
 
@Comintern that's the big question iiuc. presumably they must be somewhere for 64-bit VBA to work...
 
It's been a loooong time since I've manually linked something, and I've only ever done it in Linux.
 
but way outside my knowledge pool atm
anyway I best do some actual paid work for now, chat later
 
2:05 PM
In theory though, you shouldn't need to do anything other than figure out the linker command at this point. I can't imagine it would give you a partial obj set.
 
:-)
 
2:34 PM
@Comintern are you saying that a .obj file isn't tied (yet) to either 32-bit or 64-bit?
 
No, the obj file is (based on how it was compiled).
You could technically link a 32-bit obj to a 64-bit library, but it would likely segfault when you ran the resulting executable.
 
TFW the PM gives you requirements.
You implement them, it goes through testing, etc.
 
[rubberduck-vba/Rubberduck] build for commit 1d84c5d3 on unknown branch: AppVeyor build succeeded
 
Then they realize they botched up the day the release is being cut.
 
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4857?src=pr&el=h1) Report
> Merging [#4857](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4857?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/189aa1ce552c0805e3591971c4389c494d02a92d?src=pr&el=desc) will **decrease** coverage by `<.01%`.
> The diff coverage is `n/a`.


```diff
@@ Coverage Diff @@
## next #4857 +/- ##
==========================
[rubberduck-vba/Rubberduck] build for commit 1d84c5d3 on unknown branch: 64.53% (target 0%)
 
2:38 PM
@Comintern I hope that's not the case here with the ODE building.
 
PM? Are we talking about Brexit with "they realize they botched up the day the release is being cut"?
 
So, first, it was an urgent request "oh hey, we want deletion after all". (I as a dev had pointed out they missed deletion, and they were all "yeah, I know, we don't want it".
 
I'm imagining that it's injecting in a static module for initializing the DLL in VBA runtime or whatever. If that isn't updated or whatever, it might fail.
 
@this The only thing that really matters is that the linker bitness options match the compiler bitness.
 
Then, when discussing the details of it, we now have to A) allow them to add items in additional cases, and B) track when the items were added for those cases so we can remove newly added items before we save, but not the already-saved items.
I'm just going to go with a hack work-around of a list of newly added items that can be deleted, instead of properly adding tracking state to the item (it's a list of strings).
 
2:41 PM
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4857?src=pr&el=h1) Report
> Merging [#4857](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4857?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/189aa1ce552c0805e3591971c4389c494d02a92d?src=pr&el=desc) will **decrease** coverage by `<.01%`.
> The diff coverage is `n/a`.


```diff
@@ Coverage Diff @@
## next #4857 +/- ##
==========================
 
@this That sounds more like what the linker would be doing.
If there's anything that was statically linked, it would already be in the obj, no?
 
that would be if it's its own obj file
but for all I know, the build tool is just copy'n'pasting the stuff into the obj file being built.
 
I'd assume that anything that was generated by the build process that needed to be linked would output an obj file - if it didn't, the assumption would be that it would be dynamically linked.
If it's built into the obj file, it is by definition linkable at that point.
TBH, I'd be surprised if there was any static linking going on - that would make for a fairly brittle tool.
 
Well, Microsoft of 2000 wasn't exactly known to make robust tools either...
 
True, but if the build didn't output the obj file that it was going to be statically linked to, there would have to be an object cache somewhere that would need to be updated every time the compiler changed.
Or any of the linked resources. It would be a deployment nightmare.
 
2:56 PM
Gotcha.
I know very little about the C/C++ build process, TBH. Only enough that it's very fussy and as you said, possible to do boneheaded things like linking 32-bit obj file using a 64-bit linker
 
[rubberduck-vba/Rubberduck] SonGokussj4 pushed commit 1d84c5d3 to next: czech language for v2019-03-xx
Merge pull request #4857 from SonGokussj4/next

czech language for v2019-03-xx
> Thank you very much :)
 
3:10 PM
empathy for @Hosch250
 
Eh, it's not so bad now that I figured an easier way of handling it.
For a bit, I thought I had a couple of hours of work ahead.
A couple hours of bug-prone, time-pressed work, that is.
I don't mind a couple hours of work as long as it A) isn't more likely to break other parts of the system than not and B) the deadline is sufficiently far out that I can take my time about it.
 
just wanted you to know you weren't totally ignored. :)
 
Mat's a better PM than about 3 of our 4 at work.
The 4th is pretty good.
One tends to give conflicting requirements, miss things, etc.
Another thinks they are a dev.
They don't just give us requirements, they try to tell us how to do the code, etc.
Another is just kind of vague.
A lot of them promise times before they talk to the devs.
 
3:26 PM
Why are your PMs doing specs? Don't you have BAs?
 
Ummm, some?
The PM does the specs and gives them to the devs.
They work with the client contacts and (sometimes) our UI person.
 
they sound like BA/PMs rather than pure PM. Our PM just manages the timelines.
 
Don't they get bored?
 
no, they have many projects on the go at once
 
We don't typically unless multiple clients ask us for stuff.
Most of the time, it's just smashing bugs.
 
Wow, that's completely the reverse of the situation here.
 
We have an open position...
And the internal guy said no, he's leaving the company again.
I think he's kind of burning his bridge.
 
Again? He's left the company before?
 
He was an architect.
He left the company because he was sick of the code and some of the other architects.
He's back as a contracting DA.
They offered him the open position so he could get back on IT, but he's already sick of things again.
So, on the one hand I don't blame him.
OTOH, I think he's kind of burning his bridges.
 
3:36 PM
That's hardly a ringing endorsement for the open position.
 
Right?
But then, sometimes I think the code is worth burning bridges over.
 
Better to burn the code.
 
We aren't allowed to pay off tech debt.
I was explicitly called out when they found I was working on redoing some of the site on the side.
 
You're always paying tech debt. It's just a question of whether it's interest or principle.
3
 
No, we just take out more loans.
 
3:37 PM
lol
 
@Hosch250 just to be clear, you're working for Federal Reserve?
 
Not really..
It's just that there's no federal reserve of tech debt.
There's an infinite supply.
And apparently they'd rather keep hiring devs than get the systems down to what probably 3 people could maintain.
 
which amounts to the same thing. Only with less window dressing.
 
OTOH, they also don't let people go unless they really screw up.
 
That's typically harder for most positions.
Nobody wants to be hit with a wrongful termination suit.
 
3:42 PM
It's at-will employment.
They could literally say "we're cutting back on our devs".
As long as they didn't hire more, it would be fine.
 
At-will employment just means it's harder to win a wrongful termination suit. It doesn't mean that you won't get sued.
HR departments are typically pretty gun-shy about firing people for cause.
 
@mansellan BA = Business Analyst?
@Hosch250 Is this the same one you mentioned me for?
 
Yes.
 
3:57 PM
@IvenBach Yes
 
@Comintern Acquaintance I know told me he had a harder time firing people than having them realize they weren't suited for the job.
> You know you've been struggling a bit... If you just stopped showing up for work there wouldn't be any hard feelings. You'd do better with another company where you could succeed faster.
No wonder companies take forever to hire someone if it's that hard to no longer employ them.
 
@IvenBach This feels a bit too passive-aggressive.
 
When that's the general advice his superiors gave him it makes me worry about the company.
I just envision Milton from Office Space in those kind of conversations.
 
IKR? Even so, Milton didn't get that treatment. It was basically "we'll just ignore you, and I'll take your stapler"
 
B-b-b-buu... bu... bu.... but das may stepler...
 
4:04 PM
Then there's the guy who interviews for his own position after being fired.
 
^ ouch
 
No, I've never seen that, LOL.
 
> Version 2.4.0.4586
OS: Microsoft Windows NT 10.0.17134.0, x64
Host Product: Microsoft Office x86
Host Version: 16.0.11328.20146
Host Executable: EXCEL.EXE


When I open the VBE either using Alt-F11 or from the developer tab I get the RD loading logo then this is how the VBE looks:
![image](https://user-images.githubusercontent.com/42221335/54445047-ff9ce800-4711-11e9-8b9f-dc0afb95db68.png)

Attempting to resize the window causes Excel to lock up.
 
@Duga Wut? That's the second time that's happened, isn't it?
 
third or fourth, more like
we closed the other as non-repro or something
 
4:07 PM
Apparently someone can repro it.
I think the last time was an AV though.
MZ-Tools is installed.
 
just not us, apparently.
 
We don't do anything with the IDE size, do we?
 
@Duga FWIW I sometimes get that too... was blaming it on Excel 2016...
 
#4607
 
4:08 PM
> >
>
> @SmileyFtW thanks! as @bclothier noted, this does reinforce the impression that class/module templates are a better idea though... what do you typically use MZ-Tools snippets for?

Before RD I used MZTools to hold all my bad habits... I have moved away from MZT in favor of RD. Henceforth, I will look into module templates to hold my newly acquired better (RD) habits...
 
> Before RD I used MZTools to hold all my bad habits... I have moved away from MZT in favor of RD
 
"I used MZTools to hold all my bad habits"
4
LOL
 
that. is. golden.
 
and #4722
 
4:10 PM
You succeeded on that Charisma check.
 
@Duga there's a "hold my beer" meme in there
 
> By "lock up", do you mean go into a non-responsive state? Also, to be clear - Excel is locking up, not just the VBE, right?

I also notice that you have MZ-Tools installed. Can you reproduce this with MZ-Tools disabled? How about with RD disabled and MZ-Tools enabled? If you have any other add-ins installed, I'd test them independently also.

If you could get a trace level log of this and post it here, that would be awesome.
 
FWIW I have MZ Tools myself, and haven't gotten a crash like that. :\
 
> Interesting. I've had this weirdly-sized VBE occur to me (Excel 2016 x64), without MZ-Tools. I've mentally blamed in on Excel 2016, since RD doesn't do anything about the IDE window size.

Maximizing the IDE mainwindow worked fine though (didn't try resizing manually).
 
4:15 PM
@this I don't expect that to be the problem TBH, but I'd like to see it in isolation.
 
I would not be surprised if it had to do with our hack to avoid another crash due to a bogus window message.
That one bothered me.
 
The negative size thing for the docks?
 
yeah
it makes me think they have a special meaning for it... something.
 
IIR, when you "close" a toolwindow, it resizes it down to zero and moves it off-screen.
 
like it's a hacky way to save change.
 
4:17 PM
They don't actually hide or destroy the window. It's FUBAR.
 
IKR?
 
Wow, they made some um... "interesting" choices in our EF product.
Looks like they were working around EF performance problems by denormalizing parts of the DB.
 
Muahahaha.
 
c++ programmers write bizarre looking c# too.
 
@Comintern heavy-reads?
 
4:28 PM
Denormalization leads to abnormal code.
 
denormalization is useful for select-optimization though
 
@MathieuGuindon In some places.
It's mainly 1-1 lookups where they've copied fields in the class to avoid the join.
Which is... interesting.
 
denormalization instead of proper indexing is... ...
 
@Comintern You can do the join explicitly.
 
...is what Sage does
 
4:30 PM
Linq provides a .Join.
So you can manually build a sensible join.
 
Yeah, I know. Somebody didn't though.
 
LOL.
 
There are no indexes to speak of other than the PKs.
 
So it's Sage, then?
 
@Hosch250 doesn't help if the back-end foreign key is composite with nullable dates and varchars (or if there's no server-side FK or index)
 
4:31 PM
I've found a total of 2 constraints too.
 
@Comintern you remoting to my server or something??
 
lol
 
@MathieuGuindon It'll build the correct SQL join anyway. You just need to fix the DB.
 
"You just need to fix the DB" should be the Entity Framework motto.
 
problem in DB, not in EF
 
4:34 PM
@Comintern The code-first motto.
 
code first, think later
 
The DB first is great, IMO.
 
True, although DB first still requires thinking through the constraints and indexes.
 
DBA first is even greater.
 
4:35 PM
^
 
DBA: "make a stored procedure"
 
With my prototype, I'm going to insist that people build their changes DB-first (consulting DBAs as necessary), force-generate the model from the DB, and then create a migration to make easy to update all the other databases automatically when we run the CD pipeline.
When you are running single-tenancy for a dozen clients or more, you need to do the updates automatically.
 
Do you stage your live side at all?
 
Why not use DAC?
 
Digital-to-Analog Converter?
Our customers prefer digital.
 
4:39 PM
Data Application C-something
it's a SQL Server thing
using DACPAC or BACPAC
Actually come to think of it, you probably should use SSDT.
it does build on top of it
 
Oh, yeah. We're multi-tenant, so the plan was to scale into that.
 
and it's supposed to make it easy to propagate changes to a DB. Without all silly abstractions getting in the way like that one two letter framework that shalt remain unnamed.
 
I was referring to staging the front-end. We'd discussed doing that to allow field betas and ease the load on CS after feature implementations.
 
ah, ok
 
@Comintern Not sure what you mean?
We do have a staging environment.
 
4:48 PM
so, I have this label:
 
Which is, more or less, a duplicate of prod. Except it isn't updated regularly, so it doesn't have some data, and accumulates lots of test data.
 
                <TextBlock HorizontalAlignment="Right">
                    <TextBlock.Text>
                        <MultiBinding StringFormat="Displaying {0:D0} of {1:D0} items">
                            <Binding Path="SelectedView.ItemsCount" UpdateSourceTrigger="PropertyChanged" />
                            <Binding Path="SelectedView.Items.SourceCollection.Count" UpdateSourceTrigger="PropertyChanged" />
                        </MultiBinding>
                    </TextBlock.Text>
                </TextBlock>
 
And it too is single-tenancy with one site per client...
Same for dev.
 
Our plan was to use multiple servers, and something like a load balancer to allow 2 versions of the live site to operate at the same time.
 
So, if we have 10 clients, we have 30 database.
 
4:49 PM
anyone has any idea how I can fix the binding to correctly update the SelectedView.ItemsCount?
 
And with microservices, we'll end up with closer to 200 databases with 10 clients...
Because single-tenancy rulez.
 
That would let us use a mixed set of tenants during migrations.
 
oh nevermind, missing a PropertyChanged eval somewhere
            .ContinueWith(t => IsBusy = false)
            .ContinueWith(t => OnPropertyChanged(nameof(ItemsCount)));
should do it :)
 
Isn't {0:D0} a bit redundant? Count is always int, right?
 
#Rubberducking
@Comintern expecting it to give me a thousands separator... but I don't have 1K records yet
 
4:52 PM
Ahhh...
 
woot, that worked!
 
Silly non-programmers and their thousands separators.
 
sucks that you can't just bind to ICollectionView.Count
(doesn't exist)
 
IIR that's why I did the formatting in the VM for RD's version.
 
00:00 - 17:0017:00 - 00:00

« first day (1743 days earlier)      last day (1437 days later) »