X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Message-ID: <56909A02.3060000@iee.org> Date: Sat, 09 Jan 2016 05:26:26 +0000 From: "M. J. Everitt (m DOT j DOT everitt AT iee DOT org) [via geda-user AT delorie DOT com]" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: geda-user AT delorie DOT com Subject: Re: [geda-user] File formats again :: was (features: layers stack, padstack/vias) References: <1512221837 DOT AA25291 AT ivan DOT Harhan DOT ORG> <20160106091006 DOT 5F67B809D7A1 AT turkos DOT aspodata DOT se> <20160106133049 DOT 5A0E9809D79B AT turkos DOT aspodata DOT se> <20160106143629 DOT 4D39D809D79B AT turkos DOT aspodata DOT se> <20160106164022 DOT D0D4E809D79B AT turkos DOT aspodata DOT se> <20160106180912 DOT 42ddf4079d91384f206b7c35 AT gmail DOT com> <20160106191433 DOT 5dc5cb59 AT jive DOT levalinux DOT org> <20160106202817 DOT 56197b2c539d426a1b724c9e AT gmail DOT com> <568E09ED DOT 1080508 AT m0n5t3r DOT info> <568E6354 DOT 80302 AT m0n5t3r DOT info> <20160108002640 DOT 03233b24 AT jive DOT levalinux DOT org> <20160108175259 DOT 127a3f073616758434f7edff AT gmail DOT com> <20160109020345 DOT 1e07cb84 AT jive> In-Reply-To: Content-Type: multipart/alternative; boundary="------------000001060609040008060900" X-Provags-ID: V03:K0:RZDHzYbrR8LM5wH57tWGdYsvo0DJDeG6jmpcgSsAwIJ92+cz68L j5VqUpu+Cx3RnWaPXbWQd6n0OsFbevEWbi0xKa0uYSjUm37r3Zt0tkYNKSKs7TG8DajxYhW j42NvIhAOOgAJZnuGcG6Ohi1KAh2KYW9TKe53R04P5zFFaFKdBo/Kul32Vt3MqDC3hStrH+ cu2xUOpmuzQYzA9MbkAIA== X-UI-Out-Filterresults: notjunk:1;V01:K0:Onim/DLWoyM=:DkZo6tIahgUxqtr3CT6RCM 4Tmz1UkqAnMQOo+zYtxBS5DVPvremoaQD2hWX6reY6IkR4siX0LSeQ6WOvp1Cz6F4n7/pzxda FPZ/xRk7c7pL6FC1HkVaO8lmhyl2B72ZTlPpAK9FWcxgkKcGBfQItggcS05xtpXSqPkQDCoHS otM+InkEtvCRVrgIiutU5aczbOA9NZZezDS4XxN8Wt0RmcAOv4kMyXlaZMwT6Ayti2SAEaaV1 uexqqZM1SLwGWyAt5yCtIoXm2trbJPTHZqXGWxBR/dYtWORAlZyop3HjE523Zs7f81CE/f36u hYmuAsptOQ+73S/ETv3cnBCpS99e+5dgPEMNj6371ZMgVR3ryieekz+tGmVyPaj8VGc5US9BG U+TAvClZtNXpAENbz+kFaRnZgxf5sz/9QWfxjOd0IL04gB1d8nQXwccZBNQLsT5G5jkpjBB85 WQCZMn95TC+We7823KflTybpA1l3Q/3nZ4TQGlViTOOFvSDTDo88FfajWY70OLMyCPzLkZYML xJsZQ8m/0zcxNfTFk49kT8HqU3E8qhTtO/v95xBjjQxHig4B8POLQgHQ6RAqM7wPYqQwO7BK0 hcHA6MkiIAkuVo0v0zawodBA8YZRqIwxzo1p+yD+vNy3ccSUmWgPW9eIjg2AlbfEwS7i1kUPz VG9LODVzj+OXzcv1rl4t/oVUjZeBbs69eoZ/5I7T3ntulWX2SHdmW8mMC/WinygQ4nJuxCqLW KalHkyTV1LcLbAvj Reply-To: geda-user AT delorie DOT com This is a multi-part message in MIME format. --------------000001060609040008060900 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 09/01/16 05:15, Britton Kerin (britton DOT kerin AT gmail DOT com) [via geda-user AT delorie DOT com] wrote: > > > On Fri, Jan 8, 2016 at 4:03 PM, Lev (leventelist AT gmail DOT com > ) [via geda-user AT delorie DOT com > ] > wrote: > > On Fri, 8 Jan 2016 17:52:59 +0100 > "Nicklas Karlsson (nicklas DOT karlsson17 AT gmail DOT com > ) [via > geda-user AT delorie DOT com ]" > > wrote: > > > In preferences-->Layers-->Groups some of the layers are listed but > > not all are listed. What do you think is missing? > > I would add explicitly the insulation layers, and documentation > layers, silks, > etc. I'd add user defined layers as well. I'd add some logic like > "XOR this > layer with that, and use it as conductive 2." > > > For padtack which could be used for: pins, pads, via ordinary, via > > buried, via blind: I suggested a group of ordinary drawing > primitives > > could be grouped together but no one said if this is a bad or good > > idea. I also suggested this group you call a padstack could be > placed > > in a library with sub folders for different package types so they > > could be used many times. This might be very far out but a > discussion > > how it should be done is always a start. > > Yes. That would be nice. A library is also a hierarchical > structure. It > contains the pads, padstacks, footprints. Yes, the padstacks are > built up > from primitives. > > If I go on, and implement the SQL based file format, it is easy. I > defined pad > and padstack tables. > > If we go the YAML way, I don't know how to represent that data. > > > The way to think about YAML/JSON is as portable text-based > serialization formats for the couple most popular datatypes that get > built into modern languages, in particular arrays, hashes, and scalar > values (basically numbers and strings). JSON doesn't support native > (non-tree) references so you have to add your own id field if what you > want to refer to doesn't have already have a unique name. YAML does. > JSON is much more common but unfortunately also more noisy. Some > people like the noise because they don't trust any whitespace-based > approach (bad experiences with make). > > Britton > > I agree with whoever posted that SQL isn't transferrable, as any changes/errors in the db schema (ever) breaks things and is hard to debug. At least with a text-based file format (whether JSON/YAML/XML) you can human-read the file and see what's gone wrong, and easily make filters/translators using readily-available tools. MJE --------------000001060609040008060900 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
On 09/01/16 05:15, Britton Kerin (britton DOT kerin AT gmail DOT com) [via geda-user AT delorie DOT com] wrote:


