« first day (1513 days earlier)      last day (1667 days later) » 
00:00 - 21:0021:00 - 00:00

12:00 AM
Oh yeah (duh).
 
At least I hope so...
 
Otherwise VBA would not work at all.
 
RELOAD!
 
OK, I read the IUnknown interface and I still have no clue what it is/does
 
12:01 AM
@Phrancis its the root of everything COM.
 
@Duga folder annotations work fine here, and supplied workbook is riddled with errors
 
So the root of all evil?
 
In order to be a COM object, you must implement IUnknown interface
you already noticed it has 3 methods
 
IUnknown is just a late binding mechanism. Kind of like prehistoric reflection.
 
AddRef, Release and QueryInterface
@Comintern no that's iDispatch
 
12:03 AM
IDispatch is the early bound version, no?
 
Alt name could have been IWhatever.. or ISomething
 
Or IDuckType.
 
@Comintern that would have been prescient!
 
No. IUnknown requires early binding because as mntioned, all you can do is query for a interface and manage reference count
AddRef and Release are just reference counting -- think prehistoric garbage collection.
QueryInterface let you cast a IUnknown into some other interface ... If the cast succeeds, you get back a pointer to that interface.
 
Question regarding:

Font size in code explorer #4155

A reasonable solution would be to just have that dropdown menu similar to the other office applications where you change the font, correct?
 
12:05 AM
Right, but in theory you can implement IUnknown and not IDispatch. IDispatch inherits from IUnknown.
 
@Comintern yes and that COM object would be un-late-bindable
it would be limited to early binding exclusively
 
Oh crap, I did say "late", didn't I. :blushes:
 
;)
It's ok. You are only an intern in things COM, after all.
 
@jcrizk sort of. I'd make that a general setting
 
@this Right. Did you need some coffee while I'm up?
 
12:08 AM
lol
 
Like, some dropdown in the "general settings" tab of the settings dialog
 
@Phrancis so that's your pre-introduction to COM.
 
The hard part is the centralizing of the XAML styling I guess
 
I think general settigns is bit too overloaded
 
Show font sizing support Ctrl-Mousewheel?
 
12:10 AM
why not a dedicated pane for appeaarance?
 
I'd think there would already be a interface for that somewhere in WPF.
 
@Comintern do we get that for free with Avalon?
 
I think so.
 
damn we need to get the ball rolling on that editor pane
...but first I need to fix autocompletion
 
@this COM sounds dreadful
But thanks for taking the time to clarify, I understand better now
 
12:12 AM
...and get back to that oh-so-stale add/remove references branch
 
@MathieuGuindon That's why #4080 was next on my list.
 
Awesome
 
Anywya, i actually read the Marshal.GetHINSTANCE and it looks weird
it expects a "module"
 
@Phrancis It's actually pretty damned amazing if you consider when it was originally implemented. It's what allows completely platform independent remote procedure calls.
 
Makes me think of C++ module loaded into memory from LoadLibrary or similar.
^^
 
12:14 AM
Yeah, I think you might be right.
 
it's a big reason why COM is very complex, and the ohter part is that lot of stuff are in implementation, so you must adhere to convention not enforced by programming language/constructs.
 
@this what else would fit in there though?
 
Themes?
RubberDark?
 
Recall there's also another issue about scaling and coloring not consistent?
 
12:16 AM
I meant current stuff
 
OK, HTH do I do this? window.Target as __ComObject
 
we could use that to. Unfiy with VBA editor's formatting otpions
 
@this the 4K issue?
 
save me a trip to properties dialog, man!
and the dark issue, too
 
I can already see the announcement tweet for that
> Embrace the darkness
 
12:18 AM
LOL
 
