« first day (1649 days earlier)      last day (1531 days later) » 

7:00 PM
If we deploy them outside of a resx, we could prompt on first start-up if they were going to be overwritten.
 
I was thinking the .resx would be used for generating/overwriting/restoring the defaults
 
the rdt file wouldn't be deployed until they actually invoked the menu item
no, that's wrong - when the submenu is displayed.
 
@this hence the readme.txt suggestion - "CHANGES TO THE ORIGINAL FILES WILL BE LOST WHEN RUBBERDUCK IS UPDATED. MAKE A COPY IF YOU WANT CUSTOMIZED TEMPLATES" should be clear enough
 
and yes, that's what I envisioned what .resx would be doing, as well.
 
You could go fully overboard and prompt them with a diff window to merge them...
 
7:03 PM
> After some additional discussion - the consensus seems to be KISS + YAGNI; we will simply assume total ownership of all built-in templates and always overwrite the built-in templates if there has been changes between resx and rdt files for the built-in templates. We should add a readme.txt to warn that the built-in templates are owned by Rubberduck and may be overwritten.
 
lol
also "Delete these files to restore the defaults"
 
@Comintern Oops you don't have diff installed! You'll need to download a diff tool because you're a luser!
 
not that anyone ever reads readmes.. it has to also be in the blog and the wiki
 
@this Oh come on, you've never written a diff tool before?
:-D
 
@MathieuGuindon maybe call it dontreadme.Ihavenothinginterestingtosayanyway.txt?
 
7:06 PM
lol
DoNotRead.txt
 
@Comintern meh. #EnableMyLaziness
YouCannotRead.txt
 
#winner
 
readme.rtfm
 
Rich text format (macros enabled).
 
7:07 PM
oh my
 
lol
 
“You’re not just going to understand this theoretically. You have to prototype. You have to code it to get it.”—@jensimmons on css grid, but equally good advice for any new tech. Learn the grain of the technology by working with it. Dive in, friends. Splash in puddles. #aeasf
When someone screen shares Visual Studio with me and their solution explorer is on the left, my default assumption is they're intentionally screwing with me and I don't care what their code says or what the bug is just WHY ARE THEY MESSING WITH ME?!?
 
@TweetingDuck I do genuinely why that is a big deal. I like it on left....
 
As do I.
It comes from being left-handed methinks.
 
Nick is just full of BS. That's what :P
 
7:14 PM
@TweetingDuck This is why I never use the Server Explorer. It defaults to dock on the left, so it got a really bad first impression.
 
Even though I keep mine on the right.
 
It's also why I type WPF instead of using the toolbox.
 
How do you display a xaml window. I'm brain farting and can't figure it out.
 
It's... sinister.
 
@IvenBach nope
 
7:16 PM
You must be a different broken Mug then.
 
<~ leftie
 
LOL.
I type WPF too, because drag/drop produced unmaintainable code.
 
@Comintern nope. that's just called "doing it right" ;-)
 
Wacky margins instead of nice grids, and all that.
It's 1:15, and I'm ready to fall asleep at work.
My low back and hip are cramping, as usual.
 
the best update VS could do is disable drag-and-drop into the xaml designer preview pane
 
7:18 PM
LOL.
FWIW, did you know VS has a nice properties window for XAML?
 
yeah, with a nice binding editor too
 
Lets you modify properties directly for the selected element without working directly with the XAML.
 
"lets" ;-)
 
I still don't use it generally, but it is nice.
LOL, yeah.
Told you I was tired :P
 
we'll have to do something about your cranberry turkey sandwich addiction, Hosch. ;-)
 
7:20 PM
Sorry, I can't eat poultry. Makes me ill.
Same for beans and several non-wheat grains.
 
@Hosch250 in UK that's "tyred"
 
@MathieuGuindon Hell, I'd be happy if you could simply disable an in-process DnD.
 
LOL.
 
@Hosch250 wait, you don't eat turkey for thanksgiving?
ARE YOU EVEN AMERICAN??!!
 
My family does. I usually have a couple swallows and mostly live on mashed potatoes and cranberry.
 
7:22 PM
what, Canadians don't?
 
LOL.
I wouldn't eat turkey on thanksgiving if I didn't live with my family.
 
yeah, even canucks do! ...just a month before, because our thanksgiving is earlier
 
yeah, considering that you don't get sunlight for the rest of the winter
 
lol it's not that ba... looks outside nevermind
3
 
Makes sense - it was originally kind of a harvest festival. If the first U.S. Thanksgiving were in Florida, we'd celebrate it in January.
 
