Mr. Keffer:

Thanks for the insider's view and experience.  Not many of us get to rub shoulders even in forums, with people who were central to doing things that literally affected people all around the world. The financial cost of interfering with upgrades or not taking a desired upgrade with having to fix stuff that no longer runs is a real conundrum.

I continue to be amazed at how the team here knows what works, what may or will be broken and how to track it down. That is a resource we users here are lucky to have.  Dale


On 11/17/2023 2:51 PM, Tom Keffer wrote:
Having watched this up close, I have an explanation. In a previous life, I was on the C++ standardization committee, X3J16, representing Rogue Wave Software. We sold C++ class libraries, and probably had 100,000+ of them out in the field. There were only a handful of representatives on the committee that actually had products in the field. The rest were either academics, consultants, authors, or worked in research labs.

When it came to breaking changes, the two groups had completely different motivations. My objectives were to protect my customer's investment and to avoid doing unnecessary upgrades, while theirs was to create a more pure language that burnished their reputation as language mavens. Because my little group was a minority, we almost always lost.

Think about it. Who would be attracted to the drudgery of pushing a language forward and sit on a committee for months? It's going to be people who are into languages, not those who depend on them.

I suspect that those who thought dropping "textsize" was a good idea had little at stake in the matter. They thought they were creating a more elegant library, one that they can be proud of. I doubt they thought much about the thousands of people they sent scurrying around fixing their effort at polishing the library.

-tk

On Fri, Nov 17, 2023 at 9:15 AM DR <[email protected]> wrote:

    Mr. Keffer brings up a point that I've been interested in as a
    student (practically from the beginning) of computer science
    starting back in the 1950s and 60s following what was a
    mathematical branch, but then into system and compilers.


    The question, sort of a diversion from the on topic discussion on
    WeeWx and what runs, is the philosophy behind upgrading compilers
    and OSs.  To some degree it hits WeeWx  developers as they upgrade
    but also need to make sure that old stuff, as much as it can, will
    run under new releases of compilers and interpreters.


    Tom did an upgrade pass on a driver for me that isn't widely used,
    but I wasn't smart enough to know what to change when Python 3
    came out.  The old Python statements were not incorporated into or
    changed significantly when 3 was released.

    Unless there is a major change (for instance a different database
    method, for crude example), why don't language developers support
    the old stuff so users aren't frustrated when they attempt to stay
    up to date but have legacy stuff they'd like to run.  I know
    Windows made and continues to make changes which are security
    related (we'd all be better off if there weren't nasty people out
    there, but there are).


    In this example I cannot see how no longer supporting "textsize"
    would represent a security risk or something that would be so
    important that the code maintainers wouldn't want to at least let
    old stuff run.  Yes, I have heard in the WeeWx discussions from
    the developers that changes to solve problems or make things
    better are being made.  And that is opening up new capabilities,
    but most of the time those changes don't seem to slam the door
    shut on upgrading, or having to choose to stay behind.


    Just a philosophical question, but this example brings out my
    curiosity as to how and why major deletions in capacity are made. 
    Eons ago when I worked on a system that used dBase (yes, I'm that
    old) one thing we did was to make sure that the old stuff ran
    under the new releases, as much as possible. It was just what we
    were told to do.  Anyway, you guys are so deep into this as part
    of your daily lives that I wonder if you have thoughts on the
    decision to not support 'textsize' as it used to be.  Sorry for
    the diversion, but it is part of programming, I guess. Dale




    On 11/15/2023 4:20 PM, Tom Keffer wrote:
    This is caused by upgrading to Pillow 10, which has removed the
    attribute "textsize". There have been several email threads about
    this. For example,
    https://groups.google.com/g/weewx-user/c/F1oLMD8_3MQ/m/Gir1m-9RAgAJ

    You can either downgrade Pillow to 9.x, or cherry pick the fix as
    described in the email thread, or use the beta of WeeWX V5.

    On Wed, Nov 15, 2023 at 12:30 PM Jonathan Ryshpan
    <[email protected]> wrote:

        I have removed six.py and weewx starts and generates usable
        web pages. However a new error now appears every minute,
        whenever the image generator is invoked. Any ideas?

        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine: Caught unrecoverable exception in
        generator 'weewx.imagegenerator.ImageGenerator'
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****  type object 'ImageDraw' has
        no attribute 'textsize'
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****  Traceback (most recent call
        last):
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****    File
        "/usr/share/weewx/weewx/reportengine.py", line 197, in run
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****      obj.start()
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****    File
        "/usr/share/weewx/weewx/reportengine.py", line 385, in start
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****      self.run()
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****    File
        "/usr/share/weewx/weewx/imagegenerator.py", line 42, in run
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****
             self.gen_images(self.gen_ts)
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****    File
        "/usr/share/weewx/weewx/imagegenerator.py", line 114, in
        gen_images
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****      image = plot.render()
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****              ^^^^^^^^^^^^^
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****    File
        "/usr/share/weewx/weeplot/genplot.py", line 212, in render
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****      self._renderBottom(draw)
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****    File
        "/usr/share/weewx/weeplot/genplot.py", line 404, in
        _renderBottom
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****      bottom_label_size =
        draw.textsize(self.bottom_label, font=bottom_label_font)
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****
                                 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****    File
        "/usr/share/weewx/weeplot/genplot.py", line 646, in textsize
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****      return
        ImageDraw.ImageDraw.textsize(self, string, **options)
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****  AttributeError: type object
        'ImageDraw' has no attribute 'textsize'
        Nov 15 07:04:16  python3[2233]: weewx[2233] ERROR
        weewx.reportengine:         ****  Generator terminated


        On Wed, 2023-11-15 at 04:48 -0800, [email protected] wrote:
        See: weewx doesn't start after upgrade to fedoar 39
        (google.com)
        <https://groups.google.com/g/weewx-user/c/PLYefyx2Pnw>

        On Wednesday, November 15, 2023 at 4:54:29 AM UTC-5 Jonathan
        Ryshpan wrote:
        On Wed, 2023-11-15 at 01:26 -0800, Jonathan Ryshpan wrote:
        I have just upgraded to Fedora 39 and weewx has stopped
        working. Initiation fails with the following messages. Any
        ideas what's wrong or how to investigate?