On Fri, Jan 8, 2016 at 4:03 PM, Lev (leventelist AT gmail DOT com) [via geda-user AT delorie DOT com] <geda-user AT delorie DOT com> wrote:
On Fri, 8 Jan 2016 17:52:59 +0100
"Nicklas Karlsson (nicklas DOT karlsson17 AT gmail DOT com) [via
geda-user AT delorie DOT com]" <geda-user AT delorie DOT com> wrote:

> In preferences-->Layers-->Groups some of the layers are listed but
> not all are listed. What do you think is missing?

I would add explicitly the insulation layers, and documentation layers, silks,
etc. I'd add user defined layers as well. I'd add some logic like "XOR this
layer with that, and use it as conductive 2."

> For padtack which could be used for: pins, pads, via ordinary, via
> buried, via blind: I suggested a group of ordinary drawing primitives
> could be grouped together but no one said if this is a bad or good
> idea. I also suggested this group you call a padstack could be placed
> in a library with sub folders for different package types so they
> could be used many times. This might be very far out but a discussion
> how it should be done is always a start.

Yes. That would be nice. A library is also a hierarchical structure. It
contains the pads, padstacks, footprints. Yes, the padstacks are built up
from primitives.

If I go on, and implement the SQL based file format, it is easy. I defined pad
and padstack tables.

If we go the YAML way, I don't know how to represent that data.

The way to think about YAML/JSON is as portable text-based serialization formats for the couple most popular datatypes that get built into modern languages, in particular arrays, hashes, and scalar values (basically numbers and strings).  JSON doesn't support native (non-tree) references so you have to add your own id field if what you want to refer to doesn't have already have a unique name.  YAML does.  JSON is much more common but unfortunately also more noisy.  Some people like the noise because they don't trust any whitespace-based approach (bad experiences with make).

Britton


I agree with whoever posted that SQL isn't transferrable, as any changes/errors in the db schema (ever) breaks things and is hard to debug. At least with a text-based file format (whether JSON/YAML/XML) you can human-read the file and see what's gone wrong, and easily make filters/translators using readily-available tools.

MJE
--------------000001060609040008060900--