7:23 PM
LOL.
 
On the other hand, you have more sunlight in summer than I would down here. I really liked it when the summer day would stay lit until almost 10 PM.... :-\
 
Me toooooo.
I don't like night driving.
 
that's, like, June 18-25
 
I think it's like June-August over here, if you could the light-ish sky shortly after sunset.
 
A worksheet is literally made of thousands of little textboxes (cells). Have you considered not using a TextBox control, and naming a specific [merged?] range instead, nicely formatted, with borders and shading? — Mathieu Guindon 10 secs ago
#BubbleBurst
 
7:37 PM
:pop:
You can see them too when Excel is so crushed that it can't keep up with rendering.
 
lol
now that is a fundamental deal-maker question:
Do you have a working SNES in the office? — Stefano Palazzo 2 hours ago
 
There's no such thing as "geek discrimination"? Do you mean there's no law against geek discrimination? — Comintern 14 secs ago
 
> I'm a Community Program Manager w/the @Microsoft MVP Program. I love tech, MSU & knitting. I'm a photo nerd, beer geek, spork expert. Michigander in NYC.
#awesome!
I guess that means I should probably update my MVP activity... it's a wee bit lagging
 
pfft... turkey is for Christmas lunch. What's a thanksgiving?
 
7:47 PM
I eat cranberry jelly on my toast for breakfast
not
 
cranberries are expensive over here...
not filthy rich expensive, but still
 
Our cranberries are grown over the border in Wisconsin.
 
Cranberry jelly on buttered toast sounds great. The cylindrical cranberry sauce tube extruded from a can, not so much.
 
We get frozen cranberries and boil them.
 
When I lived in NY, you could buy them fresh there in season.
I'm kind of surprised that WI has the right climate to grow them though. I'd always associated them with the NE Atlantic coast.
 
7:51 PM
gosh - implicit default member access is horrid. Ok, nothing new but boy, it really grates the nerves.
 
I guess meshing well with coworkers can't work if you were a fan of Sega Genesis over SNES. — Mathieu Guindon 14 secs ago
 
@Comintern I loved that stuff as a kid. I don't much like cranberry anything now. Maybe it ruined me...
 
@this especially when it makes a UDF look like it's written against an array, when in fact it's all implicit Range member calls
 
@FreeMan My sister makes a fantastic cranberry and pecan chutney.
That's ruined me on most processed cranberry products.
 
I can see that.
 
7:57 PM
@MathieuGuindon Genesis does what Nintendon't. — user95595 1 min ago
comment thread nuked in 3.....2.....1....
 
@MathieuGuindon My son is in Fairbanks, AK. They're scheduled for a solid 3 hours 58 minutes of "daylight" today...
 
LOL.
 
@MathieuGuindon wait, VBA on iOS? Is that a thing now?
 
@MathieuGuindon why not both?
 
@this mom wouldn't allow both.
had to sell the NES to get a SNES
sad childhood, I know
@mansellan sure why not? they even got a shiny new VBE that doesn't support add-ins!
 
8:01 PM
oh - #TIL!
 
@MathieuGuindon i was referring more to the upcoming flame war. ;-)
 
#If Mac Then ...
oh, lol
 
@MathieuGuindon what? No. That's Mac OS.
Mac OS ≠ iOS
 
@MathieuGuindon commit suicide ' you have no hope
 
@this ^
 
8:02 PM
fml, iDontUseThisShit
when I have money to waste, I buy a harmonica, not an apple
2
 
Also, it's not shiny new. It's just return of something that they got rid of.
 
@MathieuGuindon Cheaper hobby, too.
 
heh, my up arrow crossed with @Hosch250's post...
iiuc VBA on anything other than x86/x64 will be difficult \ impossible
 
i don't think it's the matter of architecture but rather the OS.
because VBA has too much tentacles clinging to a bajillion DLL files scattered all across the Windows OS.
 
oh ok, i thought it had heavy ties to the instruction set too. could be wrong.
in terms of its implementation i mean
 
8:09 PM
I might be as well, but my understanding is that because VBA builds on top of COM, and considering that COM is meant to be an ABI, it shouldn't care a fig about the low level hardware details.
 
seem to recall they never got it working on WinRT (in the short time WinRT was a thing)
 
but it does imply that you must have a working COM system on the OS before you even could begin to have VBA.
AIUI, WinRT used a slightly different variation of COM
(as if we needed more variations of COM....)
 
^
watch, iCOM coming up
(nope)
 
I don't even know they keep it all straight.
 
it's straight?
 