@Comintern no, just var ptr = Marshal.GetIUnknownForObject(window)
(not sue if you even need the .Target
 
Rubberduck. Come to the dark side.
 
It is dark. You are likely to be eaten by a rubber duck.
 
@this window is a safe wrapper though.
I already have that interface.
 
it just has to come with some Darth Vador meme
 
12:19 AM
hmm yeah, duh
Your lack of faith in VBA distrubs me.
 
@MathieuGuindon when you said 'centralizing of the XAML styling', did you basically mean 'making it look halfway decent'?
 
Would it work if I just put it on the SafeComWrapper interface? That way we could just grab it in the ctor.
 
Clarify not in safecomwrapper's ctor, but only in window's ctor?
 
@this NOOO!!! That's IMPOSSIBLE!!!
 
@jcrizk nah. IIRC there's a resource dictionary somewhere (gotta dig it up), where <Style> markup that should be shared between all UI's should be
but then, it needs to be referenced in every UI
 
12:22 AM
@this It's a generic.
 
perks of doing WPF without being a WPF app
 
Oh wait, I could care less if it's a generic.
 
I don't mind exposing ti as a property of the SafeComWrapper so it can be used when actually needed.
just don't want to force every wrapped COM objects to show theirs before wrapping, you know?
 
I'm trying to think of another place where it would be useful. CodePane maybe?
I can't imagine it's an expensive call, I can see the damned pointer in the Locals Window...
 
I don't doubt there's other uses --- Wayne actually suggested using it for one other place that escapes my memory
 
12:24 AM
@MathieuGuindon so basically, when someone makes a change to the font style, the "font value" that's in the resource dictionary is also changed to the user-input value?
er, font size*
 
No, not expensive but consider that we always create a new wrapper, it could add up
 
Yeah, that's not a bad point. Derived ctor it is.
 
hence why i'd prefer it as a property on the class
which you can make it mandatory on the derived since we always need it for the iWindow
 
Right.
I may put a passthough property on ICodePane too, something like IntPtr ICodePane.WindowInstance.
That will prevent superfluous wrapping when we work backward to the CodePane.
Wait, no it won't.
NVM
 
How do i assign myself to an issue on GitHub, if I need to do that at all?
I want to assign myself to #4155; it seems reasonable enough for me to tackle first.
 
12:31 AM
@jcrizk take a look into your inbox
 
accepted it
 
you should be able to assign yourself now
 
cool! i've been wanting to learn how to use github for a while, so this should be a good way to learn it.
 
FWIW I've given #4155 just about exactly.. zero thought
 
it's all good lol
I like to come up with solutions to things
 
12:35 AM
Huh, Ctrl-Mousewheel looks relatively simple.
 
I think every UserControl will need to define a style (or import it from wherever that resource dictionary is) that applies to all TextBlock elements, with a setter for the font size... the "fun" part will be figuring out how to bind it to the setting
 
:adds to bucket list:
 
@Comintern wait, you're talking Ctrl+MW zoom in the native VBE codepanes??
 
No, just the RD rendered ones.
 
12:38 AM
I'll need a new mouse. wheel only works for middle-clicks
ah
 
Although if we're subclassed and intercept the WM_PAINT...
 
@MathieuGuindon alright, cool. I think I know how to go about this, so I'll just write down what I think the solution will be and get back to it tomorrow morning.

For now, back to programming my finance database.
 
Grab the screen buffer, do a bitmap transform, post it back to the GDI buffer...
 
@jcrizk don't hesitate to pop into here anytime
 
12:41 AM
I think it would be doable. Not sure if it would have utility beyond "check this sh!t out!".
 
lol
best wait until we have an actual status bar to put the %zoom in
 
I won't, hesitate that is. I like to learn things, so hanging out with people who know a lot more than me in a specific field is fun for me.
 
private IntPtr _DO_NOT_DEREFERENCE; Too much?
 
private IntPtr _DEREFERENCE_AND_DIE;
right, maybe too much
@jcrizk reminds me of this:
If you are a developer, and you feel bad about not knowing everything, I have one item I want you to memorize: No one knows everything. No one. The best coders in the world only know a small fraction of everything there is to know about coding.
for the record, I'm good at... writing bugs.
3
 
@jcrizk exactly why I come to this pond.
@MathieuGuindon that’s why I keep some juggling props in the trunk. Never at a loss I’d what to do with them.
 
1:02 AM
Don’t take it personally. You don’t know what code to write? Yeah, we all don’t know what code to write. We figure it out. Line by line. Bit by bit. It’s broken most of the time. Until it’s not. Then we go write new broken code. Until it’s not broken. Welcome. That’s the job.
 
@Phrancis ok that one's awesome
RTd
 
Rubbertweeted?
 
bwahaha
 
"It's not a bug, it's an alternative feature!"
 
yeah... I keep telling myself that every time autocomplete gets in my way
 
1:07 AM
I might need a new key-cap for my [Del] key before I'm done with this.
 
Should've seen me when I initially started college. I was a biomedical engineering major with 2 minors: mechanical and electrical engineering. Figured out that professionals don't know everything about everything, just everything about 1 thing, then changed to mechanical engineering.
Just glad i learned that sooner rather than later
 
I like how Scott Hanselman puts it: "We're all impostors"
 
Jun 26 at 15:08, by this
> A specialist is one who knows more and more about less and less until the specialist knows everything about nothing.
A generalist is one who knows less and less about more and more until the generalist knows nothing about everything.
 
I started college with a dual major in history and political science. Figured out that both of those would benefit from a minor in economics. Then I said F this, dropped out, and taught myself how to program.
Not being homeless and eating were high on my bucket list back then.
 
@Comintern so they are now?
 
1:13 AM
I'm this close to installing a Rockstar interpreter to express my innermost angst... #SendHelp
 
@this Nah, I sometimes forget to eat now, especially when I'm coding.
 
1:52 AM
@Comintern good thing you majored hard work
 
2:03 AM
@Phrancis installing? why not make one ;-)
 
