text:
Html.Attribute.contextmenu does not work

I found a example for contextmenu that from http://www.w3schools.com/tags/att_global_contextmenu.asp
This is my example code and it only work in FireFox:
import Html exposing (Html, Attribute)
import Html.Attributes

main : Html
main =
  Html.div
    [ Html.Attributes.style
        [ ("background", "yellow")
        , ("border", "1px solid #cccccc")
        , ("padding", "10px")
        ]
    , Html.Attributes.attribute "contextmenu" "mymenu"
    ]
    [ Html.p [] [ Html.text "Right-click inside this box to see the context menu!" ]
    , Html.menu
        [ Html.Attributes.attribute "type" "context"
        , Html.Attributes.id "mymenu"
        ]
        [ Html.menuitem
            [ Html.Attributes.attribute "label" "Refresh"
            , Html.Attributes.attribute "onclick" "window.location.reload();"
            , Html.Attributes.attribute "icon" "http://www.w3schools.com/tags/ico_reload.png"
            ]
            []
        , Html.menu
            [ Html.Attributes.attribute "label" "Share on.."
            ]
            [ Html.menuitem
                [ Html.Attributes.attribute "label" "Twitter"
                , Html.Attributes.attribute "icon" "http://www.w3schools.com/tags/ico_twitter.png"
                , Html.Attributes.attribute "onclick" "window.open('//twitter.com/intent/tweet?text=' + window.location.href);"
                ]
                []
            , Html.menuitem
                [ Html.Attributes.attribute "label" "Facebook"
                , Html.Attributes.attribute "icon" "http://www.w3schools.com/tags/ico_facebook.png"
                , Html.Attributes.attribute "onclick" "window.open('//facebook.com/sharer/sharer.php?u=' + window.location.href);"
                ]
                []
            ]
        , Html.menuitem
            [ Html.Attributes.attribute "label" "Email This Page"
            , Html.Attributes.attribute "onclick" "window.location='mailto:?body=' + window.location.href;"
            ]
            []
        ]
    ]

This is worke well for me, and I can found the contextmenu tag in DOM
But if I use Html.Attributes.contextmenu "mymenu" instead of Html.Attributes.attribute "contextmenu" "mymenu", I can't see any contextmenu tag in DOM.

This may be an issue where the HTML attribute does not match the JS property or something. The docs for the Html.Attributes library should explain the distinction between property and attribute in more detail. This also discusses it.
If you can find the spec for contextmenu it should say what the attribute name is and, if there is a property name, if it is different than the attribute. From there we can fix this in the library!

repo: evancz/elm-html


text:
Add put function for convenience

Putting should be as simple as GET and POST. I needed to submit a PUT for NRI prod and it took more work than I'd hope to write out the Http.send ensuring that all settings were right.

@strickinato I think we should have a delete as well, and possibly a patch, but I don't use patch much.

Looks good to me, thanks!

Why do you have a Json.Decoder as an argument? Is it common that you put something and get a response back with JSON in it?

@strickinato, why do you have a Json.Decoder as an argument? Is it common that you put something and get a response back with JSON in it?

I don't really know what this is saying exactly, but it looks like you can have a body, but that the body is pretty much never JSON.
Can you try to translate it into something easier to understand?
Would the following API support whatever output they are saying will be given?
put : String -> Body -> Task Error String

source: gharchive/pull-request

authors: codedmart evancz strickinato

repo: evancz/elm-http

license_type: permissive

license_source: bigquery


text:
Adds doc tests.

Adds doc tests
Updated unit tests to work with elm test 0.18.7
Fixes #42

Runs 18 existing unit tests and adds 18 doc tests.
> npm test
...
Running in generate mode..
...
TEST RUN PASSED

Duration: 36 ms
Passed:   36
Failed:   0

Will require a MINOR version bump to 2.1.0:
> elm package diff
Comparing evancz/url-parser 2.0.1 to local changes...
This is a MINOR change.

------ Changes to module UrlParser - MINOR ------

    Added:
        parseString : UrlParser.Parser (a -> a) a -> String -> Maybe.Maybe a

I added parseString because it:

allows cleaner testable examples
begins to decouple this library from elm-lang/navigation

The second point is of interest to me because I use a fork of this library outside of the browser (i.e. node running on AWS Lambda). The fork removes the dependency on elm-lang/navigation, but I would like to deprecate my fork and use evancz/url-parser instead.
This PR is part 1 to make that happen. Part 2 will come in a separate PR and will involves these changes. It would require a MAJOR version bump, but strangely would not break existing clients.
Whether or not part 2 gets considered, I believe this PR adds value. For example, in the process of writing the doc tests, I discovered a descrepancy between the documented behaviour and the actual behaviour of the string parser.

Does anything block this pull request?  I rely on the @ktonon fork until this PR merges.

authors: gaul ktonon

repo: evancz/url-parser


text:
Authentication for changing values

Is your feature request related to a problem? Please describe.
It's great to have the EVCC Dashboard available to everyone. However, it's possible for everyone to change the charging profiles and limits too.
Describe the solution you'd like
It'd be great to lock these features. Changing these values should only be possible when authenticated with the password provided.
Describe alternatives you've considered
Restrict access to the entire EVCC dashboard (with something like HTTP Basic Auth)

We already have the account system (admin password) in place. We could provide a user setting to require authentication for all endpoints. Right now, it's only required for accessing logs or changing configuration.
Can you be more specific on what you would like protected or not? Read-only mode? Should it be allowed for everyone to see charging situation and sessions/stats?

Thanks for the quick response. Yes, it'd be great to lock more functions behind the admin password.
Basically, a read-only mode would be great.
I'd love to see the configuration of  chargings protected. Like changing charging limits, the profiles (off/solar/fast), changing the wallbox settings (phases, current).

Ok, thanks for your clarification. Implementing this should not be too complicated. However, we've a lot of other topics right now.
For the meantime, the way to go would be to add basic auth via a reverse proxy.

source: gharchive/issue

authors: naltatis throny

repo: evcc-io/evcc

license: MIT

license_source: github-api


text:
Mode: now only charges with limited power

Describe the bug
Max charge current is limited randomly to around 10A the value of the effectiveMaxChargeCurrent is 16A. I also tried it wit 32A.
I cannot see anything in the logs.
What am I missing?
Steps to reproduce
activate mode: "fast"
Configuration details
network:
  schema: http
  host: evcc
  port: 7070

interval: 5s

database:
  type: sqlite
  dsn: /root/.evcc/settings.sqlite3

sponsortoken: *****
telemetry: true
plant: *****

# log settings
log: info
levels:
  site: debug
  lp-1: debug
  lp-2: debug
  cache: error
  db: error

# modbus proxy for allowing external programs to reuse the evcc modbus connection
# each entry will start a proxy instance at the given port speaking Modbus TCP and
# relaying to the given modbus downstream device (either TCP or RTU, RS485 or TCP)
modbusproxy:
  - port: 5200
    uri: 10.0.0.230:502

# meter definitions
# name can be freely chosen and is used as reference when assigning meters to site and loadpoints
# for documentation see https://docs.evcc.io/docs/devices/meters

#  - name: FroniusSmartMeter
#    type: custom
#    power:
#       source: modbus
#       id: 1
#       uri: 10.0.0.122:8899
#       rtu: true # rs485 device connected using ethernet adapter
#       register:
#         address: 40
#         type: holding #holding or input
#         decode: int32s # int16|32|64, uint16|32|64, float32|64 and u|int32s + float32s
#       scale: -0.1 # floating point factor applied to result, e.g. for kW to W conversion
#       timeout: 2s # timeout, without unit in ns

meters:
  - name: gen24_grid
    type: template
    template: fronius-gen24
    usage: grid
    host: 10.0.0.230
    port: 502

  - name: gen24_pv
    type: template
    template: fronius-gen24
    usage: pv
    host: 10.0.0.230
    port: 502

  - name: gen24_batt
    type: template
    template: sunspec-inverter-control
    usage: battery
    modbus: tcpip
    id: 1
    host: 10.0.0.230
    port: 502

# charger definitions
# name can be freely chosen and is used as reference when assigning charger to vehicle
# for documentation see https://docs.evcc.io/docs/devices/chargers
chargers:
  - name: WattPilot_22
    type: template
    template: fronius-wattpilot
    host: 10.0.0.120
    password: *****

#chargers:
#  - name: WattPilot_11
#    type: template
#    template: fronius-wattpilot
#    host: 10.0.0.120
 #   password: *****

