|
I have been most fortunate in this respect.
As it turns out, I've always been able to just learn something because it seemed useful and the the fortunate part kicks in: it seems to be just what's needed where I work.
C, C++, ODBC for Excel, web development, and others. At least I prefer to think of it as luck, although clairvoyance wouldn't be found offensive.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Since I was the firmware department at the last place I worked (retired now), I was able to use whatever language I wanted. In reality, C/C++ is really the only option I had. Every microprocessor I've written programs for (small memory processors) has had a C/C++ compiler available for it. Plus, after being a firmware engineer for my whole career, I had built up a very large library of C/C++ routines.
|
|
|
|
|
So I was trying to make my emitted bytecode in lexly a little tighter generally and my strategy was to introduce an AST->NFA intermediary step so i could analyze the execution as a graph, optimize the graph, and then emit code from that.
Well, I overthrought it.
it turns out I could move my optimizations to the parsing phase and get the ASTs to write out tight code. I don't need the NFA at all. But I guess now that i have it i can create execution graphs with it. I don't know what for. It's barely code.
If this were "real" code my strategy would have merit, but since it's such a simple language it can all be optimized during the parse. I wasn't getting any better code out of it turning it into a graph.
Now, it's possible that i might down the road, if I can get the fecking thing to do partial DFA transformations on that graph and then introduce some special instructions for running a DFA that would really be cooking with gas, - DFAs are very efficient, but so far I haven't had luck doing a partial powerset construction because i'm using rangesets as my basic input alphabet element. I've been boxed in here by Unicode. What I'd like to do is expand the rangesets into individual characters when they're not too big, and then transform that subset, while leaving the rest of hte graph alone but so far the problem stumps me.
Anyway, I'm either banging my head against it, which sometimes works, or i need something fresh to work on but i'm not coming up with anything just now, and my permanent insomnia that comes with my madness makes this kind of fretful for me. I need stuff to occupy me through the witching hour.
Real programmers use butterflies
|
|
|
|
|
Mailing address please. You're in serious need of a rubber duck.
|
|
|
|
|
I don't know what that means but you're probably right.
I inserted a switch/case instruction into my virtual machine that basically is the equivalent of 1 iteration of a DFA match.
Clever me. Now if I can get my code to emit these instructions i'll have partial DFAs in my machines.
Real programmers use butterflies
|
|
|
|
|
It means that your rubber duck[^] would be eager to consult on your original post (and many others).
|
|
|
|
|
I get it now. Thanks.
Real programmers use butterflies
|
|
|
|
|
I remember talking about my rubber duck before, and you must have been wondering "WTF?!"
|
|
|
|
|
I like some WTF moments, because it means I can learn stuff or at least have interesting convos about it.
Real programmers use butterflies
|
|
|
|
|
She's got a rubber duck, doesn't she? CP Lounge is a rubber duck as good as any!
|
|
|
|
|
Yes, but it'd be faster to speak to a rubber duck. More time to write code!
|
|
|
|
|
Personally, I use documentation for rubberducking. First writing it down as the elements come to mind; it usually comes out in a rather messy fashion. Then I start organizing all the elements in a proper structure for a user, making bullet lists of highlights, drawing sketches of how data structures relate, writing small code snippets to illustrate the use of what I am implementing.
I took a typing class in 8th grade; that was an essential preparation for a Comp.Sci education, although in 8th grade, I had never seen a computer. So it takes me far less time to write it down once I have created a statement in my head; most of my time "writing", my keyboard is idle (but usually with my fingers hovering over the keys). The typing doesn't take long - making my thoughts clear in my head is what takes time. That I will have to do even if talking to a rubber duck (or in my case: A 10 cm tall rubber Jenkins). One other benefit: Quite frequently, I believe that my first "final" explanation was clear and lucid. Picking it up a few days later, I see that it is still a mess, and I have not addressed, or misunderstood, several aspects. If talking to a rubber duck / Jenkins, there is no memory of the points that are still unclear.
Another benefit: I spend little time writing documentation. It is there already, ready to be delivered with the code.
|
|
|
|
|
Thanks for sharing your novel approach. I try to document code fairly thoroughly as I write it, but that's still quite a ways from what you're doing.
Our typing backgrounds are very similar. I also took it in 8th grade before seeing a computer. So when I took it in 9th grade with an 8th grade classmate, we became fairly proficient. He could do about 60 wpm and I could do about 55, on manual typewriters! Now that correcting errors is so easy, my accuracy has dropped significantly.
|
|
|
|
|
|
haha that's actually kind of cool.
Michal learned that the object files that CoreTR's AOT (ahead of time) compiler in 2020 can be linked with the 1994 linker from Visual C++ 2.0. The result is native code that links up with Win32s that runs in 16-bit (ish) Windows 3.11. Magical. Kudos Michal.
That's awesome.
Real programmers use butterflies
|
|
|
|
|
Please consider using the "Best Windows of all times"
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
One big advantage is that it probably won't crash 15% of computers with every update, unlike winio.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
3.1 didn't need any update to crash all the time.
|
|
|
|
|
So I've got my little bytecode interpreter, compiler, assembler and disassembler for regular expressions.
I've been playing around with compiler optimization techniques using it and it's so much fun!
I'm so glad I made Lexly. This is some entertaining code.
Right now I'm trying to turn my AST into an NFA, and then do a partial DFA transformation on that to see if I can't render the code from that instead of the AST directly and thereby make it tighter.
Real programmers use butterflies
|
|
|
|
|
Just saw this one on a job posting:
Job post: Must be a team player that works with a sense of urgency.
Okay, there are two translations that come to mind:
1) "works with a sense of urgency" --
Translates to..."Drinks a lot of water but is allowed no restroom breaks"
2) Must be a team player that works with a sense of urgency -- Translates to, "Don't be griping when we tell you late Friday afternoon that the thing has got to be done by Monday morning!"
Also notice that they are looking for a "team player that" and not a "team player who" which indicates that they think of you as any other piece of office equipment (chair, desk, etc.) since you're a that and not a who.
|
|
|
|
|
Glass half empty
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
TheGreatAndPowerfulOz wrote: Glass half empty
Why, yes, of course. It was full, but it was the job posting that poured out the top half.
|
|
|
|
|
Some people think the glass is half empty, other think the glass is half full.
Engineers think the glass is twice as big as necessary.
- I would love to change the world, but they won’t give me the source code.
|
|
|
|
|
LOL.
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
Technically, the glass is always full.
|
|
|
|