|
My father (step father) was also a tool maker and a vary talented man but didn't bother to pass along any knowledge to me.
But I've always been curious and eager to learn. I don't have the patience to do anything as precise as toolmaking but I love to create things.
PartsBin an Electronics Part Organizer is finally available for download.
JaxCoder.com
|
|
|
|
|
I also enjoy making software tools which help me or other developers. But no one else uses my tools.
I also dislike using code written and published by other developers, I'd rather roll my own (in most cases).
|
|
|
|
|
It sounds like we're similar in that way.
I have a whole ecosystem of code I use for IoT and it all works together beautifully. That's the advantage of rolling your own, but it sure is a lot of work!
To err is human. Fortune favors the monsters.
|
|
|
|
|
I hope you guys don't miss the irony of all this: everyone complaining that no one wants to follow their path and prefer to make their own.
Like my old boss used to say: managing programmers is worse than herding cats
Mircea
|
|
|
|
|
Mircea Neacsu wrote: I hope you guys don't miss the irony of all this: everyone complaining that no one wants to follow their path and prefer to make their own. For almost the ultimate example of this, read Qwertie's top comment thread in the second article she linked.
|
|
|
|
|
Yah, I noticed that one but I didn't want to lay it on too thick
Mircea
|
|
|
|
|
|
Ha. Yep, I've almost always followed my own path (firmware engineer - retired). I've built tons of tools in my career but almost all were specific to project I was working on. And in general, I was the only firmware guy so the tools would have been mostly useless for the Windows developers.
|
|
|
|
|
Maybe those code generators could become part of some low-code solution?
|
|
|
|
|
I suspect you are vastly overestimating the number of projects that really need code generators. And if I ever had a project that needed one, I would probably write my own, because while playing with parsing long ago I figured out a far simpler approach that I can actually understand. But I'm not cool, either, so don't pay attention to my opinion.
|
|
|
|
|
The Windows Store has a (developer's) tool section. If you never buy a ticket ...
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
honey the codewitch wrote: In the end it has sort of put me off. Maybe code generation just isn't cool enough for the cool kids. Code generation was always cool. T4, DSL.
Maybe you can explain it cooler?
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Deslang and Slang are kind of hard to explain. I spent several articles trying, but the issue is you need background in the CodeDOM - pretty solid background actually, not only to appreciate it, but to understand it. The CodeDOM isn't well traveled technology. It's primarily used by ASP.NET and not touched by most people.
Even if that weren't the case, there's the meta issue, and that is Deslang is a code generator generator.
Yeah. A code generator generator. I use it in projects that generate code so that I can input C# "templates" and then modify them and fill them out in the generator app itself - turning these "templates" into full fledged source.
And that source will be rendered in C#, VB.NET or potentially other .NET languages.
To err is human. Fortune favors the monsters.
|
|
|
|
|
Understand it better. CodeDOM is new to me. Not a C# guy either. But I get the picture. Thanx
"A little time, a little trouble, your better day"
Badfinger
modified 27-Aug-22 23:09pm.
|
|
|
|
|
A "generator generator" might be too complicated for the average reader.
I do prefer your more complexer articles over your popular ones
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Don't give up the ship.
Code generation is not restricted to generating actual code. (I use C ansi c90) Well designed libraries with well designed interfacing are as good as many code generators. I designed a pseudo-human language command line parser that used a giant table lookup process connected with the appropriate code templates to match. The key was the tree transversal database library used to glue it together. I designed it make the code generation process work for me which in the end made it easier for others to mimic and grow the process. I don't fully understand you work, but I am not a C++ guy so that makes it hard. Stay with it. Love your zeal.
My lookup table example
2 = string 1 = number 5 = quoted string
Parsed
Syntax entry-point, "help table entry"
"ROT", ROTATE, "ROTATE - interactive rotate currently edited part",
"ROT_2", ROTATE_2, "ROTATE part - show euler angles(deg) for part",
"ROT_2_1_1_1", ROTATE_2_1_1_1, "ROTATE part x y z - apply euler angles(deg) to part",
"ROT_2_X_1", ROTATE_2_X_1, "ROTATE part axis deg - rotate part on X Y or Z",
"ROT_2_Y_1", ROTATE_2_Y_1, "ROTATE part axis deg - rotate part on X Y or Z",
"ROT_2_Z_1", ROTATE_2_Z_1, "ROTATE part axis deg - rotate part on X Y or Z",
"ROT_X_1", ROTATE_X_1, "ROTATE X angle - rotate(deg) default part on X axis",
"ROT_Y_1", ROTATE_Y_1, "ROTATE Y angle - rotate(deg) default part on Y axis",
"ROT_Z_1", ROTATE_Z_1, "ROTATE Z angle - rotate(deg) default part on Z axis",
"ROT_SCR_5", ROTATE_SCRIPT, "ROTATE SCRIPT \"file\" - create rotate command file",
"A little time, a little trouble, your better day"
Badfinger
modified 27-Aug-22 23:31pm.
|
|
|
|
|
For what it's worth, I think your projects are great. And I think the number of views and downloads are very respectable. Especially 37.7k views on the Parsley article. That is phenomenal compared to most articles on the site!
When it comes to projects like this, you might find that getting many people to use them involves a fair bit of marketing. Using Mkdocs to create a simple GitHub pages site describing the project and giving some examples might would likely get more engagement than a CodeProject post about it. But it's quite a bit of extra work with no guaranteed return.
Plenty of people think this stuff is cool don't leave a comment saying so. But the tens of thousands of views on articles you have written like this one tell me that plenty of people like and respect the work you do!
|
|
|
|
|
Code generators can be useful when they meet a target need.
For example, I avoid Entity Framework (EF) whenever possible. I prefer a generic DAC and stored procedures instead of EF. That is my preference based on years of my experience delivering well performing, scalable apps. So that statement is not up for debate in this thread.
The point of that is that it led me to write a code generation tool that creates the query, insert, update, delete (soft and hard), and restore (for soft deletes) stored procedures, and then writes the C# class(es) to encapsulate the data and to use the DAC to populate those POCO classes.
What I found useful was to start with a template file for each type of file generated, then generate the output code. It saves me quite a bit of time in development, allows me to change the design of the classes by template rather than code change in the generator.
The less time a developer spends on rote, repetitive coding, the more time they have to add quality.
|
|
|
|
|
EF is not a replacement for stored procedures. EF is not a server-side DDL or DML. It is a client-side object to data mapper.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
It is more than just a mapper. Most production uses of it (and I have seen dozens of such sites in production that use it extensively) use it to perform data operations. I have also known several organizations (public and private) that replaced their use of EF with stored procedures, a DAC, and a layer that puts the data into class instances.
Having seen the folly of EF when used correctly over time, that led me to write the code generator I described in the OP.
Lots of developers swear by the use of EF, but when I narrow down their EF fandom to specific implementations, in most cases it results in illustrating reasons not to use it.
My preference is to not use EF unless there is a solid use case that indicates its use after value engineering shows a net positive value.
If your preference is different, that is fine.
|
|
|
|
|
It doesn't happen often, but sometimes even bigger companies can be helpful.
My internet just stopped last night, Wi-Fi was working, but internet wasn't.
A router restart didn't solve the problem (a factory restart ultimately did).
Called my provider and after an automated menu I got an employee on the phone instantly.
About thirty* minutes later all my problems were solved and my questions answered
Their hold music was on point, but the quality wasn't (lots of static): The Cardigans - My Favourite Game “Stone Version” - YouTube[^]
* About a third of that time was waiting for the factory reboot.
|
|
|
|
|
My favorite tech support experience tends to be when the call centers are out of India.
The folks are pretty much universally polite, and almost always know far more than following steps in a booklet they're supposed to use.
I get that for some people it can be hard to navigate an Indian accent and Indian idioms, but I've worked with so many Indian folks at this point that I'm used to it, and it's easy for me.
I've had much less luck with call centers out of the US, with the exception of Computer Upgrade King, who seems to have one bored but knowledgeable guy on the other end that nevertheless manages to answer calls instantly. Don't even ask me how that works.
To err is human. Fortune favors the monsters.
|
|
|
|
|
Greetings Kind Regards My least favorite tech support is the occasion it is obvious they are merely following the prompts their software permits and nothing more. My confidence plummets in such cases. - Best
|
|
|
|
|
My internet provider here in Canada is similar. I went with a smaller provider and I've only had to call them for help twice in ten years - but both times, I got to talk to a real human right away and they were able to sort my problems out quickly. It's nice to hear you got good service from a bigger company!
|
|
|
|
|
https://www.bbc.co.uk/news/science-environment-62662685[^]
Wow. That's some impressive graphics work!
There is also an enhanced picture which shows one of the two golf balls that Alan Shepard played with during Apollo 14 - they showed that one on the TV news yesterday, but I can't find it online.
"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!
|
|
|
|