# vehicle definitions
# name can be freely chosen and is used as reference when assigning vehicle to loadpoint
# for documentation see https://docs.evcc.io/docs/devices/vehicles
vehicles:
  - name: ZOE_blau
    type: template
    template: renault
    title: ZOE blau
    user: *****
    password: *****
    vin: *****
    capacity: 43
    minCurrent: 10
    # mode: pv
    priority: 5

  - name: ZOE_hellgrau
    type: template
    template: renault
    title: ZOE hellgrau
    user: *****
    password: *****
    vin: *****
    capacity: 53
    minCurrent: 10
    # mode: pv
    priority: 4

# site describes the EVU connection, PV and home battery
site:
  title: Zuhause
  meters:
    grid:    gen24_grid
    pv:      gen24_pv
    battery: gen24_batt
  residualPower: 400
  maxGridSupplyWhileBatteryCharging: 50

# loadpoint describes the charger, charge meter and connected vehicle
loadpoints:
  - title: Garage
    charger: WattPilot_22
    mode: "pv"
    vehicle: ZOE_blau
    phases: 0

    # remaining settings are experts-only and best left at default values
    priority: 5 # relative priority for concurrent charging in PV mode with multiple loadpoints (higher values have higher priority)
    soc:
      # polling defines usage of the vehicle APIs
      # Modifying the default settings it NOT recommended. It MAY deplete your vehicle's battery
      # or lead to vehicle manufacturer banning you from API use. USE AT YOUR OWN RISK.
      poll:
        # poll mode defines under which condition the vehicle API is called:
        #   charging: update vehicle ONLY when charging (this is the recommended default)
        #   connected: update vehicle when connected (not only charging), interval defines how often
        #   always: always update vehicle regardless of connection state, interval defines how often (only supported for single vehicle)
        mode: always
        # poll interval defines how often the vehicle API may be polled if NOT charging
        interval: 30m
      estimate: true # set false to disable interpolating between api updates (not recommended)
    enable: # pv mode enable behavior
      delay: 1m # threshold must be exceeded for this long
      threshold: -2300 # grid power threshold (in Watts, negative=export). If zero, export must exceed minimum charge power to enable
    disable: # pv mode disable behavior
      delay: 3m # threshold must be exceeded for this long
      threshold: 700 # maximum import power (W)
    guardDuration: 5m # switch charger contactor not more often than this (default 5m)

# influx database
influx:
   url: http://influx:8086
   database: evcc
   token: *****
   org: Biohof_Stadler

# push messages
messaging:
  events:
    start: # charge start event
      title: Charge started
      msg: Started charging in "${mode}" mode
    stop: # charge stop event
      title: Charge finished
      msg: Finished charging ${chargedEnergy:%.1fk}kWh in ${chargeDuration}.
    connect: # vehicle connect event
      title: Car connected
      msg: "Car connected at ${pvPower:%.1fk}kW PV"
    disconnect: # vehicle connected event
      title: Car disconnected
      msg: Car disconnected after ${connectedDuration}
    soc: # vehicle soc update event
      title: Soc updated
      msg: Battery charged to ${vehicleSoc:%.0f}%
    guest: # vehicle could not be identified
      title: Unknown vehicle
      msg: Unknown vehicle, guest connected?
  services:
  # - type: pushover
  #   app: *****
  #   recipients: *****
  #   - # list of recipient ids
  # - type: telegram
  #   token: *****
  #   chats: *****
  #   - # list of chat ids
  # - type: email
  #   uri: smtp://<user: *****
  # - type: ntfy
  #   uri: https://<host>/<topics>
  #   priority: <priority>
  #   tags: <tags>