8:13 PM
far from it.
 
duck tape
 
it's not even discrete.
I mean, I can't tell from a glance if this thingee is a COM, a COM+, a DCOM, a OLE, an ActiveX, an Automation, and there might be more I don't even know about.
 
rubber duck tape
 
Is there a specific reason why we put all contexts and values for one combination of declaration and attribute name on the same AttributeNode?
 
@this you missed DDE ;-)
 
8:14 PM
is DDE based on COM, though? I think that's a entirely different thing.
 
more of a predecessor
 
@M.Doerner I think there might be some leftovers from my failed attempt at doing this in there....
that would be one of them
(I think)
 
That makes it impossible to recreate multiple VB_Ext_KEY attributes.
 
wait that's not the ParserRuleContextExtensions for AnnotationContext at all, I'm mixing things up - where's the AttributeNode?
 
You can hava as many of those as you want on any member or module and they always have exactly two values.
In Attributes
 
8:17 PM
oh
oh wow, that's old code. looks like just a bad assumption.
 
I wonder if the VB_Ext_KEY is an exception rather than rule, though.
 
I think the multiple contexts have been introduced to cope explicitly with this attribute. (cf. #1683)
 
@this doesn't matter.. it's legal, so we should handle it correctly :)
 
i'm not certain what is the behavior is if there's a duplicate attribute other than that.
 
It is just that the handling makes the values no longer recognizable.
 
8:19 PM
@MathieuGuindon my concern was more that if it's not legal to have multiple VB_Name or whatever, it need to stay illegal.
 
We currenlty handle multible VB_Name attributes by calloecting all contexts and values.
Afterwards, the contexts have to be examined to determine which value comes from where.
 
Just found a question in the close queue about C#'s is being a code smell and an anti-pattern.
 
Let's see what breaks when I generate separate nodes for separate contetxts.
 
I put a comment that whoever told the OP that needs to leave the industry. #ImNotNice
 
@this right. but syntactically, they gotta be legit.
@Hosch250 wut
 
8:24 PM
Yeah.
Releasing tomorrow at 7:45.
I'll be online working on redoing my "IDE" :P
 
tbh prior to C# 7.2 (?) using is is often rather questionable
 
I'd do it like so:
 
@Hosch250 getting practice for Avalon :)
 
if (val is Type)
{
     var typeVal = (Type)val;
}
@MathieuGuindon :)
Because an is check and a cast are better than an as cast and a null-check.
 
@MathieuGuindon I didn't know it existed prior to that. Why would it be questionable then?
 
8:28 PM
IMO if you can soft-cast and do .? then as is perfectly fine.
 
And, this way, it keeps typeVal in a tighter scope.
 
@Hosch250 rather verbose though
 
So it's not polluting the rest of the method.
@MathieuGuindon Not any more verbose than:
 
var typeVal = val as Type;
if (typeVal != null)
{
    // ...
}
 
8:29 PM
var thing = foo as Bar;
thing?.Something();
 
And ?. isn't necessarily the nicest if you have to do it many times.
And then, I mostly did this in VSD.
 
main issue being with the need to use a type other than the interface you're working with, in the first place
 
Where we'd analyze a node and take different actions based on a value.
 
that is what the "code smell" is, I'd think
 
Like, we'd check a comparison node in an if.
 
8:30 PM
ttqw
 
breaks ISP
 
Then we'd invert it different ways.
Like, != would become ==.
But, they were all comparison nodes in the tree.
 
also, I think I have a bias against (cast) operators
 
(cast) is actually far better than as when it comes to performance.
Because it can just cast directly instead of boxing.
 
boxing is irrelevant unless you have a value type
 
8:32 PM
Or an enum.
 
and if you have a value type as an interface, it's already boxed
 
NVM, read it wrong.
But, you typically don't use interfaces on your value types, and many common value types are involved in casts.
int for one.
All enums ever.
 
for me, I'd have more issue with the fact that we have different ways to cast something. I don't need to care about whether I should (cast) or as otherType.
let the compiler figure out the optimum path so I can focus on expressing the logic instead of the mechanics.
 
@Hosch250 value types get boxed all the time. just look at how many interfaces System.Int32 implements.
 
Long story short, (cast) is a low-level cast. It's extremely light-weight, and to be preferred.
as is basically a try-cast.
 
8:39 PM
@this that
 
is basically does type.GetType() == ExplicitType.
 
which is the same code smell as using as imo
 
IMO, I don't need to care about that kind of details. That's a compiler/optimization problem for which I have no stake in.
 
