1. 56

  2. 14

    I like READMEs which lists alternatives (I wanted to mention MFEK/glyph, but you already did in your README)

    Thank you for doing this :) This makes software categories discoverable.

    1. 11

      Thank you too for the kind words. I put them because many people ask me “Why should I choose this editor over XYZ?”, as if it’s a competition. I started the project for fun. To be honest these questions kind of dishearten me. I’m not a salesperson, I just publish my hobby project as free software.

      As far as MFEK is concerned, it is in my opinion an unusable developer experience: every minor functionality is wrapped in a different crate library, like saving files, arithmetic on typographic units, reading an XML file, boolean operations, a crate with just an enum that can be float or integer and 60~ more!

      I just don’t see how all this huge effort benefits anything.

      1. 4

        I’m not a salesperson, I just publish my hobby project as free software.

        But as a user I do like to hear why exactly you think your project should be used. I may be an uninformed person looking for reasons to choose one project over another. And I may also not know things in detail, while an author of such a software could.

        At the end of the day you’re free to promote everything as you like, but that also means people might want to know why. Don’t take that personally.

        1. 2

          Yes of course. Though I never said “use this font editor”. It’s WIP and I only shared (promoted) the progress, it’s not a pitch for users to migrate. Sharing it is for awareness and welcome contributions from others.

        2. 2

          This irks me - a ton of Rust larger projects seem to go really overboard with multi-crate workspaces, and I don’t know why.

          Unless you’re planning to publish the sub-crates individually, I think there is little reason to do this - just use modules! You can conditionally compile them based on feature flags too.

          1. 2

            Same feelings here, though it’s better compilation wise because a crate is a compilation unit in Rust. I don’t know any better solution that having subcrates or making everything a module so it is what it is.

      2. 6

        *gerb ʰ-: reconstructed Proto-Indo-European root, meaning to carve

        It’s always fun to see software named after reconstructed Proto-Indo-European roots. *gerb ʰ is the source of all English -graphy words (via ancient Greek graphein “to write”); the carve meaning comes the native Germanic inheritance of English.

        1. 4

          Someone posted in the issue tracker it is French slang for “vomit” :). It could be worse I guess…

          I wanted a Greek-ish word because it’s my native language but glyph was already taken. Also font in Greek is too lengthy: γραμματοσειρά

          1. 6

            If it’s any consolation, I’m French and did not make the connection because the pronunciation in an English context does not match the French slang’s. Even reading your comment I had to scratch my head a bit. Plus “gerbe” also means “bouquet” so you can use that as an excuse :)

            And you know, we’re used to this in the CS field, “bit” is also a slang word in French.

            1. 2

              Wait, I thought the official name for “bit” in French is “octet”? 😉

              Funniest cross-cultural snafu lately is the US English technical term “nonce” conflicting with the UK English slang term for pedophile.

              1. 6

                No, FR(octet) is EN(byte) – “oct-” means 8. I guess we completely dismissed the possibility that a byte might not be 8 bits ^^.

                A bit is a bit, we kept it even with the funny-word association. You just power-through your CS class trying to suppress your immaturity as much as possible until you explode, but that’s life.

                1. 1

                  Duh, that’s on me, I mentally confused bit and byte …

                  1. 4

                    Part of the reason that French uses octet is that bit and byte have almost identical pronunciation in French. The other reason is that this is a slang term that you probably don’t want to be using in polite conversation…

            2. 6

              If you think that’s bad, imagine working for a company that’s just put a huge publicity push into a product line that in French is pronounced ‘J’ai pété’ (I farted), including a high-profile version ‘chat, J’ai pété’ (cat, I farted).

              1. 2

                Bulgarians will love your project too :)


                1. 1

                  Something something naming things is hard… it could be worse, at least in French :D

              2. 5

                So cool! My first full-time job was building a font editor, so this brings back a lot of memories. I was working on a 1MB Mac II, with a graphics system that didn’t even support Bézier curves, so I had to do a lot from scratch. Then halfway through the project Apple introduced TrueType and Adobe opened up the proprietary Type 1 PS font spec so I had to learn how to export those formats … interesting times.

                1. 2

                  That sounds very interesting. I’d enjoy reading a write-up of both the technical workflows and the business story of working on a Mac II application. Both the technical constraints and the software business of that time are always a good read.

                2. 3

                  Love the name. Your other project, meli, is also a PIE root is it not?

                  1. 5

                    Thank you! “meli” means honey in Greek (the PIE root is *mélit). It was a stupid pun on “meli” kinda sounding like “mail” but in retrospect I should have chosen a more anglophone name. Projects with English names seem to be more attractive to contributors.

                    1. 2

                      Ah, I was a bit close. I knew that it was cognate with the English word mead. Thanks for the backstory anyway. I have little use for a font editor or a terminal mail client but it seems you have done excellent work in each instance.