[KYUUBI #884][FOLLOWUP] Fix catalog in KyuubiDatabaseMetaData#getTables

Why are the changes needed?

The behavior of KyuubiDatabaseMetaData#getTables changed by accident in #884, this PR restores the method's previous behavior and adds multi-catalog test case to verify it works as expected.
How was this patch tested?

[x] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

The behavior of KyuubiDatabaseMetaData#getTables changed by accident in #884

Can you detail the behavior change in the PR desc?

Codecov Report

Merging #1133 (3fecbf5) into master (7b7d228) will increase coverage by 0.04%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #1133      +/-   ##
============================================
+ Coverage     79.14%   79.19%   +0.04%
  Complexity      100      100
============================================
  Files           178      178
  Lines          6633     6632       -1
  Branches        786      786
============================================
+ Hits           5250     5252       +2
+ Misses          926      922       -4
- Partials        457      458       +1

Impacted Files
Coverage Δ

...org/apache/kyuubi/jdbc/KyuubiDatabaseMetaData.java
69.56% <100.00%> (-1.27%)
:arrow_down:

.../org/apache/kyuubi/operation/KyuubiOperation.scala
55.35% <0.00%> (+5.35%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7b7d228...3fecbf5. Read the comment docs.

cc @yaooqinn, could you please take a look again?

Thanks for review, merging to master/1.3


Add support for faking media device access in Chrome

@jzoldak, as requested. (Reference on the Chrome webdriver's Options class here.)
@wedaly, FYI.

@wedaly would it be possible for you to take a quick look at this, when you're able? @jzoldak mentioned he won't have an opportunity to look at it today.

:+1:


[bug] - HASS entity naming convention not respected...

Running latest docker 'dev' version.
I've set the entity naming convention of 'zwave_%nid_%o', but when I add a name and location (to be sent as part of the info), it renames the entities too?
I'd expect that the name and location appears in the dashboard and is sent when the option 'include node info', but the entities follow the naming convention set...

I've set the entity naming convention of 'zwave_%nid_%o', but when I add a name and location (to be sent as part of the info), it renames the entities too?

Yes but you need to rediscover the all nodes or restart the application (by save settings again for example) in order to get all the entities uypdated

I've set the entity naming convention of 'zwave_%nid_%o', but when I add a name and location (to be sent as part of the info), it renames the entities too?

Yes but you need to rediscover the all nodes or restart the application (by save settings again for example) in order to get all the entities uypdated

I do that, but that's the issue. When I rediscover them it adds the name and location to the entity name -  I expect it shouldn't, as I've set a naming convention I want respected?

I do that, but that's the issue. When I rediscover them it adds the name and location to the entity name -  I expect it shouldn't, as I've set a naming convention I want respected?

When I rediscover them it adds the name and location to the entity name

@billiaz ?

When I rediscover them it adds the name and location to the entity name

@billiaz ?

@Swiftnesses Currently this is how it works, which probably is not right.
The entity name on your example should be: zwave_<1-255>_
I will check what breaks on rediscovery! even though I did not have any issue to this!
Two questions

Is this a discovery from custom devices (customDevices.json), non custom or Both!?
What container you run on? and date of container. You can also give me the container hash, to be sure latest dev runs.

Thanks

@Swiftnesses Currently this is how it works, which probably is not right.
The entity name on your example should be: zwave_<1-255>_
I will check what breaks on rediscovery! even though I did not have any issue to this!
Two questions

Is this a discovery from custom devices (customDevices.json), non custom or Both!?
What container you run on? and date of container. You can also give me the container hash, to be sure latest dev runs.

Thanks

Maybe would be useful to see the actual gateway settings?

Maybe would be useful to see the actual gateway settings?

also could be. I will test this on my nodes now!
Will perform a rediscover node and see if this happens, as I use different than standard naming setup
Tested:
In my latest dev (yesterday build) I do not face this on non CustomDevices

also could be. I will test this on my nodes now!
Will perform a rediscover node and see if this happens, as I use different than standard naming setup
Tested:
In my latest dev (yesterday build) I do not face this on non CustomDevices

After updating to yesterdays dev image, I'm not seeing this anymore. Not sure what was fixed in the last three days, but it seems to have worked. :-D

After updating to yesterdays dev image, I'm not seeing this anymore. Not sure what was fixed in the last three days, but it seems to have worked. :-D

I'm not convinced this is fixed, either that or my expectations are not aligned with how it should work.

As you can see, the MQTT topic still includes the location, as does the entity name (the entities themselves look fine).

I'm not convinced this is fixed, either that or my expectations are not aligned with how it should work.

As you can see, the MQTT topic still includes the location, as does the entity name (the entities themselves look fine).

@Swiftnesses I do not understand your second and third screenshots, where these come from, they are so well cropped i need more details.

@Swiftnesses I do not understand your second and third screenshots, where these come from, they are so well cropped i need more details.

Sorry @billiaz - 2nd screenshot is showing the mqtt topic, the 3rd shows the entity in Home Assistant.

Sorry @billiaz - 2nd screenshot is showing the mqtt topic, the 3rd shows the entity in Home Assistant.

I found where is happening. I will create a patch for this @robertsLando will need to review with me the solution.

I found where is happening. I will create a patch for this @robertsLando will need to review with me the solution.

Thank you :)

Thank you :)

@Swiftnesses if you can compile the branch:  fix-hass_ignoreLoc
it would be helpful to get your point of view

@Swiftnesses if you can compile the branch:  fix-hass_ignoreLoc
it would be helpful to get your point of view

Done

Done

Just reployed the dev docker and this looks fixed. Awesome work guys - thank you!

Just reployed the dev docker and this looks fixed. Awesome work guys - thank you!


Getting random data failed on some embedded Linux platforms

Hello everybody! I build a static openssl-1.1.1g library for the armv7 platform with Linux kernel 4.9.37. The problem is that the toolchains (arm-himix-200-linux) provide the getentropy() function, which actually is not implemented: it always returns -1 and sets errno to the ENOSYS. This confuses the logic of the openssl's syscall_random() function (see crypto/rand/rand_unix.c:345): it takes that dummy getentropy() function, because it's pointer is not NULL, calls it and returns. So there's no chance to check if the __NR_getrandom syscall is available (btw: on the target platform it's just available). So I'd like to suggest the more robust logic:
--- a/crypto/rand/rand_unix.c
+++ b/crypto/rand/rand_unix.c
@@ -367,8 +367,12 @@ static ssize_t syscall_random(void *buf, size_t buflen)
 #  if defined(__GNUC__) && __GNUC__>=2 && defined(__ELF__) && !defined(__hpux)
     extern int getentropy(void *buffer, size_t length) __attribute__((weak));

-    if (getentropy != NULL)
-        return getentropy(buf, buflen) == 0 ? (ssize_t)buflen : -1;
+    if (getentropy != NULL) {
+        if (getentropy(buf, buflen) == 0)
+            return (ssize_t)buflen;
+        else if (errno != ENOSYS)
+            return -1;
+    }

P.S.: Of course I did a workaround in my application that uses openssl: I implemented my own getentropy() function that calls __NR_getrandom syscall like it's implemented in the glibc library. But I think it would be better to solve this issue inside the openssl because there may be a lot of wrong toolchains like mine
Thanks in advance!

Is there a possibility of you making your change available to the project as a pull request?

@paulidale , sure. But I need some time for it. Thanks for reply

@paulidale , I prepared the fix but I can't push my branch to the repository because I have no permissions. Could you help me with this problem?

Thanks for taking the time and effort to get these though the review process.


Update to Nodejs 14

AWS stops support for Nodejs12 since November, it is recommended to switch to nodeJs 14

Created a pull request for updating to node 16
https://github.com/stelligent/pipeline-dashboard/pull/15


Make run_tests.py strip ELF binaries before hashing them

This would prevent changes in debug information causing tests to re-run.
This needs to be done with a 'strip -o' to prevent modification of the binary.

run_tests.py no longer hashes targets: this is obsolete.


Use an execute resource to install chef-rewind on bootstrap

This fixes an issue in internet-disconnected environments that is not encountered in VM clusters.

Since this PR came from my 'master' branch, it now also includes a fix to bcpc::networking for hosts with a single, non-bonded NIC.  I don't think we had ever used this configuration before.
Since VM clusters are multi-homed, they didn't hit the bug, despite having no bonded NICs.


[Cypress] Dependency bug fix for cypress

Signed-off-by: Gaurav Chadha<EMAIL_ADDRESS>Description
reverted the previous changes https://github.com/meshery/meshery/pull/6029 and add cypress dnd
This PR fixes #
Notes for Reviewers
Signed commits

[ ] Yes, I signed my commits.

add it to dev dependency

add it to dev dependency

added


Crashing

I compile the cheat and it crashes upon selecting a team

You should update your offsets.
Also , read wiki before posting please.

https://github.com/smefcc/smefs-Indigo-Remastered/wiki


[Release-0.26] Migration tests - use proper node drain key

In order to test a migration in case of node drain, the migration tests were using a hardcoded taint key "kubevirt.io/drain" for tainting the node and trigger VMI eviction. This taint key is configurable and is read from the KubeVirt configmap by the virt-handler evacuation controller. Thus, the tests also should read this key from the configmap and not assume a constant value.
Signed-off-by: Igor Bezukh<EMAIL_ADDRESS>What this PR does / why we need it:
In some cases the node drain key is being customized (One good example is the HCO which builds the KV configmap and uses drain key "node.kubernetes.io/unschedulable"). This PR will fix potential issues with running functional tests.
Which issue(s) this PR fixes
Live migration tests
Special notes for your reviewer:
Release note:

None

/assign @danielBelenky
/assign @stu-gott

/lgtm
/approve

/override continuous-integration/travis-ci/pr


Different liveness probe for workers vs control pod

We are testing  a very specific liveness probe for control n8n node, because due to our workload it happens that control pod hangs, and any workflows won't run until this pod is manually restarted by someone from our crew. unfortunately /healthz endpoint doesn't catch this very specific scenario in our situation.
# Test liveness probe workaround for n8n hanging
livenessProbe:
  exec:
    command:
    - /bin/sh
    - -c
    - |
      wget -q --post-data='{ "type": "test" }' --spider http://n8n.namespace.svc.cluster.local/webhook/event
  initialDelaySeconds: 30  # Wait 30 seconds before starting the first probe
  periodSeconds: 60        # Run the liveness probe every full minute (60 seconds)
  timeoutSeconds: 5        # Fail if the command doesn't return within 5 seconds
  failureThreshold: 4      # After 3 failures, the pod will be restarted
  successThreshold: 1      # One success is enough to declare the pod healthy

