« first day (1417 days earlier)      last day (1763 days later) » 
00:00 - 21:0021:00 - 00:00

9:24 PM
@Vogel612 NIH territory? Wot NIH mean and why the concern from a design perspective?
 
5 hours ago, by mansellan
Not invented here (NIH) is a stance adopted by social, corporate, or institutional cultures that avoid using or buying already existing products, research, standards, or knowledge because of their external origins and costs, such as royalties. The reasons for not wanting to use the work of others are varied, but some can include a desire to support a local economy instead of paying royalties to a foreign license-holder, fear of patent infringement, lack of understanding of the foreign work, an unwillingness to acknowledge or value the work of others, jealousy, or forming part of a wider turf war...
read on a bit, Iven also asked :)
 
NIMCB = Not In My Code Base
The sponge is sopping wet. Must take a break in the hopes of wringing it out.
 
Ah right I see thanks
 
Is there arey unary arithmetic operator in VBA except -?
 
@M.Doerner not that I know of, no
 
9:36 PM
I am just wondering because the spec states that the result of applying a unary arthmetic operator to a Byte is a Byte to go on to say that unary minus is an exception where applying it to a Byte yields an Integer.
 
^
Btw, who had the glorious idea that you can add dates?
 
someone that eventually left MS and went on to make JavaScript
 
hmm ?+1 seems to be legal despite not documented.
whether that's an unary operator....
 
Hm
 
9:41 PM
@this probably gets parsed as the number itself
 
then....
?+-1
-1
 
well, +(-1) prints -1
 
Well, you can multiply, divide and take the power of dates as well.
 
well dates are double.
CDate(0) is valid even though it really doesn't seem sensible.
 
yeah dates didn't become an actual date thing until .NET (as far as VB is concerned)
 
9:42 PM
With the added feature of a lot of overflow errors.
 
Yeah, they totally screwed the pooch with the dates, IMO.
and then there are people who think nothing of Date() + 1
it's just.... unholy.
 
I don't see the problem with that one.
 
The only operation that really makes sense between dates is subtracting them.
 
not even
 
@IvenBach I'm going to smack you.
 
9:44 PM
DateAdd everything
 
I disagree, @M.Doerner. What @MathieuGuindon said but you also have the DateDiff() as well.
 
and a goshdarn TimeSpan type
 
The result is the difference in days.
 
there is no reason to do arithmetric on dates. It simply don't make sense.
 
@MathieuGuindon ignoranceLevel--. I honestly did not know about that.
 
9:45 PM
Well, I don't really use them anyway.
 
For me where dates usually figures a lot in a database, it really matters to me that they use it sensibly, using date functions and culture invariant formats like ISO formats.
anything else is a recipe for bugs
 
@this I've been flushing my mind with newly acquired knowledge. Bear with me as I stuff what I knew back in.
Can only hold so much at one time.
 
I absolutely hate non-ISO dates in a database.
 
Seriously, Date() + 1 is evil because it purposefully violates the abstraction of the date. We talked a lot about leaky abstraction but here, we're basically stabbing and shredding the abstraction and then say it's OK? It's OK until it doesn't work.
 
9:48 PM
There is just no way to figure out the correct formatting.
 
@M.Doerner yeah, that. Without ISO format, one is doomed.
 
Well, we used to do arithmetics with pointers.
 
That is true but the rules were reasonably clear - only additions, subtraction or mulitplication.
 
I appreciate real date types and the safety of a type system that hides away the pointers.
 
Dividing a pointer wouldn't have made sense.
But then we came up with more abstraction layers that pointers became not so simple, so yeah we really benefit from a proper data type system that abstract the pointer away.
 
9:52 PM
ISO date format is en.wikipedia.org/wiki/ISO_8601. Meaning an explicit format of YYYY-MM-DD?
 
As Uncle Bob stated, that is the point of OOP: no more unstructured memory access.
Well, he wrote about pointers to functions, but that is close enough.
Yes, that.
I think it was the only one nobody used already.
 
@IvenBach note there are few variants but in generally same direction
yyyy-mm-ddThh:nn:ssZtt, yyyymmddhhnnss, yyyy-mm-dd hh:nn:ss being few variants
anything else is an expressway to the heartbreak hotel.
 
3/3/3 is just a tad ambiguous...
 
That is actually not too ambiguous.
2/3/4 is much more ambiguous.
Note that you are completely save as long as you are only interested in the date portion of the ISO datetime.
 
note that by ISO definition, one or two digits years are not legal.
so yymmdd would have been considered unacceptable
to use your example of 3/3/3, it must be 00030303 or 1003-03-03 or 2003-03-03 and so forth on.
you'd be surprised at how many people fatfinger their data entry and end up ending dates (in US format) like 04/23/218
which is a legal date in VBA and few other languages, btw.
@M.Doerner do you think it is possible/sensible to write unit tests that involves threading?
 
10:08 PM
@this didn't we abstract the parser-related threading away in the MockParser already?
you might want to take a look at those to check unit-tests about threading
 
In general, it is a sensible thing to do, but it is rather tricky.
 
I actually wrote some tests for MT parsing when I multi-threaded the parser...
didn't go so well :/
either way: me -> bed
Toodles!
 
We actually call the parser in the tests using a method that starts it on the same thread instead of a different task.
Moreover, the mock parser uses the synchonous versions of all parsing stages.
night
 
Night to those heading to bed.
 
ok, didn't realize and in hindsight should have thought to look there
thanks for the pointer. I will study the UT and see if I can make use of that for the new PR.
Good night!
 
10:21 PM
OK, adding support for Date literals will have to wait for another PR.
 
@this Thanks again for hammering on the idea of abstractions on top of one another. I had to build the border frame for my knowledge puzzle. Now I'm assembling new borders and filling out my original picture.
 
Why did they have to allow so many date formats in date literals? This makes the derivation really cumbersome.
You can even not specify the year and get an implementation dependent one.
 
10:48 PM
Why VBA? Addition in VBA is not associative.
2 + "2" + "2" = 6
 
It happily coerces them to numeric 2's for you.
 
2 + ("2" + "2") = 24
"2" + "2" + 2 = 24
 
@M.Doerner :sadface:
 
You have to evaluate it left to right.
 
@M.Doerner I'm not sure how that one works out.
 
10:51 PM
+ between string is concatenation.
Not that we do not already have &.
 
:barf:
I see it now.
 
That brings evaluating expressions on a new level.
This special case is just evil.
BTW, that behiour depends on the value type, not the declared one.
Public Sub Test()
    Dim foo
    Dim bar
    foo = "2"
    bar = "3"
    Debug.Print foo + bar + 2
End Sub
prints 25
 
@M.Doerner Oh joy
 
So, never add Variant variables that might be a string.
Public Sub Test()
Dim foo As Variant
Dim bar As Variant
foo = "2"
bar = "3"
Debug.Print 1 * foo + bar + 2
End Sub
prints 7
Anyway, TTGTB.
 
11:23 PM
> Looks OK with hand-editing.

![image](https://user-images.githubusercontent.com/25420409/39157968-485394ee-4755-11e8-9239-b220f5c54c75.png)

The format expected by PasteFace is a 4bpp indexed bmp with the right color palette, stripped of the first 14 bytes (which is the bitmap file header).

RD has around a dozen icons used on COM commandbars, I'll create low-color versions of them for this PR.
 
00:00 - 21:0021:00 - 00:00

« first day (1417 days earlier)      last day (1763 days later) »