@MathieuGuindon which notice for RD? Just perused email and lots of RD updates. Y’all done did been busy
 
@IvenBach huh?
what notice?
 
You mentioned something about checking my email.
 
2:21 AM
lol no, I meant your stack exchange inbox
4 hours ago, by Mathieu Guindon
@IvenBach aww.. they're .mp4a audio files, phone reads them https://www.dropbox.com/sh/fot2briey6xvfzg/AAAcp264Mq4Mv9XoG-u7YHYfa?dl=0
to get the chat ping message
 
2:52 AM
Ah. I’ll ‘listen to them when I get some free time.
 
cool. I'll have more time to practice and replace these atrocities :)
 
@MathieuGuindon Because I'm not in the mood for regex ;-)
 
I'd probably try to make an Antlr grammar out of the spec
 
Knock yourself out lol
 
3:07 AM
Compiles? Check. Works? TBD.
 
> You are not strange for feeling sad that your first pull request received a lot more feedback than you were expecting.
Why did you do that? R# suggested I do that
#LearningTheBasics
 
3:51 AM
Wow, native code debugging with the full symbol set loaded is sloooooow in VS2017.
 
 
3 hours later…
7:04 AM
Late to the party and say welcome to the pond @jcrizk too.
 
 
6 hours later…
12:37 PM
@MathieuGuindon 50 Shades of Duck
 
 
1 hour later…
2:03 PM
thanks @PeterMTaylor
 
2:41 PM
so im reading

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/interfaces/

to better understand this

https://docs.microsoft.com/en-us/dotnet/framework/data/transactions/implementing-a-resource-manager

This sentence:

"By using interfaces, you can, for example, include behavior from multiple sources in a class."

So in class A, i can't inherit from class B or class C unless I create an interface? I just want to make sure I understand this correctly.
rather, i can't inherit from B AND C
 
