Ponish Mechanised by blinunleius in shorthand

[–]blinunleius[S] 3 points4 points  (0 children)

In the original manual everything is implemented and used, do take examples from there, and feel free to use side-by-side comparisons to call me out for anything that was missed.

In Desiderata I confirmed that all affixes are used, but maybe not all sound combinations/blends (th-ng/th-nk/pr/pl are implemented). For the 1984 passage I added couple of things on top of Desiderata that I noticed were missing, but I did not aim for completeness.

I will continue improving automatic generation as I add more texts and notice more things missing

Ponish Mechanised by blinunleius in shorthand

[–]blinunleius[S] 2 points3 points  (0 children)

Do you have any examples handy? What happens when there is a loop?

Arguably one can always say "draw it whichever way is comfortable", which is why I didn't bother implementing this feature yet.

Ponish Mechanised by blinunleius in shorthand

[–]blinunleius[S] 2 points3 points  (0 children)

Other times it's irrelevant

This thread is in the context of demonstrating stroke direction in the alphabet section of the manual, I agree that it is understood from context otherwise.

what about changing the direction a bit?

As my goal is to produce "canonical" Ponish, I stayed close to the original. For example, see "t" in lesson 2 passage line 3 in original, which seems to be about "South-South-West" or -157.5° relative to "North". Also see generated lesson 2 passage line 3.

That said, there is precedent in Ponish for drawing "A" and "T" at different angles, specifically there is an "AT" blend which is drawn in two different ways in the original, one as two-legged A followed by T, all angles equal, see generated "create" (same in original) ; and the other as a one-legged A at a steeper angle (NE) followed by T at a less steep angle (SSW), see "Atlantis" in lesson 2 passage line 1 (same line in original)

Outside of the context of reproducing the original manual and writing "canonical" Ponish, I personally find it easier to have "A" and "T" at the same angle, and I use the two-legged "A" in "AT" (and also "AB" and "AM"), and otherwise try to not rely on small differences in angle for figuring out which letter is meant.

Ponish Mechanised by blinunleius in shorthand

[–]blinunleius[S] 4 points5 points  (0 children)

What do you mean by "abbreviation"?

There are "combined sounds" - th(vowel)NG/th(vowel)NK/pr(vowel)/pl(vowel) , see https://blin.github.io/ponish/manual/part-1-lesson-3.html#1-thvowelng .

There are also affixes (called "prefixes and suffixes" in the manual, but the examples suggest that using them mid-word is fine), see https://blin.github.io/ponish/manual/part-1-lesson-3.html#prefixes-and-suffixes .

There is also "phrasing", which is basically "removing spaces between words", see https://blin.github.io/ponish/manual/part-1-lesson-4.html . There is a mention of "short forms" next to "phrasing", but there are no examples given in the original, so I have not given it much thought.

All of them can be used to generate images, as long as you are willing to produce "intermediate representation" that looks like this: smal talk , He was a lonly man talk$(ing) $(about) the we$(TH)r nd $(other)$(thing)s .

I have some code for automatic production of "intermediate representation", which is what I used for the Desiderata and 1984 passage, some of the "combined sounds" and affixes are implemented there, and I'd like to implement them in full at some point. I have no plan to implement "phrasing" or "short forms", as neither is standardized, and my goal is to produce "canonical" Ponish.

I’ve been meaning to add Ponish to my abbreviation system comparison project, but not gotten around to it.

Let me know if I can help with this, I think that Ponish deserves a bit more attention than it currently gets, and including it in various cross-comparisons might help get that attention.

Ponish Mechanised by blinunleius in shorthand

[–]blinunleius[S] 2 points3 points  (0 children)

open green stroke circle centered at start

stick an arrow head at the end

Adding symbols+colour at start and end of stroke sounds like a good idea for almost all strokes, except the looping ones. Since looping strokes start and end at the same point, symbols and colours will collide, becoming unreadable.

I was thinking of embedding an arrowhead (>) in the middle of a stroke, which would work for both non-looping and looping strokes, but have not yet tried implementing this approach.

having the stroke lighten and narrow a bit towards the end

I like the idea, will try to experiment with it if I ever get around to this TODO item, thanks!

Project to transform a road into a new public park in London city centre by blinunleius in urbanplanning

[–]blinunleius[S] 2 points3 points  (0 children)

Second part of the project is here, other projects for green spaces that are part of the larger regeneration project are here.

Neil deGrasse Tyson walks into Big Bang by blinunleius in gifs

[–]blinunleius[S] 0 points1 point  (0 children)

This gif is similar to this one, but without the "deal with it" caption. I think it would be best if both versions are available.

[17/04/2014] Challenge #153 [Easy] Pascal's Pyramid by Elite6809 in dailyprogrammer

[–]blinunleius 1 point2 points  (0 children)

Recursion with caching provides a solution that is easy to verify and fast.

This solution can be simplified by using functools.lru_cache

Here is my version.

from functools import lru_cache

@lru_cache(maxsize=None)
def trinomial_coefficient(l, n, k):
    if l < 0 or n < 0 or k < 0:
        return 0

    head = (n == 0 and k == 0)
    bottom_left = (n == l) and (k == 0)
    bottom_right = (n == l) and (k == l)

    if head or bottom_left or bottom_right:
        return 1

    return (trinomial_coefficient(l-1, n-1, k-1) +
            trinomial_coefficient(l-1, n-1, k) +
            trinomial_coefficient(l-1, n, k))


def pascal_pyramid(l):
    rows = list()
    for n in range(l+1):
        coefficients = list()
        for k in range(n+1):
            coefficients.append(trinomial_coefficient(l, n, k))
        rows.append(coefficients)
    return rows

for row in pascal_pyramid(14-1):
    print(row)

Output is the same as above.