--
        Sincerely Jonathan Ryshpan <[email protected]>

        The mind is not a vessel to be filled
        but a fire to be kindled.
                -- Plutarch

-- You received this message because you are subscribed to the
        Google Groups "weewx-user" group.
        To unsubscribe from this group and stop receiving emails from
        it, send an email to [email protected].
        To view this discussion on the web visit
        
https://groups.google.com/d/msgid/weewx-user/3921f700d9a2661e91470e3806b601c59d9497b0.camel%40pacbell.net
        
<https://groups.google.com/d/msgid/weewx-user/3921f700d9a2661e91470e3806b601c59d9497b0.camel%40pacbell.net?utm_medium=email&utm_source=footer>.

-- You received this message because you are subscribed to the
    Google Groups "weewx-user" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected].
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/weewx-user/CAPq0zEBNVS%3DjE21SJ8hd5HBunwvpB8253Uju2NZM0ru_CJR1xw%40mail.gmail.com
    
<https://groups.google.com/d/msgid/weewx-user/CAPq0zEBNVS%3DjE21SJ8hd5HBunwvpB8253Uju2NZM0ru_CJR1xw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
-- You received this message because you are subscribed to the Google
    Groups "weewx-user" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected].
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/weewx-user/cf619a87-3e39-447f-941a-95d90ce51e21%40gmail.com
    
<https://groups.google.com/d/msgid/weewx-user/cf619a87-3e39-447f-941a-95d90ce51e21%40gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/CAPq0zEBkDYmHOFaXeZnWdmQVQKcW0eqnCsRs7417OtmN1LK%3DGQ%40mail.gmail.com <https://groups.google.com/d/msgid/weewx-user/CAPq0zEBkDYmHOFaXeZnWdmQVQKcW0eqnCsRs7417OtmN1LK%3DGQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/8729d766-1ceb-439a-9ae2-80b19fc0c159%40gmail.com.

Reply via email to