From: Roger Johansson
Subject: Re: Problems with Electronics Workbench - timestep errors
Date: Tue, 08 Oct 2002 22:04:41 +0200
References: <email@example.com> <firstname.lastname@example.org>
NNTP-Posting-Host: dialup2-5-226.home.se (220.127.116.11)
X-Newsreader: Forte Agent 1.8/32.553
email@example.com (Gibbo) wrote:
>If someone wrote software that had a user interface like EWB but which gave
>real results like spice but put them on a scope, multimeter etc, I'm convinced
>no-one would ever sell any of the other shit again.
Exactly my view.
The easy to use UI does not have to preclude more advanced features,
but it makes it a lot easier for people who are new to spice
simulators, or new to computers but with electronics knowledge.
There is no reason to create a less than optimal GUI when it is rather
easy to implement.
I wrote a text about program design last night, I'll paste it in
SPICE program considerations:
1: Decide the name of the program, and check that it is unique.
Do not use a lot of different names, like: scad3, swcadiii, swcadlll,
Use only one of the names, the same name everywhere, in documentation,
in help files, in advertising and discussions about the program.
The name should ideally be as short as possible, but that is not so
important anymore as the old 8+3 standard has been replaced by
arbitrarily long filenames.
Before you make the final decision do a web search for the name you
want, if you get any hits at all, change the name.
When people search for your program they should not find a lot of
2: Use standard windows colors, and allow the user to set his own
colors, maybe even bitmaps as backgrounds.
3: Use a configuration file format which is a readable and editable
ascii format, let users exchange configurations by publishing the cfg
4: Electronic circuits have an old file format, a netlist, but we are
now in an era graphical user interfaces so we need another file format
to describe graphical placement details. Just like html replaced the
txt file format we need to replace/complement the netlist format with
a graphical UI file format.
This should be a netlist with added features, which a spice simulator
is not disturbed by. For example added lines below the END statement,
or comment lines which the spice simulation ignores.
This new file format should of course also be a readable and editable
format, ascii text as the netlist.
A converter routine to update older netlists to the new standard, with
autoplacement of components following a few simple rules.
This will also be used to import netlists into the program.
5: What we are working with are circuits (not netlists). These
circuits will be stored in a file format, there will be a need for
displaying, editing, simulating, saving, exchanging these circuits.
6: The circuit is loaded from disk, displayed in a GUI, edited,
simulated, edited some more, saved to hard disk again.
So we need to be able to use different views of the same circuit, the
graphical view (schematic capture), the netlist view, etc..
It is just like in music programs, where we are working with songs,
and the composer program (sequencer) gives us the possibility to
display and edit the song in different ways, the piano roll view, the
classical music notation view, the event list view, etc..
7: Let the user group have a meeting place, like a mailing list, with
file areas, like a yahoo group, unmoderated, open for anybody.
Listen to the users suggestions, even if they seem contrary to your
own views sometimes, it takes more people than one to create a great
program and maintain it.
By the way, as a programmer you are probably identifying the program
very much with your own person. Try to loosen up on that attitude.
Realize that it belongs maybe even more to the world and especially to
the users of the program.
Remember that this world fed you and made clothes for you while you
wrote the program. The rest of the world has given you education and
opportunity to use your time for programming, they have developed and
produced computers for you to play with, so the program is a result of
a united effort which involves a lot more people than just yourself.
Well, I could go on forever, and I probably will, later, but for now
those are some important points to think about.