|
Sander Rossel wrote: who's on a vacation for the next two weeks or so.
And now you know why ...
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
heheh
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
The best I've ever heard was "I'm quite busy today, but can you call back tomorrow?"
When I called back the other day I got the receptionist telling me today was the first day of his three week vacation
It wasn't important, I only needed access to their systems so I could do my work.
So that meant my three week vacation started that day as well
|
|
|
|
|
during the .com boom i got hired to write some software for a national ISP, and the first day on the job was the first day of my boss' 2 week vacation.
That was ... interesting. I had *nothing* to do and nobody to go to about it, and nobody cared, so i worked on my own stuff.
i didn't even feel guilty about it.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
A friend of mine recently started at a company.
His job was to streamline their AWS resources and deployments... Except it took months for him to get the access he needed to do his job
He's been "doing research" and writing blogs for two months until he could finally do his job.
I should mention he's a pretty expensive external consultant.
If I were his boss' boss I'd fire him on the spot for wasting my money and my friends time like that
That said, most managers I've worked under would get that treatment if I were their boss...
|
|
|
|
|
That's why we're not in management. LOL. They keep us locked away in the backoffice for a reason.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
Imagine all the work that would get done
|
|
|
|
|
It probably took more than 3 months of red tape to have him onboarded!
They don't want to fire him before he can complete the work.
|
|
|
|
|
hahahahahaha
*Pck crashes*
*cries*
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
On a side note, I just greatly improved app performance (with like 5-6 seconds!) by replacing:
using (var client = new HttpClient()) With:
using (var client = new httpClientFactory.Create())
The client is used to get the status of some 100 items in separate GET requests.
I did it async already, but it still took 5 to 6 seconds, back to some 500 ms now
You know how it feels so I thought I'd let you share in my joy
|
|
|
|
|
YAY!
Also bless HTTP pipelining
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
I just greatly improved my app performance by fixing a bug.
It was taking infinite time to complete.
Now i don't know how fast it is, but it's infinitely faster now.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
Thread.Sleep(double.PositiveInfinity);
Good to hear your app went from infinite time to less infinite time though
|
|
|
|
|
Well I'll probably have to order the Dragon Book after all to sort out the error recovery in the LALR(1) parser but still, as it is this whole project is just the bees knees.
I'm happy with it. I can author and test grammars, and generate code all from my little gui, which is basically like notepad++ with tabs and some build macros + a tester sub-app
Woot.
But now that i'm happy with it I don't quite know what to do with myself.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
honey the codewitch wrote: sort out the error recovery throw new AccessViolationException();
|
|
|
|
|
LOL!
the whole point is to NOT throw errors, but rather, return error nodes in the parse tree when the parser encounters errors, and to continue parsing.
you know how visual studio will show multiple syntax errors in your code at once?
this is how it does it. Its parser has to continue even when it finds syntax errors.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
errorNodes.Add(new ErrorNode($"Access violation at address {Guid.NewGuid()} in module 'Pck' Read of address 00000004"));
As you can see, I've really got a solution for everything
|
|
|
|
|
You really like access violations.
I know some shrinks that would have a field day with that.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
Pull out a bottom card and watch them all crash down.
Just kidding, but figuratively you should try something like that. Try some unexpected inputs and see how it handles the perturbation.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
modified 18-Aug-19 19:03pm.
|
|
|
|
|
That's rather the point
I even have a test where it takes erroneus inputs and even with errors its expected to be able to complete the parse *AND* reconstruct the entire document based on the nodes therein. I compare that reconstruction with the original input so it's very demanding in terms of precision. Everything has to be reported even in worst case scenarios.
The LALR(1) parser does not pass these tests, but the LL(1) parser does.
Still, I'm satisfied enough with it for now. The error handling in the LALR(1) parser is going to be dodgy until i get my copy of the dragon book and can look at what they recommend.
This isn't standard error handling. This is being able to handle a situation where the input does not meet the expected format, and yet you have to continue parsing. It can be challenging.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
honey the codewitch wrote: This isn't standard error handling. This is being able to handle a situation where the input does not meet the expected In the automation world we say, you are so good as your "home run".
To program the "automatic mode" step chain is the easy part, no matter how exigent is the process. The most difficult part is mostly the "home run" (bring the machine, production line back to the "ready to start" or "ready to continue" after an error)
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
pretty much exactly this.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
This could be a valuable tip/trick or article. cheers, Bill
«Where is the Life we have lost in living? Where is the wisdom we have lost in knowledge? Where is the knowledge we have lost in information?» T. S. Elliot
|
|
|
|
|
Well, basically there are a whole bunch of security holes in software that we all write where we do not parse inputs. And to top that off, even if you don't have an internet connection, you can still mess up parsing enough to crash your own computer. I have done it so I know it's possible. There was even an old way for mac users to secure their passwords relying on bad parsing, they would put control-alt-delete in their password which would cause a PC using hacker to reboot their computer if they tried to use the password.
|
|
|
|
|
AnotherKen wrote: software that we all write where we do not parse inputs That's the point, this one DOES parse the input, it's the whole point of the software.
I'm assuming this was written in C++.
Getting an AccessViolation in C# like that requires an advanced level of incompetency.
But the parsing would basically just be "Line starts with H? Get first eight characters, then get the next 11, then 11 after that, etc. until you're out of characters."
If the line starts with a V it's a bit trickier since the length of the groups depends upon a value in the nearest H line above it, but still not very difficult.
It should be really easy to check if you've got enough characters for both lines.
You always know how many characters you'd expect and how many you've got left.
This isn't rocket science, especially since it's just a service doing "get input, parse input, do something with input", no system level functionality
|
|
|
|