« first day (2092 days earlier)      last day (40 days later) » 
00:00 - 20:0020:00 - 00:00

12:00 AM
[Minesweeper] New Users: 13, Games Played: 134, Bombs Used: 55, Moves Performed: 16570
Hi - I'm trying to understand how to use the Walker class to find all the IdentifierReferences within a simple Property Get (for example). My attempts only find the Property assignment reference - but not the backing field (the RHS). I'm calling Walker.GenerateTree(<PropertyDeclaration.Context>, PropertyDeclaration). Should I expect to find both references?
[Zomis/zomis.github.io-source] 6 commits. 15329 additions. 778 deletions
[rubberduck-vba/Rubberduck] 3 issue comments
[Zomis/zomis.github.io] 2 commits. 2448 additions. 0 deletions
12:17 AM
@BZngr you're tackling a solved problem... the context of the property procedure includes only that procedure, the backing field is in the context of the parent module, and refs to that property might be anywhere in the project - but really, you'd be re-inventing the wheel here. PropertyDeclaration.References has all the refs figured out already.
Hmmm..I was thinking using the Walker class was avoiding wheel-reinventing. I'm interested in generating a tree to identify all declaration references within a calltree. It's for the MoveMember refactoring.
A calltree starting with the Member that I'm interested in moving.
If you want all IndentifierReferences inside a member to anything, you can use DeclarationFinder.IdentifierReferences(QualifiedMemberName member).
Ah...wasn't aware of that function.
It is a dictionary lookup.
OK - thanks. I'll wander down that path and see where it leads.
12:59 AM
@M.Doerner Looks as though I'm going to be the first user of DeclarationFinder.IdentifierReferences. :)
4 hours later…
5:08 AM
> Without any information about the error you're reporting, we have nothing to go on.

Make sure your code compiles (Alt+D, Enter); Rubberduck generally cannot parse VBA code that does not compile. If the project *does* compile without any errors, and Rubberduck still cannot parse it, then we need to be able to reproduce the problem if we ever hope to be able to fix it.

If you reproduce the parse error with logging enabled, then the logs will contain the details about the exception that wa
5:20 AM
Earning the vba badge is one I'm proud of.
Oh wow... There's far fewer that have that badge than I'd expect.
:derp: ~.~ now I realize that may come the wrong way.
6:10 AM
@IvenBach congrats!
I'm realizing just how much I've learned from the pond and in my attempts to contribute.
Past-Iven's notes from 2017-06-12 and all his effort recorded trying to learn.
@pond Thanks again for all the help these past 3 years.
6:40 AM
> @mansellan

> At the loss of Vista and Windows 8 (original). We'd retain support for Win7, 8.1 and 10.

Would it be worthwhile to multitarget both .NET Core and .NET Framework? The SDK-style project format [allows this very simply](https://docs.microsoft.com/en-us/dotnet/standard/frameworks).
1 hour later…
7:45 AM
Brain tickle tells me ask about an inspection for Foo.Range(“Bar”).Cells(RowIndex:=1+i) that should have a quick fix Foo.Range(“Bar”).Offset(RowIndex:=i) which is semantically more accurate. I now realize Past-Iven did this far more than he should have.
Night pond.
2 hours later…
9:27 AM
Would it be sensible to add a NumberOfRequiredArguments member to the IAnnotation interface?
Moreover, should we make empty strings illegal annotation arguments?
9:39 AM
@IvenBach These two statements are very different.
Try it with Bar = B2:D5.
In particular, note that Cells(RowIndex:=2) does not do what you might think it does.
You might want to have a look at the documentation for Cells and follow the link to Item.
My clarifications are in the live docs now.
10:10 AM
posted on February 27, 2020 by bgclothier

Core contributor to the Rubberduck project, co-author of Microsoft Access in a Sharepoint World (2011), Professional Access 2013 Development (2013), and Effective SQL: 61 Specific Ways to Write Better SQL (2016), 10-times Microsoft Access MVP award recipient (2009-2019), Ben Clothier wrote a paper about class modules and OOP that makes a great on-topic addition to… Continue reading VBA Cl

2 hours later…
12:36 PM
@BloggingDuck and 10am was utc lol
12:55 PM
@MathieuGuindon Was gonna ask in what TZ... :)
1:14 PM
  If Len(This.FirstName) = 0 Then
    This.FirstName = FirstName
    This.LastName = LastName
    This.BirthDate = BirthDate
  End If