2:53 PM
@jcrizk Interface != base class (and .NET doesn't support multiple inheritance anyway).
Inheriting from base class shares it's implementation, and you also inherit all of the interfaces that it exposes.
What the interface does is let multiple implementations be used interchangeably in the calling code.
So for example, if class A needs to work with an IFoo, it can use any class that implements IFoo.
 
so basically, let's say class B implements IFoo. so now classes A and D can use B? and by using B you mean implementing?
 
If either class A or D is expecting an IFoo, yes.
 
ok cool. i think i understand it more now; thanks!
 
Other way around. Let's say IFoo declares a method Bar. ClassA needs to call IFoo.Bar. ClassB and ClassC both implement the IFoo interface. So, ClassA can use either a ClassB or a ClassC to do its Bar thing. It's a way of abstracting the implementation away from the functionality.
 
@Comintern ok, that makes a lot more sense now.
so basically i can have ClassB.Bar do 1 thing while ClassC.Bar does something different? and the interface allows class A to use either ClassB.Bar or ClassC.Bar
 
3:10 PM
Real life example is in RD's ReferencedDeclarationsCollector. This section of code is processing everything that implements IComTypeWithMembers "generically". ComModule, ComCoClass, and ComInterface all implement that interface, so it uses the same code to process all 3 implementations.
@jcrizk Bingo.
 
ok, that's pretty cool lol
thanks for the explanations!
 
An interface is like a contract. It says, "you can use me in this specific way".
NP
 
3:27 PM
@jcrizk another example might be an Interface ISettingsReader that has one method Read. Any class that implements ISettingsReader must implement ISettingsReader_Read, so class IniFileReader, RegistryReader, DatabaseReader and ManifestReader would all implement ISettingsReader_Read. Then, any other method that needs to read a setting, can accept a ISettingsReader, and it doesn't care which concrete class is provided, it just knows that it can Read a setting.
@jcrizk you'd be amazed how many people don't know that interfaces are possible in VBA too.
 
@ThunderFrame like me lol
i didnt even know structs were a thing in vba until i googled it a few minutes ago
 
@jcrizk lol, there was an Access VBA vlogger that had an epiphany (live on YouTube) around Interfaces, once he started using Rubberduck and discovered them. To be fair, the VBE doesn't exactly do a great job of advertising the capability.
 
i think the more important question is why would you vlog while doing stuff in access?
 
@ThunderFrame That vlog was awesome.
Huh. This isn't right:
[Flags]
public enum DeclarationType : long
Shouldn't an enum with [Flags] always be governed by an unsigned type?
 
@this A wrapped Collection/Dictionary it might be, but I'd still prefer a strongly typed Item member, with an exists method, over a Variant object. I suppose you could write a hashset from scratch, but AFAICT, that's both difficult and probably involves managing the memory yourself - all for not much extra benefit than wrapping a Collection/Dictionary.
 
3:52 PM
@Comintern except we have too many members for a flags int32
(or close to too many)
 
I mean ulong. A negative long will have all the flags set because it's represented in twos complement. It makes them unsafe to cast.
It gives you an implicit member Everything = -1L.
 
But the default enum type is int, no?
 
That's on .NET.
But, yes it is.
 
Yeah... I'm missing something.. that wasn't about DeclarationType?
 
Granted, you shouldn't be casting a DeclarationType to a long ever, but it stuck me that it was a problem with using bitmasks in VBA.
 
4:03 PM
Ooh the API
 
@MathieuGuindon There's an API? ;^P
 
@MathieuGuindon Not specifically, but that would make a great R# or Roslyn inspection.
 
^ This photo blows me away everytime. Best photo of the last decade IMO.
 
Now that I think about it, I'm not sure how the VBA marshaller handles a negative 0.
Stupid ISP. It would be faster to deliver TCPIP packets to their office by hand this morning.
 
@ThunderFrame the video is even better ;-)
 
