Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No license #4

Closed
j-maas opened this issue Nov 13, 2020 · 13 comments
Closed

No license #4

j-maas opened this issue Nov 13, 2020 · 13 comments
Assignees

Comments

@j-maas
Copy link

j-maas commented Nov 13, 2020

Maybe I'll have the time and energy to dabble with generating Stiefo, so I'd like to be able to take inspiration from your code. But I noticed that your code is unlicensed.

While this is not too big a deal for me (I can write new code), it might be offputting for other users of the library. So maybe you might want to choosealicense.com.

What I currently plan on experimenting with, is writing some Rust code for inputting the Stiefo "pseudo-code" and outputting SVGs. I plan on trying out WASM, so maybe there is even a way to integrate it back into this project via a WASM runtime like wasmtime.

And please tell me how you feel about me copying the curve definitions from your code! If you're fine with it, I might do that. ;)

@effjot effjot self-assigned this Nov 13, 2020
@effjot
Copy link
Owner

effjot commented Nov 13, 2020

Hi, thanks for reminding me of the license issue. I’ll need a little time to fix this, because the basis was created by two other people – Andreas Hofer wrote the generator for Grundschrift and came up with the infrastructure for drawing curves from text, and Andreas Martin added the Aufbauschrift 2 symbols.
Andreas Hofer didn’t mind sharing the code back then when Andreas Martin and me put it on github. But I’ll check back with both of them.

I’m currently in a cleanup and extension process and hope to finish Aufbauschrift 2 and ASCII “Stiefo-code” soon. I already had a brief look at generating SVG (from Python). It shouldn’t be that hard, because you “just” need to plug in the output from symbols.py in SVG paths (C curves).

@j-maas
Copy link
Author

j-maas commented Nov 13, 2020

Great stuff!

Just to explain: The reason I'm interested in experimenting with WASM is that it is much more portable than Python. There are runtime bindings for many languages, therefore it would be easier to use this logic on, e.g., the web, or Android.

But thanks for responding so quickly! I'm curious to see how it all turns out.

@a-ma72
Copy link
Contributor

a-ma72 commented Nov 15, 2020 via email

@patzly
Copy link

patzly commented Mar 29, 2021

Hi @effjot , hi @AndreasMartin72 ,

I was thinking about using this project to implement a Stiefo generator in my Android app Stiefo.
I know it's not easy because I need to rewrite it in Java and Android paint/canvas and probably convert the coordinates to be upside down (the Y axis is inverted in Android, I think it's not in Qt).... or maybe I can flip the whole bitmap after generation.
I would mention stiefogen as well as you and the other contributors in the about section under open source libraries. For other libraries, I'll show the respective license, if your project doesn't have one, I'll just write that the authors explicitly agreed to use it.

Do you agree with this? And does Andreas Hofer (according to the README the main author?) also agree with this or how can I reach him? I haven't found anything about him or his work beside the mention.
Thank you for your great work :)

@effjot
Copy link
Owner

effjot commented Mar 31, 2021

Hi,
thanks for reaching out to us! I had a look at your app quite a while ago and really liked it.

The last few weeks have been crazy busy, so I forgot to have a look at the license issue. I had a look at the license overview @y0hy0h mentioned. I think MIT license should be fine, and we’d be happy if you’d mention the authors in your app.

I’ll confirm the license with both Andreases to be sure, but I guess they are ok with it. Andreas Martin already wrote a message here in this issue, and Andreas Hofer told us we are free to upload his code to Github back then.

@effjot
Copy link
Owner

effjot commented Mar 31, 2021

@patzly
Also, which system level are you interested in? For Grundschrift, you might want to go back far in the commit history (I’d suggest 37b04ed), for Andreas Hofer’s simple code. The master branch already contains some parts of Aufbauschrift I and II that Andreas Martin has implemented, and some further changes by me, so symbols.py is already more complicated.
If you’re interested in Aufbauschrift, we should discuss further, because im still working on it, including a way to encode it in ASCII. (Grundschrift is simple to encode, but Aufbauschrift has more Glyphs, vertical spacing, strike-through outlines etc.).

Also, I guess the drawing itself and flipping the axes shouldn’t be that much of a problem. Converting symbols.py to Java might be more difficult. ;-)

@patzly
Copy link

patzly commented Mar 31, 2021

Thanks a lot, that's great! It will take some time to implement that whole thing so no hurry :)
But I think it's appropriate to ask the other authors before officially applying the MIT license (which I think is a good choice).

First I'll take care of implementing the Grundschrift, that's most important (thanks for the commit suggestion!). If that goes well and I have enough time, Aufbauschrift I is the next step.