Shouldn't that be If Len(This.FirstName) > 0 Then?
I thought that is "setting the data to the This instance" - so should be = 0.
derp - yeah, never mind. It only allows assigning if the backing field is empty.
I was thinking about validating that the passed data was at least somewhat reasonable (i.e. not blank)
it's a crime against humanity that people have to wake up early
1:58 PM
@this - excellent article! (Once I woke up...) A good followup article would be to expand on the last paragraph before the Conclusion. You've given 3 different methods for creating factories and indicated #ItDepends. It would be great to go more in depth on the other 2 methods, and to know what it depends on and when (in general) one is better than another. i.e. what factors to weigh when making the decision.
2:11 PM
@FreeMan That's for another article. :) It was getting long already.
> A good followup article...
@BigBen @FreeMan Yep. It's meant to be called only once to make it "immutable".
@FreeMan Still too early for me. What I wasn't clear in my reply was that it was in the draft at one point, but I had to cut it out and save it for another article.
@BloggingDuck guest writer Ben, nice... adding that to me "To Read" folder
@this I hope you remembered to check in your draft before you excised the code text so that you can retrieve it for the next one.
2:41 PM
@this I believe will be beneficial in see what we would accomplish with a clean object-oriented codebase.
ah, missing the "it". will fix. Thanks!
I also think the last sentence of the paragraph needs either an a or an s.
Hm, second last actually.
The one before the ad
I don't see any ads - you mean this:
> We will analyze those issues in a future post.
This is not intended to be an exhaustive treatise but rather provide enough of fundamentals for you to see the advantages of OOP principles in VBA codebase.
Revised the first sentence to: I believe the indirect route will be beneficial in see what we would accomplish with a clean object-oriented codebase.
2:49 PM
I am a bit surprised about the in see.
in seeing?
I'm blind this morning.
I also used "a VBA codebase"
Nobody ever sees stuff like that in his or her own writing.
despite having had read it more than few times already.
We’ve saw
yes, we have a saw. :) Fixed into `We've seen"
2:59 PM
more than one instance of same type
You might want to align the We saw starting the next sentence.
doffs his Grammar Nazi cap
shortcomings of UDT might miss an s.
@FreeMan Keep 'em coming!
changing person’s last name
Max is doing a fine job. :thumbsup:
3:04 PM
@M.Doerner changed to "shortcoming of the UDT"
I proofread entire thesises in back uni.
Added the missing "the"
I think it's spelt theses?
Never could be sure myself, what with English's inconsistent speeling rules.
3:16 PM
It's always easier to find someone else's mistakes than it is to find your own.
Anyway, thanks @M.Doerner for the corrections. Much appreciated!
3:30 PM
@BloggingDuck @this Great stuff!
so i ended up figuring out how to test my previous question about passthrough query caching
i created 2 querys qryTest and qryTest2
the first was a regular access query and the second was a passthrough query to our server
then i ran the following code

Public Sub work()
'start size 404KB
'end size 40,732KB
Dim db As DAO.Database
Dim qry As QueryDef
Dim rs As DAO.Recordset
Dim i As Long
Set db = CurrentDb
Set qry = db.QueryDefs("qryTest")
For i = 0 To 10000
qry.SQL = "Select " & i & " as out"
Set rs = qry.OpenRecordset
End Sub

Public Sub work2()
'start size 404KB
'end size 560KB
Dim db As DAO.Database
Dim qry As QueryDef
Dim rs As DAO.Recordset
Dim i As Long
Set db = CurrentDb
Set qry = db.QueryDefs("qryTest2")
and checked the file sizes
passthrough queries are not cached
There's no execution plan to make if it's a passthrough since it's... passing through.
3:47 PM
_we have only single module-level variable _
Q: VBA: Calling one sub repeatedly and scope of variables

AlexMy code as a whole works for me without issues, but what I want to improve is a small part right out of the middle of it. I hope it's ok to post a simplified snippet here that just shows the structure (it's not something you can copy paste and it works), but I'll try to explain what it is about. ...

@this welll i asked about it yesterday, and no one responded
so i tested
access does wacky stuff
so i had to be sure
Sorry. I was away. FWIW; you can also avoid the bloating by not using a saved query.
_with the addition of modified version of ChangeLastName _
> I have a workbook that functions as a database (wbDB)
le sigh...
3:55 PM
@FreeMan #cringe
tempted to comment: "Never say database and Excel in the same sentence."
Maybe we should get Clippy back... It looks like you're making a database....
my chat froze until i posted, looks like freeman saw the same thing i did... gg
3:58 PM
_most simplest _
@this real-time Ducky
@M.Doerner you need to take off that hat!
@Cyril Nah, no need. He's help making me look good.
"Qvack!! It looks like you're trying to use Excel as a database. Would you like to move that to Access or would you prefer 50KV through your keyboard?"
4:00 PM
@this Nah, no need. He's help_ing_ making me look good.
See? Making my point!
@FreeMan watch out for this guy... he'll "Qvack" the crap out of you! Yeah, that's hard to say, imagine what it will feel like!!!
@this It's deeply ingrained in me. My mother was an English major and both my parents were sticklers for proper grammar. Once they knew I knew the rules, we then proceeded to abuse the heck out of them for fun, but I had to do it right, first.
all things considered, where people use Excel as a respository for their list... it's an easy program to just drop and pass around. would it have been better to say "repository" than "database"?
@FreeMan i hear you there (as i continue to not capitalize as i type)... one thing that always sticks out for me is people saying "um" or "uh". our band director threwstands at us if we would say either of those, followed by "shut up and sit down stupid... can anyone with a brain answer?"
he later was reprimanded after busting a girl's lip with a music-stand so he began using board-erasers
@FreeMan It seems that for me, grammar is an afterthought.
4:06 PM
@Cyril through->threw makes so much more sense now!
elle oh elle
i ddin't edit it appropriately in time...
Yeah, had a home-room teacher in HS who would chuck tennis balls at people if they weren't paying attention or were sleeping. His aim wasn't great, so you got to sign it if he hit you.
That was in the days when you could discipline students without being jailed...
^ that's pretty funny
le sigh... work to do. TTFN
later yo; similar boat for mineself
old-english ~_*
4:12 PM
end reached ~ drops hat
@M.Doerner Thanks again!
kind of dropped this in yesterday and didn't see a response, but has anyone heard from Hosch recently?
I think one thing I missed in the article is why the encapsulation behind the interface is the gateway to OOP.
Basically, that if your code works with the interface, you can replace your Person class with any other implementation of IPerson without changing anything else.
Obviously, you need to change the wiring up in the factory.
Yes, I didn't really address the polymorphism and that was kind of deliberate; I wanted to first make a case for how you can better organize your code and hide methods that shouldn't be accessible. That will have to be addressed in another article.
I don't know about the rest of you but in my experience at least, the biggest resistance is usually in the form "I don't need interfaces because I will only ever need one implementation so why the extra complexity?"
4:25 PM
does that implementation directly tie to a view/report? (not completely up to speed, but trying to understand)
Not really. View or report would be more of a part of UI design and would be one of many implementations for viewing the data.
But you would also have implementations that has nothing to do with viewing data (an example would be a object that makes some web API calls and return data)
copy; i was thinking that was the compilation stage of implementation... more to learn
Implementation basically just means the actual code that does something in the most general sense possible.
Interfaces OTOH, don't actually do something on their own; they merely promise that such action is possible but forward the execution of action to the underlying implementation.
@M.Doerner Brain tickles late at night may not be exactly what I think they are... Little bit of a mine field with Range(...).Item(...).
It still feels to me that Foo.Range("Bar").Cells(1+i,1) and Foo.Range("Bar").Offset(i) for a single cell named range should come up as an inspection. 6-Months-In-The-Future-Iven will probably correct me on this however.
@BloggingDuck 10 time MVP who's still willing to help derps ducks like myself. What an amazing place this pond actually is.
4:47 PM
That inspection would have to verify that Bar is a single cell address.
That's the part I've tunnel visioned onto. Can RD when its parsing code determine that it is indeed a single cell range object?
@IvenBach i was reading through that and said to myself "the people i talk to are very knowledgeable" making me feel bad about many of my misunderstandings of terminology/jargon ='/
Be grateful the all-knowing and wise sages that frequent this pond allow us to wade in their waters.
hold up a second... Foo.Range("Bar").Cells(1+i,1) and Foo.Range("Bar").Offset(i) wouldn't your inspection first need to recognize for the first scenario that it's a list-item, as opposed to a single cell? you're referencing the cell reference respective to a named range
the latter is also going to be based on the upper left cell, so if foo.range("bar") is one or many cells, the offset will reflect upper left + rows/columns
I'm using that a lot for single cell references and offsetting by a row variable.
4:53 PM
i believe your inspection would need a .rows.count/.columns.count to even tell if it's a single cell, where the listed syntax would be appropriate for either scenario (array or single cell)
@IvenBach "wise sages" make me think of ben and mat based on accolades (that we know of), but you have also been very helpful in understanding... don't forget that!
Using .Cells() got it to 1) work. Now for 2) making it right .Offset() feels more appropriate because I do indeed want the offset cell from the original named range.
Took me far to long to connect the dots and think of .Offset() and thought it might be beneficial to bring this to light with an inspection.

with foo.range("bar")
    .offset( .rows.count-1+rowRef, .columns.count-1+colRef)
end with
so you could reflect from the last row/column in the range
the -1 is always fun because you start at the 1st, as opposed to the 0th row
We cannot determine whether it is single cell range if it is a named range.
^ That's my answer then.
@M.Doerner doesn't the named range indicate what the address is?
4:59 PM
To determine whether the argument is an explicit address of a single cell is easy.
with foo.range("bar")
    if .row = .rows.count-1 AND .column = .columns.count-1 Then 'single cell
end with
Yes, but RD cannot see it as that is in the OM.
you could also use if instr(.address,":") for the same result.
not saying that RD does that (which M.Doerner stated it does not); was giving ways to check
5:02 PM
If you have a named range Bar with multiple cells, there is no colon in the address "Bar".
Oh, you mean the member call.
@M.Doerner I think that if it's looking at named range, you're already looking at the OM and consequently it's going to be Excel specific inspection and thus can access the OM.
That actually also does not work for multi-area ranges.
Debug.Print Range("bar").Address does have the ":" was my thinking
I really do not want to query the host for anything.
5:05 PM
Q: Worksheet change and worksheet selection change slowing down my file

RodrigoI have a file that i use as database. It has the records and in the row 1 several cells used as buttons, (open folder, copy text, send mail, ecc.) At any change on any column of any record the file register the time in one column in order to have the last change of that record. It also change the...

@M.Doerner Why not? I think one of Excel specific inspections already does that.
I have not seen that.
And I just went through all inspections.
Hmm. I guess I was mistaken; I thought there was one.
Anyway, the named range might not even be in the same file and the host might not be Excel.
That would happen a lot when you generate Excel reports out of Access using templates with named ranges.
I don't think that depends on the host being Excel, though we can make a distinction between Excel-specific inspections vs. Excel-host-specific inspections.
5:13 PM
How do you access a named range without opening the workbook in Excel?
wait, I don't follow. How can you do anything without a workbook?
You have to open it somehow, no?
pardon as i don't know much about Access... does isarray() of a named range stored in memory not work?
i'm thinking on the line of a an Excel variant array, that would check out
The code we inspect would open the workbook containing the named range as part of processing, but at compile time it is not open.
Ahhh, now I follow. That's a problem.
We definitely don't want to do that at compile/parse time.
I guess even if Excel were the host, we have no guarantee that the code with named range has that workbook open, either.
@Cyril evaluate ?union(sheet1.Range("A1"), sheet1.Range("D5")).Address in the immediate window and review the result.
5:24 PM
was actually wondering about a non-contiguous range
so you'd have to check for a comma or colon
Range.Areas.Count is better than checking for a comma for a non-contiguous Range.
if .areas.count>1 or instr(.address,":")>0 then
IIRC the , is the union operator.
5:27 PM
instr(.address,":")>0 is worse than Range.Cells.Count. Avoid string comparisons whenever possible.
isn't .cells.count an issue with merged cells, thoguh?
will check... haven't had that conversation in a while
> -.- we don't use any merged cells at this pond.
we avoid them where possible, but in many cases (maybe just for me?) i don't get to set-up the data, i just get to use it
either way, just checked and neither scenario had an issue, hwere bar was a merged range:
if you're in the pond, you can't quite be dry!
5:30 PM
If you're in a bar, it shouldn't be dry either.
LOL. :+1:
unuless you refer to being coated in "dry" liquor (dry =/= sweet, or for gin, has no flavors)
eh semantics shemantics
semantics are my favorite antics!
OMG someone actually went and made an actual working IDE radbasic.dev
5:38 PM
How did you find this?
@MathieuGuindon guess they found at least one person to sign up!
@BigBen got a follow on twitter
they got a follow-back =)
wait a sec... thats' the same guy that made jalatext.com correct?
Dunno, still looking
What's that?
Hm, nice. Never heard of that
5:51 PM
currently on a lunch and learn about Python. Presenter just said something to tune of "using functions is what makes Python so powerful"
@this the roadblock with the mocking PR is spawning user classes, correct?
@BigBen lol
@this TBH, I've thought that more than once
@QuackExchange le sigh (x2)
> I have a file that i use as database.
^ saw that too
Python... named after a constrictor snake, which wraps its prey... does just that! all of the functions and shit are wrapped up in tom-foolery so you type less to make it look like you're doing more. Winning? Winning.
@FreeMan honest question... would it be more appropriate to say "repository"?
The presenter also said that "opensource" just means the software is free lol
5:55 PM
yeah nothing to do with contributing smh
like seriously
@BigBen that's as bad as the other day we had a person training folks to use MS Teams saying "it's a child of SharePoint"
here is a great, basic intro to classes and OOP in VBA. — FreeMan 8 secs ago
oooh - Presenter is now sharing screen, with a hard-coded password it looks like
@Cyril much like some people think that "democratic socialism" is somehow different than "socialism", sure.
5:59 PM
the connotation is significant, though... one "we hold shit here" the other "we store more organized shit here". Just trying to find a friendly way to bring to the masses, while not completely pissing off the technical community
OSS = free hit an exposed nerve Mug?
There's nothing free, just without cost.
85%. Better charge your battery so it lasts the rest of the day.
@MathieuGuindon not exactly. More like the type import is not complete in certain cases.
Example: Public Sub Foo(Bar As MyVBAClass) fails to get converted, so we get an incomplete type missing some methods.
6:10 PM
@IvenBach without price* cost refers to the manufacture/production, which could be extensive
I was thinking I'd have to write my own type converter from scratch which would be.... a tiny undertaking.
But thanks to @theVBIDE - it's right for me, I found something that might help me work around that limitation without writing everything from scratch.
The issue is finding the time.... :\ Ditto with the WPF PR. It's now functional but I have to get all coloring all wired up correctly. Not very easy when the designer can't work.
and viewing it live is tedious....
I hope I can get back to the mocking PR next month. I really want to mock everything!!!
6:15 PM
@MathieuGuindon not that i'm being (completely) lazy, but keep us informed about that IDE... if you think it's solid, that's pretty much a "go" in my book
if anyone has mad graphics chop, I'm more than happy to hand the PR off; AFAIK, the code works. It's just a matter of finding the right color and possibly correcting some of color/brush reference (I thought I had gotten them all but based on the last screenshot I shared, I seemed to have missed the background somehow).
@MathieuGuindon Mind helping me understand VB6-landia? I don't know the background and the need for a new dev environment.
It's a VB6 IDE, though. Would be nice to see if they can make it hijack the host's hooks.
well, if you click Visual Basic, it opens VBIDE.
IDK if you have properties sheet in Excel itself but in Access, when you use the ... to build an event on a control/form/report, it goes to VBIDE (and create a stub if needed)
6:17 PM
so you're asking if it hijacks the call to load VBIDE and load their IDE instead?
there might be other hooks but that's what I mean by hijacking with the new shiny IDE.
Yes. Otherwise, it'd be painful to have to open 2 IDEs.
following now... terminology is the hardest thing to overcome ='/
(and dealing with ensuring hilarity)
@MathieuGuindon What??? Why?
I think Freeman's incident with Git & controlling VBA code is a good example. :)
Were the VBA code in files in folder, it wouldn't be as complicated but....
6:20 PM
@FreeMan in a nutshell, for the same reason Rubberduck exists. Except they took the path we deemed "too crazy"
@MathieuGuindon At least he uses Android
@MathieuGuindon Not sure that analysis holds for VB6 projects.
Unlike VBA, VB6 projects are in files & folders, so much easier.
thinking out loud, as i don't actually know how this works... Excel's interop is accessed to load VBIDE, Yes? VBIDE is called from a .dll ? if you overwrite that dll, you should be able to load any IDE you want?
@this incident? don't you mean incidents?
LOL, I guess. That multiplies my point, though...
@Cyril Not sure. AIUI, hosts has to implement certain interfaces and it's more of a 2 way communication. But we'd be futzing at C/C++ level if we want to hijack that kind of interaction.
(and it wouldn't even be COM, either; not all hosts have to use the COM API; they could use native API, which make it even more complicated)
6:24 PM
copy; i recollect something about COM pulling calling something at the C level, so it's above the Excel interface/usage
Hence the analysis "too crazy path" is correct for VBA.
COM is ABI, so it works with any language, even C.
But when it's not using COM....
@this yeah, i was typing when you wrote that and didn't read up before i pressed enter... that's a "me" problem.
Everyone always says "it's not you, it's me." For once, I'd love to hear "It's all you."
@this true, but still... Making an IDE from scratch was dismissed early on =)
@this we didn't break up... i hope?
6:35 PM
I wonder if they compile it. Probably not.
@this they do
or so it says
hence "I have questions"!
need to be sure they don't mean "we compile code using VB6 compiler, so you gonna install VB6!"
more likely: they wrote their own compiler that's VB6 compatible
(basing this on the fact they say modern compiler)
the question is whether it's binary compatible and whether it can deal with VBA, aka hosted projects
if they say no migration for VBP project, I think that implies binary compatible.
for the first it might well be, for the second it's probably a lot harder
6:42 PM
"coming soon to kickstarter"... hopefully that's just to re-coup some of the time they've sank into it, as opposed to prefacing that the project will be behind a paywall (if they did all of that work, i wouldn't doubt it). that immediately puts a wall up for, rough estimate, 90-95% of the persons using VBIDE, inclusive of corporate and at-home users
Kickstarter typically has a tier that will give you something --- I think it's typical for a software kickstarter to get a license included at a certain tier
it would be a very strange project if you were asked to pay forward money only to be then told that you have to cough up more dough to actually get the product.
And I think that kind of scheme will ultimately fail. If they want the kickstarter project to succeed, they'll certainly have to give the backers access to the product once completed.
tier 1, get a licence... tier 2?... tier 3, help us design it (you for free, we'll keep that money). the last kickstarter i saw utilized that, for a game. they ended up having like 15 tiers, where people could get their name in the game,e tc.
kickstarter tiers ususally include some kind of SWAG for higher tiers
all of which got access to the game when it was completed
6:46 PM
did it succeed?
Sounds kind of backwards if I'm paying to contribute.
estimated $1.9M USD (before Steam and other early access sales), they just launched after 4 years in "Early Access"
the estimated value is based on the minimum quantity to be within the tiers and number of people within each tier
Welp, fools and money don't last together very long.
I can understand laying down money to get my name in the credits. Laying down money so I can write code and add to the game? WTF?
i think some of those people ended up getting hired once they had enough cash/bankroll, but yeah, early on that had people just helping
went from a 6-person studio to 40+
speculation; i joined as the kickstarter was ending and moved to another access platform
@Cyril but still, paying to get a job? I'll pass
6:50 PM
I dislike jobs enough that I'm not really thrilled to have one where they pay me.
I can see it working if it ended up as a part owner, though.
Don't get me wrong, I like eating and heat and stuff, but I'd prefer to sign the front of the checks instead of the back
back to the IDE on kickstarter, that would leave me a little concerned. it either works or doesn't work. am i just paying a cheaper fee for buying early?
but just as a for-hire employee? Nope.
there's no KS campaign yet?
says "soon"?
so, we have our business unit president on site for a day of meetings... their lunch was a bbq feast, whereupon leftovers have made it to my area. i've got chicken, ribs, sausage, briscuit, and some cherry cobbler...
6:59 PM
If it was my KS and it failed, I'd probably just open-source what I have and let it rot on GitHub
@Cyril jealous
@MathieuGuindon make sure it's not MIT, though; otherwise if someone make a big bucks off it somehow that'd be a sad irony.
This is what GPL is for
Todo: implement scorched Earth code policy
'//TODO add note to remind self to implement SCP
7:08 PM
@MathieuGuindon MS-PL actually also does that
#TIL didn't know there were actually other copyleft licenses, much less from Microsoft.
But wait, why is MS-PL considered incompatible with GPL again?
the MS- prefix =)
that's... way too correct
@MathieuGuindon but Richard has MS in his name!
Richard who?
7:20 PM
Careful. I understand he carries katanas.
For a GNU dawn lol
none of those names are familiar, but yes, Gnu dawn got a chuckle
Linux gurus
RMS is the guy who gave us GPL, basically. Probably involved with GNU tools but not sure how much. I always think of him as primarily a political activist rather than a hacker.
7:23 PM
To be honest, I don't know who is Eric Raymond.
Linus is where we get the 4/5 of the Linux from.
RMS also is a bit of a piece of shit
Eric Raymond apparently is one of the OSI founders
7:45 PM
Coming back to my question from this morning: would it be sensible to put a NumberOfRequiredArguments member on IAnnotation?
00:00 - 20:0020:00 - 00:00

« first day (2092 days earlier)      last day (40 days later) »