The pattern-matching val is Type valType is newer, and is similar to is with a sort of out param.
 
you're not working with the interface you're given, design is off (or too low-level to worry about such considerations)
 
8:40 PM
So, if you need to know if a type can be cast, use is.
as is one I avoid using.
 
why is it even in the language then?
 
Direct casts are for when you know you can cast already, for some reason or other (maybe you just pulled a value from a dynamic variable).
I don't know.
It was handier before pattern matching came out, IMO.
 
dynamic is evil - yet phenomenally useful when used right
 
Never said it wasn't. That was just an example.
 
I don't think I ever needed to use dynamic in 100% managed code
it was introduced for COM interop
 
8:42 PM
was it?
 
It's used in RD in a couple places.
 
@this absolutely
 
I thought it was for some ASP.NET wizardry
 
It's super handy for things like:
 
nope. enhanced COM interop in C# 4.0 IIRC
 
8:43 PM
yes, that is correct (and thank God for that)
but my first exposure to dynamic was actually for ASP.NET
 
hmm, I might have used it with some JSON stuff
 
(and no, it wasn't doing anything with COM)
 
...which makes the point that dynamic is evil: turns C# into Javascript.
 
meh. who know maybe they found 2 different needs and shot them both with one type.
But yes, dynamic should be very very very narrowly scoped.
 
CAN I HAZ DUCKY
 
8:44 PM
(providing that you must use it)
 
public interface IFoo {}
public class FooBar : IFoo {}
public class FooBuzz : IFoo {}

public void DoSomething(IFoo foo)
{
    DoSomethingElse((dynamic) foo);
}
public void DoSomethingElse(FooBar val);
public void DoSomethingElse(FooBuzz val);
 
yay crazy overload resolution problems!
 
^
This is a bit too much black-magic for my taste.
 
We use it in RD in several places.
Including most significantly, the resolver.
 
I know. Doesn't change the fact that it can make it very hard to debug and diagnose problems.
 
8:49 PM
Maybe we should rewrite the resolver at some point to use pattern matching instead.
We know all viable alternatives.
That would make following what the resolver does considerable easier.
 
ooh, that is true. We didn't have the pattern matching back then.
 
Oh, and no more mysterious ambiguous function call exceptions when something is null.
Nope, the resolver is far older.
We basically use the DLR for implicit pattern matching.
 
and that has potential to hide bugs.
 
It might actually also be faster, but I am not too sure.
 
i would be surprised if there's a performance difference. At the end of day, we still have to query the object's interface anyway.
 
8:53 PM
That is why I am not too sure. However, we would avoid the context switch to the DLR.
Still, I think enhanced debugging would already be worth it.
 
Agreed!
 
Maybe I will do the conversion once I am done with the gazillion other things I want to implement.
 
if it is written, it would be also nice to have a wiki page on the high-level workings as we have for parser.
 
If you need a view named vwDeletedRecordFinder, it's time to rethink your schema.
 
OK, generating separate AttributeNodes does not break anything.
 
8:58 PM
FML, no wonder this data set is a mess.
 
9:25 PM
+1 "You should not eat nuclear bomb parts". Probably one of the best quotes from Wordbuilding. — Pere 6 hours ago
 
9:37 PM
@Gman not that I care much for the +15, but why put the checkmark on an answer that admits being incorrect? — Mathieu Guindon 45 secs ago
fml why do I even bother
 
Gotta have participation brownies.
 
OP's code works now, and they don't know what made it work. $100 it's one of the causes in my answer.
 
This pain in my low back and hip is driving me insane. I need to visit a chiropractor or something.
I don't know if it's because I'm working on correcting bad posture, because it's my driving hip, or what.
It's been on and off for over a year.
 
been seeing one since Halloween, lower-back pain was numbing my thighs. much better now
 
That's nasty.
 
9:58 PM
lol, OP changed the checkmark
 
Did I mention I'm using VS 2019 as my daily driver?
 
yes, and no RD isn't switching to VS 2019 :)
 
well, there's the .net core 3.0
read: official support for WinForms and WPF
 
I'm not proposing it yet.
 
ok, but haven't we had enough "fun" with experimental stuff in 2018?
 
10:01 PM
but personally, I'd wait until 2019 service pack 1 (or its equivalent)
 
Just saying, it's really nice.
 
here's the $64K question - is it less resource intensive than 2017?
because there is definite a slowdown between VS 2015 and 2017.
 
Seems similar to me.
 
:(
 
And I'm guessing the slowdown is just you having more software installed.
Opening it is faster, but normal operations are as fast as they have been.
 
10:03 PM
@this I'd wait for the VS 2021 preview build. then we'll know VS 2019 is somewhat stable.
 
Wasn't VS 2017 the switch to Roslyn?
 
2015 IIRC
 
By that time, 2019 is practically EOL.
 
That's a mighty long wait for .NET core 3.0.
 
@M.Doerner 2015, yeah.
 
10:03 PM
(will they backport it to 2017?)
 
@Hosch250 and you can bet there will still be folks running VS 6.0 on WinXP
 
@MathieuGuindon Losers.
 
@this likely, imo
(not that mo means anything)
 
Well, support for VB6 was removed afterwards, right?
 
it'd definitely make my day if it came true
 
10:04 PM
FWIW, you can use 2019 targeting C# 6, or 7, or whatever we are on.
 
@M.Doerner Vista was the last to officially support it I think. or maybe XP.
 
I meant VS 6.0.
 
wait, what do we mean by supporting? Running VS 6.0?
 
Either way, VB6 is deader than a doornail. Amirite?
:P
 
I understand that VB6 runtime is still supported even today, IINM.
 
10:05 PM
@Hosch250 don't tell our users!
 
LOL.
TBH, I won't touch any Windows that reaches EOL.
 
There are still business critical applications nobody has ported to another language.
 
it'll be interesting to see how statistics (doesn't) change when Windows 7 EOLs.
 
Time for someone to cough up the money.
 
i'm sure that's a cheap proposition.
 
10:07 PM
@this Lots of panic, and lots of $$$$$$$ for MS.
@this Cheaper than waiting!
 
At work, we are currently in the process of changing from Win7 to Win10, specifically because of the Win7 EOL.
 
@M.Doerner Good for you.
 
Depends
 
@Hosch250 I am thinking there'll be a % of holdout just to not have to deal with the hamster wheel effect.
 
Meh. It just works for me.
 
10:08 PM
or heck they might say "F-it" and go to Linux just so they don't have with deal with that.
 
LOL.
 
The more annoying change is the one from Lotus Notes to Outlook, though.
 
we're still on Win7 Pro here
 
We're on "whatever you want to install from that box over there".
 
What's in that box?
 
10:09 PM
it's one thing to break some pretty icons on a user's windows; it's entirely another thing to break a crucial ActiveX dll on all computers in a company's domain and hemorrhage money due to lost productivity.
 
@Hosch250 Everything. It might even have some floppies.
 
Wow.
 
@Comintern tapes?
 
Punch cards?
 
Although TBH, I think our network would block anything prior to vista.
@this There used to be tapes, but I think they got lost in the fire.
 
10:11 PM
Depending on IT, it might block even Vista now that that's EOL too.
 
Well it know it supports Vista because QA still has some Vista VMs on the domain.
 
Stone tablets?
 
That would explain the cuneiform chisels in the IT closet.
 
why Vista, though?
I can see why you'd use XP or Win7 but Vista?
 
10:14 PM
is it some kind of company's punishment for working in QA?
 
because ♥ obnoxious UAC prompts and lovely over-the-top glass theme
 
@this Working in QA is its own punishment.
 
It's mainly a policy that was built on laziness, both in encouraging people to install things by themselves, and in not cleaning out the box.
 
10:29 PM
The Oklahoma supreme court has clearly never seen Chinese Drunken Boxing, or "deft clumsiness" would not have been their word choice =) — Cort Ammon 21 hours ago
haha
 
@this MS committed to supporting the runtime for the lifetime of Win10 - so at least through 2025
IDE support was dropped a long time ago, but still works
 
yay... apparently windows decided to kill random userspace processes on my machine ...
effing great
 
@mansellan right. and in light of how they apparently continue to support VB6 applications, it probably won't actually die until MS actually drop the runtime support.
 
@MathieuGuindon heh, I like the glass theme. Even got it working on Win10, but MS keep changing the freaking symbols and borking it again
 
10:43 PM
@Vogel612 #UpdatesAreComing
 
nah. if it were that I'd not be quite as surprised...
it's still unacceptable behaviour for an OS, but I'd be less surprised
 
@this unless they open source it (unlikely but not unthinkable these days), then it'll live forever
 
@this for that they need to first figure out what dialect of Javascript to rewrite Windows into :)
ttqw
 
what does make me wonder - VB6 (and VBA) is consistently ranked high on the most dreaded language. So why all the love?
 
Is there a good way to get the parse tree for a ModuleDeclaration?
I would prefer one that does not use the parser state.
 

« first day (1649 days earlier)      last day (1531 days later) »