Version: `0.131.8``

Log details
[site ] DEBUG 2024/12/07 16:05:06 ----
[lp-1 ] DEBUG 2024/12/07 16:05:06 charge power: 4976W
[lp-1 ] DEBUG 2024/12/07 16:05:06 charge currents: [9.27 9.31 9.27]A
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 0b 00 00 00 06 01 03 9d 3f 00 08
[influx] TRACE 2024/12/07 16:05:06 write chargePower=map[value:4976.44] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write chargeCurrents=map[l1:9.27 l2:9.31 l3:9.27] (map[loadpoint:Garage vehicle:ZOE blau])
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 0b 00 00 00 13 01 03 10 ff fd ff fe 00 00 ff fe ff ff ff ff 00 04 ff ff
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 0c 00 00 00 06 01 03 9d 47 00 14
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 0c 00 00 00 2b 01 03 28 00 01 4d 50 50 54 20 31 00 00 00 00 00 00 00 00 00 00 00 45 7e e7 00 16 1b 87 23 c8 2e e7 20 a2 80 00 ff ff ff ff ff ff
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 0d 00 00 00 06 01 03 9d 3f 00 08
[sunspec] TRACE 2024/12/07 16:05:06 model 160 block 1 point DCW: 22
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 0d 00 00 00 13 01 03 10 ff fd ff fe 00 00 ff fe ff ff ff ff 00 04 ff ff
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 0e 00 00 00 06 c8 03 9c 87 00 69
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 0e 00 00 00 d5 c8 03 d2 ce 50 cd 88 19 a0 e7 28 ff fd 09 21 09 28 09 17 09 25 0f d0 0f e1 0f ca 0f c4 ff ff 13 88 ff fe 01 60 f8 6b 11 56 f7 a0 ff ff 16 e2 0b 6b 05 da 05 9c 00 00 e9 78 f4 9b fa 6a fa 74 00 00 00 01 ff b9 01 24 ff 65 ff ff aa f7 6a fc 00 00 00 00 00 00 00 00 00 00 00 00 52 8b d0 ec 00 00 00 00 00 00 00 00 00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 0f 00 00 00 06 01 03 9d 3f 00 08
[sunspec] TRACE 2024/12/07 16:05:06 model 203 block 0 point W: 35.2
[site ] DEBUG 2024/12/07 16:05:06 grid power: 35W
[influx] TRACE 2024/12/07 16:05:06 write gridPower=map[value:35.2] (map[])
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 0f 00 00 00 13 01 03 10 ff fd ff fe 00 00 ff fe ff ff ff ff 00 04 ff ff
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 10 00 00 00 06 01 03 9d 6f 00 14
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 10 00 00 00 2b 01 03 28 00 03 53 74 43 68 61 20 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e e7 20 a2 80 00 ff ff ff ff ff ff
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 11 00 00 00 06 c8 03 9c 87 00 69
[sunspec] TRACE 2024/12/07 16:05:06 model 160 block 3 point DCW: 0
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 11 00 00 00 d5 c8 03 d2 ce 50 cd 88 19 a0 e7 28 ff fd 09 21 09 28 09 17 09 25 0f d0 0f e1 0f ca 0f c4 ff ff 13 88 ff fe 01 60 f8 6b 11 56 f7 a0 ff ff 16 e2 0b 6b 05 da 05 9c 00 00 e9 78 f4 9b fa 6a fa 74 00 00 00 01 ff b9 01 24 ff 65 ff ff aa f7 6a fc 00 00 00 00 00 00 00 00 00 00 00 00 52 8b d0 ec 00 00 00 00 00 00 00 00 00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 12 00 00 00 06 01 03 9d 5b 00 14
[sunspec] TRACE 2024/12/07 16:05:06 model 203 block 0 point WphA: -194.10000000000002
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 12 00 00 00 2b 01 03 28 00 02 4d 50 50 54 20 32 00 00 00 00 00 00 00 00 00 00 00 32 ab f7 00 16 18 ab 34 98 2e e7 20 a2 80 00 ff ff ff ff ff ff
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 13 00 00 00 06 01 03 9d 3f 00 08
[sunspec] TRACE 2024/12/07 16:05:06 model 160 block 2 point DCW: 22
[site ] DEBUG 2024/12/07 16:05:06 pv power: 44W
[influx] TRACE 2024/12/07 16:05:06 write pvPower=map[value:44] (map[])
[influx] TRACE 2024/12/07 16:05:06 write pvEnergy=map[value:0] (map[])
[influx] TRACE 2024/12/07 16:05:06 write pvPower=map[value:44] (map[id:1])
[influx] TRACE 2024/12/07 16:05:06 write pvEnergy=map[value:0] (map[id:1])
[influx] TRACE 2024/12/07 16:05:06 write pvExcessDCPower=map[value:0] (map[id:1])
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 13 00 00 00 13 01 03 10 ff fd ff fe 00 00 ff fe ff ff ff ff 00 04 ff ff
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 14 00 00 00 06 c8 03 9c 87 00 69
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 14 00 00 00 d5 c8 03 d2 ce 50 cd 88 19 a0 e7 28 ff fd 09 21 09 28 09 17 09 25 0f d0 0f e1 0f ca 0f c4 ff ff 13 88 ff fe 01 60 f8 6b 11 56 f7 a0 ff ff 16 e2 0b 6b 05 da 05 9c 00 00 e9 78 f4 9b fa 6a fa 74 00 00 00 01 ff b9 01 24 ff 65 ff ff aa f7 6a fc 00 00 00 00 00 00 00 00 00 00 00 00 52 8b d0 ec 00 00 00 00 00 00 00 00 00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 15 00 00 00 06 01 03 9d 83 00 14
[sunspec] TRACE 2024/12/07 16:05:06 model 203 block 0 point WphB: 443.8
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 15 00 00 00 2b 01 03 28 00 04 53 74 44 69 73 43 68 61 20 34 00 00 00 00 00 00 35 92 c4 3f 1a e6 16 ad 0d b0 2e e7 20 a2 80 00 ff ff ff ff ff ff
[sunspec] TRACE 2024/12/07 16:05:06 model 160 block 4 point DCW: 6886
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 16 00 00 00 06 c8 03 9c 87 00 69
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 16 00 00 00 d5 c8 03 d2 ce 50 cd 88 19 a0 e7 28 ff fd 09 21 09 28 09 17 09 25 0f d0 0f e1 0f ca 0f c4 ff ff 13 88 ff fe 01 60 f8 6b 11 56 f7 a0 ff ff 16 e2 0b 6b 05 da 05 9c 00 00 e9 78 f4 9b fa 6a fa 74 00 00 00 01 ff b9 01 24 ff 65 ff ff aa f7 6a fc 00 00 00 00 00 00 00 00 00 00 00 00 52 8b d0 ec 00 00 00 00 00 00 00 00 00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00
[sunspec] TRACE 2024/12/07 16:05:06 model 203 block 0 point WphC: -214.4
[site ] DEBUG 2024/12/07 16:05:06 grid powers: [-194 444 -214]W
[influx] TRACE 2024/12/07 16:05:06 write gridPowers=map[l1:-194.10000000000002 l2:443.8 l3:-214.4] (map[])
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 17 00 00 00 06 01 03 9d 3f 00 08
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 17 00 00 00 13 01 03 10 ff fd ff fe 00 00 ff fe ff ff ff ff 00 04 ff ff
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 18 00 00 00 06 01 03 9d 83 00 14
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 18 00 00 00 2b 01 03 28 00 04 53 74 44 69 73 43 68 61 20 34 00 00 00 00 00 00 35 92 c4 3f 1a e6 16 ad 0d b0 2e e7 20 a2 80 00 ff ff ff ff ff ff
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 19 00 00 00 06 c8 03 9c 87 00 69
[sunspec] TRACE 2024/12/07 16:05:06 model 160 block 4 point DCWH: 3.80439984e+06
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 19 00 00 00 d5 c8 03 d2 ce 50 cd 88 19 a0 e7 28 ff fd 09 21 09 28 09 17 09 25 0f d0 0f e1 0f ca 0f c4 ff ff 13 88 ff fe 01 60 f8 6b 11 56 f7 a0 ff ff 16 e2 0b 6b 05 da 05 9c 00 00 e9 78 f4 9b fa 6a fa 74 00 00 00 01 ff b9 01 24 ff 65 ff ff aa f7 6a fc 00 00 00 00 00 00 00 00 00 00 00 00 52 8b d0 ec 00 00 00 00 00 00 00 00 00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00
[sunspec] TRACE 2024/12/07 16:05:06 model 203 block 0 point AphA: -12.92
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 1a 00 00 00 06 01 03 9d 99 00 18
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 1a 00 00 00 33 01 03 30 64 00 00 64 00 64 00 00 ff ff 03 e8 06 cc ff ff ff ff 00 03 27 10 27 10 ff ff 00 00 ff ff 00 00 00 00 00 00 80 00 ff fe ff fe 80 00 80 00 ff fe
[sunspec] TRACE 2024/12/07 16:05:06 model 124 block 0 point ChaState: 17.400000000000002
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 1b 00 00 00 06 c8 03 9c 87 00 69
[site ] DEBUG 2024/12/07 16:05:06 battery soc: 17%
[site ] DEBUG 2024/12/07 16:05:06 battery power: 6886W
[influx] TRACE 2024/12/07 16:05:06 write batteryCapacity=map[value:1] (map[])
[influx] TRACE 2024/12/07 16:05:06 write batterySoc=map[value:17.400000000000002] (map[])
[influx] TRACE 2024/12/07 16:05:06 write batteryPower=map[value:6886] (map[])
[influx] TRACE 2024/12/07 16:05:06 write batteryEnergy=map[value:3804.39984] (map[])
[influx] TRACE 2024/12/07 16:05:06 write batteryPower=map[value:6886] (map[id:1])
[influx] TRACE 2024/12/07 16:05:06 write batteryEnergy=map[value:3804.39984] (map[id:1])
[influx] TRACE 2024/12/07 16:05:06 write batterySoc=map[value:17.400000000000002] (map[id:1])
[influx] TRACE 2024/12/07 16:05:06 write batteryCapacity=map[value:0] (map[id:1])
[influx] TRACE 2024/12/07 16:05:06 write batteryControllable=map[value:true] (map[id:1])
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 1b 00 00 00 d5 c8 03 d2 ce 50 cd 88 19 a0 e7 28 ff fd 09 21 09 28 09 17 09 25 0f d0 0f e1 0f ca 0f c4 ff ff 13 88 ff fe 01 60 f8 6b 11 56 f7 a0 ff ff 16 e2 0b 6b 05 da 05 9c 00 00 e9 78 f4 9b fa 6a fa 74 00 00 00 01 ff b9 01 24 ff 65 ff ff aa f7 6a fc 00 00 00 00 00 00 00 00 00 00 00 00 52 8b d0 ec 00 00 00 00 00 00 00 00 00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00
[sunspec] TRACE 2024/12/07 16:05:06 model 203 block 0 point AphB: 6.5600000000000005
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 1c 00 00 00 06 c8 03 9c 87 00 69
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 1c 00 00 00 d5 c8 03 d2 ce 50 cd 88 19 a0 e7 28 ff fd 09 21 09 28 09 17 09 25 0f d0 0f e1 0f ca 0f c4 ff ff 13 88 ff fe 01 60 f8 6b 11 56 f7 a0 ff ff 16 e2 0b 6b 05 da 05 9c 00 00 e9 78 f4 9b fa 6a fa 74 00 00 00 01 ff b9 01 24 ff 65 ff ff aa f7 6a fc 00 00 00 00 00 00 00 00 00 00 00 00 52 8b d0 ec 00 00 00 00 00 00 00 00 00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00
[sunspec] TRACE 2024/12/07 16:05:06 model 203 block 0 point AphC: -6.36
[site ] DEBUG 2024/12/07 16:05:06 grid currents: [-12.9 6.56 -6.36]A
[influx] TRACE 2024/12/07 16:05:06 write gridCurrents=map[l1:-12.92 l2:6.5600000000000005 l3:-6.36] (map[])
[sunspec] TRACE 2024/12/07 16:05:06 modbus: send ba 1d 00 00 00 06 c8 03 9c 87 00 69
[sunspec] TRACE 2024/12/07 16:05:06 modbus: recv ba 1d 00 00 00 d5 c8 03 d2 ce 50 cd 88 19 a0 e7 28 ff fd 09 21 09 28 09 17 09 25 0f d0 0f e1 0f ca 0f c4 ff ff 13 88 ff fe 01 60 f8 6b 11 56 f7 a0 ff ff 16 e2 0b 6b 05 da 05 9c 00 00 e9 78 f4 9b fa 6a fa 74 00 00 00 01 ff b9 01 24 ff 65 ff ff aa f7 6a fc 00 00 00 00 00 00 00 00 00 00 00 00 52 8b d0 ec 00 00 00 00 00 00 00 00 00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00
[sunspec] TRACE 2024/12/07 16:05:06 model 203 block 0 point TotWhImp: 1.3848947e+07
[site ] DEBUG 2024/12/07 16:05:06 site power: 7321W
[influx] TRACE 2024/12/07 16:05:06 write gridEnergy=map[value:13848.947] (map[])
[influx] TRACE 2024/12/07 16:05:06 write homePower=map[value:1988.7600000000002] (map[])
[lp-1 ] DEBUG 2024/12/07 16:05:06 detected active phases: 3p
[influx] TRACE 2024/12/07 16:05:06 write phasesActive=map[value:3] (map[loadpoint:Garage vehicle:ZOE blau])
[lp-1 ] DEBUG 2024/12/07 16:05:06 charger status: C
[influx] TRACE 2024/12/07 16:05:06 write chargeCurrent=map[value:16] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write sessionEnergy=map[value:13405.825037457591] (map[loadpoint:Garage vehicle:ZOE blau])
[lp-1 ] DEBUG 2024/12/07 16:05:06 soc estimated: 87.27% (vehicle: 87.00%)
[lp-1 ] DEBUG 2024/12/07 16:05:06 vehicle soc: 87%
[lp-1 ] DEBUG 2024/12/07 16:05:06 vehicle range: 156km
[influx] TRACE 2024/12/07 16:05:06 write sessionSolarPercentage=map[value:41.57613413414018] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write chargedEnergy=map[value:13405.825037457591] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write effectivePriority=map[value:5] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write effectivePlanSoc=map[value:0] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write effectiveMinCurrent=map[value:10] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write effectiveMaxCurrent=map[value:16] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write effectiveLimitSoc=map[value:95] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write vehicleSoc=map[value:87.27316082149436] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write chargeRemainingEnergy=map[value:3312.254067021726] (map[loadpoint:Garage vehicle:ZOE blau])
[influx] TRACE 2024/12/07 16:05:06 write greenShareHome=map[value:1] (map[])
[influx] TRACE 2024/12/07 16:05:06 write greenShareLoadpoints=map[value:0.9929266704712606] (map[])

What type of operating system are you running?
Linux
Nightly build

[X] I have verified that the issue is reproducible with the latest nightly build

Version
Version: 0.131.8

Does the log show the issue?

authors: andig stadlaa


text:
Poll charging

Fix https://github.com/evcc-io/evcc/issues/4220

Changed default Poll Mode in case of an wrong configuration, to documented default
Added special case for poll mode charging(), to force last correct API poll.

EiEiEi ich entschuldige mich jetzt schon mal das hier nichts stimmt.

Added special case for poll mode charging(), to force last correct API poll.

Sehr schöne Idee! Kann aber potenziell für immer laufen? Oder???

@premultiply gefällt mir sehr gut- ausprobieren?

Added special case for poll mode charging(), to force last correct API poll.

Sehr schöne Idee! Kann aber potenziell für immer laufen? Oder???

Also wenn ich den sourcecode richtig sehe, kann es maximal, den charging mode auf den connected mode heben. Das aber auch nur, wenn das auto intern irgendwie auf 80% eingestellt ist und EVCC auf 100%. ich halte die nebenwirkungen für überschaubar.

Also unsicher wäre ich nur bei dem CAST. Kann man für die 100% == 100% einen unittest schreiben?

Lass uns das einfach mal ausprobieren.
/cc @premultiply

Ich bin nicht so schnell ;)

authors: Hofyyy andig premultiply


text:
Easee: do not treat completed charge as disabled state

Currently we consider a completed state a disable state.
This does not match the loadpoint, which considers this an enabled state.
The effect is that once charge is completed, loadpoint continuously reports charger out of sync (expected enabled, got disabled) and starts / resumes the charge permanently (which is a NoOp). This change prevents either from happening when the charge completes.

As said before: any of this is black voodoo. We should imho just report back what the loadpoint has set before. If it doesn't match, the loadpoint will fix it within one cycle.

As said before: any of this is black voodoo. We should imho just report back what the loadpoint has set before. If it doesn't match, the loadpoint will fix it within one cycle.

I hear you. What I am failing to understand though is what the purpose of that whole field on the charger is then. If we were to change like you suggest, it merely becomes a field for the loadpoint to store its prior decision.
Right now it is a way for the loadpoint to learn about the physical reality of the situation. Especially important in situations where for whatever reason the charger acts on its own, or when we lack any state due to a restart of evcc while a charge is on-going.
Changing this means we are effectively loosing information that helps us make decisions in the loadpoint, aren't we?
I also cannot align this with the fact, that during startup the loadpoint explicitly reads the charger's enabled state (see loadpoint.Prepare()). If we really dumb this down to just a boolean field as you suggest, then the code in Prepare() does not make sense either, as on boot up the enabled state of any charger will always be disabled.

What I am failing to understand though is what the purpose of that whole field on the charger is then.

Es ist wie an der Grenze. Ist die Schranke zu, kann kein Auto fahren. Ist die Schranke auf heisst dass noch lange nicht, dass die erlaubten 6-16 A(utos) (Analogie Strombegrenzung) dann auch wirklich fahren...

If we were to change like you suggest, it merely becomes a field for the loadpoint to store its prior decision.

Genau. Aber das ist ein Defizit der Easee, nicht des Loadpoints. Und mit den Authentifizierung kann die Easee es ja anscheinend auch auf gewisse Weise...

What I am failing to understand though is what the purpose of that whole field on the charger is then.

Es ist wie an der Grenze. Ist die Schranke zu, kann kein Auto fahren. Ist die Schranke auf heisst dass noch lange nicht, dass die erlaubten 6-16 A(utos) (Analogie Strombegrenzung) dann auch wirklich fahren...

OK, dann ist aber die aktuelle Implementierung  ganz gut, denn sie sagt uns zumindest ob die Schranke auf oder zu ist.

If we were to change like you suggest, it merely becomes a field for the loadpoint to store its prior decision.

Genau. Aber das ist ein Defizit der Easee, nicht des Loadpoints. Und mit den Authentifizierung kann die Easee es ja anscheinend auch auf gewisse Weise...

Wenn ich mir die anderen Implementierungen von Charger.Enabled() anschaue, sehe ich auch dort wie Register gelesen werden und andere Logiken. Genau das selbe machen wir für die Easee - ich verstehe nicht warum das dort richtig ist, und hier nicht.
Zusätzlich erneut der Hinweis auf das Verhalten des Loadpoint beim Start. Auch das passt nicht zu einem "dummen" Boolean. Da wird doch erwartet das man einen aktuellen Zustand bekommt.

Nein, das hinkt. Du schaust bei der Easee ob grad einer fährt. Wenn nein behauptest Du die Schranke sei zu. Du kannst das Fahren aber nicht verbieten wie evcc das glaubt/erwartet. Da du es also eh nicht weisst kannst Du evcc auch gleich seine Ansage zurück spiegeln. Das sind zwei Codezeilen ohne Verlust von Funktion- wie gesagt plus/minus Authentifizierungsmodus. Lass uns gerne nochmal telen…
Ad Register: das interessante ist hab Enable, nicht Enabled. Ersteres steuert die Schranke. Und das gibts bei Easee einfach nicht.

Zustände bekommt man über Status().
Enabled() ist das Pendant zum Rücklesen der zuvor eingestellten Strombegrenzung.
Es wird somit nur kontrolliert ob der Charger den Willen empfangen bzw. verstanden hat.
Das ist wie mit dem Kind dem du sagst:
"Du darfst das nicht!" (Enable: false) Dann fragst du direkt: "Darfst du das?" Dann sagt das Kind: "Ich darf das nicht!" (Enabled: false)
Kurze Zeit später siehst du dass das Kind es trotzdem macht (Status: C).
Wenn du jetzt fragst: "Darfst du das?"
Wäre die falsche Antwort: "Selbstverständlich, es wurde mir ausdrücklich selbst gestattet!"

OK, danke erstmal Euch beiden. Jetzt habe ich zumindest verstanden wie das ganze gedacht ist.
Dann macht das dynamische beurteilen via OpMode in der Tat keinen Sinn.
Ich baue das hier morgen mal zu einem stumpfen Boolean um. Auf den ersten Blick sollte das auch keinen Unterschied machen, weil syncCharger() über den Status erkennt wenn geladen wird (auch wenn disabled im Boolean steht). Das wäre eine nette Vereinfachung.

Das wäre eine nette Vereinfachung.

Genau. Und den Bool kann der Loadpoint dann im Gegensatz zum Opmode auch beeinflussen und die Fehlermeldung verschwindet damit auch :)

Jetzt fehlt noch der Sonderfall mit Authebtifizierung? Oder machen wir das analog? Sonst rein damit?

Jetzt fehlt noch der Sonderfall mit Authebtifizierung? Oder machen wir das analog? Sonst rein damit?

Das machen wir analog. Soweit ich es überblicke braucht es keine extra Behandlung.
Ich konnte gestern nicht testen, daher bin ich unsicher ob wir schon morgen wollen.

Ich warte gerne auf ein bisschen Test wenn Du den noch geplant hast.

Gerade getestet. Funktioniert, aber nach einem Neustart hängen wir jetzt im Zustand "Charger Logic error" fest, weil der Charger nie ein Enabled(true) bekommt.
Die Erklärung dazu ist auch relativ einfach, syncCharger() erkennt die Abweichung (LP disabled, but charging), und enabled den Loadpoint. Bei der späteren Entscheidung im Loadpoint ob der Charger aktiviert werden muß, wird aber nicht auf den Zustand des Chargers selbst geschaut.
https://github.com/evcc-io/evcc/blob/576a680aeee7ea0db472f027e648ebd8f2947b9c/core/loadpoint.go#L727
Dieses Problem ist also nicht Easee spezifisch, sondern dürfte alle Charger betreffen die Ihren Enabled() Wert nicht gegen die Hardware prüfen können. Wir könnten hier also auch zu machen und morgen, und dann ein neues Issue mit dieser Beobachtung eröffnen.
Optionen für einen Fix im Loadpoint die mir spontan einfallen:

syncCharger() erweitern, so daß bei erkannter Ladung nicht nur der Loadpoint sondern auch der Charger enabled wird. (Sollte physikalisch auf dem Charger ein No-Op sein, sorgt aber für sauberen state im Charger)
Oben gezeigte Abfrage noch durch || lp.charger.Enabled() != lp.enabled erweitern, um dann so den Charger.Enable() auszulösen.

Also der fehlende Case ist dann: Box lädt, schickt aber noch enabled=false? Den sollten wir dann global- idealerweise in syncCharger behandeln (und mit einem Testcase versehen).

Also der fehlende Case ist dann: Box lädt, schickt aber noch enabled=false?

Exakt. Besser neues issue dafür, oder?

Gerne neuer PR- dieser hängt allerdings davon ab.

Die Kombination sollten wir jetzt mal ein wenig abhängen lassen.

authors: GrimmiMeloni andig premultiply


text:
mass import option

in order to populate the list we need a way to mass import names that are already blacklisted

Ok. What's your favorite way to do it?

I know we used .csv before
if that is the least effort to use for your bot, then let's use .csv
author, date auto generated if possible, the same author and date for all entries coming with a single mass import
example format
name, id, reason
Super Bob, 1234, test1,
Pilot Bob, 1235, test2,

This next
Formats tend to change over time. So this thing is doomed to break when we change fields set. So let's do this
I will implement this, but it will break and produce error message if the number of required fields change

Hmmmm @SupremeBob there's this thing
bobby tables joke
A name with a comma will violate your input. But we are yet to see a name like that. Going on with the format?

I see, what format do you recommend?

Any separator. It loops lines till it finds one starting with pilot name

repo: eve-echoes-botting/blocklistbot


text:
Ping Link to pingomatic.com

please Add Ping Link To PingOMatic and More.
wordpress use ping for links (https://codex.wordpress.org/Update_Services)
this good for index link.

I'm not sure exactly how this applies to this project. This project is only for generating sitemap.xml files programmatically.

repo: evert/sitemap-php

license: mit


text:
Update actions/download-artifact to v4

Current behavior
Currently using v3
Suggested enhancement
No response
Additional context
No response

:tada: This issue has been resolved in version 2.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

repo: eviden-actions/download-artifact


text:
[Bug]: Column with all null values causes npm run sources to fail for that source query

Describe the bug
"Processing...Error: IO Error: Parquet file is likely corrupted, cannot have dictionary offsets without seeing a non-empty dictionary first."
Steps to Reproduce

evidence v40.0.1
npm run sources for a table that has at least one column with all null values

Logs
browser console: "Manifest: Line: 1, column: 1, Syntax error."

System Info
System:
    OS: macOS 15.1.1
    CPU: (14) arm64 Apple M3 Max
    Memory: 3.11 GB / 36.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.12.2 - ~/.asdf/installs/nodejs/20.12.2/bin/node
    Yarn: 1.22.22 - ~/.asdf/installs/nodejs/20.12.2/bin/yarn
    npm: 10.8.3 - ~/.asdf/plugins/nodejs/shims/npm
  Browsers:
    Chrome: 131.0.6778.109
    Safari: 18.1.1
  npmPackages:
    @evidence-dev/bigquery: ^2.0.9 => 2.0.9
    @evidence-dev/core-components: ^5.0.1 => 5.0.1
    @evidence-dev/csv: ^1.0.14 => 1.0.14
    @evidence-dev/databricks: ^1.0.8 => 1.0.8
    @evidence-dev/duckdb: ^1.0.13 => 1.0.13
    @evidence-dev/evidence: ^40.0.1 => 40.0.1
    @evidence-dev/motherduck: ^1.0.4 => 1.0.4
    @evidence-dev/mssql: ^1.1.2 => 1.1.2
    @evidence-dev/mysql: ^1.1.4 => 1.1.4
    @evidence-dev/postgres: ^1.0.7 => 1.0.7
    @evidence-dev/snowflake: ^1.2.2 => 1.2.2
    @evidence-dev/sqlite: ^2.0.7 => 2.0.7
    @evidence-dev/trino: ^1.0.9 => 1.0.9
    autoprefixer: ^10.4.20 => 10.4.20
    postcss: ^8.4.47 => 8.4.49
    tailwindcss: ^3.4.13 => 3.4.16

Severity
blocking all usage of Evidence
Additional Information, or Workarounds
seems to be causing downstream build to fail not just for that query and downstream pages, but all pages

I cannot replicate this with DuckDB, so I suspect this must be related to the specific plugin connector you are using
orders_with_nulls.sql
select
    *,
    null as null_column
from orders

index.md
```sql orders_with_nulls
from needful_things.orders_with_nulls
```

<DataTable data={orders_with_nulls}/>

Result: works in dev, builds

Kk. We're sourcing from a MySQL database. I'll provide more details as soon as I can.

try selecting from an all null column of type date
db: MySQL 8.0.33
row #: ~12000
query: select my_col from table
@archiewood

date (yyyy-MM-dd) is the only type i've seen causing this so far, when all values in that column are null

replicated in template project using duckdb connector and this sample source query orders_with_nulls.sql
select
    *,
    null::date as null_date
from orders

authors: archiewood kennan-simpliphy

repo: evidence-dev/evidence


text:
:sparkles: feat: Start adding LSP

Description

Add some basic boilerplate for building a LSP plugin

Testing
Nothing is actually implemented yet
Additional Information

[ ] I read the contributing docs (if this is your first contribution)

Your ENS/address:

Current dependencies on/for this PR:

main

PR #231   👈

This comment was auto-generated by Graphite.

repo: evmts/evmts-monorepo


text:
Samsung S8+ Android 8.0 Background FCM Push - Android Robot Icon

RN version: 0.50.3
RN FCM version: 16.0.0
Issue:
Tested with other Android phone is OK.
Tested with Samsung S8+

Foreground FCM => Have valid icon
Background FCM => Shows Android Robot icon

"Background FCM" is it remote notification?

yes, remote notification

have you added default icon in manifest file? or add "icon" prop in notification payload?

seems fixed by using a proper notification icon (black / white PNG)

authors: VansonLeung evollu

repo: evollu/react-native-fcm


text:
Update scala-library to 2.13.7

Updates org.scala-lang:scala-library from 2.13.4 to 2.13.7.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.13.4).
You might want to review and update them manually.
.github/workflows/ci.yml

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala-library" } ]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains

Superseded by #100.

repo: evolution-gaming/sstream


text:
Fix redirect for /utils/esl-utils/

The permalink for /utils/esl-utils/ was added

:tada: This PR is included in version 4.1.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

authors: Natalie-Smirnova ala-n

repo: exadel-inc/esl


text:
Database migration

Updated the checking procedure

Added/adjusted the comments.

repo: exasol/database-migration


text:
support background removal for images

Support removing background from images that don't have alpha channel by themselves. Something like photoshop quick selection or magic wand selection.
Originally suggested by @vjeux

https://www.remove.bg

https://twitter.com/Vjeux/status/1472633393737351173
Also we could add support for contiguous pixel matching (via a keyboard modifier).

authors: dwelle lipis

repo: excalidraw/excalidraw


text:
[feature request] Group library items + wider panel

Public libraries are great, but mixing all drawings in a common 4-wide column panel might be too much.
It would be great if by default imported libraries would be grouped by name as in this mock up:

Default library with for non-grouped items

Maybe there could be another group sorted by last used (ignoring all groupings)

Be able to toggle open/close groups, great for focus and performance (no more scrolling over +100)

https://github.com/excalidraw/excalidraw/issues/6872
Maybe two simple collapse/expand all buttons + I would remenber expansion state

Probably integrate with the selection feature with an additional option like "Group by". Then something as simple as a raw string could be used (nothing to ungroup).

A fancier drop menu with existing, "-remove" and "+new" (with a modal input box)
Would implement a subset of https://github.com/excalidraw/excalidraw/issues/6802 (Search by name seems a bit overkill imo)

Another thing about the panel that I feel lacking is the space available, e.g. for my 27" I could add more columns. Here I edited the CSS to go from 4 to 6, but the perfect solution would be a resizable dynamic panel:

Given the panel small size it rearely overlaps the toolbar when open, so personally I would avoid moving back and forth the toolbar relative to the panel.

When there is no space, it already goes over it.

+1

+1

+1

+1

authors: Mrsevic alex-titarenko dimateos eudu mahmoudmagdy-7


text:
Excalidraw+ not opening in PWA

Hi! ,
I was using the Excalidraw PWA and earlier I was able to open and see the files as well as have the entire functionality of Excalidraw+ in the PWA. However, with the upgrade to Google Chrome version: 116.0.5845.179, only Excalidraw opens in PWA and in case of clicking on the Excalidraw+ it is taking me to the browser instead of PWA.

Hi! Earlier I used to open the PWA and within the PWA I had the left Nav with all the files. It would also show the dashboard, Libraries etc. within the PWA itself. I could switch between the files in the PWA from the left nav.
Now since yesterday, only the current file is opening in the Excalidraw PWA. I cannot see the dashboard or switch between the files. I have not changed anything on the preferences or settings. If I click on the Excalidraw+ at the bottom of the screen it is now taking me to the Chrome Browser.

Hi @jaideepkaramchandani 👋🏻 I think there is some misunderstanding, PWA support hasn't been added to Excalidraw+ yet so it wouldn't work. Excalidraw has PWA support. Can you elaborate on which functionality you are trying out that was supported earlier and now isn't?

The only reason I purchased Excalidraw+ is because of the PWA for Excalidraw.  It's really important to me that my tools don't get lost in browser tabs.  Currently, Excalidraw has higher value to me than Excalidraw+ for that reason -- and Excalidraw is free.

Hi @ad1992 ,
Is it feasible to build this feature for Excalidraw? Having a PWA for Excalidraw+ makes life a lot easier for people who use this extensively.
Although, as I had highlighted earlier, I feel that it was working earlier as I could access the Left Excalidraw+ panel in the PWA somehow.
Regards
Jaideep

Hi @ad1992 ,
Is it feasible to build this feature for Excalidraw? Having a PWA for Excalidraw+ makes life a lot easier for people who use this extensively.
Although, as I had highlighted earlier, I feel that it was working earlier as I could access the Left Excalidraw+ panel in the PWA somehow.
Regards Jaideep

The ability to NOT have to load from file in the PWA would be good.

Excalidraw desperaltely needs offline support. i noticed the project uses Vite, and the react template has built in support for PWA.
https://vite-pwa-org.netlify.app/examples/react.html#react

authors: hichemfantar jaideepkaramchandani jjtolton lanc2112b


text:
how to delete a column/row?

not the values in the cells, but the whole column/row

Yes, I would love to be able to delete a row or column.

+1 I would also like to be able to do this.
I currently do this in a very inefficient manner by copying all rows below one step up.

Copied from the docs:
// Cut one or more rows (rows below are shifted up)
// Known Issue: If a splice causes any merged cells to move, the results may be unpredictable
worksheet.spliceRows(4,3);

// remove one row and insert two more.
// Note: rows 4 and below will be shifted down by 1 row.
var newRow3Values = [1,2,3,4,5];
var newRow4Values = ['one', 'two', 'three', 'four', 'five'];
worksheet.spliceRows(3, 1, newRow3Values, newRow4Values);

// Cut one or more cells (cells to the right are shifted left)
// Note: this operation will not affect other rows
row.splice(3,2);

// remove one cell and insert two more (cells to the right of the cut cell will be shifted right)
row.splice(4,1,'new value 1', 'new value 2');

How About deleting a whole column?

For that please use spliceColumns:
https://github.com/exceljs/exceljs/blob/7a32223f6f0b73e2455ffa3ed5f94980b2401b34/lib/doc/worksheet.js#L214

authors: AsharDweedar Siemienik haschu ljkmchale rickmed victorbadila

repo: exceljs/exceljs


text:
Should ECMAScript and Javascript be the same repo?

It seems to differentiate between the two different versions. Most major browsers support ES6, The latest version of node has support too so in effect both are the same

@TheHandsomeCoder this issue comes up frequently!  We're currently discussing this, with a mind toward deprecating the EcmaScript track.  In fact, it was recently discussed here: https://github.com/exercism/ecmascript/issues/377
We're not planning on taking action on this immediately, but it is on our radar.

authors: TheHandsomeCoder matthewmorgan

repo: exercism/ecmascript


text:
Use purcell/setup-emacs to speed up CI

purcell/setup-emacs uses cached binaries through cachix (nix).

This speeds up the test run by about 1min 20sec or by about 70%.

Mh, weird. On my fork [the tests ran in 32sec](
See https://github.com/fapdash/exercism--emacs-lisp/actions/runs/3207952337/jobs/5243360331) with this change but reducing the time by 1min is still pretty good imo.

Thanks!

authors: ErikSchierboom fapdash

repo: exercism/emacs-lisp


text:
Update binary_search_test.exs : returns :not_found when key is too high

Many solutions I've seen fail on this test.

Looks good to me - thanks for the contribution! This case is actually already in the cannonical_data.json file and not implemented here, so we needed it!
It looks like you might have some trailing whitespace here, and that's what's failing the CI build. Once you take care of that then this should be good to merge.

Thanks :tada:

authors: devonestes parkerl screamingjungle

repo: exercism/xelixir


text:
Add helpful information to the SETUP.md

The contents of the SETUP.md file gets included in
the README.md that gets delivered when a user runs the exercism fetch
command from their terminal.
At the very minimum, it should contain a link to the relevant
language-specific documentation on
help.exercism.io.
It would also be useful to explain in a generic way how to run the tests.
Remember that this file will be included with all the problems, so it gets
confusing if we refer to specific problems or files.
Some languages have very particular needs in terms of the solution: nested
directories, specific files, etc. If this is the case here, then it would be
useful to explain what is expected.

Thanks, @tejasbubane for suggesting that we add this documentation everywhere.
See exercism.io#2198.

This is hard to do at the moment since we're not sure yet how the tests will run in the future (i.e. whether cargo will be involved or not).

I just submitted another PR (#26) to get all the examples working with Cargo.
If everybody likes the way that works out, I could write the setup file and some README's which would:

Point to the Rust install page (all versions should come with cargo)
Telling the user that once they create a file they can cd into a exercise directory and run cargo test to compile and run all the tests.

The question is should we follow the Nightly or Beta channel?

Yeah, it's better to hold off until that has been resolved.

@bitborn We would only have to recommend Nightly or Beta until May 15th, which is when 1.0.0 is planned to ship.

I don't really understand where exactly the SETUP.md file is included.

When the README for each exercise is assembled, it takes:

The name of the exercise (based on the directory name for the problem)
The shared description from $PROBLEM.md from x-common https://github.com/exercism/x-common)
The contents of SETUP.md
The source information from $PROBLEM.yml

In that order I assume?

Here it is: https://github.com/exercism/xrust/pull/28

Yup, looks great.

authors: EduardoBautista bitborn kytrinyx pminten

repo: exercism/xrust


text:
Update to Exonum revision 7223ce6ebcf [ECR-3972]

Overview
Updating to almost recent master.

See: https://jira.bf.local/browse/ECR-3972
Definition of Done

[x] There are no TODOs left in the code
[x] Change is covered by automated tests
[x] The coding guidelines are followed
[x] Public API has Javadoc
[x] Method preconditions are checked and documented in the Javadoc of the method
[ ] Changelog is updated if needed (in case of notable or breaking changes)
[ ] The continuous integration build passes

I'd update the proto-sources to keep them in sync.

Coverage decreased (-0.2%) to 86.667% when pulling 182ccb0e23bf6a4221015558071ccd22b9c9992a on vitvakatu:ecr-3972-update-7 into 5b7a82a4c3fd7c4988b12526050d5f7f285a8fa4 on exonum:master.

authors: coveralls dmitry-timofeev vitvakatu

repo: exonum/exonum-java-binding


text:
Updated vocabulary model building scripts

Changelog:

Using spacy's own CLI tools for building the model.
Extended vocab/README.md helping the user to finalize his model.
Better handling of erroneously encoded text (Fixing https://github.com/explosion/spacy-dev-resources/issues/3).

Thanks! 👍

Hi everyone,
I am getting errors while creating a spaCy model according to the readme file in vocab. Here is the error:
mdp@mdp-Inspiron-N5110:~/spacy-dev-resources-master$ python -m spacy model te ./data/model/te/spacy_model ./data/model/te/te_wiki.freqs ./data/model/te/brown/paths ./data/model/te/te_wiki.word2vec.bz2
Unknown command: model
Available: profile, vocab, evaluate, train, link, download, validate,
info, convert, package, init-model

Please help me at this step for creating spacy model

authors: ines mdp0999 oroszgy

repo: explosion/spacy-dev-resources


text:
Remove catalogue requirement

Description

Remove catalogue requirement.
Types of change

Chore.
Checklist

[x] I confirm that I have the right to submit this contribution under the project's MIT license.
[x] I ran the test suite, and all new and existing tests passed.
[x] My changes don't require a change to the documentation, or if they do, I've added all required information.

Possibly click should be added a requirement since there are direct imports.

repo: explosion/weasel


text:
[submit] Unify app creation code

Why

unify logging and spinners

expediting merging this to move forward with release but lmk if you have any issues upon review @barthap :)

I'm afraid that moving all app creation code out of submission command into single ensureAppExists is very limiting, because I don't have a way to check if the app was already existing or has just been created.
I have some plans to prompt user for some additional information when creating app - confirmation for name, bundle ID, optionally provide a SKU etc.
Anyway, for now its LGTM, I'll rework it myself when doing these improvements.

authors: EvanBacon barthap brentvatne

repo: expo/eas-cli


text:
Close Link Tags in head section of report

We are using the 5.0.0-alpha6 version of extent reports for c#. I have a task in our ADO pipeline to handle the HTML report but it fails parsing it due to 3 link tags not being properly closed in the report. The examples are below. Is it possible to close those tags? I don't mind forking the 5.0.0-alpha6 branch and making the change myself for use until the next stable version comes out but was unable to find it in the repo. Thanks.

Not sure why the link tags didn't stay in my original comment but here they are below. All 3 are in the head section.

repo: extent-framework/extentreports-csharp


text:
onepassword ClusterSecretStore breaks operator if no namespace for accessToken-secret is provided

Describe the bug
When using a ClusterSecretStore to access secrets in onepassword. if no namespace is provided to the secret token, the external-secret operator pod goes into a crashloop.
To Reproduce
For example, if I apply this ClusterSecretStore to my cluster (see the commented out namespace-field):
apiVersion: external-secrets.io/v1beta1
kind: ClusterSecretStore
metadata:
  name: clustersecretstore-onepassword
spec:
  provider:
    onepassword:
      auth:
        secretRef:
          connectTokenSecretRef:
            key: token
            name: onepassword-connect-token
            # namespace: external-secrets # this is mandatory
      connectHost: http://onepassword-connect.external-secrets.svc.cluster.local:8080
      vaults:
        my-new-vault: 1

The operator pod starts to crash-loop with this error:
{"level":"info","ts":1690981808.6374583,"msg":"Observed a panic in reconciler: runtime error: invalid memory address or nil pointer dereference","controller":"clustersecretstore","controllerGroup":"external-secrets.io","controllerKind":"ClusterSecretStore","ClusterSecretStore":{"name":"clustersecretstore-onepassword"},"namespace":"","name":"devops-onepassword","reconcileID":"ef6e9f95-aa98-4975-85cd-5bb7ee79c70f"}
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x23dec64]

goroutine 226 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
	/home/runner/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.15.0/pkg/internal/controller/controller.go:115 +0x1fa
panic({0x30d63c0, 0x6571d40})
	/opt/hostedtoolcache/go/1.19.10/x64/src/runtime/panic.go:884 +0x212
github.com/external-secrets/external-secrets/pkg/provider/onepassword.(*ProviderOnePassword).NewClient(0xc000011458, {0x3fa30b8, 0xc000ed6b10}, {0x3fc61b8, 0xc0010fe000}, {0x3fb1040, 0xc00051ad80}, {0x0, 0x0})
	/home/runner/work/external-secrets/external-secrets/pkg/provider/onepassword/onepassword.go:88 +0x184

kubernetes version: 1.23.17
ESO version: v0.9.1
Expected behavior
I believe the operator should handle this more gracefully and log a meaningful error message that tells users what to do.  A misconfigured provider should not take the whole operator down.
Additionally, I don't see this documented in the onepassword guide, which it probably should be.
Screenshots
Additional context
Yes, it is mentioned as a comment in the source code,
https://github.com/external-secrets/external-secrets/blob/main/pkg/provider/onepassword/onepassword.go#L86C13-L86C13
I don't know if other providers have a similar issue.

Hi, @sleyer 👋 Thank you for reporting the issue! You are right and I think we should add validation here. Would you like to work on it?
https://github.com/external-secrets/external-secrets/blob/1cf7c3a6e31d699c78d0034810a5db21a871e249/pkg/provider/onepassword/onepassword.go#L123-L135

/assign

@shuheiktgw this func already checks if the namespace is nil - https://github.com/external-secrets/external-secrets/blob/main/pkg/provider/onepassword/onepassword.go#L133

Hmm, thank you for looking into it @rahulii! You are right and I tried to reproduce it locally but received the following error when I applied the manifest above.
Error from server (Forbidden): error when creating "css.yaml": admission webhook "validate.clustersecretstore.external-secrets.io" denied the request: received invalid 1Password SecretStore resource: cluster scope requires namespace

@sleyer Did you enable admission webhook? I'm closing this issue since it is not reproducible but feel free to reopen it if necessary 🙂

Did you enable admission webhook?

Yes I did. I'll try to create a minimal reproducible example later.

I recreated the issue in a clean local rancher installation. Here is what I did:
Create a new values file ExternalSecretValues.yaml:
webhook:
  create: false
installCRDs: true
certController:
  create: false
revisionHistoryLimit: 5
serviceMonitor:
  enabled: true

Create a new manifest OnePasswordStore.yaml :
webhook:
  create: false
installCRDs: true
certController:
  create: false
revisionHistoryLimit: 5
serviceMonitor:
  enabled: true

Install into rancher:
kubectl ns create external-secrets
kubens external-secrets
helm install external-secrets external-secrets/external-secrets -f ExternalSecretValues.yaml
kubectl apply -f OnePasswordStore.yaml

The secrets operator pod then crash loops as outline above.

Hi @sleyer, thanks for following it up! It seems you disabled the Webhook here. Would you remove the configuration and try it again? 🙏
webhook:
  create: false

With webhook and certController enabled, I get:
kubectl apply -f OnePasswordStore.yaml
Error from server (Forbidden): error when creating "kubernetes/OnePasswordStore.yaml": admission webhook "validate.clustersecretstore.external-secrets.io" denied the request: received invalid 1Password SecretStore resource: cluster scope requires namespace

So I guess validation does work. However, shouldn't the Operator at least survive a faulty store, even without the webhook validation?

However, shouldn't the Operator at least survive a faulty store, even without the webhook validation?

Hmm, unfortunately, that won't work. The webhook is a crucial aspect of Oparator, and if you turn it off, you're responsible for ensuring that it functions properly, not us. It's like removing a guardrail in front of a hole, and then blaming someone else for not installing a guardrail after you fall into it 🙂

authors: rahulii shuheiktgw sleyer

repo: external-secrets/external-secrets


text:
What is the certcontroller for?

Describe the solution you'd like
I've been reviewing the documentation and the README for the helm chart, I would like to better understand what the certController is for, and how it differs from the main controller.
What is the added value?
It would be good to understand why two seperate controller instances need to be deployed, and what the value of certcontroller is - also why it needs control over CRDs and webhooks?

Amazing! Thanks @gusfcarvalho :smile: That explaination makes a lot of sense.

certController is not yet released

Hah, that'll teach me for looking at main and forgetting to check what is in the actual release :facepalm:.

@EmilyShepherd is it planed to add cert manager as an alternative to the bundled certController?

@phin1x we actually need it for two Kinds: CustomResourceDefinition and validatingAdmissionWebhook. I'm not sure if cert-manager can inject caBundle into a conversion webhook :thinking:
That may be one thing that can be contributed on cert-manager.

@moolen the cert manager ca injector can to both: https://cert-manager.io/docs/concepts/ca-injector/. cert manager is also the recommended solution for webhooks if you using kubebuilder.

I believe you only need to have cert-manager to use the same secret-name as the secret created by external-secrets. I believe you will need to manually add annotations to CRDs and ValidatingWebhookConfiguraiton currently.
So,

helm install ... --set certController.create = false
get the secret name with kubectl get secrets -l external-secrets.io/component=webhook
create a Certificate pointing to that secret name.
run

kubectl annotate crd externalsecrets.external-secrets.io  cert-manager.io/inject-ca-from-secret= <my-ns>/<my-secret-name>
kubectl annotate crd secretstores.external-secrets.io  cert-manager.io/inject-ca-from-secret= <my-ns>/<my-secret-name>
kubectl annotate crd clustersecretstores.external-secrets.io  cert-manager.io/inject-ca-from-secret= <my-ns>/<my-secret-name>
kubectl annotate validatingwebhookconfiguration secretstore-validate  cert-manager.io/inject-ca-from-secret= <my-ns>/<my-secret-name>
kubectl annotate validatingwebhookconfiguration externalsecret-validate  cert-manager.io/inject-ca-from-secret= <my-ns>/<my-secret-name>

I think we can provide some helm configuration setup (regarding the name of the secret, and annotations for ValidatingWebhookConfigurations and  CustomResourceDefinitions)

Is there a clean set of helm configurations that can be used to disable the cert controller and use cert-manager instead for a given cert-manager.io/cluster-issuer?

You can disable it: https://github.com/external-secrets/external-secrets/blob/6677c1e52d068aa8c19cf0dc736ad44ed268f3cf/deploy/charts/external-secrets/values.yaml#L287
Then make sure the webhook pod and CRDs get certificates configured. I don't have that from the top of my head. If you went through it feel free to report back so we can add it to the docs

authors: EmilyShepherd amccague gusfcarvalho moolen phin1x


text:
First Contribution Basic Folder

All the basic introductory codes taught in hackerrank for python3.

hacktoberfest-accepted.

authors: PreyumKr extinctsion


text:
🛑 Extratone is down

In 37284e6, Extratone (https://www.extratone.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Extratone is back up in aeb3aa3.

repo: extratone/up


text:
Update for RN 0.27.2

Fixes #11

With the release of v0.1.0 this is irrelevant.

authors: eyaleizenberg xjamundx


text:
[Error] Connection failed: ProtocolError

[Info] Running dmcc-1.1.0.2 @(main:Main dmcc-ws/Main.hs:100:3)
[Info] Starting session using Config {listenPort = 8333, aesAddr = "172.21.10.38", aesPort = 4722, caDir = Just "/etc/ssl/csta-certs/", apiUser = "ctiuser", apiPass = "P@ssw0rd", whUrl = Nothing, refDelay = 60, stateDelay = 1, switchName = SwitchName "CM01", logLibrary = False, sessDur = 120, connAtts = 24, connDelay = 5} @(main:Main dmcc-ws/Main.hs:101:3)
[Error] Connection failed: ProtocolError "error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed"
[Error] Connection failed: ProtocolError "error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed"

Hi, can you guide import the certificate?

more information.

@zhiephie Did you do c_rehash . in the certificates folder as per https://www.openssl.org/docs/manmaster/man3/SSL_CTX_load_verify_locations.html?

Only renamed .cer to .pem for aeservices.pem. any suggestion?

@zhiephie No I mean can you please try
 cd /etc/ssl/csta-certs
 c_rehash .

wow, worked. Thanks @dzhus

authors: dzhus zhiephie

repo: f-me/dmcc


text:
Recommended formalism for double quad?

I have a double integral I'd love to move to using quadax, but it seems that when I attempt to implement it, it crashes the GPU by running out of memory. It's a naive implementation, but I'm curious if there's some recommendation for how to approach this problem. My double quad takes the form e.g.
@jax.jit
def integrand(y, x, *args):
    ...
    return result

def inner_quad(x, y1, y2, *args):
    return quadgk(integrand, [y1, y2], args=(x, ...))

def outer_quad(x1, x2, y1, y2, *args):
    return quadgk(inner_quad, [x1, x2], args=(y1, y2, ...))

Any suggestions would be appreciated.

I think that should work, I had to change inner_quad to
return quadgk(integrand, [y1, y2], args=(x, ...))[0]

since we want that to just return the value of the integrand, not the aux info.
Not sure about the OOM issue, I think that would depend on how complicated integrand is and the order of both the inner and outer quads. If you can share a bit more about the error you're getting I can try to help.

Thanks, and apologies for the late follow-up. It seems that OOM issue only arises when I attempt to use the double integration (as above) with numpyro. The integrand is pretty involved, but it's essentially a spectrum generator of an accretion disk. A simplified model might be something like:
import numpyro.distributions as dist
from numpyro.infer import MCMC, NUTS, HMC

@jax.jit
def integrand(r, phi, X, *args):
    ...
    return result

@jax.jit
def inner_quad(r, phi1, phi2, X, *args):
    return quadgk(integrand, [phi1, phi2], args=(X, *args))[0]

@jax.jit
def outer_quad(r1, r2, phi1, phi2, X, *args):
    return quadgk(inner_quad, [r1, r2], args=(phi1, phi2, X, *args))[0]

def disk_model(wave, flux, flux_err):
    r1 = numpyro.sample("disk_inner_radius", dist.LogUniform(1e2, 1e3))
    r2 = numpyro.sample("disk_outer_radius", dist.LogUniform(1e3, 1e5))

    phi1 = -jnp.pi * 0.5
    phi2 = jnp.pi * 0.5

    total_flux = outer_quad(r1, r1, phi1, phi2)

    with numpyro.plate("data", wave.shape[0]):
        numpyro.sample("obs", dist.Normal(total_flux, flux_err), obs=flux)

wave, flux, flux_err = ...

nuts_kernel = NUTS(simple_disk_model)
mcmc = MCMC(
    nuts_kernel,
    num_warmup=500,
    num_samples=2000,
)
mcmc.run(jax.random.PRNGKey(0), wave=wave, flux=flux, flux_err=flux_err)

r1 and r2 are the inner and outer radius of the disk, while phi1 and phi1 are the orientation angle relative to the observer. In the prescription above, the fitting always crashes due to memory, which explodes up to ~50 GB. It can be obviated if I use fixed integration schemes (GaussKronrodRule), but the results are just not good in that case. It'd be great if we can get the double integration with the adaptive methods working.

One thought is that it could be due to quadax vectorizing the evaluation of the integrand at order points (default 21 for quadgk), which when you nest the quadrature means its actually evaluating it 21^2 = 441 times at each step. If that's the bottleneck, you could try switching to quadcc and setting order=4 or something (The lowest order I have implemented for quadgk is 15 while quadcc can be any arbitrary even order). If your integrand is the output of an MC simulation which may not be smooth you probably want to use a low order rule anyways.


text:
Screenshot for rounded corner devices

Hello @f2prateek ..
Is possible to add support for devices with rounded corners..? like many new flagship devices at 2017..?
Screenshots has normal corners, so there has to be some overlay for cutting radius..

@f2prateek any idea?

@ingbrzy
I found a library supporting rounded corners image.
https://github.com/vinc3m1/RoundedImageView

authors: ScratchBuild ingbrzy


text:
XC Diagnostics: Missing Rule for UDP VIP

Sample rule below
{
"code": "0049",
"severity": "Error",
"title": "XC UDP Unsupported",
"message": "XC does not currently support UDP",
"regex": "ip-protocol udp"
},

done.  added to next release (v3.10.0).  Thank you!

authors: DumpySquare GlenWillms