« first day (1723 days earlier)      last day (1457 days later) » 

 
RELOAD!
[rubberduck-vba/Rubberduck] 2 commits. 2 opened issues. 2 closed issues. 24 issue comments. 22 additions. 26 deletions.
 
@Duga and we're apparently +1
 
12:22 AM
Oh no
 
@puzzlepiece87 what's up?
 
@MathieuGuindon Just saw the terrible ThunderFrame news.
I'm sorry team.
Sorry for his family and for everyone's premature losses generally.
Just finished digging through the archive, I see it was 2 months ago.
Glad you were able to reach ThunderWife and pass on the best wishes and appreciation.
Especially brutal because you've already gone through one disappearance off the face of the earth (that thankfully ended with a sudden re-appearance).
 
Hey puzzle. Been a while since you dropped by.
 
@puzzlepiece87 I don't think it was a disappearance. He just went out for the milk.
 
@IvenBach Hey sir, I apologize, speaking of disappearances I owe you a resume feedback.
@IvenBach Have you found a new job since then?
@this 10 miles uphill through the snow both ways ;)
 
12:35 AM
Nope. Same locale. Been failing with door access controls lately.
My wife my be getting new employment however. She's been looking too.
 
@IvenBach Okay, I'll do my best to get to your resume feedback as soon as I can then. Please ping me if you don't hear back from me in a week.
Best intentions on my part, I'm just swamped.
Having a good time though - just got back from a weeklong trip to NZ with my college roommates.
(Mrs. Puzzle wasn't into the hiking so she went to China to visit her family)
And now I'm scrambling because a medium-term goal got suddenly changed into "Needed in the next 3 weeks to avoid large financial penalties"
 
Woot. Got yearling badge.
 
@IvenBach Is this literally true? Are you doing IT work for door security systems currently?
 
Previous two systems for upstairs and downstairs. Now that downstairs is vacated and will eventually be occupied by company I work for owner wanted a single access point for them both.
The installer of the original system did new installation and migration but had a couple hiccups along the way.
 
Wow, literally true.
Impressive, that will be a shiny resume bullet.
 
12:42 AM
New system didn't like restoring from a backup so had to manually update cardholder info.
@puzzlepiece87 Figuring out networking IP address and subnet masking was interesting to say the least.
 
The medium term goal that suddenly became a now now goal was to adapt my program that can make plentiful corrections to our medical text files post-creation. They want me to be able to create files from the raw data now.
Our file creation vendor is totally unable to meet our quickest deadlines and it's costing us too much money.
I've warned my bosses that Excel is too unstable for us to totally drop the vendor and use my work for all file creation, but this is another step closer to eventually having a total in-house solution.
That will probably end with me learning Python over the next 18 months or so to try to have a stable solution.
 
@MarkBalhoff Welcome to the pond.
 
@IvenBach I've done some minor networking stuff in the past and I agree with you wholeheartedly lol.
I have to run. Sorry again for your loss, team.
 
your Our. You're #OneOfUs.
Don't forget it.
 
Thanks @IvenBach! Happy to be here!
 
1:07 AM
Enjoy the weekend all</iven>
 
1:32 AM
gah, bought the other one: ebay.co.uk/itm/273682429032
 
2:08 AM
@mansellan this is bad news because.... ?
:D
 
because I'm spending my paycheck before it's even made itself comfortable in my account :-( also bought an SSD to make my "works" laptop suitable for VB6...
When the ODEs turn up, I'll add some wiki pages. Not expecting anything earth-shattering, but at least it'll document the differences on the webs. Maybe save others from wasting thier paychecks :-)
 
I'm pretty sure it'll be an investment well worth
 
Heh, we'll see.
My OCD wouldn't let me have 2k but not XP...
 
2:33 AM
Regarding the others' reports about designer not updating .... I had noticed the InspectionResults.resx was set to No Code Gen....
 
2:59 AM
I have to say I don't like that I actually can't use the DeclarationType as a flag in the DeclarationFinder
I originally started went with this: State.DeclarationFinder.UserDeclarations(DeclarationType.UserDefinedTypeMember | DeclarationType.EnumerationMember)
But was getting no results. I ended up doing this instead:
    State.DeclarationFinder.UserDeclarations(DeclarationType.UserDefinedTypeMember)
   .Concat(State.DeclarationFinder.UserDeclarations(DeclarationType.EnumerationMember))
doesn't feel clean, IMO.
 
@Comintern clippy still alive though..businessinsider.com.au/…
@this give yourself time buddy. You will be able to repent bad code into good code.
 
3:35 AM
Hmm, I'm building a parse tree inspection to find all evil line continuations. I think I want to look for any tokens that can contain a line continuations, as defined in the VBALexer.cs. However, context.GetTokens/GetToken asks for the int of the tokens, which I don't think I have. Is there a better way?
 
4:07 AM
@this you'll want the parser rule I think
If the whiteSpaceContext contains a LINE_CONTINUATION then you've got a suspect
You probably don't want to analyze all whitespace though
 
4:25 AM
Hmm, I was hoping that there was a C# thing for the LINE_CONTINUATION token
and no, I don't plan on analyzing all possible whitespaces. Probably use a subsets like in the Option, End*** contexts, places where nobody in their right mind should be putting line continuation
 
 
2 hours later…
5:59 AM
Hmm, I'm finding this comment to not jive:
// Apparently END_ENUM and END_TYPE don't allow line continuations (in the VB editor)
this is legal:
Public Type foo
  bar As Variant
End _
Type

Public Sub doit()
    Dim foo As foo
    Debug.Print foo.bar
End Sub
the END_ENUM indeed does not compile w/ a line continuation
 
6:57 AM
> Unfortunately, we cannot implement the inspections for the following cases:

1) unusual characters in an enum name
2) use of hex in line numbers (at least for negative numbers)

