|
See, you're smarter than me because you're doing it for money.
Real programmers use butterflies
|
|
|
|
|
If you check my bio page[^], third paragraph, it clarifies you post (maybe?).
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 |
|
|
|
|
|
I like the cheap hooker analogy!
|
|
|
|
|
|
I wrote a grandiose control surface plug for Sonar (DAW) that would chain up to five BCR2000s across like a big old mixer but it took too long and the device targeted, and the concept, are obsolete so it's just an in house thing now that not even I use.
Kept me off the streets and close to home.
|
|
|
|
|
Not to start DAW wars or anything but FL Studio lets you build dashes like that with no coding. Just sayin'
Real programmers use butterflies
|
|
|
|
|
|
midi controller dashboards for instruments. Panels you can control or link to other controllers. They have different ones for different instruments. At least i think you and i are talking about the same thing, but since we each use different DAWs (and FL is a bit weird) we may be using different jargon
i've never actually described one before.
Real programmers use butterflies
|
|
|
|
|
Yeah. Sonar uses COM for it's control surface interface. Old code from the before times.
Works though.
|
|
|
|
|
Time for a proverb:
Was der Bauer nicht kennt, frisst er nicht.
Anyway, I need such tools rarely. I have always been writing libraries for and against everything. No need to generate anything when I can reuse stuff.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
It really depends on what you're doing though. For example, my parser generators almost always allow for a runtime parser, or a compiled parser. The latter uses code generation, and the result is faster.
Libraries aren't always a replacement for code-gen. Code-gen is pretty specialized though so a lot of times people rarely need it.
Real programmers use butterflies
|
|
|
|
|
Nice and well. Then generate a fast parser and stuff it into a library, along with other useful stuff. No more need to ever generate it again.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
I mean, that's fine, but something has to generate it in the first place.
Real programmers use butterflies
|
|
|
|
|
Sometimes it's better not to get too lazy and use that stuff between the ears not only to keep them apart.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
The reason for generation is not to save on thought. It's to save on bugs.
Complex parsers like a C# parser for example, can be difficult even to test, much less develop.
Being able to generate the tens of thousands of lines of code necessary to parse something like again, C#, from an input specification saves countless hours debugging and testing.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: I've tried to simplify my project, and simplify describing that project but it's like trying to simplify Roslyn.
That's what a good technical writer is for. Explain to them what the tool does, and let them write the final documentation.
IMO, having access to such resources is one of the advantages of working for a large company.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
I should note that Microsoft's documentation for Roslyn is currently trash
Real programmers use butterflies
|
|
|
|
|
They must have fired the technical writers along with the QA department.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
I create tools that I don't understand and don't use.
I'm not sure how many cookies it makes to be happy, but so far it's not 27.
JaxCoder.com
|
|
|
|
|
Make a store app. The stats make the reception somewhat more transparent. It also motivates you to keep making it better. New. Trending. Top Selling. etc.
(I make it so no "help" is needed).
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
All the time! Except, most of the time even I don't use it, because either I find out an already existing, better solution, or it turns out that I wasn't able to really meet all of my own requirements.
Among the more complex tools were a pool implementation for C++ objects that would auto-garbage-collect unneeded memory blocks with an amortized complexity of O(1) for allocation and deallocation (including the garbage collection!). Or a lazy-evaluation point/vector/matrix implementation that would auto-optimize algebraic expressions at compile time. In both cases I eventually switched to easier solutions because I was reaching far beyond the actual requirements - but I still keep them in a drawer in case I find a use for them some time in the future ...
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
|
|
|
|
|
honey the codewitch wrote:
Do you ever write non-trivial tools that you swear by, but only you will probably ever use?
I have a dozen or more personal apps that increase productivity that I'd probably classify as trivial in the sense that they aren't terribly complicated...however I'd classify many as non-trivial regarding usage pattern and time saved/errors reduced.
Hand-rolled apps I use often:
0: Password keeper
1: FTP client
2: Database connection getter/setter for main products
3: Encryption/Decryption tool
4: Database Object Modeler/Script Generator (one of my first) (pre .NET) - spits out either paste ready code or creates a script file that can be posted for a customer to 'pick up' and run by one of our distributed products. This one saves me the most time overall and I'm the only one that knows how to use it.
5: Database Upsize/Downsize/Copy/Offload/Backup/Restore/Prep utilities
6: Color Editor ('cause I just wanted something local, light-weight, lets me lock sliders, and gives me the color codes back in multiple formats)
I also have the fortune of creating a number of features that are complicated enough that the end users usually don't even attempt to do it themselves...such as enabling field parsing on text-based imports with a position of 2F4, 2L4, 3M5:2, or 3E5:-. I even added an expression builder with examples and everything, but have yet (in over 5 years) seen an end user or colleague/trainer use without my help. At least I'm indispensable!
Sorry for the rambling. My Covid-19 project (won bid in early March) went live 3 days ago and I'm in observation mode, watching the mutant managers end users test it. So far only one major error caught the first day, and a handful of user mistakes. (yes, I know I'm supposed to prevent user mistakes!)
This tool was created by a tool.
"Go forth into the source" - Neal Morse
|
|
|
|
|
Of course, I created an entire eco system for production of winforms applications, converted that to Silverlight and then to WPF. I inflicted that system on every company I worked for since the mid 90s, some may even still use it but I doubt it.
The tools allowed me to produce LOB solutions astonishingly fast. I once did a "prototype" in WPF in 2 months that took a team of 10 outsourced developers over a year to duplicate as a web solution. The prototype performed better!
Never underestimate the power of human stupidity -
RAH
I'm old. I know stuff - JSOP
|
|
|
|
|
"Quote: that is poorly understood and not really used despite being very useful for what they were designed to do. 😔
I've tried to simplify my project, and simplify describing that project but it's like trying to simplify Roslyn. There's just too much there to be able to make it simple.
There's your Problem. People can't use any tool that is poorly documented. Additionally, by the time someone would figure it out, and start using it, the OS, Language, framework, and libraries will have all changed....
Get the Zarking Zark out of here! - Zaphod BeebleBrox
|
|
|
|
|
I've put more effort into documenting it than i have many of my other projects. Code generation tends to be complicated to begin with, and libraries to facilitate it are rarely simple. This is that. I've posted articles here explaining how to use it, and I know that at least one person is playing with it.
We'll see. I've dumped all I've got in me into documenting this thing so far, and I'm burnt out on it for now.
Real programmers use butterflies
|
|
|
|