4:10 PM
@MathieuGuindon IKR.
I'm not sure which is more impressive, that launch and landing both of those boosters, or the timing and production effort that was required to generate that shot.
 
I like this one, but then again I'm partial to explosions.
 
how does this:

public static string GeneralSettings_LanguageLabel {
get {
return ResourceManager.GetString("GeneralSettings_LanguageLabel", resourceCulture);
}
}

turn into this:

"General Settings"

I think I know what resourceCulture does; it grabs the English version if that's the display language.
well that's great formatting lol
how about just "GeneralSettings_LanguageLabel" = "General Settings" ?
I'm basically trying to figure out how this dictionary works so I can add a reference for the label in the XAML to get so that it would display "Font Size" in the correct language
if that makes sense
 
You'll find the actual strings for the settings under Rubberduck.Resources.Settings
 
oh ok, cool
 
They're.resx files
 
4:25 PM
i'll check there and see if i can figure it out. thanks!
 
Don't worry about missing keys in French, German, or Czech files =)
 
yeah, i read those .resx files when i was exploring lol
i figured we'll get to it eventually
 
@jcrizk I'd use the resource designer to edit those - no need to bother with the raw XML.
Czech?
 
yeah, it should have the .cs extension
 
Yeah there's a Czech translation in progress =)
 
4:27 PM
Is that configured correctly? My build is only generating French and German.
 
It's not fully done yet
 
Ah, OK. I thought I might need to install a Windows locale or something.
 
TBH it looks like it'll end up the way of the old Japanese translation
 
@jcrizk we monolingual types just stick to English, adding resource keys at whim, then prod the bi/multilingual types to go update the new keys in their respective languages.
 
and Swedish
 
4:29 PM
I should sic a Mandarin translation on my daughter.
 
IDK what happens when an English key exists, but there's none for the user's language. Presumably it's a nice helpful empty string, or does it fall back to English?
 
Although my guess is that the translations of the technical terms would be funny as hell.
 
@ThunderFrame framework falls back to the no-culture resource
 
^
Discovered that when I was testing the settings dialog.
 
4:31 PM
@MathieuGuindon my wife says I fall back to no-culture on occasion...
 
lol
 
@ThunderFrame I know a bit of EG Arabic. Basically if I was kidnapped and put into the middle of Egypt, I could get home using Arabic, but as soon as someone wants to start a conversation I'm lost lol
 
I should work on a VBA newbie translation.
en-us:
The VBEsetting "Compile On Demand" is currently enabled. This is not recommended as this may hide compilation
errors and cause problems with parsing. Do you want to parse anyway?

vb-newb:
Go to Tools -> Options in the menu, then click on the General tab. Look down in the lower right-hand corner.
See that check mark next to "Compile On Demand"? That makes the Duck angry. Do you -really- want the Duck
to be angry?
 
could be useful for inspection metas too
 
@Comintern This Variables box holds an Integer number. And this method bunch of lines takes an Argument some data, and calculates does stuff, before Returning sending back a result to the Variables box.
 
4:41 PM
en-abuse:
WTF!!! Are you some kind of idiot?!?! Any fool knows that if you make that implicitly Variant you're going
to end up with a pile of crap when this compiles.
 
Casting from the abstract to the concrete is necessary when you need to access the methods properties and other public members of the concrete implementation in the code that has a reference to the early-bound vatiable it does magic.
 
And of course: Press key.
 
lol
 
while im figuring out how the user can change the font size, may i also add a setting to change the font style to ComicSans?
 
4:49 PM
@jcrizk only if that also applies a Skittles theme to syntax highlighting ;-)
 
And all literal values should be displayed in purple WingDings on a slightly-off purple background.
 
Oh! Easter Egg idea!
 
@Comintern IKR, Rubberduck couldn't take your code seriously, so we've turned it into a visual gag.
 
