|
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
|
|
|
|
|
I feel your pain. Been there and didn't like it at all.
To this day I struggle with documenting Support notes.
Just trying to say Don't feel too bad about it.
I looked at your stuff and it was way over my head. I am just an old VB6 programmer converting my code from VB6 to C# while teaching myself C# at the same time.
"What?" - Arthur Dent
|
|
|
|
|
honey the codewitch wrote: Do you ever write non-trivial tools that you swear by, but only you will probably ever use?
What's worse is when I write a non-trivial tool that I write with the idea that other people will use it and nobody but me does.
An example is a tool I wrote to test credit card and ACH processing for the various processors we support, that lets you select between a direct API call or going through our back-end server, as well as using test and live accounts, test and live card numbers, etc.
Well, as you say, it's useful to me.
|
|
|
|
|
Yeah, i recently posted something here for others to use "Slang" and the "CodeDOM Go! Kit" - and the effort i put into it because of that was a lot more than if i had simply wrote it for myself.
And it's got like 18 downloads in 2 days.
Oh well. It makes my code generators that much more powerful than they'd have otherwise been.
My Parsley project that used it for example, would let you embed code in its spec files, and it could render the generated code in C# or VB.NET even though you write your embedded code in a subset of C#
It's no joke. But it's also hard to explain how to use it and the full scope of what it does.
Real programmers use butterflies
|
|
|
|
|
Yup! I wrote an amazing little tool that reads in an Excel spreadsheet specification document and generates an entire buildable C# project from it. I spent a ton of time refining it... and only used it twice. The tool was great fun to develop though!
|
|
|
|
|
I have created a project that used a tool that nobody else ever used. But it only had a use in a specific area, and that was decoding a one of a kind telemetry for a one of a kind device. If you want to create a killer tool, you broaden the area of usefulness, like Wireshark. Then many will want to use your tool.
|
|
|
|
|
Yeah part of it is the tool is necessarily niche, as it's intended for developers who are writing code generators.
I've created some more popular tools and posted them here, but in one case, a 1st place CP winner, my winning tool was built using the technology provided by this tool - without which it wouldn't have been possible.
I'm just trying to give other people access to this tech, not so much try to make the most popular tool.
It's a great tool for creating potentially popular tools is what I'd say.
Real programmers use butterflies
|
|
|
|
|
I think we programmers need marketeers and salesmen. As much as I hate them, we need them to sell our wares.
|
|
|
|
|
I recognize that we need them. I think I'd just rather be able to ignore them and stick to our respective jobs. I've had too many times when sales ultimately dictated deadlines, and led to less than great deliverables.
Real programmers use butterflies
|
|
|
|
|
Oh yes ... coding for no useful purpose other than coding.
I'm way retired and don't code for anyone else ... and have a large library of code I love to gander at and tweak and tweak to my heart's content ... ever delving into a better abstraction or simpler way to do it with less and more precise noun, verb, and property names (lots of refactoring) ... code that no one other than myself will ever see or care about.
It's kind of like being one of those monks that spend days making incredibly intricate, delicate, and beautiful graphics with tiny sand particles and then upon a final reverent moment of acknowledging the impermanent nature of the universe, blow it away or scoop it all up into a bag and go home. Perhaps this is the truth of all code ... ultimately just bits in the wind.
I say you can take the programmer out of the do loop, but you can't take the do loop out of the programmer.
Programming: fierce and relentless abstraction audits achieved by creating or investigating large collections of mnemonics ... way more fun than crossword puzzles or video games.
|
|
|
|
|
ALL RELATABLE CONTENT!!!
I don't code for money anymore, but it's still art and almost even spiritual for me sometimes.
Maybe that's silly of me but I don't care.
Real programmers use butterflies
|
|
|
|
|
And it keeps the synapses exercising ... staving off the inevitable.
|
|
|
|
|
Given that I'm the DSJB (Departmental Sh<nobr>it-Job Boy), I write lots of utility programs for managing our source control and build servers, among them the following:
Builder: A Windows service that performs our automated build process for all of our products. It runs on our three department servers, and can be commanded remotely to do product builds. Knownst to me, but ignored by my coworkers, is the fact that you can install it on your development machine and do full product builds. The only difference is that the product installs aren't published and a build archive isn't created.
H***Sys Scheduler: Our corporate IT department, in their infinite capacity for stupidity, has managed to screw up Windows authentication so badly that you can't use scheduled tasks on your workstation if they require the user's login credentials. The Scheduler is a Windows service that runs under a user's login credentials and will execute anything you like at specific times or intervals.
Shadow: Watches for check-ins in our source control for a specific area, updates a local copy as needed, and emails the development group. Used on our build servers to manage asset data files required for certain product installs.
The one program I've written that's seen widespread use among my coworkers is called Trace Viewer. It listens for TCP/IP messages from our various software components in our products and can record them in a file. It provides a rich toolset for filtering and organizing the messages for debugging purposes. As an example, it's the tool we use to tell the Builder service when to build a product, and to watch the build as it proceeds.
Software Zen: delete this;
|
|
|
|
|
The software we were using was being rewritten and I was a bit bored.
First it started out with something to fix the scans that came out of the 100 page a minute copiers. Awesome. 4 hours of work every 2 days cut in half. Ha, winning.
Then I got really bored. So I picked up the Acrobat PDF 1.4 Specs. That was about 10 years ago now..
|
|
|
|
|
How about a survey to pick your favorite (or favorites?) omitted answer from the weekly survey? I'm sure we all have a favorite !
Perhaps we can even get a list of them, here, to give the survey-meister a less daunting task. There are, after all, so many to choose from - but the favorites are, like most sadomasochistic delights, clearly a matter of personal taste.
Best of all, this survey can easily become recursive (ironic descendant of original cursing?)
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 |
|
|
|
|
|
What we need is a survey to decide what kind of survey is the survey is the best
"If we don't change direction, we'll end up where we're going"
|
|
|
|
|
The omitted answer I'd most like to see is "With a melon?"
I leave up to your fertile imagination to work out what survey that goes with.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|