However setting this in values.yaml sets it up also for worker nodes, which we don't need now.
Is there any possibility to set different liveness probes for control only, and different (so default) for workers, using this helm chart template?

hmm, I would say you have to do it in the post-processing, like helm hooks maybe there are other options.
i would not want to add something extra just for your specific use case.
Happy to accept a general purpose solution


Add ATW support

Now that RenderManager supports Asynchronous Timewarp, support needs to be added to the Unity Rendering Plugin before it can be used from Unity. This should involve adding an extra set of RenderTextures to the plugin and Unity, switching between them each frame.

Unity crashes when the CreateTexture2D call is made (unhandled exception, access violation). https://github.com/OSVR/OSVR-Unity-Rendering/blob/atwSupport/OsvrRenderingPlugin.cpp#L450
Not yet able to get much more info than this, as its crashing in a d3d11 function. Everything going into that call looks OK, however. @JeroMiya @russell-taylor any ideas what could be going wrong here?

If you leave the flag that makes the keyed semaphore off, does that fix things (well, it won't let ATW work, but...). I'm trying to figure out whether the problem is with your double-buffering or with this ne flag.  You should be able to get double-buffering to work without ATW by leaving this flag out and get everything to work like it did before.

No, it fails in the same place with that line commented out or not.

As I mentioned in our chat, the "frame" variable passed into ConstructBuffersD3D11 is always garbage when I inspect in VS2013 debugger. But as you pointed out, that could be the debugger lying.

Yeah, frame is almost certainly elided by the compiler unless you are compiling in debug mode, no matter where it is declared.  I'd assume that is working and continue chasing elsewhere.  Like making sure the relevant buffers have been allocated so that ConstructBuffersD3D11() doesn't write past the end of an array.
For hunting the crash in CreateTexture2D(), I'd first make sure that the device pointer is not NULL and then I'd try (as you already have) removing the MiscFlags setting.  Then I'd try setting things up to be the case that frame is only ever 1 so that this would only try to do things once (like the working code does) and then I'd walk through and figure out what the new code is doing differently in that case, if it still crashes.

I pushed my Unity branch to test this: https://github.com/OSVR/OSVR-Unity/tree/atwSupport
Tried with and without MiscFlags, then with one frame only, but it still crashes at CreateTexture2D when "asynchronous" is true in the config file. If it's set to false, it does work with 2 sets of RenderBuffers.

What happens if you use the Unity device rather than the one from renderInfo[eye].library.D3D11?  Let me check and make sure we're actually filling that in properly in the ATW-wrapped path...

Yeah, I'm able to reproduce it by trying to used the returned device.  Looking into a fix.

So I've updated to the latest RenderManager master and made some changes in the plugin and Unity branch. It no longer crashes at CreateTexture2D, but still not there yet. In asynchronous is false, it's working. If asynchronous is true, the first time it runs with tracking, but nothing shows up on the display, and no crash. Hitting play a second time crashes at this line: https://github.com/sensics/OSVR-RenderManager/blob/master/osvr/RenderKit/RenderManagerD3D11ATW.h#L389
Seems to be the same result whether the shared texture flag is set or not.

This screenshot captures some debug output from Unity, where it looks like PresentRenderBuffers fails inside CreateRenderManager.

I was able to chase the failure to this line: https://github.com/sensics/OSVR-RenderManager/blob/master/osvr/RenderKit/RenderManagerD3D11ATW.h#L424
"RenderManagerD3D11ATW::RegisterRenderBuffersInternal: Could not AcquireSync on a game render target's IDXGIKeyedMutex during registration."
Which also causes this call to fail: https://github.com/sensics/OSVR-RenderManager/blob/master/osvr/RenderKit/RenderManagerD3D11ATW.h#L490
"RegisterRenderBuffersInternal: Could not Register render buffers on harnessed RenderManager"

Closing as this should not require changes to the Unity rendering plugin at this time. ATW work as-is, meaning it doesn't crash, on Windows 10 only. Otherwise if ATW is true in the config file, Windows 7 or 8 apps will crash. There are still issues with preemption granularity, so we may not see improvements unless testing on a newer Pascal GPU architecture.


Enrich Downloaded layer event

@ivanmalagon noticed while correcting a bug that a new event Downloaded layer that we're sending to Segment only contemplates de case of exporting data from the principal view of Builder, while this can also be done from the layer view and the dataset view.
In that case, would it be possible adding the other cases and assigning a field from_view relating the source of this event (main view, layer view, dataset view)?
Thanks guys!
cc @matallo

@ivanmalagon @msaenzde11 what is the status of this issue?

it's stuacked @ramiroaznar! If we could add it to the kanban it'd ne nice!


porting to c++ and using sqlite

dear all
i want to write a map matching software based on barefoot with c++ that works fine on embedded systems for an IVI module. i will publish it opensource along with its proper openembedded layer.
the thing is that i am trying to choose a map database solution. does make sense to ddirectly use sqlite or should turn to something else?
thank you all in advance

I think every DBMS solution will do. It's a benefit to use a DBMS with spatial extensions (geometry data structures, spatial index, etc.), but it's not really necessary as you could just store geometries as text (WKT). SpatialLite could be an option for you (https://www.gaia-gis.it/fossil/libspatialite/index). For the import of OSM data into the database, I would refer to Osmosis which is used in Barefoot (http://wiki.openstreetmap.org/wiki/Osmosis).

Dear Sebastian,
special thanks for your answer.
the issue is I tried using spatialite. the functions are not as mature as
those postgis and this led to the point where I decided to directly use
SQLite.
but for the very basic requirement of finding the set of ways in a
predefined vicinity of a point, one may needed four consecutive queries to
be executed in order to find the list ways and their corresponding nodes.
and if you want to check the ways tags another querry is needed.
I also tried multithreaded access to the database but because of the shared
database it was not of much help.
so I was thinking if it is possible to find a solution in between!
Regards;
Milad Hasanvand
Connected Car System Designer @ AIRIC-SAIPA

http://airic-ir.com/
Automotive Industries Research & Innovation Center (AIRIC)
SAIPA Group
15th Km Karadj Makhsoos Rd., Tehran, Iran.
P.O. Box 13445/967
<EMAIL_ADDRESS>Mobile:   +98<PHONE_NUMBER>
On Mon, Sep 12, 2016 at 12:02 PM, Sebastian Mattheis <
<EMAIL_ADDRESS>wrote:

I think every DBMS solution will do. It's a benefit to use a DBMS with
spatial extensions (geometry data structures, spatial index, etc.), but
it's not really necessary as you could just store geometries as text (WKT).
SpatialLite could be an option for you (https://www.gaia-gis.it/
fossil/libspatialite/index). For the import of OSM data into the
database, I would refer to Osmosis which is used in Barefoot (
http://wiki.openstreetmap.org/wiki/Osmosis).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/bmwcarit/barefoot/issues/28#issuecomment-246269937,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHOiouGeaNYN4AEOw1pBLf2_QHoh0pHIks5qpQAggaJpZM4J6EaX
.


fix: remove much obsolete harden code

The code for harden and make-hardener had all sorts of logic that was redundant with ses, possibly out of sync with ses, and in any case a maintenance burden to keep in sync. All of this in support of the now-obsolete use of harden outside ses and/or before lockdown.
This PR removes the bulk of this obsolete logic. It is a compat break to any code calling makeHardener with any options or trying to use harden prior to lockdown.

Discussed offline:
One of the tensions evident here is needing to test harden before a SES lockdown, though it’s clear that harden before lockdown is not a mode we wish to support.
The harden package exists in order to support this harden but-without-SES lockdown mode that we’re no longer pursuing. The make-hardener package remains sensible as a utility of ses that we expect no other package to use. But, publishing a package that no other package should use is arguably telegraphing the wrong message.
The harden package also serves as a built-in module shim. We’ve decided to at least temporarily decouple the SES proposal from built-in modules to de-risk SES, so users can expect there to be a global harden instead. This answers all our questions for now about how to feature-detect and shim.
Between these, we can make an argument that we should at least deprecate harden (publish a new breaking-changes version with no API, only a deprecation message that explains that harden is now a global that the ses shim provides, that only works in combination with lockdown: accept no substitutes).
We also could make an argument that make-harden should be subsumed into ses and deprecated.
For purposes of review, we would be looking to ensure that the invariants of harden are preserved after this change. To that end, it would be desirable to copy the make-hardener and harden tests into ses, where they can be exercised in the only sensible configuration: after lockdown.
Then it would make sense to move the make-hardener implementation into ses, as it would not be used or testable anywhere else.
After we’ve ensured that we’re maintaining the invariants established by the existing tests, it would make sense to deprecate the harden and make-harden packages.

that plan sounds sensible to me


NGCBMUnitID required parameter for B1610

Hi @MichaelKavanagh !
I get a TypeError: missing parameter NGCBMUnitID when trying to call the B1610 API without this parameter specified. However, according to the official documentation this is not a required parameter.
Off topic:
Nice work on the wrapper! I'm trying to find a library to download Elexon data and came across your repo. I tried pywind before, but it's heavily outdated. Out of curiosity: Do you know about elexon api tool? I wonder what are the differences between your package and theirs.
Cheers!
Ben

Hi Ben,
It looks like there is an error in Elexon's documentation:

The parameter you mention, NGCBMUnitID is in the sample Input URL but not in the field list below. The wrapper's list of methods and parameters is built from this, so this would explain the error.
I will contact Elexon and ask for clarification before committing a fix. How do you use this package? Install using pip?
I am aware of (and have reviewed) most open source Elexon BMRS wrappers out there, including the two you mentioned, and welcome collaboration.
Cheers,
Michael

Hi @MichaelKavanagh
I really hope that it is not an error in their API. It is too comfortable downloading data for all units at once 😄  Yep, I installed using pip!
 What will be the key differences?

I really hope that it is not an error in their API. It is too comfortable downloading data for all units at once 😄

Likely not an error in their API, just their documentation. I am awaiting a response from Elexon.

 What will be the key differences?

The other packages did not fulfill my own needs, either they were stale, did not work, only worked for limited endpoints/reports, unnecessary dependencies etc. I require this for my day job, and it made more sense and was more efficient to build my own than try and fix these issues via pull requests. Of the top of my head, some of the key features of this package:

OO
Lightweight and minimalist: few dependencies, self documenting
Generalisable: can use all endpoints (see methods.py and dynamic method creation in elexon.py). Of course there might be bugs, I haven't tested them all, only when I need them.
Extensible: I plan to add STOMP based "Data push service" support, Pandas client, etc.
Test coverage: WIP (as always 🙄)
Not tangled in some larger project

I received the following response, which is satisfactory enough for me. Fix incoming.

NOTE: this report (B1610) does not work with the default API version 'v1'. You seem to need to use 'v2', which can be achieved by instantiating the ElexonRawClient class with api_version = 'v2':
api = ElexonRawClient('API_KEY', 'v2')

That was a very quick answer! Thank you very much for the follow-ups and for your elaboration on the key features. I think elexon sounds very promising and I will keep following your updates! 😃

Quick followup:
The Elexon BMRS API documentation has been updated to Version 3.1 (1 July 2020), with a correction to the section "5.1.22 B1610 – Actual Generation Output per Generation Unit" identified in this issue. It now includes the NGCBMUnitID parameter which is labelled as non-mandatory, so the commit made to close this issue was correct.

Hi @MichaelKavanagh,
thanks for the follow-up! That was a quick fix 😃 Thanks for your effort!
Ben


master is default branch when creating github repo, not main, command fails

In the documentation it is presumed that the local branch is main, and therefor the command:
git push --set-upstream origin main will not work.
Maybe an update some where to add this as a note?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 878bad36-454a-063c-4100-c73f9e90aea3
Version Independent ID: b0c548c8-f830-311f-07e1-84f0ba644943
Content: Tutorial: Publish a Hugo site to Azure Static Web Apps
Content Source: articles/static-web-apps/publish-hugo.md
Service: static-web-apps
GitHub Login: @aaronpowell
Microsoft Alias: aapowell

Hello @buzzfrog, thanks for taking time to share your valuable feedback! We are taking a look into this and will get back to you soon.

@buzzfrog, Kindly see this doc - 'main' is the most popular replacement for master that we're seeing across GitHub.  Many communities, both on GitHub and in the wider Git community, are considering renaming the default branch name of their repository from master. GitHub is gradually renaming the default branch of our own repositories from master to main.
Typically, if an incorrect branch is used, an error "src refspec [branchname] does not match any" appears.
In the doc, under 'Deploy your web app', it clear highlights the property and branch 'value' to be set to 'main'.

Property
Value

Branch
Select main

If you have further questions, please let us know. Thanks for taking time to share your feedback.

@buzzfrog, We have a raised a PR to add more clarity on this (to ensure the default branch is main). Once the PR is merged, the doc changes would be published. Thanks for addressing this, aaronpowell.

The document reflects the changes now. Thanks again for your feedback


ISOGRAM

Hi guys,
I have an issue with exercise isogram. It works in ABAP but not on Exercism.
It looks like that the plattform does not know shift_left built-in function
https://help.sap.com/doc/abapdocu_740_index_htm/7.40/en-US/index.htm?file=abenshift_functions.htm
I got following error output:

Please find my code below.
CLASS zcl_isogram DEFINITION PUBLIC.

  PUBLIC SECTION.
    METHODS is_isogram
      IMPORTING
        VALUE(phrase)        TYPE string
      RETURNING
        VALUE(result) TYPE abap_bool.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.

CLASS zcl_isogram IMPLEMENTATION.

  METHOD is_isogram.
    result = abap_true.
    phrase = to_lower( phrase ).

    DO strlen( phrase ) TIMES.
      DATA(letter) = phrase(1).
      phrase = shift_left( val = phrase places = 1 ).

      IF letter EQ space
      OR letter EQ '-'.
        CONTINUE.
      ENDIF.

      IF find( val = phrase sub = letter ) GT 0.
        result = abap_false.
        EXIT.
      ENDIF.
    ENDDO.
  ENDMETHOD.

ENDCLASS.

Thanks in advance.
Michael

https://github.com/abaplint/transpiler/pull/959

@mickrig try again

Thanks Lars, now it works on Exercism.


Configure nodejs debugging for vscode

Add a launch.json file and enable compiling typescript with sourcemaps.
Makes it easier to debug the bidi server when developing in VS Code.
Also fixing a bug with the PORT environment variable name in bidiServerRunner.ts. The readme says PORT but the file was using BIDI_PORT.

I rolled back the PR and added instructions to readme in order to keep the project IDE-agnostic: https://github.com/sadym-chromium/bidiInChromeContext/commit/25c518ce720f041fb9b656e55425a0ce35777641


Communication stuck if connecting to one UART only

First of all, kudos for the project.
I have a device exposing two UARTS and I connect both the serials to the PICO.
I noticed that if I open a serial session (I use screen on macOS) to one UART only (either one of the two), the communication stuck after few bytes exchanged.
If I open the connection to the second UART, while the first one is frozen, the connection is resumed on both.
Please see attached screen recording.
https://github.com/Noltari/pico-uart-bridge/assets/10006973/0a9065ae-99a0-4f0b-becb-0c775b6aaece

Did you try updating the pico SDK to HEAD? It includes lots of fixes, probably might fix it for you.
It's one of the first things I do when I run into problems.

I was also able to recreate the same problem here on Linux, but there's specific conditions to trip the problem.
The communication packets have actually started, then stopped from the PC side...
...while there is a data flood on either or both channels from the UARTs.
This is caused by two bugs.
Basically the code spins waiting to unblock, which will never happen until the host catches up, it never will. Basically it gets stuck because...
...the silly read ISRs that end up in an endless loop.
This is  because the data incoming from the UART is not discarded if the buffer is full, thus, the IRQ is never cleared.
The fix is to remove the infinite loop by dropping the UART data on the floor.

Try this version and let me know if it works.
My changes are as follows:
UART0_TX 0
UART0_RX 1
UART0_LED_TX 19
UART0_LED_RX 18

UART1_TX 4
UART1_RX 5
UART1_LED_TX 17
UART1_LED_RX 16

It is also possible to send breaks with this firmware.
uart_bridge.uf2.zip

Try this version and let me know if it works. My changes are as follows:
UART0_TX 0
UART0_RX 1
UART0_LED_TX 19
UART0_LED_RX 18

UART1_TX 4
UART1_RX 5
UART1_LED_TX 17
UART1_LED_RX 16

It is also possible to send breaks with this firmware.
uart_bridge.uf2.zip

@xxxajk it would help a lot if you could provide the modified source code with the fixes.

Done.
https://github.com/xxxajk/pico-uart-bridge
If it is a fix for enough people, I'll do a pull request to here, although there's not a lot of activity here...

Done.
https://github.com/xxxajk/pico-uart-bridge

Thanks!

If it is a fix for enough people, I'll do a pull request to here, although there's not a lot of activity here...

Yes, please, open a new PR with this

Are you OK with the different pin setup?

I can confirm that #25 fixes the issue 🎊

Glad someone cherry picked it.
Couldn't stand the formatting at all, which doesn't follow best practices.
That's all good though, and why we got forks ;-)


Disable buttons when computation is running

This PR closes #79.
Now the buttons (run, update measurements, defaults) are blocked when the computation is running in a separate thread for dimensionality reduction and clustering widgets. They are activated again if an error occurs or the process finishes successfully.

Disabling buttons works but can only be tested until the finishing of the dimensionality reduction (connected to pull request #170


fix typo in Contributing

This PR fixes a typo in Contributing
great work by the way 👍

This change is

Oh, I am just embarrassed 🤦♂
I tend to type quickly and not read through what I've written, and this is the result of that. Thank you so much for finding this typo and fixing it, very much appreciated. I care about these things a lot too btw. Please do let me know if there any issues at all, would be open to hearing them :)
Thank you for this and your continued support!


[UT] fix mv rewrite ut

Signed-off-by: ABingHuang<EMAIL_ADDRESS>What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[x] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

fix mv rewrite ut
Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[x] 2.5
[ ] 2.4
[ ] 2.3
[ ] 2.2

run starrocks_admit_test


For the WriteAuthorizationModel snippet, use the DSL and only show the CLI

For this component: https://github.com/openfga/openfga.dev/blob/main/src/components/Docs/SnippetViewer/WriteAuthzModelViewer.tsx
Remove all except the CLI
And for the CLI, echo the model DSL into a temp file and have the CLI write that file

What does it mean "And for the CLI, echo the model DSL into a temp file and have the CLI write that file"? Would we tell them to do that? would the snippet include echo "..." > file?

If this issue is still open I would like to work on this, please assign it to me.
Thank you


SyntaxError when installing packages

Syntax error when trying to install a new package to a pipenv
Describe your environment

OS Type: Ubuntu Desktop
Python version: Python 3.6.3
Pipenv version: 11.0.2

Expected result
Run pipenv install django~=1.11 to install Django.
Actual result
Adding django~=1.11 to Pipfile's [packages]…
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
ome/ryan/anaconda3/lib/python3.6/site-packages/pipenv/patched/pip/index.py", line 31, in <module>
    from pip.wheel import Wheel, wheel_ext
  File "/home/ryan/anaconda3/lib/python3.6/site-packages/pipenv/patched/pip/wheel.py", line 6, in <module>
    import compileall
  File "/home/ryan/anaconda3/lib/python3.6/compileall.py", line 20, in <module>
    from concurrent.futures import ProcessPoolExecutor
  File "/home/ryan/anaconda3/lib/python3.6/site-packages/pipenv/../concurrent/futures/__init__.py", line 8, in <module>
    from concurrent.futures._base import (FIRST_COMPLETED,
  File "/home/ryan/anaconda3/lib/python3.6/site-packages/pipenv/../concurrent/futures/_base.py", line 381
    raise exception_type, self._exception, self._traceback
                        ^
SyntaxError: invalid syntax

Steps to replicate
Create a new pipenv and run pipenv install django~=1.11 to install Django.

Can you share your /home/ryan/anaconda3/bin/python -m pip freeze result? The import path looks messed up. Your environment is very broken.
p.s. this is not a Pipenv bug.

@uranusjr I have the same problem. And my environment isn't very broken it's just virtual.
It happens when pipenv installed in virtualenv.
Isn't pipenv  supposed to work from virtual environment?

No. You should not run pipenv inside a virtualenv. I agree something about your environment is quite broken if concurrent futures doesn’t work, not really sure what’s going on there


Not scaling at all for me

Hello! Thanks for making this! I have tried to use this after failing to port a different AA pixel scaling shader, and this one is having the same problem, namely that it doesn't actually do any scaling. I downloaded it and ran it on love 11.4, 11.3 and 11.2. All the same. I am running love on Linux with a modern gaming laptop. Any idea why this might be happening?

Hi. Just to confirm:

You didn't modify the code in any way?
Holding the Space key doesn't draw the scene upscaled?

I double checked and I actually got the code from here: https://love2d.org/forums/viewtopic.php?t=89442
Seems like there's a difference in that version where you comment out a part of a line:
love.graphics.draw(image, 0, 0)--, angleSin, SCALE[1], SCALE[2], 1.5, 1.5)
So if I understand this correctly, what you want to do to use this shader is to scale whatever you are rendering normally using love's scaling with "linear" as the filter, and have this shader set as the rendering shader that is used for that draw operation. Is that correct?

Seems like there's a difference in that version where you comment out a part of a line

Oops, that's an oversight, thanks. I've removed that forum attachment since it's a worse way of distributing code -- the code here on Github is always the latest and best.

So if I understand this correctly, what you want to do to use this shader is to scale whatever you are rendering normally using love's scaling with "linear" as the filter, and have this shader set as the rendering shader that is used for that draw operation. Is that correct?

That's right. Note that you don't have to set the mag filter to "linear" every time, as that's already the default mode.
This shader can only do its magic when the sprite being drawn is under 'magnification' (the sprite is upscaled, so the texels from the texture that it uses are drawn bigger than the screen pixels). If you're drawing the sprite at "identity" (AKA default) scale, then its texels have the same size as screen pixels and the shader won't make a difference.

The shader does this: for every screen pixel produced by the sprite, if that screen pixel is entirely within a texture texel from the sprite, then the screen pixel is exactly that color. If, however, the screen pixel is at the edge between neighboring texels (horizontal texel neighbors for the U coordinate, and vertical texel neighbors for the V coordinate), then the screen pixel will use the blended color between those neighbors based on where the screen pixel is in the "transition zone" between the neighbors.
In this image below, the black grid are screen pixels, and there's a huge rotated sprite, of which you can see two texels from it: the red and purple areas. Screen pixel A is fully red since it's entirely within the red texel, and screen pixel B is inside the transition zone between the two texels, so it's a linear blend between them depending on where it is on that transition zone. The width of that transition zone (SMOOTH_SIZE in the shader code, a float value of screen pixels) defaults to 1.0, for a perfect antialiased result, but a bigger value leads to smoother results.
Try 1.5, 1.75, 3.0 etc. More info in the shader code comments.

Hm, actually it's best to keep this open as other people can read it too.

Thanks so much for the detailed explanation! That helped me understand what these kind of shaders are doing, and I was able to get it to function for my use case. Thanks again :+1:


[BUG] Bot want to keep sleeping after sleeping

Expected Behavior

After sleep the bot continue to work
Actual Behavior

After the bot has been sleeping, it wakes up and decide to go back to sleep.
?? https://github.com/PokemonGoF/PokemonGo-Bot/pull/5180
?? https://github.com/PokemonGoF/PokemonGo-Bot/pull/5176
Your FULL config.json (remove your username, password, gmapkey and any other private info)

http://pastebin.com/7e8zmb7A
Output when issue occurred

[2016-09-06 14:54:22] [SleepSchedule] Sleeping for 00:06:17, wake at 2016-09-06 15:00:40.698931
[2016-09-06 15:00:41] [PokemonGoBot] Login procedure started.
[2016-09-06 15:00:42] [PokemonGoBot] Login successful.
[2016-09-06 15:00:42] [IncubateEggs] Eggs incubating: [3.01/5.0 km, 5.11/10.0 km] (Eggs left: 7, Incubating: 2)
[2016-09-06 15:00:44] [SleepSchedule] Sleeping for 00:08:59, wake at 2016-09-06 15:09:44.136603
[2016-09-06 15:09:44] [PokemonGoBot] Login procedure started.
[2016-09-06 15:09:46] [PokemonGoBot] Login successful.
[2016-09-06 15:09:46] [IncubateEggs] Eggs incubating: [3.01/5.0 km, 5.11/10.0 km] (Eggs left: 7, Incubating: 2)
[2016-09-06 15:09:47] [MoveToFort] Moving towards pokestop Thomas More - 0.11km
[2016-09-06 15:09:49] [SleepSchedule] Sleeping for 00:03:34, wake at 2016-09-06 15:13:24.431300
Steps to Reproduce

Start the bot
Other Information
OS: CentOS

Branch: dev

Git Commit: f543e3d66e502f89693b6675f494a421deb28000

Python Version: Python 2.7.5

Any other relevant files/configs (eg: path files)

I'd love to have a flag true or false to shut this whole aspect down completely. I do things manually and when I start the bot I want it to start.

[2016-09-06 14:54:22] start
[2016-09-06 15:00:44] start
[2016-09-06 15:09:49] start

      {
         "time": "15:00",
         "duration": "00:15",
         "time_random_offset": "00:10",
         "duration_random_offset": "00:10",
         "wake_up_at_location": ""
      }

It happens because #5176 rewrited some of changes of #5180 where it was fixed.
My new PR is almost ready and will fix it again.

Fixed with #5278


Add Emote#isAvailable() method

Pull Request Etiquette

[x] I have checked the PRs for upcoming features/bug fixes.
[x] I have read the contributing guidelines.

Changes

[ ] Internal code
[x] Library interface (affecting end-user code)
[ ] Documentation
[ ] Other: _____

Closes Issue: NaN
Description
Adds Emote#isAvailable() method which tells if the emote is available or not.
The Emoji structure has a available field that indicates if the emote is available for the users, depending on the current boost tier of the Guild.

Will this also get updated once the emote becomes available again or becomes unavailable? Shouldn't there be an event for that or discord doesn't send it?

I'm not sure about the details of this.
The only thing I do know is, that this is part of the emoji/emote object that Discord sends.
My guess is, that the emotes will update when the Boost level of the Discord changes either in positive or negative direction.

Would it be reasonable to add a isAvailable() method to Emote related Events?
Considering that on an EmoteAddEvent, this would always be true, since you can't add emotes when you lack the required boost level.

For this PR to continue, we need to find out if the GUILD_EMOJIS_UPDATE event is fired when boost level changes such that some emojis are no longer available.

From what I could do the docs not mention anything like that(?)
Should I perhaps ask for clarification on the API-docs GitHub?

You could ask in the docs repo, you could also test it out yourself.

https://github.com/discord/discord-api-docs/issues/1725#issuecomment-640947828
Looks like to trigger an event, but won't be guaranteed.

I currently think about how this could be added properly.
My thought was about having an EmoteUpdateX event of some sort that would update its availability, but this would probably require a updateEmote method in the EntityBuilder for what I know.

Since update events seem unreliable according to night, should this now be pretty much everything to add.
I perhaps should add a notice that the isAvailable() boolean might not be updated due to the EmoteUbdateEvent being not reliable on this and that Discord might not send an event in the first place?


Working in Linux containers?

I didn't see an explicit mention.
My question stems from the Snapshot debugger that was/is Windows-only as per https://learn.microsoft.com/en-us/azure/azure-monitor/snapshot-debugger/snapshot-debugger#applications and I just want to make sure that Linux containers are a-ok to use with it.

@christophwille Thanks for the ask. Early access / beta stage aside, this profiler is designed to work with Linux containers as well as windows.
We will update the document to clarify it.

Readme has been updated. Close this one. Thanks for the feedback.


Remix example for signup is not working

Hi!
I noticed that the remix example for signup is not working. When I enter everything correctly, it won't sign up the form.
It might have to do something with the useForm hook. Even if everything is correct, it still falls into the if condition.

@jansedlon Thanks for pointing it out. I am surprised the test suite didn't catch this. 😅 I will put up a patch later today.

I patched the package with your PR and it works, many thanks 🎉


[BUG][API]task definition reference deleted resource files.

Purpose of the pull request
close #11827
Brief change log
1、Create a process definiiton（flow001) and add a shell task. The shell task references two rosource files (file1.sql and file2.sql）
2、Make flow001 offline
3、From resource center, delete file1.sql
4、 Make flow001 online again
5、 The flow001 can not be scheduled normally
Verify this pull request
1、Create a process definiiton（flow001) and add a shell task. The shell task references two rosource files (file1.sql and file2.sql）
2、Make flow001 offline
3、From resource center, delete file1.sql
4、 Make flow001 online again
5、 The flow001 can not be scheduled normally

Hi @hstdream The 3.0.0 version had been released, please change the target branch to dev or 3.0.x-prepare or 3.1.x-prepare.
Is this issue exist in 3.0.x and 3.1.x?

3.0.x

How to switch committed code to branch 3.0.x-prepare.

3.0.x

This issue also exist in dev, it should target to dev. After merging, it will be cherry-pick to 3.0.x-prepare.


VotingRoundImpl::validate ignores equivocatation

Equivocation evidence should be examined and if they are valid then.
The proven equivocations should count as a vote to the wining block one per equivocating voter.

From Syed:
The behavoir implemented here doesn't seem to be correct: one should not ignore equivocation but one assumes that the equivocator has voted once for all blocks in that round that at least has one vote from any other voter.
https://github.com/soramitsu/kagome/pull/445/files#diff-2085d1ec163da554c77ebaeacd41b4d4adb86447cd5cf341fe74cc2dd2e0c4d7R123

From Syed:
Still does not seems correct to me.
First:
https://github.com/soramitsu/kagome/blob/323637c552baba92fda44ddcf2d3bd1cd4da693c/core/consensus/grandpa/impl/vote_tracker_impl.cpp#L27
After observing first equivocation we should account for the voter to be equivocatory and then we should ignore all their other votes be the third, fourth equal or not etc. They may as well vote for 1 million blocks.
and here I'm not sure why we are adding to total weight. I do not think total weight changes via equivocation:
https://github.com/soramitsu/kagome/blob/323637c552baba92fda44ddcf2d3bd1cd4da693c/core/consensus/grandpa/impl/vote_tracker_impl.cpp#L42
The threshold of winning is still 2/3 of original weight just act as the equivocator has voted  for every block in that round that had at least one vote.

After observing first equivocation we should account for the voter to be equivocatory and then we should ignore all their other votes be the third, fourth equal or not etc. They may as well vote for 1 million blocks.

This is what we actually do here. When first vote is received it is saved in map using authority's key. Second time we see the different vote from authority that is already in the map, we mark him as equivocatory here. Third and next times when we see votes from that authority they will be counted as duplicated and won't change weights: here and here

and here I'm not sure why we are adding to total weight. I do not think total weight changes via equivocation:

Because here it is described that way

My understanding is that this returns true: https://github.com/soramitsu/kagome/blob/323637c552baba92fda44ddcf2d3bd1cd4da693c/core/consensus/grandpa/impl/vote_tracker_impl.cpp#L28
only if one of the two voted blockhashes are equal to the new vote block hash, am I wrong.

My understanding is that this returns true:
https://github.com/soramitsu/kagome/blob/323637c552baba92fda44ddcf2d3bd1cd4da693c/core/consensus/grandpa/impl/vote_tracker_impl.cpp#L28
only if one of the two voted blockhashes are equal to the new vote block hash, am I wrong.

@drskalman yes, in that case we ignore the vote as it was already counted as equivocated. We also handle the case that if it is the third or fourth or any other vote from equivocating validator, we will ignore it as well

So the code works but it doesn't make sense and make the logic complicated. The code says if it is a Dupclicate for an equivocatory voter then return Duplicate.  And if it is not a duplicate of an eqvuivocatory voter then again say it is a Duplicate. here: https://github.com/soramitsu/kagome/blob/323637c552baba92fda44ddcf2d3bd1cd4da693c/core/consensus/grandpa/impl/vote_tracker_impl.cpp#L48
So basically the check on line 28 is useless and is ignored later. That makes the code really hard to read as it took me so long to understand that it should be ignored.
It is much better if you could remove this redundant ignored logic.
Also maybe better to choose better name instead of Duplicate because you are marking a non-duplicate vote of  an equivocatory voter as "Duplicate" which is also confusing. Maybe PushResult::DISREGARDABLE is a better name.

Also could you please clarify what is total_weight_ is used for and we are increasing it for the second vote of the equivocator (because at this point we should assume that the equivocator had voted for all blocks so we should actually add weight * (all blocks which has at least one vote in the current round)).


Google Analytics Implementation

What problem does this feature solve?
We need to analyze our user (and their interactions)
What does the proposed API look like?
User interaction is well-tracked

We should remind user about Google Analytics information, maybe we can add a card to the home page?

Are we should isolate the google analytics method to a js lib?
Then we can unify the google analytics data in this lib, and easy to use everywhere.


Fix typo and update guidance to point to dfeR package

Overview of changes
Update references from the Analysts' Guide to point to dfeR for connecting to SQL.
Why are these changes being made?
We have a function in dfeR that we will maintain there, as well as a vignette that walks through connecting to SQL.
Detailed description of changes
As it says, plus:

Removed link to old C+C materials that just shows a blank page
Removed random HTML files that popped up in my Git changes, assuming they shouldn't have been there to start with

Issue ticket number/s and link
None.
Checklist before requesting a review

[x] I have checked the contributing guidelines
[x] I have checked for and linked any relevant issues that this may resolve
[x] I have checked that these changes build locally
[x] I understand that if merged into main, these changes will be publicly available

 Update analysts guide connecting to SQL to point to dfeR get_clean_sql()


functional-web-component has been deprecated. It is now called fuco.

Description
functional-web-component has been deprecated in favor of fuco.
See the deprecation notice instead.

Thanks, fixed by ff3e723


chore(deps): pin httpbis-digest-headers version

Changes proposed in this pull request
Specify the version of httpbis-digest-headers in order to fetch it from the NPM registry instead of GitHub.

Context

https://github.com/interledger/rafiki/pull/1795#issuecomment-1698607385

🦋 Changeset detected
Latest commit: 3264eeb
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 2 packages
Name 	Type
@interledger/http-signature-utils 	Patch
@interledger/open-payments 	Patch
Not sure what this means? Click here to learn what changesets are.
Click here if you're a maintainer who wants to add another changeset to this PR

Why does it include @interledger/open-payments as well, when only http-signature-utils is mentioned in the changeset file? 🤔

Because open-payments has http-signature-utils as a dependency


Error when running :Conflicted

I just tried using this plugin and when I run :Conflicted I get this error in the prompt
"db/migrate/20150413215433_create_interests.rb" 11L, 263C
Error detected while processing function <SNR>90_Conflicted..<SNR>90_Merger..<SNR>34_Diff:
line    7:
"fugitive:///Users/jakecraige/Work/apps/glassbreakers/.git//1/db/migrate/20150413215433_create_interests.rb" --No lines in buffer-- ((1) of 5)

It still opens up the 3 tabs but the "working" tab doesn't have the 3 splits. Do you know what this is?

Looks like a fugitive error. Can you try running just :Gdiff and let me know what the output is?

Interesting, I get this when running that.
Error detected while processing function <SNR>34_Diff:
line    7:
E480: No match: `=fugitive#buffer().repo().translate(s:buffer().expand(':2'))`

Yep, that's definitely in fugitive. Unfortunately I don't have much knowledge about the inner workings of it to help out here. Might be worth opening an issue on fugitive's repo. I'm going to close this now, but please feel free to reopen or comment if you feel there is something specific to Conflicted involved.


Webhook registration issue after fill your Telegram credentials

Try to register webhook here https://dev.botframework.com/bots/channels?id=my-bot&channelId=telegram
But when click on "Save" button get "unable to save" message.
I do it many times successful earlier, but on this week something wrong.
Steps to reproduce the behavior:

Go to https://dev.botframework.com/bots/channels?id=my-bot&channelId=telegram
Click on Save, after fill Access Token input field
See error "unable to save"

@4ININ Same here; Apologies. Is this issue still happening?

Yes

@4ININ Please try deleting the channel and trying again. If it still doesn't work, then try pasting your API Token in a text editor (or developer tools console window) to make sure there are no hidden characters.


Fuse array elementwise operations at graph build time

Linear array expressions in dask array sustain some overhead that may be optimized away, as noted in #2034, #2497.

Each operation (e.g. __add__) adds another set of tasks to the graph. This adds overhead both in time (cost of building the graph) and space (overhead of larger dictionary representing the graph).

The larger graph increases overhead of our optimization passes for fusing tasks. It'd be better to generate a better graph rather than relying on optimization passes to detect and fuse elementwise operations.

Here we compute the same elementwise operation in 2 ways:

First using operators directly on dask arrays. This generates individual tasks for each operator, which are then fused together during our optimization passes.
Second using map_blocks and a function representing the whole elementwise operation. This generates a single task for each block (much smaller graph) and requires no optimization.

In [1]: import numpy as np, dask.array as da

In [2]: x = np.random.normal(size=int(2e8))

In [3]: y = np.random.normal(size=int(2e8))

In [4]: dx = da.from_array(x, chunks=int(1e6))

In [5]: dy = da.from_array(y, chunks=int(1e6))

In [6]: def f(x, y):
   ...:     return (0.5 - x)**2 + 0.8 * (y - x**2)**2
   ...:

In [7]: %%time
   ...: o = f(dx, dy).max()
   ...: print("%d tasks" % len(o.dask))
   ...: _ = o.compute()
   ...:
2070 tasks
CPU times: user 3.34 s, sys: 1.47 s, total: 4.81 s
Wall time: 1.76 s

In [8]: %%time
   ...: o = da.map_blocks(f, dx, dy).max()
   ...: print("%d tasks" % len(o.dask))
   ...: _ = o.compute()
   ...:
870 tasks
CPU times: user 3.06 s, sys: 1.36 s, total: 4.42 s
Wall time: 1.53 s

From the above you can see using map_blocks on a single function results in a smaller graph and faster execution time. For larger arrays/array expressions the benefits are even larger.
It'd be nice to be able to write code like the first example (using operators) and have the graph be equivalent to the second (single mapped function). In #1946 a solution using task fusion was proposed. This is more general, but wouldn't reduce the size of the generated graph until fusion time, which still incurs the cost of generating and optimizing the graph.
Instead we propose avoiding generating the large graphs in the first place by adding a simple expression system to dask.array. This would only cover the linear operations generated by da.atop (which backs a good number of functions/operators). By changing atop to return a special object that encodes the meaning of the atop operation but doesn't generate the graph yet. Further calls to atop using that output would continue to build up expressions until an incompatible method was called. The expression structure could either be stored in a custom MutableMapping (as suggested in #1763) or in a thin subclass of da.Array.
Example
x = some_dask_array()
# No graph generated yet, just expression encoding `x + 1`
x2 = x + 1
x3 = x2 + x
x4 = da.sin(x3)
# `sum` isn't a linear expression, so graph for `x4` is generated
# and (potentially) cached in `x4`. This graph maps the function
# `sin((x + 1) + x)` across all blocks
x5 = x4.sum()

One further benefit of the simple expression system means that we have enough information that we could optionally optimize the evaluation of tasks, either by interpreting the expressions to use out= keywords to the numpy methods to reduce memory overhead, or by calling nb.jit on expressions. If done this should either be explicit or configurable, but would yield further performance improvements.
In [9]: import numba as nb

In [10]: f2 = nb.jit(f, nopython=True, nogil=True)

In [11]: f2.compile('f8,f8') # precompile
Out[11]: <function __main__._Closure.f>

In [12]: %%time
    ...: o = da.map_blocks(f2, dx, dy).max()
    ...: print("%d tasks" % len(o.dask))
    ...: _ = o.compute()
    ...:
    ...:
870 tasks
CPU times: user 2.1 s, sys: 285 ms, total: 2.39 s
Wall time: 613 ms

As a further extension, this could potentially solve #2431, as __getitem__ on the thin subclass of da.Array (da.AtopArray?) could be overridden to push slices back before the elementwise operations. This would be more robust than relying on an optimization pass.

Thank you for the writeup.  A few thoughts:

I think that the restriction shouldn't be linear atop operations, but rather atop operations that do not reduce parallelism.  For example, we would want to be able to fuse through transpose operations.  I think that there are cases even past this where we can still fuse atop operations
I'm slightly more in favor of having a separate task rather than push this onto the MutableMapping.  This seems like too large of a feature to handle implicitly.
I'm comfortable using out= parameters implicitly without user intervention.  Obviously we would need to keep the original input safe from inplace mutation, but everything else should be fine.  The speedup you show is motivating.

In general I think that there are two aspects to this problem:

How do we capture atop metadata in normal dask.array code without affecting current users
How do we optimize and rewrite these operations

I was playing with tests for the second question on the train this weekend.  I came up with the following.  I'm not sure if these should pass, but I found the exercise educational.
In the lines below we define a sequence of operations (a, b, c) on arrays with names (_1, _2, _3), tasks
like (add, _1, _2), and out- and in- index sets like 'i' and ('i', 'i').  Then we follow up with the expected result from fusing those operations together.  In practice _0, and _1 would probably be replaced with array names like add-1234abcd
    # out-key, task, out-index, in-indices
    a = '_2', (add, '_0', '_1'), 'i', ('i', 'i'),
    b = '_3', (inc, '_2'), 'i', ('i',)

    expected = '_3', (inc, (add, '_0', '_1')), 'i', ('i', 'i')

    a = '_1', (inc, '_0'), 'i', ('i',)
    b = '_2', (dec, '_0'), 'i', ('i',)
    c = '_3', (add, '_0', '_1'), 'i', ('i', 'i')

    expected = '_3', (add, (inc, '_0'), (dec, '_0')), 'i', ('i',)

    a = '_1', (transpose, '_0'), 'ij', ('ji',)
    b = '_3', (dot, '_1', '_2'), 'ij', ('ik', 'kj')

    expected = '_3', (dot, (transpose, '_0'), '_2'), 'ij', ('ki', 'kj')

    a = '_2', (add, '_0', '_1'), 'i', ('i', 'i')
    b = '_5', (add, '_3', '_4'), 'i', ('i', 'i')
    c = '_6', (add, '_2', '_5'), 'i', ('i', 'i')

    expected = '_6', (add, (add, '_0', '_1'), (add, '_3', '_4')), 'i', ('i', 'i', 'i', 'i')

    a = '_2', (add, '_0', '_1'), 'i', ('i', 'i')
    b = '_5', (add, '_0', '_4'), 'i', ('i', 'i')
    c = '_6', (add, '_2', '_5'), 'i', ('i', 'i')

    expected = '_6', (add, (add, '_0', '_1'), (add, '_0', '_4')), 'i', ('i', 'i', 'i')

    a = '_1', (sum, '_0'), 'i', ('ij',)
    b = '_2', (inc, '_1'), 'i', ('i',)

    expected = '_2', (inc, (sum, '_0')), 'i', ('ij',)

    a = '_1', (inc, '_0'), 'i', ('i',)
    b = '_3', (inc, '_1'), 'i', ('i',)
    c = '_4', (add, '_1', '_3'), 'ij', ('i', 'j')

    expected = '_4', (add, (inc, '_0'), (inc, '_2'), 'ij', ('i', 'j')

In the examples above I now think that we should have annotated the indices with their keynames like the following:
Before
a = '_1', (transpose, '_0'), 'ij', ('ji',)
b = '_3', (dot, '_1', '_2'), 'ij', ('ik', 'kj')

expected = '_3', (dot, (transpose, '_0'), '_2'), 'ij', ('ki', 'kj')

After
a = '_1', (transpose, '_0'), {'_1: 'ij'}, {'_0': 'ji'}
b = '_3', (dot, '_1', '_2'), {'_3': 'ij'}, {'_1': 'ik', '_2': 'kj'}

expected = '_3', (dot, (transpose, '_0'), '_2'), '{'_3': ij'}, {'_0': 'ki', '_2': 'kj'}

@shoyer this issue may interest you.  I suspect that it would improve xarray performance.

Yes, this looks appealing to me. I don't have much to add to the discussion at this point but I would be interested to see the PR.

Another thing that could be really interesting along these lines would be (optionally) fusing the operations themselves with something like numexpr. Though this could probably be dealt with in a second stage.

This was done in #3998


CardForm onFormComplete occure undefined for all case

Describe the bug
I tried to use card form on react native android
To Reproduce
<CardForm
onFormComplete={cardDetails => {
console.log('card form', cardDetails);
}}
style={{ height: 200 }}
/>
Expected behavior
I have to fetch correct input value on onFormComplete

But I get correct value on CardFiemd for same card input data
But I got an undefined value
Desktop (please complete the following information):

OS: [Windows 10]

Smartphone (please complete the following information):

Device: [Android 10]
-React-Native:0.64
-Stripe-react-native:0.2.0

@panda919  you can have one Card component on the same screen

Yeah, I tried one component mode. But I got the same error

@panda919 you should set higher height of CardForm because there is one more hidden field, height: 350 should be enough

@AlexSirenko actually this required all fields to be filled the issue here is you  are not adding postal code field set height to 350 or more, you can see the postal code field try to put data in all fields then it'll give you complete data.


Append SDK path to appDeeplinkUrl

Summary
Appends the SDK path to the appDeeplinkUrl instead of replacing the path

How did you test your changes?

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
0

Sum
1


logEvent promise will not resolve on Android when onSuccess/onError not specified

If you do not pass call backs for either onSuccess and/or onError on logEvent() the promise is never resolved.
Version:     "nativescript-plugin-appsflyer": "6.2.3",
Just try the following:
{
   await appflyer.logEvent({ eventName: "af_login", eventValues: null});
   // You will never reach here on your code
}

Hey @jalberto-ghub ,
We're investigating this issue. We'll update here once fixed.

Hey @jalberto-ghub ,
I've fixed the issue in latest version.
Please let us know if there is anything else we can help with!


Fix the layout jitter caused by the height change when Select is selected for the first time in multi-selection mode.

Fix the layout jitter caused by the height change when Select is selected for the first time in multi-selection mode.

Types of changes

[ ] New feature
[ ] Bug fix
[x] Enhancement
[ ] Documentation change
[ ] Coding style change
[ ] Component style change
[ ] Refactoring
[ ] Test cases
[ ] Continuous integration
[ ] Typescript definition change
[ ] Breaking change
[ ] Others

Background and context

https://user-images.githubusercontent.com/31227919/226523761-0d4ac9f2-1000-4820-bf52-1974c617d41e.mp4

Sry.  Should not change min-height to height directly. Select's labels should be able to wrap in multiple-mode, like below.

I have fixed this issue in this PR.


Add rotation operator

It feels a bit more chaotic than I was hoping, and a lot of that comes from the different arguments you can pass in. Performance wise it's similar to the bilinear resize due to each pixel needing to the calculated individually.
See documentation for the same operated added to cr-image.

Should we mention this new operation in README.md?

Doh, forgot to update the README, thanks for calling that out :P

Thanks for the PR!


[1.21.1 alpha9] Origin Layers do not register Origins (When trying to replace)

So, I updated to the latest alpha, but my origins were not showing up anymore.
I used another datapack to load origins, but it did not work. The origins themselves seem to exist, because they are registered. Just not in that specific layer:

I double checked my syntax on the discord server and it seems to be all correct

Okay, it only works, when I don't try to replace

Issue was resolved in Discord (see: https://discord.com/channels/734127708488859831/1307593020241088582/1307593020241088582)


Application invisible to system and apps

Hello I face problem, that this application is invisble to nearly all applications on my device.
Due to this I can not unblock it in my firewall as it is not listed.
The follwing application can not detect gms-core in any way:

Afwall+ (root) can not detect the application
System buildin "apps manager" can not detect the application
"system app safe remover" (root) can not detect the application
"lucky patcher" (root) can not see the application

The only application that can see the package is:

X-Posed based application "quick settings"

I already tried the follwing solutions for testing purposes:

Install application as user application
Install application as privledged application
Signature spoofing enabled/disabled

Additional information:
MicroG package: Services Core com.google.android.gms -> 0.2.4-111-gf1cdb48
Original file: https://microg.org/fdroid/repo/com.google.android.gms-12221403.apk
Device: "Zuk Z2 Pro" / Model: "ZUK Z2121"
Device operating system "OREO (8.0.0)"
OS release: ZUI 3.5.344 ST
Any ideas why this application goes under the radar?
Is this normal?

Is this a fun question like holding a ball in the hands an getting asked how to determine it is not a cube? 😁
Because all of those applications scan installed packages and present them as a list so one ore more packages can be selected to perfom an action on them. However, none of those applications (except the one I mentioned) includes "com.google.android.gms", "org.microg.gms", "microG Settings" or "microG Services Core" in any of the lists. As I mentioned, even the buildin apps manager of the operating system does not list the application as installed, thus the application is literarely invisible. Due to this I can not unblock it in Afwall+ firewall as it never shows up in my white-list which makes using several functions of microG impossible because it can not access the internet.
How to solve it?

This is kinda what I expected. Does any of them present “Google Play Services”?

Unfortunately no "Google Play Services" is shown either. You mean because it could be possible shown as "Google Play Services" due to the signature spoofing?
Already tried with signature spoofing disabled but that makes no difference.

Yes, exactly. That’s how it shows in Yalp Store for me for instance. Have you looked at “UnifiedNlp Location Services” or anything with μG/microG in the name?
Honestly excepted apparition under another name, I don’t see what could be happening.

I have the following applications installed:

Services Core (v0.2.4-111-gf1-cdb48)
Services Framework Proxy (v0.1.0)
Store - FakeStore release (v0.0.2)
DroidGuard Helper (v0.1.0-10-gf64bf69)
IchnaeaNlpBackend (v1.3.3)
NominatimGeocoderBackend (v1.2.1)
FakeGapps (v2.0) [xposed-module for signature spoofing]
XposedGmsCoreUnifiedNlp (v1.0.4-Beta) [xposed-module to allow unifiednlp as location provider]
Yalp Store (v0.39)

MicroG self-check:

Yalp Store:

Well I don’t know. I might be because of how the XPosed module works, it could be something with Magisk… This is not something I can determine as just an user.

I am no expert here, as can be seen from my other posts, but there is a xposed module (imaginatively AFWall+ Xposed related fixes for AFWall+) to allow AFwall to work. I have it installed and my AFWall+ (v2.9.8)  can see "microG Services Core".


Remove Undue Complexity

See https://github.com/hydephp/framework/issues/442

Before releasing v1 I want to make sure the code is stable, and part of this is to ensure the code is easy to maintain. To do this I want to reduce undue complexity. I think Hyde as it is now should focus on the 80% use case. Features can always be brought back if there is demand but for now I want to keep things very light.
Currently considering removing the authors.yml file. I don't think that many Hyde projects as of now will use that many authors, so I think those defaults can defined in the main config file and having it for a single author as having a single-purpose yml file adds more complexity than it's IMO worth at this point in time.

[x] https://github.com/hydephp/framework/pull/449 (remove authors.yml)
[x] I think I will remove the "Asset Locations and Versions" section in the config.
[x] #30
[x] #5
[ ] Am also considering handling the creation of required directories in the app bootstrapping file (or dropping auto create all together and using a gitkeep. we would only then create directories if they are non-standard like for custom documentation page output)
[x] #7

Am also considering handling the creation of required directories in the app bootstrapping file
Edit: Or we just skip this all together and handle it with .gitkeeps

https://github.com/hydephp/framework/issues/442#issuecomment-1149030435

All items on the todo list are resolved. Closing to keep issues tab clean. Anyone is welcome to reopen!


io.configure error

Hello,
When I attempt to run the server I get the following error which I believe is because io.configure got depreciated. I'm not quiet sure how to fix this. Overall it seems to have trouble with few methods in socket.io version 1.xx
C:\AGS-Sample-master\AGS-Sample-master\server\AGS-Server\server.js:11
io.configure('production', function(){
^
TypeError: Object # has no method 'configure'
at Object. (C:\AGS-Sample-master\serve
r\AGS-Server\server.js:11:4)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

See the socket.io docs for info here:
http://socket.io/docs/migrating-from-0-9/#configuration-differences
Some of those configuration options like log level are deprecated, so you can leave those out, the ones that are still valid can be passed as shown in that link.
If you get this working, would be great if you could submit a pull request for the changes.

I downgraded to 0.9 for testing by doing
npm uninstall socket.io
npm install<EMAIL_ADDRESS>also switched to socket 0.9.16 for client
"http://cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"
If I'm able to get the testing working I'll update it to latest socket.io version.


[Bug] Windows Installer: Gifski & FFmpeg installed but still needs manual configuration for app to find files

Windows installer issue
When I use the Windows installer and select the options to install Gifski and FFMpeg, the required files are installed, but I still need to go into the Extras section of the application's configuration menu and tell it where the files are.
Steps to reproduce

Download and run installer on Windows.

Download MSI installer and select options to install FFmpeg and Gifski.
If using winget to install, it doesn't let you customize installation options, so you must...

Go to Add / Remove Programs and then Modify, and choose FFmpeg. (Gifski is chosen by default and already installed).

Open ScreenToGif Options.

Click on Extras in the list to the left. The Available external tools, FFmpeg and Gifski, are not available.

User must manually locate the files that the installer installed.

File
Location

ffmpeg.exe
%ProgramData%\ScreenToGif

gifski.dll
%ProgramFiles%\ScreenToGif

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information)

OS Microsoft Windows 11 Home
Version 10.0.22000 Build 22000

Additional context
See attached video for post-installation Extras configuration.
ScreenToGif Extras.webm

The app will end up datecting the files when you want to use them, it was just not detecting when in the Settings window.
I changed that.


Add digitization class

This PR:

This PR requries #6368
modifies _test_raw_reader to force info['dig'] to be Digitization or None
Add Digitization class

On the top, here is a summary of which readers go through _test_raw_reader, if so with was type(info['dig']): None, Digitization, or both. And for those readers expected to not have Digitization do they have montage. The goal of this table is to keep in mind the current status + plan following PRs.
                       | _test_raw_reader | None | Digitization | other   |
-----------------------+------------------+------+--------------+---------+
RawArray               |     x            |  x   |              |         |
read_raw_artemis123    |     x            |      |     x        |         |
read_raw_bdf           |                  |      |              | montage |
read_raw_brainvision   |     x            |  x   |     x        |         |
read_raw_bti           |     x            |  x   |     x        |         |
read_raw_cnt           |     x            |  x   |              | montage |
read_raw_ctf           |     x            |      |     x        |         |
read_raw_edf           |     x            |  x   |     x        |         |
read_raw_eeglab        |     x            |      |     x        |         |
read_raw_egi           |     x            |  x   |              | montage |
read_raw_eximia        |     x            |  x   |              | ------- |
read_raw_fieldtrip     |                  |      |              | ------- |
read_raw_fif           |     x            |      |     x        |         |
read_raw_gdf           |     x            |  x   |              | montage |
read_raw_kit           |     x            |  x   |     x        |         |
read_raw_nicolet       |     x            |  x   |              | montage |

Do we miss entry to the glossary? cc: @drammock
Shall we review the visualization module? cc: @GuillaumeFavelier

This should be green. Feel free to merge.

@massich as we discussed we could review the visualization module. I think having a dig.plot() function could be a good idea for two reasons. For context encapsulation and from a user point of view, it would be easier to use. Also, something similar is already done for other classes (i.e. stc.plot() and evoked.plot()) so it's consistent with the architecture. If you want, we can discuss how to make it work with a potential follow-up PR, what do you think?

Do we miss entry to the glossary? cc: @drammock

Added "Digitization" to TODO list in #6321

@GuillaumeFavelier great! we should open an issue and cross reference it here.


refactor: lake: more robust trace reading

The recent change of the trace format exposed some unexpected issues with Lake's tracing handling. This aims to fix that.
Lake will now perform a rebuild if the trace file is invalid/unreadable. However, it will still fall back to modification times if the trace file is missing. Also, Lake is now backwards compatible with the previous pure numeric traces (and tolerates the absence of a log field in the JSON trace).

@semorrison FYI, this is (IMO) high prio to get into 4.9.0, it fixes a backward compatibility issue which currently afflicts people updating to 4.9.0-rcX from 4.8.0.


Is it possible to load tiles using the setTileLoadFunction ?

I'm using Ionic React in a project and would like to replicate a feature already used in another Ionic Angular application that uses OpenLayers. Basically, the code I want to replicate downloads the tiles from the application and saves them on the device. This way, when the app is accessed without an internet connection, it can display the tiles on the map, as shown below:
async addOrtofotoOffline() {
    this.networkStatus$
      .pipe(takeUntil(this.destroy$))
      .subscribe(async (status) => {
        if (!status) {
          const userLoggedValues = await firstValueFrom(
            this.userLoggedService.getUserLogged()
          );

          const tenantConfig = JSON.parse(userLoggedValues.tenantConfig);

          const exist = await this.validateFolderExists(tenantConfig.cidade);

          if (!exist) return;

          if (!this.validateFolderExists(tenantConfig.cidade)) {
            return;
          }

          const allLayersOrotofoto = this.map
            .getLayers()
            .getArray()
            .filter(
              (layer: any) => layer instanceof TileLayer && layer.get('online')
            );

          if (allLayersOrotofoto.length) {
            this.map.removeLayer(allLayersOrotofoto[0]);
          }

          const directory = FilesystemDirectory.Data;

          const source = new XYZ({
            url: `${directory}/${tenantConfig.cidade}/{z}/{x}/{y}.${userLoggedValues.ortofotoEXT}`,
            maxZoom: 20,
            crossOrigin: 'anonymous',
            tileLoadFunction: async (imageTile: any, src) => {
              imageTile.getImage().src = await this.readImageIfExists(src);
            },
          });

          const layerOptions = {
            source,
            zIndex: 5,
            visible: true,
            offline: true,
          };

          const layer = new TileLayer(layerOptions);

          this.map.addLayer(layer);
        }
      });
  }

I tried to replicate the same code for the rlayer based on this, but I was not successful. Could someone help me? Here's what I tried to do so far:
const diretorioTiles = "diretorio_tiles";

  const fetchTilesFromLote = async () => {
    if (!basemaps) return;

    const lote = await getAllLotes();
    const loteIds = lote.map((e) => e.fid);
    const endPoint = basemaps[0].url;
    const extensao = basemaps[0].extensao;

    const positions = await getTilesFromLote(loteIds);

    for await (const position of positions[0]) {
      const { data } = await axios.get(
        `${endPoint}/${position.z}/${position.x}/${position.y}.${extensao}`,
      );
      saveTile(position.z, position.x, position.y, extensao, data);
    }
  };

  async function saveTile(
    z: number,
    x: number,
    y: number,
    extensao: string,
    tileData: any,
  ) {
    const path = `${diretorioTiles}/${z}/${x}/${y}.${extensao}`;

    try {
      const res = await Filesystem.writeFile({
        path: path,
        data: tileData,
        directory: Directory.Documents,
        encoding: Encoding.UTF8,
        recursive: true,
      });

      console.log(`Tile salvo em ${path}`, res);
    } catch (error) {
      console.error("Erro ao salvar o tile:", error);
    }
  }

  const mapLayer = useRef<RLayerTile>(null);

  async function readImageIfExists(filename: string) {
    try {
      const file = await Filesystem.readFile({
        path: filename,
        directory: Directory.Documents,
      });

      return `data:image/jpeg;base64,${file.data}`;
    } catch (error) {
      return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsAQMAAABDsxw2AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAANQTFRFAAAAp3o92gAAAAF0Uk5TAEDm2GYAAAAiSURBVHic7cExAQAAAMKg9U9tCj+gAAAAAAAAAAAAAAB4GS20AAFmdDNkAAAAAElFTkSuQmCC";
    }
  }

  useEffect(() => {
    console.log("mapLayer.current", mapLayer.current);
    if (mapLayer.current) {
      mapLayer.current.source.setTileLoadFunction(async (tile, src) => {
        async (imageTile: any, src: any) => {
          imageTile.getImage().src = await readImageIfExists(src);
        };
      });
    }
  }, [mapLayer]);

There is no reason why it should not work. Don't you have an idea what is wrong with your code?

As you may have seen from my profile, I am currently living on social welfare because an extortion that involves the French police and the French judiciary, in order to intimidate me people are opening issues why simultaneously doing something else on my profile, yours is one, do you have anything to say about this?


Changed 3.41 to 3.14 to reflect numerical representation of pi

This looked like a typo, so I thought I would submit a pull request to fix it. I'm finding the lessons and structure very useful overall!

@mercul3s I believe this was just chosen as a random floating point number, and not specifically supposed to be pi or anything. If that was the case we would use :math.pi/0. @doomspork correct me if I'm wrong.

@mercul3s is correct, it fits with the different pie types mentioned in the examples. I can't believe I made that mistake, someone is going to revoke my :neckbeard: card.
We don't want to use a function @ybur-yug, it's an example number.  We don't need the actual number pi.
Thanks @mercul3s 👍

I was thinking of it from the few lines I worked on in a change earlier on that piece. Woops. 👍

Glad I could help!


Github Action for Golang unit tests.

Now all we need to do is to actually add tests 😆

It is actually running make test.. :)

I guess i should improve that, so it shows "make test" instead of "set -x"

It looks like some checks moved from "Code Style" to "Test". Is this expected, @jmprusi?

@guicassolato  honestly, no idea why that is happening...


Prime and reservoir change device events

[X] prime (cannula/tubing) device events
[ ] reservoir change device events

 <2> [uploader] [tandem] reservoir changes & prime events

Amounts look right for my habits, and there's an even number of cannula and tubing primes, which is true when all is going well :+1:

A few comments on naming that I wouldn't hold up a merge for, but I'd also like to see the two volumes listed in the spec (InsulinVolume and V2Volume) in the payload.

Renamed references to cartridge as cartridgeChange as they are all part of the cartridge change process.
Including the two volumes in payload as insulin_display and insulin_actual.

Merging.


Frame rate loss when enabled for lower end GPU

when I downloaded the mod I lost a lot of frames and I think its because the background is a semi-transparent and is pretty taxing on my GPU. I think it would be nice to have an option to have a fully transparent or fully opaque option for the background, to improve performance for people with lower end GPUs likes me.

ESC's background is translucent and the load on the GPU is very small and negligible.
There could be other reasons for the framerate drop.
Could you please upload the log?
(InstallDir)\Logs_latest.log

When I downloaded the mod the chat box has a solid border with a semi-transparent background. the background blurs what's behind it and I think that's what's causing the frame drop and when I uninstalled the mod my frames went back to normal, but I'll double check and make sure nothing else is causing the problem


AlternateTag class is missing

I don't find AlternateTag class in the source of the package so it is not possible to run this code: (extracted from README)
public function getDynamicSEOData(): SEOData
{
return new SEOData(
title: $this->title,
description: $this->excerpt,
author: $this->author->fullName,
alternates: [
new AlternateTag(
hreflang: 'en',
href: "https://example.com/en",
),
new AlternateTag(
hreflang: 'fr',
href: "https://example.com/fr",
),
],
);
}

Hi @VisionovaDev,
AlternateTag is not released yet, I suppose it will be released in the coming days

Hi @VisionovaDev, it wasn't released since we wanted to combine it with an other PR that was open. I just reviewed and finished that PR today and released all the outstanding features in version 1.6.0, including the AlternateTag support.
Let me know if this works for you!

Hi @ralphjsmit
It works !
Thank you for your efforts.

Mainly thanks to Quentin for providing the original idea and PR :)


Clone method clones strings in "shallow-recurse-objects" as if they are arrays.

Version 1.5.7, running in Electron 4.0.0 (Chromium) on macOS 10.14.4(Mojave).
When using find, with the $in filter, and passing a simple array of strings in the object, like the following:
{
 "type" : "find",
"value" : {
 "$in" : [ "string1", "string2", "string3"]
 }
}

The strings get changed from a bare string like "string1" to a String object, with each character in an indexed property, ala { "0" : "s", "1" : "t", "2" : "r", "3": "i", ... }.
It looks like the clone method is the culprit.
This is in the resolveTransformParams method, just before the transform step above is cloned.

This is just after that call. Note how the strings have changed from bare strings, to "String" objects, with a bunch of indexed properties for each character in the string.

This only seems to happen on Electron in Chromium on OSX. Under Windows, it seems fine (I haven't tested Linux yet).

This seems to resolve the problem, it needed an extra bit of checking. Thoughts?
    function cloneObjectArray(objarray, method) {
      if (method == "parse-stringify") {
        return clone(objarray, method);
      }
      var result = [];
      for (var i = 0, len = objarray.length; i < len; i++) {
        if (typeof objarray[i] === "object" && objarray[i].constructor.name === "Object") {
          result[i] = clone(objarray[i], method);
        } else if (Array.isArray(objarray[i])) {
          result[i] = cloneObjectArray(objarray[i], "shallow-recurse-objects")
        } else {
          result[i] = objarray[i]
        }
      }
      return result;
    }


fix: add makefile based get-new-release target

Implements the get-new-release target without an external script.
/kind bug
/priority important-soon
/assign

/approve

/lgtm


[RFC] Advanced Blockparty: a solution for overbooked meetups

TLDR: If a Blockparty gets overbooked, candidates should be able to put a additional stake for other candidates, which means: “I stake 1eth for you because I will see you there”. Finally a meetup organizer invites those subset of all candidates with the most eth on stake.
Introduction
The maximal number of candidates for some Blockparty is limited. Extra applicants should go to wait list. It means, Blockparty creates a priority based on application time, which has nothing to do with meetup and the person. It is not that good.
I propose to extend the Blockparty by simple additional rule selecting participants (in case of overbooking) not by their application time but by some kind of “WantedBy” ranking.  This improvement will allow more useful and focused events.
It will also allow to better split overbooked meetups by topics and interest groups into multiple ones.
How it works
Consider, we have a Blockparty with capacity of 6 participants (a medium table in a restaurant). Consider we have 12 candidates willing to come. Besides usual Blockparty staking, we allow any candidate to put 1eth on stake for some another candidate to express “I want you”. By doing this candidate increases recepient's “WantedBy” ranking, but owns the stake. After some time we will become a relationship graph, like this:
A will see C,D,E (and puts 3 eth on stake)
B -> D,F
C-> B,D,E
D -> (no preference)
…
L -> A,D
So, a subgraph with 6 nodes with most eths on stake gives us the set of candidates who fits the size of the event and are most interested to talk to each other.
An meetup organizer could select the next subgraph with 2nd biggest “WantedBy” stake (and reserve a second table in restaurant). And so on.
Old Blockparty rules apply here too. In particular if somebody doesn’t appear, he loses all his
stake.
[DISCLAIMER]: Work in progress. Some details are intentionally missed.

Hey, thank you for your input. It's an interesting attempt to solve overcrowdded  event by adding more dimension rather than FIFS(First In First Served).
If I understand correctly, you are trying to order by popularity and people will vote because they want to meet these popular people.
Here are my thoughts.

How do you solve the problem of several friends trying to game by voting for only their friends? Even worse, you can just join as A, and also pretend as B,C,D,E which all points to A so that you are guaranteed to have a spot. If there are such backdoors, what's different to just auction spots by highest price (or just pick randomly).
Even if people act honestly, the popularity order is very disadvantageous against people who are new to the event. How do you make events more inclusive to newbies?
The biggest irony is that staking many people does not gurantee the spot of your own. Don't you get pissed if all the people who you voted for  can get in but not you because no one else voted for you?

I think a group of gaming friends will form a cluster on the graph. Identifying interest clustering is the goal of the proposal. Ideally, each cluster should make own event, focused on clustered interests.
At the end it is an organizer's decision to pick this or that cluster for his event.
I your example, I think, a cluster of gaming friends will become a friendly advice from the organizer to create an own event.

If you want newbies in the events, just reserve some tickets for them. All newbies are equal - it doesn't matter who will get the ticket and who not: you can just repeat the event for the new set of newbies.
My proposal doesn't work well for promotional events, it works better for workgroup events. But anyway you could mix models.

[WORK in PROGRESS] It depends on how you calculate "WantedBy" weights. Two ways here:

sum the votes from people inside the cluster only.
If you have voted for many people in cluster, it will lose all the votes if you "get removed"
OR
sum the votes from all the candidates.

If group of friends are dominating the event and they only want to stick together.
Exactly.

Any new slots for newbies can be faked for generating new accounts.
Well, is it a real problem? Let's call it "ordinary ticket" instead of "newbie ticket". Additionally to the "community ticket". Community ticked are distributed  after "WantedBy" rating, Ordinary tickets are for anyone else and distributed by FIFS or by lotery.

To be honest, I have not thought about measuring yet. Possibly because currently there is no such measuring in FIFS too. I will write later if I'll get an idea.

Part of the reason you organise a meetup is for networking so not so sure if I want to encourage certain group of people who know each other to dominates my meetup. If they want to stick together, they should organise by themselves, not me. I'd rather prefer to priortize people how have been to my events before which is far easier to track.
Having said that, People have different opinions/preferences for registration process as well as deposit distribution process (giveth people prefer to donate to someone else rather than distributing among participants). Providing multiple ways to handle priority/deposit distributins and make it pluggable may be interesting so that event organiser can choose a way which he/she prefer (almost like Zeppelin crowdsale for events).
As a "default" option, I think it's easier/safer to stick to FIFS until we find a way to measure which way is more effective (we even have to start from defining what "effective" means).

The Gathering of Security community attendee list is in fact  interesting ones to try your thought experiment. They got full quite quickly and the existing BlockParty logic (staking if you mean to come) is not so effective as most people will be attending ETHBerlin anyway (= highly likely to come).
https://docs.google.com/spreadsheets/d/1itaFDAXeCE5UP6nqciBYXPXiAsp36Mh4ewoCeLp7xX4/edit#gid=0
From the list I can see the followings

Probably some participants are more well known (aka influencers) than the others.
Some orgs (esp Consensys Dilligence and Trail of bits) have more participants than the others.
The event organiser said they want to invite only relevant people but want to make the audience balanced.

You could experiment your idea partially by just creating a google form with list of questions you need for signaling and post it to the forum and see how people react. Of course there are no on chain staking effect but you can introduce some sort of constraints by restricting the number of votes (eg: only 3 votes per person)  but you can at least be able to correct some data points.
Here are the list of questions I would include.

Your name:
Are you on the attendee list or on the waiting list?:
Who do you want to meet in the meeting?:
How much would you pay if a spot is in auction (and you are currently in the wait list):
What logic do you prefer to get the spot (FIFS|random lottery|by popularity|auction price| anything else)?:
What much ratio of newbie (or less known people) should be in this meeting 0-100%?

The Gathering of Security community is probaby too late because the promise of particpation is already done, and wont be reverted.
There will be FEM Gathering in Prague  just before devcon4. The even will be most probably overbooked. This could be good usecase. If you agree, we could talk to Boris Mann as the organizer

@dip239 sure we can give a try kickstarting the conversation that no guarantee that we can build the needed features on time (or we may not need smart contract for that).

@dip239 no one needs permission to fork open source project as log as it honors the license policy (in this project MIT). Having said that if  you are going to implement the logic you may want to speak to the ethmagician organisers if they are going to use it. Otherwise you will be wasting your time.