If the settings finds <Language Code="rubberduck" />, it transforms all the text like this:
var text = Enumerable.Repeat("Quack", resource.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Length);
Quack Quack Quack Quack Quack Quack Quack Quack Quack Quack .
 
5:03 PM
so i made an entry in RubberduckUI.resx:

GeneralSettings_FontSizeLabel = "Font Size"

and when I referenced it in the 'Content' of the label, I get this instead:

#GeneralSettingsFontSizeLabel
Here's how I referenced it:

<Label Content="{Resx ResxName=Rubberduck.Resources.RubberduckUI, Key=GeneralSettings_FontSizeLabel}" FontWeight="SemiBold" />
 
Did you use the resource editor?
 
I opened the .resx and made the entry that way, if that's what you mean
I didn't alter the .cs behind the .resx because I read it was machine generated and to not alter it
 
Yeah, that part should be right then.
 
I basically copied this line because it referenced the same .resx:

<Label Content="{Resx ResxName=Rubberduck.Resources.RubberduckUI, Key=GeneralSettings_LanguageLabel}" FontWeight="SemiBold" />
 
And you've recompiled?
 
5:10 PM
no
 
Ahhh... I don't think the designer can find it without a recompile. Could be wrong about that though.
 
How do I recompile it? I tried looking for a recompile button somewhere
or do I just hit F5?
 
Build->Build Solution or Ctrl Shift B
 
OH, that's what build is lol
Didn't know build = compile
How do you guys feel about https://atom.io/ ?

I tried using it when I was in my university's robotics club because they used https://pros.cs.purdue.edu/ and it required Atom, but unfortunately, the support for pros was god-awful. It kept crashing on startup and the only response I got was "reinstall windows? idk"
@Comintern I recompiled + restart VS and it worked. thanks!
 
NP
You shouldn't need to restart VS though.
 
5:24 PM
I probably just had to reload the .xaml, but I just wanted to be sure lol
 
Huh. Never tried Atom. I have been playing around with Visual Studio Code in Linux though.
 
Kinda wish I had a linux when I program electromechanical stuff. It makes life like 30x simpler than working with windows
 
IKR?
 
5:39 PM
@Comintern I made another change to the line I added in the .resx just to see if I needed to just open and close the .xaml, but the label only updates after I reopen VS
Is that a non-issue?
 
6:12 PM
@ThunderFrame the thing is that it is a lie. Nothing prevents you from enumerating the custom class using a variant or object variable. A true strong typed collection ought cause a compile error when this happens.
 
Where do I make the collections for:

SelectedItem="{Binding SelectedLanguage, Mode=TwoWay}"
ItemsSource="{Binding Languages, UpdateSourceTrigger=PropertyChanged}"
I get that these 2 properties require collections, but where do I make and put the collection?
I can't seem to find where "Languages" or "SelectedLanguage" is located so I can make a "FontSizes" collection
 
@jcrizk If you have an example, you can right click on the binding and "Go To Definition" (or hit F12). Those are defined in the view model.
 
6:29 PM
@jcrizk each WPF UI has a corresponding "ViewModel" class; that ViewModel is the UI's "DataContext" against which all bindings work. The settings UI is pretty much the most complicated one, because each "tab" has its own UserControl+ViewModel
 
thanks @Comintern, now I can look around at stuff a bit easier lol

@MathieuGuindon I noticed that after I went to the definition of "Languages" lol
 
