|
You don't need USB3 for a mouse and keyboard, so the "problem" is more to do with the way functionality kept getting tacked on to USB.
It's reached the point where USB-C is probably the biggest SPoF in the history of human endeavour -- and one of the biggest PiTAs, unless you're a lover of dongles.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Mark_Wallace wrote: You don't need USB3 for a mouse and keyboard,
True.
I have a 4-port USB 1.1 hub I still use for my mouse, keyboard, a USB lamp and charging devices. Speed is entirely irrelevant.
|
|
|
|
|
I get a HUGE difference between USB3 connected external drives than USB2 connected ones (and these are all USB3 drives). Definitely worth the price of the adapter card I got for my old machine.
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
Really pretty hard, or so it seems.
So I'm still working on this early 90's standard, which is pretty impossible to read.
It's basically like this:
You have a code being a certain data field, like 123456 for weight and 654321 for quality.
This goes in a header with two leading zeroes and the fields length (two digits) and precision (one digit).
So a part of a header could be: "0012345605200654321020".
Then comes the value lines, which is just the values, like "00322A ".
The complete (simplified) document would look like:
H0012345605200654321020
V00322A So taking the header and values we get the C# values of 3.22m for weight and "A" for quality.
I've got documentation with all fields, their lengths, possible values, and which fields are mandatory and optional or conditional.
So now I've got this entire document which is completely according to the specs, which must be read by some third party application.
And it fails with an ACCESS VIOLATION EXCEPTION!?
No "failed to parse value 'x' for field 'y'" or "missing mandatory field 'z'", just an access violation.
So I've got some example files that I know that work, so I decide to look at one and dissect the header and fields one by one (I've written a little program for that) and see if I can spot a difference.
I can spot two differences, the sample file has a lot of optional fields with invalid values and it's missing 20 characters in the value line.
We decided to add those optional fields to our own document, including the invalid values (but with correct length) and it works
Why on earth is an invalid document read without issues and does a valid document fail with an access violation?
You can bet your ass that's not the only thing wrong with this application
Anyway, I'm now waiting on a reply from someone who's on a vacation for the next two weeks or so.
Good times
|
|
|
|
|
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.
|
|
|
|