X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-TCPREMOTEIP: 207.224.51.38 X-Authenticated-UID: jpd AT noqsi DOT com Content-Type: multipart/signed; boundary="Apple-Mail=_3EF14EB4-B8C1-4383-9B26-B261F1580307"; protocol="application/pgp-signature"; micalg=pgp-sha512 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [geda-user] A fileformat library X-Pgp-Agent: GPGMail 2.5.2 From: John Doty <jpd AT noqsi DOT com> In-Reply-To: <CAC4O8c-5S-PgE=RFXrAG2xRzmV4x3odVip0eUwih-iEzXs-UOg@mail.gmail.com> Date: Sat, 2 Jan 2016 20:07:41 -0700 Message-Id: <AE426D72-46DE-4941-9D58-95015A10C6EA@noqsi.com> References: <1512221837 DOT AA25291 AT ivan DOT Harhan DOT ORG> <CAJXU7q_mXmipJ1fLvLpuLvnYjktV2SHoA+bG=L5+E-EfdygeOA AT mail DOT gmail DOT com> <s6n37uumanm DOT fsf AT blaulicht DOT dmz DOT brux> <CAJXU7q_qxdvJaejF-VcY=u7VHZ-zrfrc+Z7-qSwfFyPdy-umxw AT mail DOT gmail DOT com> <B02363CD-469D-493A-AC15-1D5DC7836982 AT noqsi DOT com> <20151222232230 DOT 12633 DOT qmail AT stuge DOT se> <0F6F1D0F-4F07-48EA-90FE-836EAD4E2354 AT noqsi DOT com> <CAM2RGhTficnys3a4xs=UBFvk8aPwpzYWUADFLP_pUQ+R1iKs0g AT mail DOT gmail DOT com> <0FCF3774-F93C-4BFF-BB61-636F75DCCACB AT noqsi DOT com> <CAC4O8c_UAiFE-vGfoE2tXppHLhaa0dSYz9o_rkdCBo7_SRRtxw AT mail DOT gmail DOT com> <FFBE7623-E240-4798-96B0-2BECF56C8E29 AT noqsi DOT com> <CAC4O8c980g1gj15=5njstC_BT-WYDgKQx9BRycdFKA8OvgtiOg AT mail DOT gmail DOT com> <B54C0E1F-1986-4C79-9F70-7F1919B8B26D AT noqsi DOT com> <CAC4O8c9bxJP1eMG4yz3YwKkQJRmsDGmLQ0aMd5pJRyu0WpdCtQ AT mail DOT gmail DOT com> <C1CFCCEE-C64A-4E49-AA64-446C061656D6 AT noqsi DOT com> <CAC4O8c-zt8B=joDd+ws77D2jt6aZf3MWfR_dAvpzGcNuBrTURQ AT mail DOT gmail DOT com> <alpine DOT DEB DOT 2 DOT 11 DOT 1601030040320 DOT 2176 AT newt> <CAC4O8c_R5xWLmzj_cz0g0mPWNs6mR4efjXKGBoup8YO6! nwnPTA AT mail DOT gmail DOT com> <F498BB93-D43D-4E98-AC8B-5711ADC3DF41 AT noqsi DOT com> <CAC4O8c-5S-PgE=RFXrAG2xRzmV4x3odVip0eUwih-iEzXs-UOg AT mail DOT gmail DOT com> To: geda-user AT delorie DOT com X-Mailer: Apple Mail (2.1878.6) Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk --Apple-Mail=_3EF14EB4-B8C1-4383-9B26-B261F1580307 Content-Type: multipart/alternative; boundary="Apple-Mail=_3369C536-8C29-4AFC-92DB-78CA802B3476" --Apple-Mail=_3369C536-8C29-4AFC-92DB-78CA802B3476 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Jan 2, 2016, at 7:47 PM, Britton Kerin (britton DOT kerin AT gmail DOT com) [via = geda-user AT delorie DOT com] <geda-user AT delorie DOT com> wrote: >=20 >=20 > On Sat, Jan 2, 2016 at 4:38 PM, John Doty <jpd AT noqsi DOT com> wrote: >=20 > On Jan 2, 2016, at 6:07 PM, Britton Kerin (britton DOT kerin AT gmail DOT com) = [via geda-user AT delorie DOT com] <geda-user AT delorie DOT com> wrote: >=20 >> Personally I find formats like this: >>=20 >> device=3DRESISTOR >> T 44400 49300 5 10 1 1 90 0 1 >>=20 >> substantially less readable than ones with field names, but they are = indeed easy to parse. >=20 > Personally, I rarely edit these things manually except for the text = fields, which are not difficult to find. The fact that they=92re easy to = parse is handy for automation. >=20 >> The pcb format is quite a bit more elaborate and the savings from = not rolling your own parser are more significant. >>=20 >> I think you're criteria for what should go in libgeda are spot-on = btw. Nor do I have any problem with a C interface calling python or = gschem or for that matter C++. I do think providing a clean C interface = to libgeda gets by far the best return on investment, since it's so = widely known and with a little care wrappers can then be provided almost = automatically for a wide variety of languages (via SWIG or some other = similar mechanism -- or maybe Xorn facilitates this, I'm a little = unclear). >=20 > I don=92t find deconstructing C data structures particularly easier = than parsing the format above. Just another layer I have to penetrate to = get to the data. I do significant processing with simple things like = sed, which don=92t handle binary data. >=20 > Wrappers CAN be provided, but will they? FFI programming is not the = easiest thing. I hear complaints about the need for developers to = maintain code. It seems to me that one way to address these concerns is = to avoid and eliminate unnecessary code. >=20 > Good question. It's a great result if you get it but a lot more work = than using a serialization library, which is why the latter approach = seems to me like a useful step in the right direction. Serialization library? Why do you want a extra, unnecessary, opaque = interface? What, exactly, are you trying to accomplish? >=20 > Britton John Doty Noqsi Aerospace, Ltd. http://www.noqsi.com/ jpd AT noqsi DOT com --Apple-Mail=_3369C536-8C29-4AFC-92DB-78CA802B3476 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html = charset=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; -webkit-line-break: = after-white-space;"><br><div><div>On Jan 2, 2016, at 7:47 PM, Britton = Kerin (<a = href=3D"mailto:britton DOT kerin AT gmail DOT com">britton DOT kerin AT gmail DOT com</a>) = [via <a href=3D"mailto:geda-user AT delorie DOT com">geda-user AT delorie DOT com</a>] = <<a href=3D"mailto:geda-user AT delorie DOT com">geda-user AT delorie DOT com</a>>= wrote:</div><br class=3D"Apple-interchange-newline"><blockquote = type=3D"cite"><div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div = class=3D"gmail_quote">On Sat, Jan 2, 2016 at 4:38 PM, John Doty <span = dir=3D"ltr"><<a href=3D"mailto:jpd AT noqsi DOT com" = target=3D"_blank">jpd AT noqsi DOT com</a>></span> wrote:<br><blockquote = class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc = solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><br><div><span= class=3D""><div>On Jan 2, 2016, at 6:07 PM, Britton Kerin (<a = href=3D"mailto:britton DOT kerin AT gmail DOT com" = target=3D"_blank">britton DOT kerin AT gmail DOT com</a>) [via <a = href=3D"mailto:geda-user AT delorie DOT com" = target=3D"_blank">geda-user AT delorie DOT com</a>] <<a = href=3D"mailto:geda-user AT delorie DOT com" = target=3D"_blank">geda-user AT delorie DOT com</a>> = wrote:</div><br><blockquote type=3D"cite"><div = style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia= nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text= -align:start;text-indent:0px;text-transform:none;white-space:normal;word-s= pacing:0px">Personally I find formats like this:<br><br> = device=3DRESISTOR<br> T 44400 49300 5 10 1 1 90 0 = 1<br><br>substantially less readable than ones with field names, but = they are indeed easy to = parse.</div></blockquote><div><br></div></span>Personally, I rarely edit = these things manually except for the text fields, which are not = difficult to find. The fact that they=92re easy to parse is handy for = automation.</div><div><br><blockquote type=3D"cite"><span class=3D""><div = style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia= nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text= -align:start;text-indent:0px;text-transform:none;white-space:normal;word-s= pacing:0px"> The pcb format is quite a bit more elaborate and the = savings from not rolling your own parser are more = significant.<br></div><div = style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia= nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text= -align:start;text-indent:0px;text-transform:none;white-space:normal;word-s= pacing:0px"><br></div></span><span class=3D""><div = style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia= nt:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text= -align:start;text-indent:0px;text-transform:none;white-space:normal;word-s= pacing:0px">I think you're criteria for what should go in libgeda are = spot-on btw. Nor do I have any problem with a C interface calling = python or gschem or for that matter C++. I do think providing a = clean C interface to libgeda gets by far the best return on investment, = since it's so widely known and with a little care wrappers can then be = provided almost automatically for a wide variety of languages (via SWIG = or some other similar mechanism -- or maybe Xorn facilitates this, I'm a = little unclear).</div></span></blockquote><br></div><div>I don=92t find = deconstructing C data structures particularly easier than parsing the = format above. Just another layer I have to penetrate to get to the data. = I do significant processing with simple things like sed, which don=92t = handle binary data.</div><div><br></div><div>Wrappers CAN be provided, = but will they? FFI programming is not the easiest thing. I hear = complaints about the need for developers to maintain code. It = seems to me that one way to address these concerns is to avoid and = eliminate unnecessary code.</div></div></blockquote><div><br></div><div = style=3D"">Good question. It's a great result if you get it but a = lot more work than using a serialization library, which is why the = latter approach seems to me like a useful step in the right = direction.</div></div></div></div></blockquote><div><br></div>Serializatio= n library? Why do you want a extra, unnecessary, opaque interface? What, = exactly, are you trying to accomplish?</div><div><br><blockquote = type=3D"cite"><div dir=3D"ltr"><div class=3D"gmail_extra"><div = class=3D"gmail_quote"><div><br></div><div = style=3D"">Britton</div></div></div></div> </blockquote></div><br><div apple-content-edited=3D"true"> <span class=3D"Apple-style-span" style=3D"border-collapse: separate; = border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 12px; font-style: normal; font-variant: normal; font-weight: = normal; letter-spacing: normal; line-height: normal; text-align: auto; = -khtml-text-decorations-in-effect: none; text-indent: 0px; = -apple-text-size-adjust: auto; text-transform: none; orphans: 2; = white-space: normal; widows: 2; word-spacing: 0px; "><p style=3D"margin: = 0.0px 0.0px 0.0px 0.0px"><font face=3D"Helvetica" size=3D"3" = style=3D"font: 12.0px Helvetica">John Doty<span = class=3D"Apple-converted-space"> <span = class=3D"Apple-converted-space"> </span><span = class=3D"Apple-converted-tab"> <span = class=3D"Apple-converted-space"> </span></span></span>Noqsi = Aerospace, Ltd.</font></p><p style=3D"margin: 0.0px 0.0px 0.0px = 0.0px"><a href=3D"http://www.noqsi.com/">http://www.noqsi.com/</a></p><p = style=3D"margin: 0.0px 0.0px 0.0px 0.0px"><font face=3D"Helvetica" = size=3D"3" style=3D"font: 12.0px Helvetica"><a = href=3D"mailto:jpd AT noqsi DOT com">jpd AT noqsi DOT com</a></font></p><br = class=3D"Apple-interchange-newline"></span> </div> <br></body></html>= --Apple-Mail=_3369C536-8C29-4AFC-92DB-78CA802B3476-- --Apple-Mail=_3EF14EB4-B8C1-4383-9B26-B261F1580307 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJWiJB+AAoJEF1Aj/0UKykRdnQP/09izPWq4hIOu3ub5dsapJtN H+G1ZycIArcyVQwd9s1MUIhEytkaJZmhl1QMV4tLYI4rTd76R+8RQk+XhBKX9BKz wRVAbj83fkWNay3VReYeafe3C2NsKNW0rSBiGaunHu6VGAbwZHanXZAzxaBEv8eM aua1mfnxd78zEkbTxAqHu8NfLOr12TuQoxVSy+yvp1+6iZcxTLPYNcX9vvjmuTOg A6mXF0W+Il9IBbzN3z0PSJjYqiHLsybEu53d359swbFkovXRoMnuQR0lBL3LlHEe IyXcbCjzLLkmNilhI7PvXDgLGFRpM3kyZlJ+P6SauQ/37LUSraL8uvppzBEosHLP kSqtAFJWcOJ2pOrBmQqx4q7dDZub5KSkYqsUDLSMUxkJDH86hIkbjYeGSB7teyIv COs/rqblqobQl6R3CzmVOygOLbkMQCKqAtq6ePE9NYE34dliOx5jes3fqAei/5bl ObMw2qbtnOvgjOaBrOJvEMW2GKv9mJyGd6Z0iJZwMNcWgyjbKQnQzYhQpEIpYQCz 35czE6Sa8gL1pm4volPVrFXKDsPaJv3l+TnSsmSrL+gcGtDaijLXfW2Wf+YIPviF Vp+pCW7mT6gq3QBs++6MjQJEB9FNDeshhmg/0wOqL54otijK5oHqG8QP8hTPEz5v 6K8ai9QRUFVZ7RboWj74 =vQmp -----END PGP SIGNATURE----- --Apple-Mail=_3EF14EB4-B8C1-4383-9B26-B261F1580307--