This ASCII thing sounds interesting, what exactly do you mean with it? For typing texts on a keyboard with a "stiefo typeface" like a ttf font file?

I'm excited about the work with symbols.py ;)

@effjot
Copy link
Owner

effjot commented Mar 31, 2021

no, the “ASCII Stiefo” is a way to encode Aufbauschrift. Grundschrift could basically written “as-is”, e.g. the input word „der“ is parsed into the letters d e r (parse.py), which is the decomposed into glyphs (consonants) and the vowel connections in symbols.py, which finally constructs the Bezier path that is rendered by render.py.
The word „Stein“ would be parsed to st ei n. This is done by Andreas Hofer’s code for Grundschrift almost automatically (it needs a dictionary for e.g. where it gets breaking into single sounds vs dipthongs wrong).

Aufbauschrift is much harder to parse into tokens, because that would need understanding of grammar and meaning (i.e. linguistic AI) and is not my main goal. I want to write a computer-generated / online dictionary of Aufbauschrift outlines and abbreviations, so I need to encode Aufbauschrift outlines into “simple” ASCII which can be stored easily, and which symbols.py can be convert to Bezier paths.
Examples:
„ist“ is abbreviated by a t in i position. I number positions from 0 (half-step below i) over 2 (baseline / e) to 4 (ö), so „ist“ is encoded as 1t. „Hatte“ (t in a position) would be 3t. Prefix „fort-“ is also abbreviated by t in i position, so „fortsetzen“ would be 1t s e z.
Aufbauschrift has loops. I encode the CCW loop by @, so „sonder“ (which is written als half-step loop on the baseline with an o) can be encoded as 2@1 o. The number before is the vertical position (like in the example with „ist“), the number afterwards is the size in half-steps. „Sonst“ is a one-step loop in o position: 1@2. „Nach“ is a point-loop, encoded as size 0: 3@0.
For laughs, „Ungetüm“ is 0d / 1m4.
Of course, all the prefixes, suffixes, stems, and words that are defined in Aufbauschrift I and II get convenient aliases, so you can write ist or sonder or auf n e m, endlich etc.

A bit complicated are disjointed / strike-through forms like „fach“, „falls“, „bar“. You can put any outline in curly braces, followed by an offset in parens to create those, e.g. d e n {a r keit}(-0.25,0) for „Dehnbarkeit“.

It’s not finished yet, and I’m not always happy with my choices, so the details still may change. You can see the definitions in symbol.py it in the aufbauschrift-2 branch. It’s all a bit ugly.

When you run render_on_screen.py, you’ll get an interactive playground to test the encodings and outlines.
image

@effjot
Copy link
Owner

effjot commented Mar 31, 2021

btw, how did you create the symbols that are in your app already?

@patzly
Copy link

patzly commented Apr 2, 2021

Ahh now I understand! Thank you for the detailed explanation, your ideas for loops and all that stuff are pretty clever!
I didn't even know that the strike-through ones exist... (just looked it up in the Aufbauschrift II documentation), for now I only know the symbols from Aufbauschrift I which I already implemented in the app. It will take some months until I'm ready to implement Aufbauschrift II, I think...
I run the interactive script last week and it's pretty amazing, very cool to try things out and to understand the code! I heard that a user of my app also uses your script to generate word images/pages for practicing reading and writing.

All the symbols which are green in the app are made in Inkscape (with the images from stiefo-kompakt.de as templates), then imported into Android Studio as VectorDrawables (like SVG for Android). All the other word images are directly from stiefo-kompakt.de, Thomas Reinartz allowed me to integrate them. 667 bitmaps...

Now my dream is that all the drawables and images in the app (even the seperate symbols for the consonants table) will be generated in real time, that would make the app much smaller and the resource management a lot easier.

@patzly
Copy link

patzly commented Apr 2, 2021

Have you improved the symbols of the Grundschrift yet after 37b04ed or have they remained untouched so far?

@effjot
Copy link
Owner

effjot commented Apr 4, 2021

I made some minor adjustments to the spacing of „i“ and to the shape of R, F, K, L (rounded bottom part) and J, NG (steeper).

I have put the tag aho-grundschrift onto 37b04ed and added a branch grundschrift to the most recent purely Grundschrift code. This includes changing to PyQt5 (instead of the now obsolete PyQt4) and little improvments to the interactive window.

You can see the changes here: aho-grundschrift...grundschrift

Maybe we should open a new thread/issue here for further discussion of this?

@effjot
Copy link
Owner

effjot commented Apr 6, 2021

We have put the project under the MIT license today.

@effjot effjot closed this as completed Apr 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants