flet==0.25.0.dev3526 apk "Android" error cffi: Unable to build parse

Duplicate Check

[X] I have searched the opened issues and there are no duplicates

Describe the bug
After building apk with cffi package and running it on Android device simulator, import cffi works but after there is "Unable to build parse" error.
Code sample
Code
import flet as ft

def main(page: ft.Page):
    page.title = "Flet libs test"

    def cffi_tests(e):
        def test_basic():
            try:
                from cffi import FFI

                page.add(ft.Text("from cffi import FFI - OK"))

                ffi = FFI()
                ffi.cdef("size_t strlen(char *str);")
                page.add(ft.Text('ffi.cdef("size_t strlen(char *str);") - OK'))
                lib = ffi.dlopen(None)
                page.add(ft.Text("ffi.dlopen(None) - OK"))
                assert lib.strlen(ffi.new("char[]", b"hello world")) == 11

                page.add(ft.Text("cffi: test_basic - OK"))
            except Exception as e:
                page.add(ft.Text(f"cffi: test_basic - error: {e}", selectable=True))

        test_basic()

    page.add(
        ft.SafeArea(
            ft.Column(
                [
                    ft.ElevatedButton("Run cffi tests", on_click=cffi_tests),
                ]
            )
        )
    )

ft.app(main)

pyproject.toml
[project]

name = "cffi_app"
version = "1.0.0"
description = ""
authors = [{name = "Flet Developer", email =<EMAIL_ADDRESS>dependencies = ["flet==0.25.0.dev3526", "cffi"]

[tool.flet]
android.adaptive_icon_background = "#ffffff"

To reproduce
flet build apk
install apk on android device
click on "Run cffi tests" button
Expected behavior
expected to see "Test OK" messages
Screenshots / Videos

Captures
[Upload media here]

Operating System
macOS
Operating system details
15
Flet version
0.25.0.dev3526
Regression
No, it isn't
Suggestions
No response
Logs
Logs
[Paste your logs here]

Additional details
No response

It's been fixed.


Pose2SLAM benchmark with GenericFactorGraph

This still needs a bit more cleanup and doc comments. I'll undraftify when it's ready.
To run the benchmark: swift build -c release -Xswiftc -cross-module-optimization && .build/release/Benchmarks --filter GenericFactorGraph

Wow!

Wild guess: 13x speedup?
name                                                                                time             std        iterations
---------------------------------------------------------------------------------------------------------------------------
Pose2SLAM: NonlinearFactorGraph, Intel, 5 Gauss-Newton steps, 100 CGLS steps<PHONE_NUMBER>0.0 ns ±   0.00 %          1
Pose2SLAM: GenericFactorGraph, Intel, 10 Gauss-Newton steps, 500 CGLS steps<PHONE_NUMBER>.0 ns ±   0.00 %          1

The result on my machine is 1.8s. For comparison:

The existing SwiftFusion NonlinearFactorGraph: 110s
GTSAM configured to do a similar thing: 4.1s
The prototype from ~2 weeks ago: 0.4s.

Why is this 5x slower than the prototype from ~2 weeks ago? I think it's because there is some additional abstraction that the Swift optimizer isn't optimizing away. In principle the optimizer should be able to optimize that all away and get us to 0.4s. We might have to adjust the implementation a bit to make this happen. I'm focusing on getting the APIs and documentation cleaned up before tomorrow, so I might not have time to make it faster by tomorrow, but I do want to get it to 0.4s soon.

Interesting! OK, good plan.

Adds:

VariableAssignments methods that make it nicer and easier to use.
GenericFactorGraph and GenericGaussianFactorGraph with high-level methods that make it easy to build a graph and linearize it.
GenericJacobianFactor for linearizing factors.
GenericPriorFactor and GenericBetweenFactor for the Pose2SLAM problem.
A Pose2SLAM benchmark using all of the above.

To run the benchmark: swift build -c release -Xswiftc -cross-module-optimization && .build/release/Benchmarks --filter GenericFactorGraph


Using vue-affix with responsive divs

Hello,
I would like to use your plugin. I'm using nuxt and vuetify with grid system, so all divs are displayed with percentage.
This is an example for md4 class

My issue here is that i can't set a specific width for .vue-affix class, otherwise my templates aren't responsive anymore!
Any idea how to do this with a props or something else ?
Maybe your plugin can calculate the with bases on its percentage width then insert it with inline CSS?
I can resolve this by calculating width of divs but it's not a clean solution.
Thanks a lot for your help

I don't really understand what exactly you want to be able to do. Do you need to pass a class or style directly to the .vue-affix element?
Would a prop allowing you to pass properties to it help?
I haven't been using Vue for a long time, so I'm not really sure what would be the best solution here, I'm just trying to still maintain these libs since there's a lot of people using them still :)

@eddiemf Why we have to set width? Why plugin cant calculate width dynamically based on parent width?
https://leafo.net/sticky-kit/ Here do this.


DRILL-3641: Doc. RecordBatch.IterOutcome (enumerators and possible sequences).

Documented RecordBatch.IterOutcome (RecordBatch.next() protocol) much more.
Also moved AbstractRecordBatch.BatchState's documentation test from
non-documentation comments to documentation comments.

Would be good to note here the purpose. ...

Done.

Hey, what happens (what is a caller supposed to do) if the caller receives NOT_YET but the caller has no local work to do?
(Re-calling next() immediately would yield a spin wait, so presumably we avoid that if possible.
A timed wait would involve a (probably) arbitrary time, so presumably we avoid that if possible.
(Delegating to the next-level caller by returning NOT_YET just devolves back to this same question.)
Is there another general option (general in the sense of callers and callees that don't know anything about each other)?
Or is it that NOT_YET is used only between pairs of callers and callee that know enough about each other to coordinate somehow so they can avoid spin waits and aribitrary delays?)

Resolved as part of DRILL-2288 patch.


Modify task weights on the fly

Is your feature request related to a problem? Please describe.

I'm looking for a way to change weights of tasks in a taskset on the fly.  This is pretty similar to this question that was posted on SO.
Describe the solution you'd like

I'm looking for an annotation similar to that of @task(weight) that takes more configurable parameters to modify weights as time goes by.
Say something like @task(initial_weight, final_weight, duration) : The task starts with weight = initial_weight and changes to final_weight after the duration specified.
Describe alternatives you've considered

I tried creating a custom annotation to hold a set of functions identifiers whose weights have to be modified.
With that I have a thread that wakes up after the desired time and adds/removes elements (function identifiers from the previous step) to [TaskSet:tasks](tasks: List[Union["TaskSet", Callable]] = []) list which is built based on the weights given in @task (and the random.choice method ultimately determining the likelihood of a task getting executed)

This seems to do the trick but I'm not sure if this is the best recognized pattern to use in this scenario.

I have now raised an issue #2651 suggesting to use random.choices instead of random.choice to selec t a task, which will allow to store task weights in a separate list instead of duplicating them in a task list, thus allowing to make modifying the weights at runtime more straightforward to implement.


Change version field of report-schema-v110.json

This should fix version: 1.0.0 that has been obviously put there
by mistake.

Can one of the admins verify this patch?


Update LICENSE

Changed the license from MIT to Mozilla Public License 2.0 (MPL-2.0) weak copyleft open source license, which:

Requires any derivative works to make the original MPL-2.0 covered code available under the same license, including any modifications to the original MPL-2.0 covered code.
Allows new files in software utilizing MPL-licensed code, which contain no MPL-licensed code, to remain proprietary.

I'm actually going to hold off on merging this. Thanks for bringing it up, but further dive into the license issue and what would be required with MPL 2.0 & distributing via Unity makes it a bit challenging...so I think we won't set the license until after a further dive and discussion with more expert folks.


fix: replace jose with jwt-decode version 4.0.0

fixes https://github.com/nhost/nhost/issues/2603

Codecov Report
Attention: Patch coverage is 50.00000% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 85.95%. Comparing base (68e0622) to head (7fae3e1).
Report is 11 commits behind head on main.

Files
Patch %
Lines

packages/hasura-auth-js/src/hasura-auth-client.ts
50.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2705      +/-   ##
==========================================
- Coverage   86.06%   85.95%   -0.11%
==========================================
  Files          86       86
  Lines        9484     9604     +120
  Branches      486      485       -1
==========================================
+ Hits         8162     8255      +93
- Misses       1322     1349      +27

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


add --sudo=(ask|error|ok) option?

ATM datalad-installer invokes some commands with sudo without prompting that it is about to do smth possibly lethal.  I think it would be nice to ask user a permission by default first, be able to error (if I am not expecting sudo to be ran), or just "ok" (e.g. on CI) runs.

@yarikoptic

What should the default value for this setting be?
When the setting is "ask", should the script ask just once (before sudo is run for the first time) or before every time sudo is run?

a nice feature would be if it allows for "[y]es|yes-[a]ll|[n]o" answer and if "yes-[a]ll" - not ask for the subsequent instances


WIP: use port dependent macros instead of FreeRTOS functions

Management of critical section is done through a combination of the FreeRTOS
API and port dependent configuration.
Most of the time the port uses critical section management exposed by FreeRTOS by
defining as such
extern void vPortEnterCritical(void);
#define portENTER_CRITICAL()     vPortEnterCritical();
...

Moreover FreeRTOS does not expose an API for critical section detection
as it is port dependent. This will rely on the macro portIS_IN_CRITICAL that
a port should implement when using nimble in conjunction with FreeRTOS.

I would also like to point in the docs that this macro should be defined by the port
but I'm not finding any docs for the port yet.


Problems installing

Hi, I've installed the docker image and I can see a board with the configured columns but I have the following issues/questions:

as title it shows the first repo in the array of repositories (in the format nikku/wuffle)
all columns are empty, even though I have an issue with the label "ready" (I've configured the columns as in the example config)
when clicking on the top-right icon which should allow to log-in with GitHub I'm being eventually redirected to http://localhost:3000/board even though "localhost" never appears in the application configuration on GitHub

When configuring the environment variables I wasn't sue about the SESSION_SECRET, I then assumed I could enter an arbitrary String.

The preferred way of setting up the application is via a local development setup. The docker images are meant for production use only.
Did you configure your app providing all required environment variables?

Thank @nikku,I forgot the BASE_URL variable, after adding I'm no longer redirected to localhost. However I still se no card on the board.

Which exact steps did you undertake? How did you configure the board?

This could be because you have not updated your User authorization callback URL on the app setting page(https://github.com/settings/apps/<app-name>). It should be <BASE_URL>/wuffle/login/callback. It is probably still set to http://localhost:3000/wuffle/login/callback which it is set to as a default.

The setup instructions are not great. Bear with me, as I think about how to improve it.
:grimacing:

What I've basically done is adding and fixing env-variables till I no longer got an error message....
I ended up with the following configuration in docker-compose (the first part is traefik sepcific which I use for SSL termination):
wuffle:
    image: nrehwaldt/wuffle
    labels:
      traefik.frontend.rule: Host:wuffle.factsmission.org
      traefik.frontend.entryPoints: https
      traefik.port: '3000'
      traefik.enable: 'true'
    volumes:
      - ./wuffle/wuffle.config.js:/app/packages/app/wuffle.config.js # this didn't work, so I added config as variable below
    environment:
      APP_ID: 35560
      GITHUB_CLIENT_ID: Iv1.026bc702254c070f
      GITHUB_CLIENT_SECRET: *****
      WEBHOOK_SECRET: sameAsEnteredIn AppConfig
      PRIVATE_KEY: LS0tL......WS0tLS0tCg==
      SESSION_SECRET: justWroteSomething
      BASE_URL: https://wuffle.factsmission.org/board
      BOARD_CONFIG: '{"columns":[{"name":"Inbox","label":null},{"name":"Backlog","label":"backlog"},{"name":"Ready","label":"ready"},{"name":"In Progress","label":"in progress"},{"name":"Needs Review","label":"needs review"},{"name":"Done","label":null,"closed":true}],"repositories":["retog/repo1", "org/repo2"]}'
    restart: unless-stopped

This is some of the config in GitHub:

Good stuff.

BASE_URL should not end with /board I believe.

Change the BASE_URL to https://wuffle.factsmission.org/ - but this doesn't seem to have changed anything,

Well, the login does not seem to work at the moment. This is related to the BASE_URL not properly being set up or some other configuration issue.

I would try removing the forward slash at the end

WEBHOOK_PROXY_URL should not be set in production. It is required for development mode, only.

YES!!!! Removing the trailing slash from BASE_URL fixed it!
The only remaining thing is that I only see issues of first repository specified in the array for the repositories key in the BOARD_CONFIG json.
Thanks a lot for your help!

What do your logs say? The app should give your helpful debug output.

I've improved the run validation via https://github.com/nikku/wuffle/commit/9866414c9d68e9280e6ba76181dcb07934179169. It will now capture miss-configured or missing BASE_URL configs.

Regarding your last comment, you must install your app on all organizations / enable it for all your repositories in order to see stuff on the board.

Created some reasonable setup instructions that should prevent this issue from happening again.
I've fixed a few quirks on the way, too :bike:.

YES

What do your logs say? The app should give you helpful debug output.

The log is somehow cluttered with lines like these:

17:03:19.738Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 0.98 ms (id=83901d09-1854-4e70-b8e1-a1afd2978a8a)

17:03:19.837Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 1.23 ms (id=2b41cbcc-9bad-4595-8cbe-b19042a44b32)

17:03:20.740Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 1.08 ms (id=050532c0-4cef-40c3-a225-6add78bfc912)

17:03:20.780Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 1.29 ms (id=6bffb249-1947-49a6-89a1-1858b8285796)

17:03:22.739Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 2.30 ms (id=d1de582e-6415-49fd-9788-c5850ce676c5)

17:03:22.847Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 1.59 ms (id=856fe100-4255-4f46-aa43-54db6ddeb42f)

17:03:23.741Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 1.56 ms (id=501fdeef-b02e-4d34-bea5-ad284a525049)

17:03:23.778Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 1.43 ms (id=8bab9f99-fba1-4975-993d-48d633479d2b)

17:03:25.741Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 1.16 ms (id=8be89bd5-4246-46fa-b6a3-f07c61ab6866)

17:03:25.848Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 1.10 ms (id=af7b1afa-865c-45fd-92fa-ecc0196dcbdf)

17:03:26.742Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 0.89 ms (id=56c814d8-a5cc-41a9-868d-2b085c49e93d)

17:03:26.786Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 2.90 ms (id=af0ed47b-7e3a-4956-ab23-9640afb3d579)

17:03:28.737Z  INFO http: GET /wuffle/board/updates?cursor=7841334 304 - 0.90 ms (id=b5f7b9a1-eb77-4d68-b4ec-08d587983909)


Trouble passing arguments to console app using dotnet run

Required Information
Entering this information will route you directly to the right team and expedite traction.
Question, Bug, or Feature?
Type: Bug
Enter Task Name: DotNetCoreCLIV2
list here (V# not needed):
https://github.com/Microsoft/azure-pipelines-tasks/tree/master/Tasks
Environment

Server - Azure Pipelines or TFS on-premises?
Azure Pipelines

If using Azure Pipelines, provide the account name, team project name, build definition name/build number:
Azure Devops organization: FlytIT
Project: HRA
Build definition HRA-API definitionId=56
build number 1256

Agent - Hosted or Private:

If using private agent, provide the OS of the machine running the agent and the agent version:
Ubuntu 20.04

Issue Description
I have defined this task in a pipeline:
    - task: DotNetCoreCLI@2
      displayName: Run integration tests
      inputs:
       command: 'run'
       arguments: '-- -a $(BaseAddress)'
       projects: |
         tests/Hra.ApiTests/Hra.ApiTests.csproj

Trying to use dotnet run with arguments for the project being execute fails:
/usr/bin/dotnet run --project /home/vsts/work/1/s/tests/Hra.ApiTests/Hra.ApiTests.csproj -- -a https://somesite.azurewebsites.net/
CSC : error CS2013: Invalid image base number 'https://somesite.azurewebsites.net'/ [/home/vsts/work/1/s/src/Hra.EntityFramework/Hra.EntityFramework.csproj]

Doing the same on my windows laptop works fine:
$ dotnet run Hra.ApiTests.csproj -- -a https://somesite.azurewebsites.net
Running tests on https://somesite.azurewebsites.net/
All 25 API tests passed!

Same thing happens if I use long-form argument name:
/usr/bin/dotnet run --project /home/vsts/work/1/s/tests/Hra.ApiTests/Hra.ApiTests.csproj -- --api-url https://somesite.azurewebsites.net/
CSC : error CS2013: Invalid image base number 'https://somesite.azurewebsites.net'/ [/home/vsts/work/1/s/src/Hra.EntityFramework/Hra.EntityFramework.csproj]

Seems like this happened because I'd defined the variable "BaseAddress" in the job, as it stopped happening when I changed the variable to a different name


New app: Sveriges Radio

Description
Context
Sveriges Radio is Sweden's national radio broadcaster which is divided into four different channels; P1, P2, P3 and P4. The four channels broadcasts a mix of music and live shows.
Sveriges Radio has an open and free API which provides data of what each channel is playing right now.
What the app does
This app will display what each channel on Sveriges Radio is currently playing, it can either be a song or a live show, as well as the logo for the channel. The basic logic is this:

If there's a song playing, display the artist and song title
If there's not a song playing, display the name of the live show

Example of the two API's I'm consuming:

https://api.sr.se/api/v2/scheduledepisodes?format=json&pagination=false&channelid=132
https://api.sr.se/api/v2/playlists/rightnow?format=json&channelid=132

Demo

P1
P2
P3
P4

Copilot

🤖 Generated by Copilot at 98fa9ec
Summary
📻🎵🇸🇪

This pull request adds a new app for Sveriges Radio, the Swedish public radio broadcaster. The app allows users to choose a radio channel and see the current song or show playing on their Tidbyt device. The app consists of a manifest file and a code file written in Starlark.

Sveriges Radio
App for Tidbyt: fetch, display
Songs and shows of fall

Walkthrough

Add a new app for Sveriges Radio, the Swedish public radio broadcaster (link, link)
Define the app metadata and configuration in manifest.yaml, such as the id, name, summary, description, author, file name, and package name (link)
Implement the app logic and rendering in sveriges_radio.star using the Starlark language and the Tidbyt API (link)
Fetch and display the current song or show playing on any of the Sveriges Radio channels, using the base64 module to encode the icons, the cache module to store the API responses, and the render module to create the UI elements (link)
Define the app settings schema using the schema module, allowing the user to select the station from a dropdown menu of StationOptions (link)
Modularize the app functionality using several functions, such as get_current_unix_time, get_current_show_name, get_station_icon, fetch_data, and main (link)

I have read the CLA Document and I hereby sign the CLA

recheck


websocket needs to serve on seperate port from http?

Default:
var T_TYPE_HTTP            = 0,
T_TYPE_HTTPS           = 1,
DEFAULT_PORT           = 8001,
DEFAULT_WEB_PORT       = 8002,
DEFAULT_WEBSOCKET_PORT = 8003,
DEFAULT_CONFIG_PORT    = 8088,
DEFAULT_HOST           = "localhost",
DEFAULT_TYPE           = T_TYPE_HTTP;
✓ node bin.js -r reverse_proxy.js
rule file loaded :/opt/anyproxy/reverse_proxy.js
reverse proxy - assign an IP adress for some request
Anyproxy rules initialize finished, have fun!
GUI interface started at : http://<IP_ADDRESS>:8002/
Http proxy started at <IP_ADDRESS>:8001
OK, but my app uses nodejs and socketio serving on port 49114 host <IP_ADDRESS>, my reverse_proxy.js :
module.exports = {
summary:function(){
return "reverse proxy to localhost:49114";
},
replaceRequestOption : function(req,option){
var newOption = option;
newOption.hostname = "<IP_ADDRESS>";
newOption.port     = "49114";
return newOption;
}
};
My chrome:
XHR finished loading: GET "http://myhost.myname.com:8001/socket.io/1/?t=1424747292746".
socket.io.js:2371 WebSocket connection to 'ws://myhost.myname.com:8001/socket.io/1/websocket/anJVrPujLK3N8VuxcUgV' failed: Connection closed before receiving a handshake response
socket.io.js:3012 XHR finished loading: GET "http://myhost.myname.com:8001/socket.io/1/xhr-polling/anJVrPujLK3N8VuxcUgV?t=1424747304818".
socket.io.js:3012 XHR finished loading: GET "http://myhost.myname.com:8001/socket.io/1/xhr-polling/anJVrPujLK3N8VuxcUgV?t=1424747305107".
socket.io.js:3012 XHR finished loading: GET "http://myhost.myname.com:8001/socket.io/1/xhr-polling/anJVrPujLK3N8VuxcUgV?t=1424747305390".
socket.io.js:2625 XHR finished loading: POST "http://myhost.myname.com:8001/socket.io/1/xhr-polling/anJVrPujLK3N8VuxcUgV?t=1424747305389".
socket.io.js:3012 XHR finished loading: GET "http://myhost.myname.com:8001/socket.io/1/xhr-polling/anJVrPujLK3N8VuxcUgV?t=1424747305510".
socket.io.js:3012 XHR finished loading: GET "http://myhost.myname.com:8001/socket.io/1/xhr-polling/anJVrPujLK3N8VuxcUgV?t=1424747325800".
socket.io.js:3012 GET http://myhost.myname.com:8001/socket.io/1/xhr-polling/anJVrPujLK3N8VuxcUgV?t=1424747346094 net
Socket io fails from websocket to post
My node stdout:
received request to : myhost.myname.com:8001/
==>will forward to real server by proxy
received request to : myhost.myname.com:8001/socket.io/socket.io.js
==>will forward to real server by proxy
received request to : myhost.myname.com:8001/socket.io/1/?t=1424747671286
==>will forward to real server by proxy
received request to : myhost.myname.com:8001/favicon.ico
==>will forward to real server by proxy
received request to : myhost.myname.com:8001/socket.io/1/xhr-polling/u8iayXvF0VxGXZArcUgW?t=1424747681681
==>will forward to real server by proxy
I could reconfig nodejs app to connect to socketio on port 8003 but this is not necessary with haproxy:
frontend l
bind <IP_ADDRESS>:8001
mode http
default_backend L
backend L
mode http
balance roundrobin
server  static <IP_ADDRESS>:49114 check inter 2000
AliBaba Can you help me use your cool app like this?
Rick

Hi Rick,
I dont quite understand why socket.io is invoked here.
AnyProxy is an http/https proxy. It will not help you to redirect data under protocol other than http/https. Actually, the DEFAULT_WEBSOCKET_PORT is for the web interface of AnyProxy, not for end users.

closed for now, will reopen if more discussions are here.


[Feature]: Add boards or filters to check the progress of each group (planning, acting, perception, system enigneer)

Description
As a systems engineer and for general organization information about the issues and tasks done this sprint from each group is needed. For this a board is needed (already existing) and maintained. Also a Filter is necessary where each group can be selected to see which issues are in which state at the moment. Also for planning the next sprint this board would help if maintained correctly.
Definition of Done

[x] Each group has knowledge about how to work with the board
[x] Each group has the possibility to either select the own board or select a filter so only the issues of this group are visible
[ ] In the PAF Project Backlog there are also priority and size options. Check if it makes sense to use them instead of the labels

You can decide in the group as you wish. We found it more complicated to filter according to the priority in the project instead of adding new labels. Further size labels would be conceivable in principle.

If you would like to have more projects or more boards, feel free to contact us.

Boards were added and all team-leaders were informed. We could use the boards in the upcoming sprint for planning and woking effectively.

In the PAF Project Backlog there are also priority and size options. Check if it makes sense to use them instead of the labels

How would you approach this aspect @SirMDA

In the PAF Project Backlog there are also priority and size options. Check if it makes sense to use them instead of the labels

How would you approach this aspect @SirMDA

I would like to address this topic today in our meeting. If we fully commit to the boards this could be helpful but if not it would be problematic as the tags are only clearly visible at the boards.


Support range headers with an end range past EOF

As discussed in #2
This is specified in section 14.1.2 of the httpwg rfc9110 (https://httpwg.org/specs/rfc9110.html#rfc.section.14.1.2), and section 14.35.1 of the ietf rfc2616 linked in this repo:
"A client can limit the number of bytes requested without knowing the size of the selected representation. If the last-pos value is absent, or if the value is greater than or equal to the current length of the representation data, the byte range is interpreted as the remainder of the representation (i.e., the server replaces the value of last-pos with a value that is one less than the current length of the selected representation)."
rfc2616 has different wording, but is essentially the same.

Thanks a lot for the fix @jfaust, I'll publish a 0.3.1 asap


How to ignore moving to a Div if it doesn't exist?

I'm using a third party plugin that I have no control over how it renders some divs. Some divs can be rendered, some not, depending on your screen width. The problem is that ember wormhole tries to look for that div id and if it doesn't exist, it will just throw an error. Is there a way to just say "don't try to move it if that div doesn't exist" instead?
I was thinking of an {{else}} for the wormhole, but other might want to catch the error instead.
EDIT: I'd rather just ignore the error and do nothing instead of checking if the div exists because it will be a costly operation.
Thanks

@brenoinojosa I don't think I fully understand the situation you're describing. Are you talking about the "to" destination div?

Yeah.. I want to be able to do it like:
"if there's no such div with ID described in to , then do x".

I was just thinking of this same scenario, and I usually solve this with some kind of trigger to render the wormhole based on a boolean (if the div is there, then it's true).
Find a way to trigger a boolean when the div is there. This might not be that easy, but maybe you could use a MutationObserver.

I was just thinking of this same scenario, and I usually solve this with some kind of trigger to render the wormhole based on a boolean (if the div is there, then it's true).
Find a way to trigger a boolean when the div is there. This might not be that easy, but maybe you could use a MutationObserver.

I am not a fan of this feature. Ember's philosophy is to avoid truth in DOM. The scenario you're describing is suggesting treating the presence or absence of a div as driving certain behavior. It would be much better to identify the root cause of the presence or absence of that div in your app and drive the behavior from higher up the tree than ember-wormhole.

I am not a fan of this feature. Ember's philosophy is to avoid truth in DOM. The scenario you're describing is suggesting treating the presence or absence of a div as driving certain behavior. It would be much better to identify the root cause of the presence or absence of that div in your app and drive the behavior from higher up the tree than ember-wormhole.

I understand that checking the DOM is a bad practice in Ember. However, I can see benefits in setting a flag/calling a target function to handle this situation.
As I said, this situation happens very often when you have no control over a third party plugin and how it renders its elements, so there's no way to avoid an error there.
Just to illustrate, in my case I have two options to avoid an error: 1) checking the DOM 2) Applying the same logic the plugin uses to know wether the target element will be rendered or not. Both are pretty bad solutions, but the only possible ones.

@brenoinojosa So far, I'm not convinced this is something that belongs in wormhole, but can you share more about your specific use case?

@lukemelia Sure.
I'm using vis.js (http://visjs.org/), a library that provides a couple of useful plugins such as the vis.Timeline. With it, I can plot dates and zoom in and out and also choose date ranges to select which dates and labels will show up.
Since I can't control the rendering of the entire timeline and I can give an ID to some elements, I use Ember-Wormhole to transport my component so I can "emberize" the plugin. Everything cool so far.
The problem begins when the timeline, because of one of its features, will hide a couple of dates because they're out of the range defined by the user. This means that, in order for the ember-wormhole to realize that it shouldn't be rendered, I'll need to check every label and see it its date will be out of that range (which is exactly what the plugin does, but I don't have access to).

I think the main concern in @brenoinojosa issue is not related to check the DOM. Sometimes the current way that ember-wormhole handles the 'element not found' situation(raising a exception) is not desired.
Perhaps a way to extend that point, like calling a callback or something, can improve reusability.

I would be open to adding a shouldRender method that returns true and is overridable by a subclass. If you think something like that would work, I'd be happy to review a PR.

Sounds great. This way I can have properties in the subclasses and decide wether it should be "wormholed" or not, keeping everything isolated in the new class itself.
Thanks for the quick responses. I'll work on a PR.


Added turnOnMagnetos option

Added an option to turn on all magnetos. Works just like turnOnSteamworks.

Looks great, thanks! Just FYI, you don't need to maintain the legacy settings imports anymore. They will be entirely removed soon.

Merged in<PHONE_NUMBER>be383c477a27574de9065ff4a1c074


zqd test instance failed to launch

https://github.com/brimsec/zq/actions/runs/516422625
=== CONT  TestZq/ppl/zqd/ztests/worker-dist
1436
    ztest.go:398: /home/runner/work/zq/zq/ppl/zqd/ztests/worker-dist.yaml: expected and actual stdout differ:
1437
        --- expected
1438
        +++ actual
1439
        @@ -1,7 +1,4 @@
1440
        -===
1441
        -Files zqcount.tzng and zapicount.tzng are identical
1442
        -===
1443
        -Files zqfilter.tzng and zapifilter.tzng are identical
1444
        -===
1445
        -Files zqtail.tzng and zapitail.tzng are identical
1446
        +timed out waiting for file "/tmp/tmp.xoDh9TrRvQ/zqd-w2" to appear
1447
        +minio log:
1448
        +zqd log:

We didn't get the output of the zqd that failed to launch as we weren't looking for its log file (zqd-w2.log), I put up https://github.com/brimsec/zq/pull/2023 to try to capture next time.

Happened again here: https://github.com/brimsec/zq/runs/1980387049?check_suite_focus=true
We have better log information this time:
2021-02-25T15:44:39.5239720Z === CONT  TestZq/ppl/zqd/ztests/worker-dist
2021-02-25T15:44:39.5241904Z     ztest.go:441: /home/runner/work/zq/zq/ppl/zqd/ztests/worker-dist.yaml: expected and actual stdout differ:
2021-02-25T15:44:39.5243293Z         --- expected
2021-02-25T15:44:39.5244530Z         +++ actual
2021-02-25T15:44:39.5245985Z         @@ -1,7 +1,6 @@
2021-02-25T15:44:39.5246781Z         -===
2021-02-25T15:44:39.5248458Z         -Files zqcount.tzng and zapicount.tzng are identical
2021-02-25T15:44:39.5250790Z         -===
2021-02-25T15:44:39.5251979Z         -Files zqfilter.tzng and zapifilter.tzng are identical
2021-02-25T15:44:39.5339692Z         -===
2021-02-25T15:44:39.5340639Z         -Files zqtail.tzng and zapitail.tzng are identical
2021-02-25T15:44:39.5341674Z         +timed out waiting for file "/tmp/tmp.cD7e6qkka0/zqd-w1" to appear
2021-02-25T15:44:39.5342502Z         +logfile: zqd-w1.log
2021-02-25T15:44:39.5350245Z         +{"level":"error","ts":1614267874.5530858,"logger":"database","msg":"Error migrating database file","error":"unexpected end of JSON input","stacktrace":"github.com/brimsec/zq/ppl/zqd/db/filedb.Open\n\t/home/runner/work/zq/zq/ppl/zqd/db/filedb/filedb.go:33\ngithub.com/brimsec/zq/ppl/zqd/db.Open\n\t/home/runner/work/zq/zq/ppl/zqd/db/db.go:72\ngithub.com/brimsec/zq/ppl/zqd.(*Core).initManager\n\t/home/runner/work/zq/zq/ppl/zqd/core.go:207\ngithub.com/brimsec/zq/ppl/zqd.NewCore\n\t/home/runner/work/zq/zq/ppl/zqd/core.go:130\ngithub.com/brimsec/zq/ppl/cmd/zqd/listen.(*Command).Run\n\t/home/runner/work/zq/zq/ppl/cmd/zqd/listen/command.go:119\ngithub.com/mccanne/charm.(*instance).run\n\t/home/runner/go/pkg/mod/github.com/mccanne/charm@v0.0.3-0.20191224190439-b05e1b7b1be3/instance.go:38\ngithub.com/mccanne/charm.(*Spec).Exec\n\t/home/runner/go/pkg/mod/github.com/mccanne/charm@v0.0.3-0.20191224190439-b05e1b7b1be3/charm.go:67\ngithub.com/mccanne/charm.(*instance).run\n\t/home/runner/go/pkg/mod/github.com/mccanne/charm@v0.0.3-0.20191224190439-b05e1b7b1be3/instance.go:61\ngithub.com/mccanne/charm.(*Spec).ExecRoot\n\t/home/runner/go/pkg/mod/github.com/mccanne/charm@v0.0.3-0.20191224190439-b05e1b7b1be3/charm.go:77\nmain.main\n\t/home/runner/work/zq/zq/ppl/cmd/zqd/main.go:13\nruntime.main\n\t/opt/hostedtoolcache/go/1.15.8/x64/src/runtime/proc.go:204"}
2021-02-25T15:44:39.5356275Z         +unexpected end of JSON input
2021-02-25T15:44:39.5357441Z         +logfile: zqd-w2.log
2021-02-25T15:44:39.5357891Z

Looks like this tests starts two instances in the same directory creating a race. One writes a zqd.json file and the other reads the other’s incomplete zqd.json and dies. Shouldn’t these workers be run with a personality and not need a data dir? Also wouldn't this test also need a recruiter process?


Compute nodes failing to connect to metadata service

If you are reporting an issue with AWS Parallelcluster / CfnCluster please make sure to add the following data in order to facilitate the root cause detection:
Required Info:

AWS ParallelCluster version: 2.9.1
Full cluster configuration without any credentials or personal data: Configuration Here
Cluster name: GPL-SBJ00575

Bug description and how to reproduce:
A clear and concise description of what the bug is and the steps to reproduce the behavior.
Slurm is failing health checks for nodes, which lead me to investigate their system logs on the AWS Console.
Despite slurm requesting to power these nodes down, they're continuing to stay up:
[2020-10-22T13:59:43.649] _slurm_rpc_kill_job: REQUEST_KILL_JOB JobId=135 uid 1000
[2020-10-22T13:59:43.649] _slurm_rpc_kill_job: REQUEST_KILL_JOB JobId=141 uid 1000
[2020-10-22T13:59:43.650] _slurm_rpc_kill_job: REQUEST_KILL_JOB JobId=136 uid 1000
[2020-10-22T13:59:43.650] _slurm_rpc_kill_job: REQUEST_KILL_JOB JobId=142 uid 1000
[2020-10-22T13:59:43.650] _slurm_rpc_kill_job: REQUEST_KILL_JOB JobId=140 uid 1000
[2020-10-22T13:59:43.651] _slurm_rpc_kill_job: REQUEST_KILL_JOB JobId=137 uid 1000
[2020-10-22T14:03:23.713] sched: _slurm_rpc_allocate_resources JobId=143 NodeList=compute-dy-c54xlarge-6 usec=434
[2020-10-22T14:03:27.672] _job_complete: JobId=143 WTERMSIG 126
[2020-10-22T14:03:27.672] _job_complete: JobId=143 cancelled by interactive user
[2020-10-22T14:03:27.672] _job_complete: JobId=143 done
[2020-10-22T14:23:29.041] node compute-dy-m54xlarge-6 not resumed by ResumeTimeout(3600) - marking down and power_save
[2020-10-22T14:23:35.956] update_node: node compute-dy-m54xlarge-6 reason set to: Scheduler health check failed
[2020-10-22T14:23:35.956] update_node: node compute-dy-m54xlarge-6 state set to DOWN
[2020-10-22T14:23:35.968] update_node: node compute-dy-m54xlarge-6 reason set to: Scheduler health check failed
[2020-10-22T14:23:35.968] power down request repeating for node compute-dy-m54xlarge-6
[2020-10-22T14:23:41.430] update_node: node compute-dy-m54xlarge-6 reason set to: Scheduler health check failed
[2020-10-22T14:23:41.431] update_node: node compute-dy-m54xlarge-6 state set to DOWN
[2020-10-22T14:23:41.442] update_node: node compute-dy-m54xlarge-6 reason set to: Scheduler health check failed
[2020-10-22T14:23:41.442] power down request repeating for node compute-dy-m54xlarge-6
[2020-10-22T14:24:32.054] node compute-dy-m54xlarge-4 not resumed by ResumeTimeout(3600) - marking down and power_save
[2020-10-22T14:24:32.054] node compute-dy-m54xlarge-5 not resumed by ResumeTimeout(3600) - marking down and power_save
[2020-10-22T14:24:41.285] update_node: node compute-dy-m54xlarge-4 reason set to: Scheduler health check failed
[2020-10-22T14:24:41.285] update_node: node compute-dy-m54xlarge-4 state set to DOWN
[2020-10-22T14:24:41.285] update_node: node compute-dy-m54xlarge-5 reason set to: Scheduler health check failed
[2020-10-22T14:24:41.285] update_node: node compute-dy-m54xlarge-5 state set to DOWN
[2020-10-22T14:24:41.296] update_node: node compute-dy-m54xlarge-4 reason set to: Scheduler health check failed
[2020-10-22T14:24:41.296] power down request repeating for node compute-dy-m54xlarge-4
[2020-10-22T14:24:41.296] update_node: node compute-dy-m54xlarge-5 reason set to: Scheduler health check failed
[2020-10-22T14:24:41.296] power down request repeating for node compute-dy-m54xlarge-5
[2020-10-22T14:24:46.814] update_node: node compute-dy-m54xlarge-4 reason set to: Scheduler health check failed
[2020-10-22T14:24:46.814] update_node: node compute-dy-m54xlarge-4 state set to DOWN
[2020-10-22T14:24:46.814] update_node: node compute-dy-m54xlarge-5 reason set to: Scheduler health check failed
[2020-10-22T14:24:46.814] update_node: node compute-dy-m54xlarge-5 state set to DOWN
[2020-10-22T14:24:46.824] update_node: node compute-dy-m54xlarge-4 reason set to: Scheduler health check failed
[2020-10-22T14:24:46.825] power down request repeating for node compute-dy-m54xlarge-4
[2020-10-22T14:24:46.825] update_node: node compute-dy-m54xlarge-5 reason set to: Scheduler health check failed
[2020-10-22T14:24:46.825] power down request repeating for node compute-dy-m54xlarge-5
~

-----END SSH HOST KEY KEYS-----
[  274.096183] cloud-init[4483]: Cloud-init v. 19.3-3.amzn2 finished at Thu, 22 Oct 2020 02:29:22 +0000. Datasource DataSourceNone.  Up 274.09 seconds
[  274.096510] cloud-init[4483]: Oct 22 02:29:22 cloud-init[4483]: cc_final_message.py[WARNING]: Used fallback datasource
[  274.396364] hibinit-agent[4484]: Traceback (most recent call last):
[  274.396571] hibinit-agent[4484]: File "/usr/bin/hibinit-agent", line 496, in <module>
[  274.396769] hibinit-agent[4484]: main()
[  274.396890] hibinit-agent[4484]: File "/usr/bin/hibinit-agent", line 435, in main
[  274.397035] hibinit-agent[4484]: if not hibernation_enabled(config.state_dir):
[  274.397177] hibinit-agent[4484]: File "/usr/bin/hibinit-agent", line 390, in hibernation_enabled
[  274.397323] hibinit-agent[4484]: imds_token = get_imds_token()
[  274.397480] hibinit-agent[4484]: File "/usr/bin/hibinit-agent", line 365, in get_imds_token
[  274.397622] hibinit-agent[4484]: response = requests.put(token_url, headers=request_header)
[  274.397762] hibinit-agent[4484]: File "/usr/lib/python2.7/site-packages/requests/api.py", line 121, in put
[  274.429270] hibinit-agent[4484]: return request('put', url, data=data, **kwargs)
[  274.429961] hibinit-agent[4484]: File "/usr/lib/python2.7/site-packages/requests/api.py", line 50, in request
[  274.431229] hibinit-agent[4484]: response = session.request(method=method, url=url, **kwargs)
[  274.431638] hibinit-agent[4484]: File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 486, in request
[  274.454584] hibinit-agent[4484]: resp = self.send(prep, **send_kwargs)
[  274.455407] hibinit-agent[4484]: File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 598, in send
[  274.456594] hibinit-agent[4484]: r = adapter.send(request, **kwargs)
[  274.457076] hibinit-agent[4484]: File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 419, in send
[  274.457473] hibinit-agent[4484]: raise ConnectTimeout(e, request=request)
[  274.457606] hibinit-agent[4484]: requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='<IP_ADDRESS>', port=80): Max retries exceeded with url: /latest/api/token (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f63c6e94190>: Failed to establish a new connection: [Errno 113] No route to host',))

Is this a spontaneous error? Or something related to parallel cluster?

Hi Alexis,
The reported error means that the instance is not able to retrieve internal metadata: <IP_ADDRESS> is the link-local address.
[  274.457606] hibinit-agent[4484]: requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='<IP_ADDRESS>', port=80):
Max retries exceeded with url: /latest/api/token
(Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f63c6e94190>:
Failed to establish a new connection: [Errno 113] No route to host',))

It corresponds to something like curl http://<IP_ADDRESS>/latest/meta-data but in your case the error is coming from cloud-init python library.
From your config I can see you're using a Custom AMI and pre/post install scripts. It could happen that some pre/post install actions break the python environment used by cloud-init or there are custom configurations in the base AMI that are breaking the environment.
From what you reported the head node is working correctly but the compute nodes are failing at startup.

Did you try without pre/post install scripts and can you share them?
Which process did you follow to create the custom ami? Are you doing any custom network setup?

To verify if there are scaling issues we need the following files:

From Head node: /var/log/parallelcluster/clustermgtd.log, /var/log/parallelcluster/slurm_resume.log, /var/log/parallelcluster/slurm_suspend.log, and /var/log/slurmctld.log
From Compute node:  /var/log/parallelcluster/computemgtd.log, and /var/log/slurmd.log

Thanks

Hi @enrico-usai this parallel cluster was working fine for a few days successfully spawning and shutting down compute nodes as required.
I have since shut it down.  In the event that this happens again I'll retrieve these logs from the head node.
We are using a custom AMI built through image builder that takes a pc AMI as a base and builds some conda envs on top of that along with a few standard yum installations.  We have not seen issues with this AMI before.
Looking at those errors though, this doesn't appear to be a python issue but a network issue?
Failed to establish a new connection: [Errno 113] No route to host

Hi @alexiswl,
are you still experiencing this issue? If yes, can you please share the instance ID?
Are you enforcing your instance to use Instance Metadata Service Version 2 (IMDSv2) in place of IMDSv1?

Hi @lukeseawalker, I'm with Alexis working on the same team.
Yesterday we noticed a similar issue with our production AWS Batch setup (unrelated with pcluster). Please can you check out Case ID<PHONE_NUMBER> and let us know if there's some reliability internal (ongoing and increasing failure rate for the last 2-3 months) issue in ap-southeast-2 region for the instance metadata endpoints?
We submit several jobs to AWS batch but many of them are failing with messages like:
2020/11/04 07:08:11 E! getting instance-id from EC2 metadata fail:  RequestError: send request failed
(...)
2020/11/04 07:08:16 E! ec2metadata is not available

Since different agents (in our case on that issue cloudwatch-agent) rely on fetching basic information such as instance-id from the metadata endpoint, we would like to make sure that the Sydney region instance metadata service is reliable before pursuing the disabling (tedious and breakage-prone?) route since we'd have to (presumably) also check it for ecs-agent, ssm-agent et al?

We're continuing to track an internal ticket for this issue. We'll update this issue as we learn more about the problem and any workarounds.

Hi @brainstorm,
one root cause could be injecting huge output in the user-data, like for example the output of an unzip command. Could you please verify that?
Thanks,
L

We got that solved over AWS support (and AFAIK hasn't failed since). Thanks to @reisingerf for tracking this one down to the last bit, details over here:
https://twitter.com/braincode/status/1327124842936725504

Thanks @Roman for leiting us know and for the link.
I'm going to close this issue, feel free to open a new one if needed.
Thanks!

@alexiswl @brainstorm
could you provide us the details of the actions you're executing in the pre/post-install actions, if any?
This info could be helpful to try to reproduce the issue and verify if we can do something to improve the user's experience.
Thanks

@enrico-usai IIRC, this was the culprit: https://github.com/umccr/infrastructure/commit/2df50d503532eee76675bb34972836ed817f35a3
Hope that helps!


Help consumer understand what docker versions are valid

Provide details on where to retrieve the available versions of docker (https://github.com/docker/cli/tags ??) or the download source (https://download.docker.com/) that are valid for dockerVersion.

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

ID: 93ac37cc-abab-5bfd-d78d-8843d96a14da
Version Independent ID: 93ac37cc-abab-5bfd-d78d-8843d96a14da
Content: DockerInstaller@0 - Docker CLI installer v0 task
Content Source: task-reference/docker-installer-v0.md
Service: azure-devops-pipelines
Sub-service: azure-devops-pipelines-tasks
GitHub Login: @steved0x
Microsoft Alias: sdanie

@jamesbr-ashn -- James, thank you for your feedback.  Please consider these resources, if you haven't already:

Azure DevOps Services
Azure DevOps on Stack Overflow

@steved0x -- Steve, please look into this issue.

Thanks, William. I found the information I was looking for, but it took quite a while. I thought an easier reference to this info may help others in the future.
Kindest Regards,
James
From: William Anton Rohm @.>
Sent: Tuesday, March 21, 2023 12:27 AM
To: MicrosoftDocs/azure-devops-yaml-schema @.>
Cc: James Bristow @.>; Mention @.>
Subject: [EXTERNAL] Re: [MicrosoftDocs/azure-devops-yaml-schema] Help consumer understand what docker versions are valid (Issue #139)
[CAUTION! This email originated from outside of the ASH organization. Be careful when clicking links or attachments! Report suspicious email by using the Report Message->Phishing button or forward to<EMAIL_ADDRESS>@jamesbr-ashnhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fjamesbr-ashn&data=05|01|jamesbr%40ashn.com|05b207cc3d214c4b190008db29dd9c1e|da7b84dc67484ba59b021f3a0bdc2b50|0|0|638149804029523172|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=0k3dY63nVW1hpjTmWKkllY3gIAFyJTFFfS2s4zj4hS0%3D&reserved=0 -- James, thank you for your feedback. Please consider these resources, if you haven't already:

Azure DevOps Serviceshttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fazure.microsoft.com%2Fsupport%2Fdevops%2F&data=05|01|jamesbr%40ashn.com|05b207cc3d214c4b190008db29dd9c1e|da7b84dc67484ba59b021f3a0bdc2b50|0|0|638149804029523172|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=RQnK5wABtdD%2FkLgwtxE%2B%2BjYWgkfMKKI6gJhyPxAg3Hk%3D&reserved=0
Azure DevOps on Stack Overflowhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstackoverflow.com%2Fquestions%2Ftagged%2Fazure-devops&data=05|01|jamesbr%40ashn.com|05b207cc3d214c4b190008db29dd9c1e|da7b84dc67484ba59b021f3a0bdc2b50|0|0|638149804029523172|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=INgeTh2ss12S5RO4IP5fwjuVq6zNC69Ik71Lw2aHGvE%3D&reserved=0

@steved0xhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsteved0x&data=05|01|jamesbr%40ashn.com|05b207cc3d214c4b190008db29dd9c1e|da7b84dc67484ba59b021f3a0bdc2b50|0|0|638149804029523172|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=M2v2te6%2FvwelMFyRuTfGhdTD6N2ousQ1MxfWZ5P1ISQ%3D&reserved=0 -- Steve, please look into this issue.

Reply to this email directly, view it on GitHubhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-devops-yaml-schema%2Fissues%2F139%23issuecomment-1477381293&data=05|01|jamesbr%40ashn.com|05b207cc3d214c4b190008db29dd9c1e|da7b84dc67484ba59b021f3a0bdc2b50|0|0|638149804029523172|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=bKQobTghmEEeEDz4775sue6Up0MVMBHyFXfxxz1%2F29Q%3D&reserved=0, or unsubscribehttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FANLJUNMEF6DC6EC5R6HNYKDW5FJ25ANCNFSM6AAAAAAWBOC4KY&data=05|01|jamesbr%40ashn.com|05b207cc3d214c4b190008db29dd9c1e|da7b84dc67484ba59b021f3a0bdc2b50|0|0|638149804029523172|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=MBpISXHwzBh6RnX3QLe8pK%2FU%2Ff%2FeNJdZlPqxdpvn8fA%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>CONFIDENTIALITY NOTICE: This e-mail, and any attachments, are intended solely for the use of the intended recipient and may contain information that is confidential, proprietary, copyrighted and/or legally privileged. Any unauthorized disclosure, distribution, or use of this information is prohibited. If you are not the intended recipient, and have received this message in error, please notify the sender immediately by reply e-mail and destroy all copies of the original message and any attachments. Your compliance is appreciated.

Thank you for your feedback. We are migrating this issue to our new documentation feedback system, and closing this issue.
As we phase out GitHub issues for this repository, we encourage you to propose changes using public PRs or submit feedback through our updated control at the top of the page. For more information on our feedback systems, see https://aka.ms/contentuserfeedback.


docs(icons): add icons to adoption app

Adding an adoption guide for cds-icons in adoption app
Credits to @sis0k0

Also, we could wait for a little before merging it just before we see how we gonna approach the adoption guide - so won't do double work.

Also, we could wait for a little before merging it just before we see how we gonna approach the adoption guide - so won't do double work.


Is there a way to forward a claim/role from the negotiation header through to hub SignalRInvocationContext in serverless upstream

Environment

Azure signalr
Serverless mode
Isolated Azure Function Upstream

My problem is, i cant seem to find a reliable way to authorize a hub method after negotiation.
The use-case here, is i have connected clients authorized from the front end clients through a jwt token supplied azure B2C. I also have back-end MS Orleans Daemon services that push messages through to those clients.
I am trying to limit what hub methods the clients can use, and allowing only Daemons to use service type hub methods. Obviously its not optimal to have certain types of hub methods un authorized.
All though i can pass claims/roles from the authenticated Daemons (via app registrations jwts) through to the negotiation method, i cant seem to find a way to distinguish the Daemon services after the fact when calling hub methods.
The only work around i can see atm, is pushing the UserId/ConnectionId and roles (on negotiation) to a azure cosmos / redis servicem using the roles to determine the class/type of user (E.g Front Client or Daemon). then in the hub methods doing a lookup on those ids to determine the type of user, in turn restricting access.
Unless there is some other solution to this that i am unaware of (very likely), maybe there is the possibility of using the input binding of the negotiate method to populate the X-ASRS-User-Claims with custom claims, which could be checked in hub methods?

Claims in X-ASRS-User-Claims consists of claims in the accessToken. So, you just need to add your custom claims when generating access token in the negotiate method.
If you're using in-process C#, then you can easily use ServerlessHub.NegotiateAsync to pass in custom claims. But as you're using isolated process, you can also simulate the implementation in ServerlessHub to generate accessToken. https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/signalr/Microsoft.Azure.WebJobs.Extensions.SignalRService/src/TriggerBindings/ServerlessHub.cs#L134

In dotnet isolated process worker, you can also use the "IdToken" and "claimTypeList" properties in the SignalRConnectionInfoInput binding as follows to pass your customized claims. Specify the location of your jwt claim in the "IdToken", and the claim types you want to put into the user claims.
[Function("CustomIdToken")]
public static SignalRConnectionInfo Negotiate([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestData req,
    [SignalRConnectionInfoInput(HubName = "chat", ConnectionStringSetting = "SignalRConnection", IdToken = "{headers.headerName}", ClaimTypeList = new string[] { "email" })] SignalRConnectionInfo connectionInfo)
{
    return connectionInfo;
}

A payload sample of the required JWT token:
{
    "Issuer": "Issuer",
    "Issued At": "2022-07-05T10:03:31.050Z",
    "Expiration": "2022-07-05T10:03:31.050Z",
    "email"<EMAIL_ADDRESS>}

@Chays21

can you help with below questions, I am looking for some guidance

question1
When to use this SDK if I could already follow the traditional model of creating negotiate, other functions to send messages to clients.

Forquestion1, you can access the user ID in the InvocationContext of SignalR trigger, see the doc here for details. You could tell us more about your scenario if you have any questions.
I assume the SDK you mention is the SignalR management SDK. The SignalR Functions binding is implemented based on this SDK. SignalR Functions binding for C# in-process functions model provides most of the functionalities in the SDK, so if the Functions bindings satisfy your need, you can just use Functions bindings. However, SignalR bindings for C# out-of-process functions model have limited functionalities, you might want to use the SDK directly if you have complicated requirements, for example, you want to preprocess the claims before passing them to services for negotation, or you want to customize the JSON serialization.

I assume that my understanding might need to be corrected with Azure SignalR service design. I might be asking a question which might be not actually logical or achievable.

For question1, you can access the user ID in the InvocationContext of SignalR trigger, see the doc here for details. You could tell us more about your scenario if you have any questions.

My scenario includes processing a message received from service bus topic trigger and sending to the react js client app with Signalr output binding. The code for azure functions negotiate, ProcessUpdate is implemented in .net core with Azure function bindings. below is the code for ProcessUpdate.
[FunctionName("ProcessUpdate")]
 public static void Test([ServiceBusTrigger(topicName: "test", subscriptionName: "test", Connection = "AzureServiceBusConnectionString")] ServiceBusReceivedMessage  message,
         [SignalR(HubName = "Notification")] IAsyncCollector<SignalRMessage> signalrMessageCollector, ILogger logger)
        {
            var signalrMessage = new SignalRMessage()
            {
               UserId = //assign authenticated user id
                Target = "receiveUpdate",
                Arguments = new[] { message.Body.ToString() }
            };
            signalrMessageCollector.AddAsync(signalrMessage);
        }

i)  I understand now that currently this sdk only supports .net core signalr clients. so I can't make use of SignalR Management SDK here as I have ReactJS client application.
ii) So If I have to follow Azure function bindings, I cannot use the two input trigger bindings (Topic trigger, SignalR trigger) in the azure function ProcessUpdate.
so My question is
When client application negotiates, as part of the SignalRConnectionInfo object an access token will be sent back to the client application and client application uses further this to connect to SignalR Service  so is there a way I can access this token in ProcessUpdate azure function
public static SignalRConnectionInfo Negotiate(
            [HttpTrigger(AuthorizationLevel.Anonymous)] HttpRequest req,
            [SignalRConnectionInfo(HubName = "test", UserId = "{headers.x-ms-client-principal-id}")] SignalRConnectionInfo connectionInfo, ILogger logger)
        {
            logger.LogInformation($"Returning connection: {connectionInfo.Url}  {connectionInfo.AccessToken}");
            return connectionInfo;
        }

I assume the SDK you mention is the SignalR management SDK. The SignalR Functions binding is implemented based on this SDK. SignalR Functions binding for C# in-process functions model provides most of the functionalities in the SDK, so if the Functions bindings satisfy your need, you can just use Functions bindings. However, SignalR bindings for C# out-of-process functions model have limited functionalities, you might want to use the SDK directly if you have complicated requirements, for example, you want to preprocess the claims before passing them to services for negotation, or you want to customize the JSON serialization.

how do I know what all function bindings are available with SDK to use?

i) I understand now that currently this sdk only supports .net core signalr clients. so I can't make use of SignalR Management SDK here as I have ReactJS client application.

This is not true.  ASP.NET Core SignalR refers to the server-side technique you're using. For the client side, you could choose the proper JS library according to your server-side technique. For JS client, you should use @microsoft/signalr library.

ASP.NET Core SignalR JS client
Differences between ASP.NET SignalR and ASP.NET Core SignalR

ii) So If I have to follow Azure function bindings, I cannot use the two input trigger bindings (Topic trigger, SignalR trigger) in the azure function ProcessUpdate.

Yes, you cannot use two trigger bindings in one function.

When client application negotiates, as part of the SignalRConnectionInfo object an access token will be sent back to the client application and client application uses further this to connect to SignalR Service so is there a way I can access this token in ProcessUpdate azure function.

I am also confused by your question. Given that your ProcessUpdate is a ServiceBus trigger function, and Service Bus is another service independent of SignalR Service, how do you know which SignalR client to access if you don't pass any information to the Service Bus?

How do I know what all function bindings are available with SDK to use? are there any limitations?
I am not sure if I understand your first question. Do you mean that you want to find all the functionalities/features provided by the management SDK? You can see this doc https://github.com/Azure/azure-signalr/blob/dev/docs/management-sdk-guide.md for more details.

Hi @Y-Sindo
This is not true. ASP.NET Core SignalR refers to the server-side technique you're using. For the client side, you could choose the proper JS library according to your server-side technique. For JS client, you should use @microsoft/signalr library.
ASP.NET Core SignalR JS client
Differences between ASP.NET SignalR and ASP.NET Core SignalR
but  I see the below note, here https://github.com/Azure/azure-signalr/blob/dev/docs/management-sdk-guide.md.

Azure SignalR Service Management SDK
NOTE
Azure SignalR Service only supports this SDK for ASP.NET CORE SignalR clients.

->This means I can only use this SDK to manage asp.net core signalr clients from my server side code not the reactjs signalr clients.  is this understanding correct? other way the question is can I use this SDK to instead of Azure function bindings to work with ReactJs signalr client.


Update Word quickstart ('Any editor' section) to use Yo Office

Also minor updates to a few other quickstarts.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/images/word-quickstart-addin-1.png
:white_check_mark:Succeeded

docs/images/word-quickstart-addin-1b.png
:white_check_mark:Succeeded

docs/images/word-quickstart-addin-2.png
:white_check_mark:Succeeded

docs/images/yo-office-word-jquery.png
:white_check_mark:Succeeded

docs/includes/file-get-started-excel-jquery.md
:white_check_mark:Succeeded

docs/includes/file-get-started-onenote.md
:white_check_mark:Succeeded

docs/includes/file-get-started-powerpoint.md
:white_check_mark:Succeeded

docs/includes/file-get-started-project.md
:white_check_mark:Succeeded

docs/includes/file-get-started-word.md
:white_check_mark:Succeeded

docs/includes/quickstart-yo-start-server.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


fix: fixes core package test

Even tho the action was changed to include the core package tests, it didnt run on the PR, so it failed when it ran on main
This is broken, for some reason, trying to figure it out.

Closing in favour of https://github.com/thousandeyes/thousandeyes-sdk-python/pull/75


Streamline GetDisposeMethod AO

The assert is redundant, and the variable can just be returned directly.

The assert was intentionally redundant, per https://github.com/tc39/proposal-explicit-resource-management/pull/131#discussion_r1042815129. It goes away when using await advances and (hopefully) the specs can be merged once again.

interesting, it's not clear to me that there's any value from the extra assert or note, but it's not that big a deal. feel free to close.

I will close this since the two proposals will merge following the March plenary, which will make this irrelevant.


Switch to azure gpt35-16k for ci e2e

Description
Switch to azure gpt35-16k for ci e2e

/retest

/lgtm

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.60%. Comparing base (587fa12) to head (ff9a74c).
Report is 5 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1219      +/-   ##
==========================================
- Coverage   95.66%   95.60%   -0.07%
==========================================
  Files          56       56
  Lines        2586     2410     -176
==========================================
- Hits         2474     2304     -170
+ Misses        112      106       -6

see 6 files with indirect coverage changes


Darkside mode crashes when getblockchaininfo is called and there are no blocks loaded.

What is the bug?
When started, darksidewalletd seems to attempt to connect to zcashd and crashes.
Additional context
commit: 8269810eeefac56ce326b0f6878c1ea3821b8ad5
I was testing new darkside tests cases for all wallets. It suddenly stopped working.
here's the console log
lightwalletd % sh ~/darksidewalletd.sh
{"app":"lightwalletd","buildDate":"2023-08-27","buildUser":"pacu","gitCommit":"8269810eeefac56ce326b0f6878c1ea3821b8ad5","level":"info","msg":"Starting gRPC server version v0.4.15-5-g8269810 on <IP_ADDRESS>:9067","time":"2023-08-27T18:33:11-03:00"}
{"app":"lightwalletd","level":"warning","msg":"Starting insecure no-TLS (plaintext) server","time":"2023-08-27T18:33:11-03:00"}
Starting insecure server
{"app":"lightwalletd","level":"info","msg":"Reading 0 blocks (since Sapling activation) from disk cache ...","time":"2023-08-27T18:33:11-03:00"}
{"app":"lightwalletd","level":"info","msg":"Done reading 0 blocks from disk cache","time":"2023-08-27T18:33:11-03:00"}
{"app":"lightwalletd","level":"info","msg":"Darkside mode running","time":"2023-08-27T18:33:11-03:00"}
{"app":"lightwalletd","level":"fatal","msg":"getblockchaininfo: no blocks","time":"2023-08-27T18:33:15-03:00"}
Lightwalletd died with a Fatal error. Check logfile for details.

script to start darkside mode
#!/bin/zsh

./lightwalletd --log-file /dev/stdout --darkside-very-insecure  --darkside-timeout 1000 --gen-cert-very-insecure --data-dir . --no-tls-very-insecure

after it crashed this folder can be found where the binary is at.

Solution
Add fix suggestions here, or what you’d like to see.

I'm unable to reproduce this. After starting lightwalletd with the arguments listed above, it prints the messages up to and including "Darkside mode running" but then it continues running (waiting for a request), without crashing.
I was able to recreate the exact crash by running:
$ grpcurl -plaintext localhost:9067 cash.z.wallet.sdk.rpc.CompactTxStreamer/GetLightdInfo

This isn't a regression. It crashes because there is no blockchain information to return.
I could make a code change to not crash, but to return something reasonable instead, if that would be helpful. (Looking at it now, it does seem harsh to crash in this case; I don't recall if I had a strong reason for implementing this behavior, but I don't think so.)

Uhmmm. This is really useful though!
I don't recall having any wallets running in the background that could be requesting that RPC 🤨 maybe I had a zombie process of Zingo-cli?
If you can make it not to crash and return some meaningful error on how not to get into that situation is always for the best.
If we managed to make this an automated test, the crash wouldn't be of much help for someone reading the log.
Thanks Larry !

What's useful (I don't quite understand)?
We've had this question before, and I'm not sure of the best answer. We can make darksidewallet kind of "fragile" (like it is now with respect to this issue), or more forgiving. At first thought, forgiving seems better. But being forgiving may hide some defects in the test framework or even the real production code. Seems like "fail fast" (as opposed to trying to "recover") may be the best option for test code in terms of uncovering bugs, but it's obviously disruptive when things like this happen. It's a tradeoff, and I don't know the best answer. (You can tell me what you prefer.)
To be more specific, in this case, it's not like lightwalletd just dies with no clue about what happened; there is an error message in the log file:
{"app":"lightwalletd","level":"fatal","msg":"getblockchaininfo: no blocks","time":"2023-08-27T16:38:58-06:00"}

I think this error is fairly clear (the darkside server is receiving a getblockchaininfo request when there are no blocks).
But what do you think? Should this gRPC succeed if no blocks exist?
If so, then let's look at the GetLightdInfo output after creating some blocks (on darksidewallet):
$ grpcurl -plaintext localhost:9067 cash.z.wallet.sdk.rpc.CompactTxStreamer/GetLightdInfo
{
  "version": "v0.4.16-3-g8269810",
  "vendor": "ECC DarksideWalletD",
  "taddrSupport": true,
  "chainName": "x",
  "saplingActivationHeight": "663190",
  "consensusBranchId": "bad",
  "blockHeight": "663190",
  "gitCommit": "8269810eeefac56ce326b0f6878c1ea3821b8ad5",
  "buildDate": "2023-08-27",
  "buildUser": "larry"
}

We get the saplingActivationHeight and blockHeight from the blocks that have been created. What values should these fields have if no blocks exist yet? Would zero be okay? Or maybe -1 (definitely an impossible value)?

Just want to make it clear that the title of this issue is incorrect -- lightwalletd (in darksidewallet mode) is not trying to connect to zcashd.

But what do you think? Should this gRPC succeed if no blocks exist?

I think it should definitely should fail. I wonder if we could rephrase the error to make it obvious that it's a user (dev) error and what dlwd would expect instead. I'll think of something and propose it on a PR. what do you thing?

I'm testing Zingo-cli and this is the error that's thrown when a TreeState is required but not available in dwld.
This is how it gets shown on the CLI
 regtest network in use but no regtest flag recognized!
(regtest) Block:206 (type 'help') >> thread 'tokio-runtime-worker' panicked
at 'called `Result::unwrap()` on an `Err` value: "Error with get_tree_state response
at http://localhost:9067/: Status { code: Unknown, message: \"there is no TreeState
Staged for height \\\"305\\\". Stage it using AddTreeState() first\", metadata: MetadataMap
{ headers: {\"content-type\": \"application/grpc\"} }, source: None }"',
 zingolib/src/blaze/trial_decryptions.rs:135:28

I think I could try to do the same for this case, would that be ok?

So instead of stopping lightwalletd (exiting the process), I should change lightwalletd return an error similar to this? I could definitely do that.

I'm in doubt with that, because, what's the TreeState of synthetic block? 🤯

I don't quite understand. Darksidewallet has a method to add a tree state (AddTreeState) and the tree state entry that it adds contains both a height and a block hash (as well as the Sapling and Orchard tree states, of course, and a couple of other things). But currently, darkside only supports GetTreeState at a given block height argument, but not at a given block hash argument -- which the production GetTreeState does support. It would be a simple change to the darkside's version of GetTreeState to allow looking up a tree state by block hash (since we have each tree state's block hash) and return it. The argument to GetTreeState already support either height or hash, so there's no change to the interface.
It would seem better for darkside mode to support the same interface as production mode, as far as possible. So that's why I'm thinking that this is an improvement worth implementing (especially since it's simple).
What do you think?
Having written all this, I think I'll just go ahead and implement it, even if you don't need it immediately. It will be a surprise and disruptive if it's needed later and isn't there.

I agree! I think that it's for the best that darkside counterparts of RPCs that are used in production support the same inputs in both modes.

I agree! I think that it's for the best that darkside counterparts of RPCs that are used in production support the same inputs in both modes.

Fixed now by #453 -- NOTE, not this issue, this was the result of a side comment / observation / request (there is no ticket for 453).


cannot detect serial epson printer

work with usb star termal printer but if i use serial printer epson cannot detect printer on array

On which OS are you Linux or Windows ?

accidentially closed, hope you see it again as open

i use windows os

I see source code use power sheel righ? Maybe my powersell restricted couse not detect printer

i just try to run command and this is result
Location      :
Name          : XP-80
PrinterState  : 0
PrinterStatus : 3
ShareName     :
SystemName    : ABUAZKA-PC
Location      :
Name          : XP-58 (copy 1)
PrinterState  : 0
PrinterStatus : 3
ShareName     :
SystemName    : ABUAZKA-PC
Location      :
Name          : XP-58
PrinterState  : 1030
PrinterStatus : 1
ShareName     :
SystemName    : ABUAZKA-PC
Location      :
Name          : Microsoft XPS Document Writer
PrinterState  : 0
PrinterStatus : 3
ShareName     :
SystemName    : ABUAZKA-PC
Location      :
Name          : Fax
PrinterState  : 0
PrinterStatus : 3
ShareName     :
SystemName    : ABUAZKA-PC
Location      :
Name          : EPSON L360 Series
PrinterState  : 0
PrinterStatus : 3
ShareName     :
SystemName    : ABUAZKA-PC
in this line "if (listResultLines[d].indexOf("ShareName")>-1) "
look all ny printer cannot have ShareName

SOLVE :)
Just Sharing printer and set share name all work

Ok thats the way it works,
BTW may i ask what you are using it for ( type of app /field of use liek cash register etc )

i create electron app for windows and use star printer, but cash drawer cannot open maybe you can help me for cash drawer

Actually it is in the source with comment:
// a pulse of 25 ms worked quite fine with my cash drawer so i set it as default
PULSE_PIN2_DEFAULT: new Buffer('1B70001919','hex').toString('utf8'),
PULSE_PIN5_DEFAULT: new Buffer('1B70011919','hex').toString('utf8'),
PULSE: function(pin,ontime,offtime){
if (pin==2){
var pinHexString = '00';
}else{
var pinHexString = '01';
}
var command = new Buffer('1B70'+pinHexString+("00"+ontime.toString(16)).slice(-2)+("00"+offtime.toString(16)).slice(-2),'hex').toString('utf8');
return command;
}
In my app i simply call it like this:
Printer.append(Printer.ESCPOS_CMD.PULSE_PIN2_DEFAULT);

ok thanks i will try later dude :+1:

thanks work for cash drawer


PaaS script should support custom startup scripts

Done. https://rhiot.gitbooks.io/rhiotdocumentation/content/cloudplatform/paas.html#loading-custom-startup-script


Replace deprecation warnings with one time warnings for headingPitchRoll

Fixes #5868

@ggetz, thanks for the pull request! Maintainers, we have a signed CLA from @ggetz, so you can review this at any time.
I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to CHANGES.md and comment on this pull request so we know it was updated. For more info, see the Pull Request Guidelines.
I am a bot who helps you make Cesium awesome! Thanks again.

Let's hold off on this until there is a consensus in the linked issue.


Report uploading

Generated reports

What is the reporting server? I saw there only some IP.

Right now its my private VPS with custom app.
Location of the app might change in the future (if I decide to migrate to some cloud based solution or something like that if I feel like it), so thats why the URL to it is in travis property.

Generated reports

JRS source code available here: https://github.com/paveljandejsek/jbus-report-service

Generated reports


docs.brew.sh/Manpage does not wrap text properly on mobile

What were you trying to do (and why)?
Read https://docs.brew.sh/Manpage on mobile
What happened (include all command output)?

What did you expect to happen?

"Fork me on GitHub" displayed in top-right
Text wrapped properly
No horizontal scrollbars

Step-by-step reproduction instructions (by running brew commands)
View https://docs.brew.sh/Manpage on mobile

Some unwrappable lines are too long to fit in the body it seems:

Adding overflow-wrap should do it


Lasers don't render, errors.

modded lasers won't render, and cause errors.

https://steamcommunity.com/sharedfiles/filedetails/?id=2341598222
Sometimes render, caused the game to crash when they were built

https://steamcommunity.com/sharedfiles/filedetails/?id=2341598222
Sometimes render, caused the game to crash when they were built


Added edupro.cl domain

@Vice-Manci The first verification stage is complete: the official domain for  Liceo José Victorino Lastarria is www.liceolastarria.cl, to the best of my knowledge. This is just an informational note. The pull request is still under review. The review may take some more time. I greatly appreciate your patience. Here is the proof of domain ownership: https://www.liceolastarria.cl/images/2022/PDF/Tutorial_acceso_a_correo_alumnos.pdf

As the PDF suggests, the domain for Liceo José Victorino Lastarria's students and teachers is edupro.cl, then the students use the subdomain estudiante, while the teachers use the subdomain docente (Spanish for docent or teacher). The domain liceolastarria.cl is for administrative use only, students don't have access to an email with that domain.

@Vice-Manci The domain edupro.cl belongs to Corporación de Desarrollo Social de Providencia.
Is it exclusively used by your school or by a number of organizations in your region?
How many people have an access to this domain? Are they all only teachers and students?

To my knowledge, it's used by some schools that are being run by the Corporación de Desarrollo Social de Providencia.
I don't know how many people have access to the domain, but I know that is used exclusively by students and teachers.

@Vice-Manci Thank you for your patience while waiting for a review and processing your request. Pull request merged.
Please start requesting the licenses in about an hour, to let the changes to propagate through our system.


If contents first entry is higher than 1, append to previous entry

Example: Bable
Currently part of Bables description is recognized as a headword, called Babel. It is quite tricky false positive to recognize from the headword alone.
In this case, Bable has numbered definitions, like 1) and 2). The second one is in Babel. Should an entry have a definition that starts from something else than the first definition, just append it back to the previous entry.

After a simple implementation & testing it, it looks like this logic can cause many false positives due to small mistakes in OCR. For example, Afkomst would be incorrectly deemed part of previous entry, as it does not have 1), but |).
As we already have a mapping of false positive entries, lets fix Bable through that. It would make sense to run a script to see how many similar cases there are and just add them to the mapping. Separate issue will be opened about that.


Fixing graph root padding and truncating long queries in execution plan

After:

Before:

Issue: #18961

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.0005%) to 42.035%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/workbench/contrib/executionPlan/browser/executionPlanViewHeader.ts
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.0005%

Covered Lines:
28088

Relevant Lines:
62304

💛  - Coveralls


Any idea to test this generator function?

export function * getData () {
  let task
  while (true) {
    let { data } = yield take(types.GET_DATA)
    task && task.isRunning() ? yield cancel(task) : null
    task = yield fork(callApi, data)
  }
}

This is related to #45 and #46. We need to provide a way to mock fork results (i.e. create mock tasks), since the developer can't create them himself.
I'm thinking of something like a createMockTask method; then your test should be something like this
import { createMockTask } from 'redux-saga/lib/testUtils'

const it = getData()

assert.deepEqual( it.next().value, take(types.GET_DATA) )

const mockData = { ... }
const mockAction = {type: types.GET_DATA, data: mockData }

// resume the generator with mockAction
// since task is null, we expect yield null
assert.deepEqual( it.next(mockAction).value, null )

assert.deepEqual( it.next().value, fork(callApi, mockData ) )

// mock fork result
const mockTask = createMockTask()

// resume the generator with mock task
assert.deepEqual( it.next(mockTask).value, take(types.GET_DATA) )

// simulate a task ending
mockTask.setRunning(false)

// now expect a cancel
assert.deepEqual( it.next(mockAction).value, cancel(task) )

On a related note, this pattern is becoming quite common across a lot of my sagas. Fetch something, but do it in a non-blocking manner so if the user has quick fingers or the interface offers a cancel button, we can abort the outstanding xhr, capture the errors, and fire off another forked fetch. I don't really like the idea of a scoped "global" variable and doing things like task && task.isRunning()... it reminds me too much of recursion and doesn't seem to nicely line up with a structured programming paradigm. I wonder if there's a better way?

@yelouafi @aft-luke I may not know enough about the codebase, but I am making the assumption that call etc know when it is called from an iterator or not and that's how it decides to run the effect or return the description?
What if somehow we could detect or a set a "testing" environment as true, or something similar, that would allow you to not only receive back the description of the effect, but also make that specific call() return a mock value that you could pass when running that effect?
Like here run this effect, and return this mock value + plus the description of the effect. Some sort of test utils.
I need to put some code together.

@josebalius call is just a pure function that receives some params and return a plain object. It doesnt have to detect anything. What happens is that when the redux-saga middleware run the generator, it asks it to get the next effect. The generator returns for example a call object. The middleware then run the call (e.g. by making an xhr request ) and resume the generator when the result of the execution arrives.
In tests, you do the same thing, you ask the generator for the next effect. except that you dont run the call. you just resume the generator by some mock result
function* saga() {
  const res = yield call(myFunc)
  yield put(action(res))
}

const it = saga()

assert.deepEqual( it.next().value, call(myFunc) )

const mockResultOfMyFuncCall = {}
assert.deepEqual(
  // here you provide a dummy result to the generator into the next method
  it.next(mockResultOfMyFuncCall ).value,
  // and expect it putting an action with that result
  put( action(mockResultOfMyFuncCall) )
)

The issue with fork is that you can't give the generator an arbitrary mock value. Because fork results are expected to have some special properties. So there is no way actually for a library user to mock them. Thus we need to provide a function to create mock fork results

@n9ti  v0.6.0 introduces createMockTask. see releases notes for usage example

Hey! I wonder how come setting mockTask.setRunning(false) in the test doesn't effect the previous task? I mean, if it is set to true, then obviously a cancellation should be called. But if it's false, shouldn't the generator just fork and skip the cancellation?


JavaScript: input invalid syntax code, chrome crash

Chrome:  Version 61.0.3163.100 (Official Build) (64-bit)
Javascript code: for() {
codeMirror Version: 5.26.0

Well, that would be a Chrome bug. I don't have that version at hand, so I cannot try to reproduce it, but I doubt that Chrome would contain such a blatant bug in a released version. In any case, there's nothing we can do about it.

It might be that 'chrome crash' is referring to an infinite loop in the JS code. But I can't reproduce this in Chrome 62, so I'm going to leave it closed until further information comes in.


[engine][fuchsia] Need RasterThreadMerger working on Fuchsia

Currently, fuchsia does not use RasterThreadMerger. Code and test utilizing this need to be excluded using #define(OS_FUCHSIA) flags.

This has come to the fore because of work done on PlatformView support for fuchsia. PR https://github.com/flutter/engine/pull/19132


Implement hocon::file convenience type

I put this together as an experiment awhile back. Putting it in a PR for feedback on whether or not this is something worth having.
The only new public interface is the hocon::file defined type.
The hocon_setting type allows users to describe individual pieces of configuration that they need, but doesn't let them step back and describe at a higher level that a wholistic configuration file is what they care about.
It is technically desirable not to use templates for managing configuration, as it is impossible to be additive about configuration with templates. However, templates make a lot of sense for defining a baseline from which to start and be additive about. See https://github.com/TERC/puppet-xmlfile for another example of this desire.
This commit introduces a new defined type that allows users to build a whole-file template representing a base configuration to deploy, but does not have any of the brittleness of a template.
Example:
hocon::file { '/tmp/test.conf':
  ensure  => present,
  content => template('/Users/reidmv/src/test.conf.erb'),
  purge   => false,
  owner   => 'root',
  group   => 'root',
  mode    => '0644',
}

The defined type first declares the file resource but sets replace=false. When Puppet runs it will create the file and populate it with the template content.
Next, a function is added which parses the template content and creates a hocon_setting resource for each element found in the template. These resources are added to the catalog.
Because a template was used to create the file, formatting and comments can be preserved on creation. Because Puppet will never overwrite an existing file though, local edits or hocon_setting resources that add additional configs will be work correctly.
Because a function parses the template and adds hocon_setting resources to the catalog for each setting, Puppet will continue to enforce that desired configuration is preserved, even though the file resource will never replace the file contents wholesale.
In general the new hocon::file defined type allows users to manage Hocon configuration files by focusing on the file instead of individual settings inside it. Similar to the recurse=true file directory pattern, users define a whole naturally in a wysiwyg manner, but aren't prevented from adding in additional parameters later.
Caveat: the hocon_setting namevar does not appear to be able to establish true namevar reference to a resource. The hocon::file interface could be significantly strengthened if we could use hocon_setting namevars to ensure uniqueness in the catalog.

This definitely seems like it would be a useful feature to me.
The hocon module right now can be used to build a configuration file from scratch by adding a single setting at a time, but you can't add comments or any sort of special formatting unless you manually lay down a base configuration file before you start using Puppet to manage it. That's definitely important in many cases, so I think this feature would definitely make things easier for users.
@cprice404 What are your thoughts?

In full disclosure there is clear uncertainty amongst the limited number of people I've talked to about it whether the pattern this PR prototype represents is desirable, neutral, or undesirable from a user-experience design standpoint. I'm very interested in thoughts regarding those aspects specifically.

@reidmv sounds like you are probably more interested in feedback from module devs and other CS folks than from @fpringvaldsen and myself then.  On the surface this sounds like a decent idea to me and I'd have no qualms with accepting a patch like this if there was consensus from CS and other people who really know the use cases better than we do :)

@reidmv I'm going to close this because it's been sitting for a while.  If there are still folks (with more exposure to real-world use cases for this sort of thing) whom you'd like to have weigh in, please feel free to direct them to the PR, and if we end up with some kind of consensus that this is a good idea or worth exploring further, we can re-open.  Thanks!


Support graceful failover in CLI

What changed?
Add update domain operation set graceful failover timeout via CLI

Why?
Graceful failover will trigger from CLI.

How did you test it?
Local test

Potential risks
No risk as it is a pending feature

Coverage decreased (-0.05%) to 68.212% when pulling bcfa4e23b743df90232a63d621082f0d8e282f7b on failover_cli into 72f379266cb04a799db21371aeba6e5dfe3528e4 on master.


update instructions to customize particles

When trying to customize the code for the particles canvas, I noticed that the changes must go in assets/js/main.js instead of app.js.
btw, very nice theme! thank you.

assets/js/main.js is a generated file made by Gulp based on JavaScript files in src/js. You should not modify main.js.
Check running-the-blog-in-local to see how stuff are made.


'$' as identifier

Hi, this is a cool work.
It seems that identifiers starting with '$' can not be used.
Is it intentional?

No, it seems a bug.
I'll fix it.

Fixed.


d'Aboville System

This is  a feature request.

Prerequisites

[ ] Are you running the latest version?
[ ] Are you reporting to the correct repository?
(This project is made of many specialized packages: https://github.com/modularsoftware)
[ ] Did you check the documentation?
[ ] Did you perform a cursory search?

Description
https://en.wikipedia.org/wiki/Genealogical_numbering_systems#d'Aboville_System
Steps to Reproduce

Expected behavior

Actual behavior

Backend for generating the trees to be displayed in text on the page.

@everyone you got scammed, please check @curtisdelicata 's Linkedin profile.  He never pay for developers.
He runs fake business called FamilyTree365. He lies developers to contribute the project for a week and pretend to pay after a week but he disappears after receiving PR.
I should alert other honest developers and customers that you should never support Curtis Delicata since he is a fraud.
I can share you more evidence if anybody interested.
https://www.linkedin.com/feed/update/urn:li:activity:6906662303572606976/


avoid dense vector operations in local solver

for good performance on sparse, we shouldn't use any dense vector operation in a single coordinate update. such an update needs to have cost only (number of non-zeros of the returned feature vector by the oracle), which can be very sparse.
e.g. we should remove the dense temp variables here for example,
https://github.com/dalab/dissolve-struct/blob/master/dissolve-struct-lib/src/main/scala/ch/ethz/dalab/dissolve/optimization/DBCFWSolverTuned.scala#L961
we can check how that affects performance on a large sparse binarySVM dataset.

I think the problem is not the operation performance itself. I think it's rather the fact that a + b returns a new vector. Then the old weight vector object is replaced by the new one, which over time causes the garbage collector to be called.
I replaced the updateWeights in the StructSVMModel class by a method which adds a vector to the weight without creating a new vector-object. It seems to execute faster.
Before i noticed that the localModel.updateWeights(tempWeights2) operation took 16ms every 5 or 6 iterations, which indicated that there was garbage collection involved.
When using the new methods i created (one for addition and one for subtraction) this part of the code takes 0ms.

thanks!
can you check how it affects the binarySVM example performance? the RCV1
dataset would be recommended for the check, since that's very sparse.
On Thu, Nov 12, 2015 at 4:43 PM, jderiu<EMAIL_ADDRESS>wrote:

I think the problem is not the operation performance itself. I think it's
rather the fact that a + b returns a new vector. Then the old weight vector
object is replaced by the new one, which over time causes the garbage
collector to be called.
I replaced the updateWeights in the StructSVMModel class by a method which
adds a vector to the weight without creating a new vector-object. It seems
to execute faster.
Before i noticed that the localModel.updateWeights(tempWeights2) operation
took 16ms every 5 or 6 iterations, which indicated that there was garbage
collection involved.
When using the new methods i created (one for addition and one for
subtraction) this part of the code takes 0ms.
—
Reply to this email directly or view it on GitHub
https://github.com/dalab/dissolve-struct/issues/29#issuecomment-156143485
.

I checked the performance. I ran it on the RCV1 dataset. The old implementation takes approx. 1200ms per round. The new implementation takes only 750ms per round.
What is striking however is that each iteration in the mapper takes longer as the previous. So that the first iteration takes 1ms and the last iteration (after passing through all 16k datapoints) takes 500ms.
I think there is the same kind of problem since each vector addition and subtraction creates new objects which have to be garbage collected. In these cases however I don't quite know how to adapt the code yet.. Maybe it would make sense to optimize the code to avoid the creation of new objects

yes one has to be careful what kind of adding operation will actually result, when adding a sparse vector (the feature vector) to a dense (w).
in your experiments did you keep w dense? (and w_i sparse?)

yes w is a dense vector and w_i is sparse.
the increase of duration in each iteration was due to a small bug I introduced..
So after rerunning the experiments I get that the old implementation, which replaced the weight vector (which is dense) by a new one, takes 1200ms per round.
If one takes a look at the mapper iterations one can notice that most iterations take 0ms, the others take about 15ms.
The new implementation which add and subtracts from the weight vector without creating a new object takes 400ms per round. Here one can notice that all iterations in the mapper take 0ms.

I also ran the it on my data. Which has 9600 datapoins and feature vectors with 220k dimensions.
The old implementation takes 22000ms per round the new one 1200ms.
If you want I can do a pull request.

yes, please make a PR


Labels.all returned only first level labels.  I refactored the method to...

... return all labels, including nested labels.

This issue was moved to gmailgem/gmail#52