Those 2 result in a parser error, so no inspections can be had.

3) Ambiguous naming

While doable, I'm worried that the performance will be horrid since in order to determine if the name is ambiguous, I'd have to compare n^n identifiers (more or less) which is O(MG).
 
7:26 AM
> Closes #4778 Screenshot of Thundercode at action: !image At present 3 inspections are provided: 1) Use of non-breaking space 2) Use of keywords in either an enum or a UDT 3) Weird line continuations Note that I bucked the convention of not adding line breaks to the inspection results, primarily because without it, it does not read as easily and the nod to ThunderFrame gets lost in the...
text. I hope that is OK.
 
7:45 AM
[rubberduck-vba/Rubberduck] build for commit 1545d44d on unknown branch: AppVeyor build succeeded
 
 
2 hours later…
 
2 hours later…
@this The token types are int constants on the VbaParser.
 
 
4 hours later…
3:41 PM
@M.Doerner Thanks. The API isn't the easiest to work with considering that we have ints for both types and index/position. As you probably already saw, I opted to use the context's properties to get what I needed.
 
I think Antlr is just heavily optimized for performance.
And the API basically exposes the structure the way the parser uses it.
 
4:34 PM
Question. Our build doesn't support using generic type arguments in xaml (and I'm not inclined to try and "fix" that). So... I'm inheriting from a generic to provide a shim:
public class ToDoItemGroupingToBooleanConverter : GroupingToBooleanConverter<ToDoItemGrouping> { }
That's literally the entire class. Where should I put that? It's only used by a specific view, and it seems silly to create a file for it. Put in the the VM file? Or maybe the file for the generic?
 
@Vogel612 You around? Or anyone else familiar with encryption?
I'm looking to use BCrypt in my prototype of our systems, and I'm developing a prototype for a prototype.
So here's where I am:
I have a password field in a form.
People can type in that password, and the plaintext gets sent back to the server when I submit.
There's a BCrypt system I can use on the server side to immediately hash that.
However, haven't I heard to NEVER let the plaintext get to the server?
So, how would I use BCrypt on the client to hash the result before the plaintext reaches the server?
Or am I getting this all wrong? I've never done web auth before...
 
@M.Doerner @M.Doerner In the project I am doing, dead code, or code that can never run due to preprocessor directives, will still need to be processing just the same as live code. Are you saying I'll need to do something special to get code containing directives to be able to be parsed by the main grammar, or is that just if I want to do something special with directives?
 
@ScottDennison We pre-process with a second grammar - github.com/rubberduck-vba/Rubberduck/blob/next/…
TBH, I haven't really looked at it very closely though.
 
4:53 PM
The problem with preprocessor directives is that you can write code that is basically unparable before evaluating the preprocessor directives.
 
@Hosch250 soo ... take all of the following with a huge amount of salt attached, because I'm not qualified to talk about how to do proper password stuff in web apps
as always the first thing to note is: "If you can help it, don't", but I assume that's not an option for you
Now what you may have heard is to never keep plaintext passwords in memory.
It doesn't really matter whether you're sending an encrypted (or hashed) password across the wire, because you cannot differentiate between an attacker using plaintext or a hash value
the point there is: use https (or another properly secured communication channel) to exchange authentication
BCrypt is a good thing to use for password hashing, don't forget to use a random salt for every user.
The only reason to hash client-side is to guard the plaintext password against a compromised communication channel
if someone tells you they do it for any other reason, that's most likely bollocks
Well it also helps that you could have a chance to protect the password itself against a takeover of the server, but that's ... not a usual scenario, I think?
 
As an example
#If VBA7 Then
    Private bar As LongPtr
    Private Function Foo() As LongPtr
#Else
    Private Foo As Long
    Private Function bar() As Long
#End If
        'DoSomethingHere
    End Function
@ScottDennison This example compiles but breaks the parser if the precompilation step is not performed with a fixed value for the constant VBA7.
 
@ScottDennison it's an intrinsic limitation of the grammar: it's perfectly legal to have conditional-compilation rules untertwined with other rules (like the function above), and/or to have different data types for a given variable: is Foo a function or a variable in the code above? Can't know without a precompiler pass
#FunFact: the original VB6 grammar would blow up if you had a #Const in a module
 