@this Does this look reasonably safe?
    internal class CodePaneSubclass : FocusSource
    {
        public ICodePane CodePane { get; set; }

        public bool HasValidCodePane
        {
            get
            {
                if (CodePane == null)
                {
                    return false;
                }

                try
                {
                    if (Marshal.GetIUnknownForObject(CodePane.Target) != IntPtr.Zero)
                    {
                        return true;
                    }
                }
 
That way of doing things completely separates the view from the actual logic; the UI only serves to collect user inputs
 
Oh wait - I can't use the auto-property. I need to call Marshal.Release if it's not null and changed via the setter.
 
because of how powerful WPF bindings are, the paradigm at play here is "model-view-viewmodel" (MVVM); in MSForms (VBA) or WinForms, the paradigm to achieve that kind of decoupling is "model-view-presenter" (MVP), which is slightly different
 
6:37 PM
yeah, I actually prefer doing it this way because I can just make a list somewhere and just reference it when i need to
 
You may have seen me link to this article on SO: rubberduckvba.wordpress.com/2017/10/25/userform1-show
I'm at war with UserForms done wrong =)
 
I'm at war with doing things the wrong way in general
I mean, I could have just added some static combobox members, but I figured that wasn't the best way to go about it
 
random chime in: use F6 to build.
and if it builds without errors, do run all Tests (Ctrl R, A)
 
@Vogel612 Speaking of, for some reason my F6 binding doesn't work anymore. Is the an R# binding that override that?
 
thanks @Vogel612
It seems I've increased the number of followers on my wordpress site by 200% this month.
But that's just a roundabout what of saying I gained 2 follower
+s
 
6:59 PM
IIRC Today is the day to congratulate @M.Doerner 😀
CONGRATS!!
 
@this sure, but VBA is never going to prevent a user from using Object/Variant. It's annoying enough that Excel requires Worksheets return a Variant so With wbk.Worksheets("foo") is going to be late-bound, and requires a declaration/cast. It's nice to work with something that's going to be typed, if only for convenience and the performance that comes with it.
 
congrats @M.Doerner!
ps: i have no idea what im doing
 
7:30 PM
@jcrizk mumble mumble something about mumble marriage mumble.
 
gotcha
 
@Comintern I got to see one disintegrate live in Florida. Was after takeoff, not landing.
@ThunderFrame was that on the interview that mug did?
 
@IvenBach I've always wanted to watch a live launch. One of these summers I'm going to road trip to the Smithsonian Air and Space Museum (haven't been there since I was a kid), then swing down to the Cape to catch a launch.
 
I just happened to be interning when they launched one.
 
alright, so one way I could go about this is to go into Rubberduck.Core.Settings, create a .cs named something like "FontSettings", go into Rubberduck.Core.UI.GeneralSettingsViewModel.cs, add some code like this?

public GeneralSettingsViewModel()
{
Fonts = new ObservableCollection<FontSettings>(some things here)
{
some things there
}
}
also, how do i add formatted code to the chat?
 
7:38 PM
If/when I get word from my old mentor while I was interning I might visit him at the cape.
 
@jcrizk To the right of the [send] button, [fixed font] will pop up.
 
@Comintern thanks
public GeneralSettingsViewModel(some arguments here)
{
    Fonts = new ObservableCollection<FontSettings>(some things here)
    {
        some things there
    }
}
that's better lol
 
@Comintern you need to dispose the SCW as well.
 
@jcrizk I wonder if the Fonts should be static.
 
@jcrizk :+1:
 
7:41 PM
@this Already caught that. It also needs to override Dispose(bool).
 
Congrats, @M.Doerner!
 
I'm trying to allow lazy association of the ICodePane so I can subclass all the VbaWindow immediately on startup.
 
@Comintern do you mean just putting the font sizes directly into the xaml like this?

<combobox>
    <comboboxitem content="12"/>
</combobox>
 
No, more like private static readonly ObservableCollection<FontSettings> _font = new ObservableCollection<FontSettings>(some things here). Not sure if that works though.
Oh wait, those are the settings, not the fonts.
NVM
 
@IvenBach yep, with the Access guy. Seems he went dark for about 8 months after that, has only recently started posting new videos again.
 
7:48 PM
@ThunderFrame It can take some time to recover from having your mind blown.
 
@Comintern gotcha. well, I probably should have called it FontSizes instead of Fonts lol
 
@Comintern Smithsonian in DC? That was the best thing I visited in DC, but IIUC, a drive from DC to the Cape is not exactly short. Then again, I was working in Sydney in 2014, and drove home to Melbourne (about 600 miles) one Friday night. And when I was at college, I drove 1300 miles for a holiday, only stopping for gas and to swap driving with a buddy.
 
My new car loves to be driven. I'm planning on budgeting roughly equal amounts for speeding tickets and gas.
 
I used to drive ~2100 miles to New York a couple times each summer for remodeling jobs and always did those straight-through. Not sure I'd do that anymore though.
Think my longest straight-through trip was to Tampa for my brother's wedding. That was around 26 hours.
 
7:54 PM
I just had the stereo in my car upconverted from the original to an Android based 8" screen thing. It's awesome, but I had to sign a disclaimer from the installer, stating that I don't hold them responsible if I crash because I was watching NetFlix on the highway.
 
I'd love to get one of those, but the custom dash panels for the double DINs interfere with the buttons for the heated seats. I'm currently slumming the stereo headset as a result.
 
@Comintern my 1300 mile trip, the muffler came away from the exhaust manifold, and then fell out, about half way into the journey. Things got loud for the next 600 miles.
I got pulled over when crossing the state-line, and one of the cops said "what was that noise we heard?". I responded that i thought there was a problem with the muffler. The other cop had his torch out and was looking under the car, stuck his head up and said " A problem with your muffler? You haven't got one!". Many tickets ensued.
 
@MathieuGuindon Did you need the public override for AssignHandle in SubclassingWindow for something?
@ThunderFrame LOL
 
@Comintern bought my unit and the fiberoptic unit from China. It all hooks up to the steering wheel and everything. That said, I'd be unwilling to give up my heated seats.
 
I had something similar in my old Mazda 3.
 
8:03 PM
I take it your current car is somewhat faster?
 
Yes. I decided to treat myself to a BMW.
 
Nice. X5 or coupe?
 
Just a 3 series, but damn.
Make me want to get an M2 for my next car.
Assuming I can justify car payments that are higher than my mortgage payments...
 
waaaiit... a BMW costs more than a House?
 
I've got a Cayenne S. I was behind a BMW X6 M the other day. He left me for dead.
 
8:06 PM
I priced a 2018 M2 at around $950 a month, but then again my mortgage payment is really low.
5 years vs. 30 too. ;-)
 
@Vogel612 car loans are short term. Home loan repayments can be low if you've paid off a chunk already.
 
the loan system is weird like that ...
 
Assuming that you don't continually draw off the equity.
 
@Comintern to pay off the car loan...
 
Makes sense on the level that a house will generally hold its value for a long time, whereas a car typically doesn't.
Hell, the best way to be underwater on a car loan is to drive it off the lot.
 
8:10 PM
Yep. Although I have a friend that has an old 911. Those things don't seem to depreciate at all.
 
Yeah, lots of them have a 'U' curve too. Like my friend's VW van - it's worth 10x what it cost new now, but in 1990 you couldn't give it away.
Granted, its had roughly 15x its new sale price worth of work done on it.
 
> Closes #3655

Use GetText method instead of ToString so that the parameter name is picked up correctly.
 
8:28 PM
@Duga well... that one was a clean fix
 
[rubberduck-vba/Rubberduck] build for commit 34ed4094 on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4237?src=pr&el=h1) Report
> Merging [#4237](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/4237?src=pr&el=desc) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/d005b6e8aa9474fd0022b89754bb730a151959b8?src=pr&el=desc) will **increase** coverage by `<.01%`.
> The diff coverage is `100%`.


```diff
@@ Coverage Diff @@
## next #4237 +/- ##
=========================
[rubberduck-vba/Rubberduck] build for commit 34ed4094 on unknown branch: 52.17% (target 0%)
 
00:00 - 21:0021:00 - 00:00

« first day (1513 days earlier)      last day (1667 days later) »