5:08 PM
Btw, similar constructs are in common use for code that uses Declare statements because 64-bit hosts require them to be defeined as PtrSafe, wich is unsefined if VBA7 is not 1.
@MathieuGuindon The grammar should still faceplan on #Const statements;we just remove them in the precompiler.
 
I seem to recall a lot of things blowing up the wolffgang grammar.
 
@M.Doerner oh, that's right!!
 
aren't #Const statments precompiler directives only?
 
then it's a good thing the grammar faceplants on them, because they're not syntactically valid :)
 
5:11 PM
Had a brainfart and kinda forgot they were completely unhandled in the VBAParser grammar
 
@Vogel612 The whole site is HTTPS.
 
Well, remove was the wrong word. We hide them.
 
did somebody open a PR to the antlr-grammars repo after the host dependence thingy got fixed?
 
@Vogel612 That's what I figured.
 
@Vogel612 I didn't. TBH given the RD-specifics and the (justified) not-handling of precompiler directives, some might view it as less complete than the other versions..
 
5:15 PM
meh. precompiler directives are not strictly speaking part of the language vba, are they?
 
And, don't isn't an option. We have to support more than one logged-in user.
 
I'm not entirely sure on the icons.
Does a sticky note convey a "TODO" item?
 
@Hosch250 I just wanted to mention it for posterity :)
 
I also tried out more of a "mark completed" icon than a "delete" icon, but I'm not sure if that works.
 
I just noticed that the upstream vba grammar has had a change to it supporting "fixed-length strings"... is that a thing in the languages we support?
 
5:26 PM
> @ScottDennison Question: Are you interested in submitting a pullrequest to antlr/grammars-v4 to update the existing vba and possibly vb6 grammars there? If yes, do note that there is a divergence between the grammars around "fixed-length strings". If you're not interested, please do drop us a quick line, just so we know :) Thanks!
 
@Vogel612 Yep. Our parser supports it.
 
okay, #TIL
 
> The Visual Basic trim functions (RTrim$, LTrim$, and Mid$) will not trim Null characters, so be sure to assign a fixed-length string to an empty string "" immediately.
^ That needs an inspection.
 
that, too...
 
So, I need to find a way to make .NET's SecureString work as a form input.
 
5:28 PM
I don't see any grammar rules jumping out at me that deal with the As String * 10 syntax though
 
Hm, or just a tweak of the wording for the inspection that suggests Trim => Trim$
 
@Hosch250 SecureString is discouraged
 
I'm not entirely clear on what the Trim behavior is.
 
Oh?
 
because missing cross-platform compat.
 
5:29 PM
Hmmm.
It's not in .NET Core then?
It seemed like it was.
 
it is in .NET Core, it just doesn't give the same guarantees as in .NET Framework
 
Thanks.
 
I ran into that by chance when I was working on the ReleaseCleaner thingie
I should really get to finishing that thing
 
Well, good catch.
 
Trim doesn't do anything to a fixed length string apparently.
Public Sub Fixed()
    Dim test As String * 10
    Debug.Print Len(test)   '10
    Debug.Print LenB(test)  '20
    test = "Foo  "
    Debug.Print Len(test)   '10
    Debug.Print LenB(test)  '20
    test = Trim(test)
    Debug.Print Len(test)   '10
    Debug.Print LenB(test)  '20
    Debug.Print test        '"Foo       "
End Sub
 
5:33 PM
@Comintern that would be inspection-worthy... but we don't track fixed-length strings any differently than normal strings do we?
 
Public Sub Fixed()
    Dim test As String * 10
    test = "Foo  "
    Debug.Print Right(test, 5) '"     "
End Sub
@MathieuGuindon I don't think so.
Now that I look at the grammar, I'm not sure how we handle them.
 
but that stuff parses, right?
 
Yeah, it parses.
 
lol then it's handled =)
 
I think we deal with it through fieldLength in asTypeClause
 
5:39 PM
Good catch. I was looking in the wrong spot.
 
so was I.
 
5:52 PM
Hmmm, CORS might be useful here.
 
 
3 hours later…
9:02 PM
urghhhh.... why did I only accept this job
 
Does German law make it as hard to quit as it is to fire you?
Or could you look for a different one?
 
much easier to quit
you just have to give sufficient notice
you don't get unemployment benefits for 6months if you quit and weren't fired, though
so usually one would only quit if a follow-up job is already lined up
I'm not really complaining about the job itself though...
just the task I'm still working on
it got morphed from something like "Replace Declaration" in Rubberduck to something like "Replace Declaration and replace CW and NuGet"
oh and make it run as near-standalone
and I'm three hours of work into the second part after hitting a critical roadblock in the first and am soooo tired of the shit that people did in this project already
 
9:17 PM
I get you.
 
My mental state is currently oscillating between extreme focus, extreme boredom, the wish to git-blame-with10kV, nuclear grade facepalms and projectile vomiting
3
 
I have a feeling that I'd be a truly horrible manager, but I think I could build a team of crack devs.
So many managers don't know how to do that part. Even if they are otherwise good.
 

« first day (1723 days earlier)      last day (1457 days later) »