Revisit structures

This will be a large PR making many interconnected changes to how we think about structure. It mostly simplifies and consolidates. I expect a net reduction in lines of code.
Motivation

Reduce the number of requests for common tasks. We are seeing high latency costs because we are being overly lazy about fetching structure information and attrs.
Remove the last vestiges of the Catalog/DataSource distinction.
Consolidate the HTTP endpoints.

Checklist

[x] In the server, we still have a vestigial distinction between "tree" (née Catalog) and "reader" (née DataSource). Consolidate this into "node". This lays track for being able to read all data below a given node in a single response.
[x] Finish renaming "reader" to "adapter". (Soon they may write as well as read, so "adapter" is the better name.)
[x] Also rename various tree adapters from Tree to SomethingAdapter. For example, Tree -> DirectoryAdapter. This describes what is does / what problem is solves better from a user point of view.
[x] Consolidate TIFF code into one module --- a minor thing I've been meaning to do.
[x] Place "dataframe" microstructure inline as Arrow (for msgpack) or base64-encoded Arrow (for JSON).
[x] Fetch structure greedily and cache it rather than (re-)requesting it at read time. Add a field that the server can use to signal that the structure may change.
[x] Consolidate "structured_array_generic" and "structured_array_tabular" into just "array". When a format isn't applicable, the server will give a 406.
[x] Absorb dims into "array" and make "xarray_variable" just a spec.
[x] Transmit nested dataset and data_array metadata in a single request.
[ ] Add /node/full which should support search queries. Serializers should include JSON, HDF5 to start.

Notes on latest thinking here:

array gets optional dims and "variable" becomes a spec
DataArrayAdapter and DatasetAdapter have some but not all of the Tree API: no pagination of keys/values, no search (for now), but getitem and metadata. getitem should return another adapter so that you can walk the path to get inside a Dataset or DataArray to the internal arrays with /array/full etc.
It's OK that Tree doesn't implement [micro/macro]structure. Those methods answer the question "What's simplifying assumptions can I make to go fast?" and the answer for Tree is "None; I am very generic."

Example of how we pay fewer requests:
In [11]: items = dict(c.items_indexer[:])  # Fetch all metadata and structure info in one request.
08:48:23.417 -> GET 'http://localhost:8000/node/search/?page%5Boffset%5D=0&sort=' 'host:localhost:8000' 'accept:application/x-msgpack' 'accept-encoding:gzip,blosc' 'connection:keep-alive' 'user-agent:python-httpx/0.21.1' 'x-base-url:http://localhost:8000/' 'cookie:tiled_csrf=9HsWlkGWp6q7qsOdr9ehVk_T5nkbe6xWyA5TW2rqxzg'
08:48:23.449 <- 200 date:Thu, 06 Jan 2022 13:48:22 GMT server:uvicorn cache-control:must-revalidate etag:d47994f37e312108da362c68865a22c7 content-length:1578 content-type:application/x-msgpack content-encoding:gzip vary:Accept-Encoding server-timing:tok;dur=0.3, pack;dur=0.1, compress;dur=0.4;ratio=7.6, app;dur=26.8

In [12]: items['short_table'].read()  # Short table costs one request
08:48:28.125 -> GET 'http://localhost:8000/dataframe/partition/short_table?partition=0' 'host:localhost:8000' 'accept:vnd.apache.arrow.file' 'accept-encoding:gzip,blosc' 'connection:keep-alive' 'user-agent:python-httpx/0.21.1' 'x-base-url:http://localhost:8000/' 'cookie:tiled_csrf=9HsWlkGWp6q7qsOdr9ehVk_T5nkbe6xWyA5TW2rqxzg'
08:48:28.140 <- 200 date:Thu, 06 Jan 2022 13:48:22 GMT server:uvicorn etag:f774bcd9d593309fcf2bad432ae117f2 content-length:3834 content-type:vnd.apache.arrow.file content-encoding:blosc vary:Accept-Encoding server-timing:read;dur=3.3, tok;dur=0.3, pack;dur=1.4, compress;dur=0.1;ratio=1.5, app;dur=11.7
Out[12]:
              A         B         C
index
0      0.516982  1.033964  1.550946
1      0.201502  0.403004  0.604506
2      0.164006  0.328012  0.492019
3      0.726489  1.452978  2.179467
4      0.024818  0.049636  0.074453
...         ...       ...       ...
95     0.317470  0.634940  0.952411
96     0.877264  1.754529  2.631793
97     0.750878  1.501756  2.252635
98     0.059107  0.118214  0.177322
99     0.377005  0.754011  1.131016

[100 rows x 3 columns]

In [13]: items['long_table'].read()  # Long table costs one request per partition (in parallel via dask threaded workers)
08:48:36.887 -> GET 'http://localhost:8000/dataframe/partition/long_table?partition=0' 'host:localhost:8000' 'accept:vnd.apache.arrow.file' 'accept-encoding:gzip,blosc' 'connection:keep-alive' 'user-agent:python-httpx/0.21.1' 'x-base-url:http://localhost:8000/' 'cookie:tiled_csrf=9HsWlkGWp6q7qsOdr9ehVk_T5nkbe6xWyA5TW2rqxzg'
08:48:36.892 -> GET 'http://localhost:8000/dataframe/partition/long_table?partition=1' 'host:localhost:8000' 'accept:vnd.apache.arrow.file' 'accept-encoding:gzip,blosc' 'connection:keep-alive' 'user-agent:python-httpx/0.21.1' 'x-base-url:http://localhost:8000/' 'cookie:tiled_csrf=9HsWlkGWp6q7qsOdr9ehVk_T5nkbe6xWyA5TW2rqxzg'
08:48:36.898 -> GET 'http://localhost:8000/dataframe/partition/long_table?partition=2' 'host:localhost:8000' 'accept:vnd.apache.arrow.file' 'accept-encoding:gzip,blosc' 'connection:keep-alive' 'user-agent:python-httpx/0.21.1' 'x-base-url:http://localhost:8000/' 'cookie:tiled_csrf=9HsWlkGWp6q7qsOdr9ehVk_T5nkbe6xWyA5TW2rqxzg'
08:48:36.902 -> GET 'http://localhost:8000/dataframe/partition/long_table?partition=3' 'host:localhost:8000' 'accept:vnd.apache.arrow.file' 'accept-encoding:gzip,blosc' 'connection:keep-alive' 'user-agent:python-httpx/0.21.1' 'x-base-url:http://localhost:8000/' 'cookie:tiled_csrf=9HsWlkGWp6q7qsOdr9ehVk_T5nkbe6xWyA5TW2rqxzg'
08:48:36.906 -> GET 'http://localhost:8000/dataframe/partition/long_table?partition=4' 'host:localhost:8000' 'accept:vnd.apache.arrow.file' 'accept-encoding:gzip,blosc' 'connection:keep-alive' 'user-agent:python-httpx/0.21.1' 'x-base-url:http://localhost:8000/' 'cookie:tiled_csrf=9HsWlkGWp6q7qsOdr9ehVk_T5nkbe6xWyA5TW2rqxzg'
08:48:36.984 <- 200 date:Thu, 06 Jan 2022 13:48:35 GMT server:uvicorn etag:e866cb762d0caa73b0f0f97c8f6cf3c6 content-length:562575 content-type:vnd.apache.arrow.file content-encoding:blosc vary:Accept-Encoding server-timing:read;dur=22.8, tok;dur=2.5, pack;dur=11.5, compress;dur=0.8;ratio=1.1, app;dur=69.9
08:48:36.986 <- 200 date:Thu, 06 Jan 2022 13:48:35 GMT server:uvicorn etag:e6539168969abe1a69ecd89e46daae64 content-length:562656 content-type:vnd.apache.arrow.file content-encoding:blosc vary:Accept-Encoding server-timing:read;dur=18.7, tok;dur=3.0, pack;dur=11.2, compress;dur=1.0;ratio=1.1, app;dur=62.8
08:48:36.989 <- 200 date:Thu, 06 Jan 2022 13:48:35 GMT server:uvicorn etag:581b047d4bc0b2f0c334765a53c61aaf content-length:562727 content-type:vnd.apache.arrow.file content-encoding:blosc vary:Accept-Encoding server-timing:read;dur=16.7, tok;dur=2.8, pack;dur=13.6, compress;dur=0.9;ratio=1.1, app;dur=64.7
08:48:36.993 <- 200 date:Thu, 06 Jan 2022 13:48:35 GMT server:uvicorn etag:4bac55e8edce34a3184314fb565eb9e3 content-length:562659 content-type:vnd.apache.arrow.file content-encoding:blosc vary:Accept-Encoding server-timing:read;dur=17.8, tok;dur=4.0, pack;dur=20.1, compress;dur=0.7;ratio=1.1, app;dur=71.6
08:48:36.994 <- 200 date:Thu, 06 Jan 2022 13:48:35 GMT server:uvicorn etag:4373c6e27d4348c48ea034eaf6f8c885 content-length:562652 content-type:vnd.apache.arrow.file content-encoding:blosc vary:Accept-Encoding server-timing:read;dur=15.8, tok;dur=3.7, pack;dur=14.5, compress;dur=0.8;ratio=1.1, app;dur=66.0
Out[13]:
              A         B         C
index
0      0.917189  1.834378  2.751567
1      0.679369  1.358738  2.038106
2      0.598930  1.197859  1.796789
3      0.897645  1.795289  2.692934
4      0.857732  1.715464  2.573196
...         ...       ...       ...
99995  0.816249  1.632498  2.448747
99996  0.033831  0.067662  0.101493
99997  0.024527  0.049055  0.073582
99998  0.547369  1.094739  1.642108
99999  0.168534  0.337069  0.505603

[100000 rows x 3 columns]

Downloading everything below the root node as HDF5:
$ tiled serve pyobject --public tiled.examples.generated_minimal:tree

$ http :8000/node/full/ Accept:application/x-hdf5 > test.h5

Works as expected.


[DateTimePickerV2] Time picker in the calendar widget is not aligned properly because of fixed width

The Time picker in the calendar widget is not aligned properly because of fixed width.

@bakkireddi  Can you be more specific on the fixed width so that I can reproduce it?
This is what we have in next branch.


Add menu option to Start this program on boot

Feature request: add a menu item to start a user's program automatically when the BTU boots. This would be really helpful for IoT applications.

TODO: Write instructions for adding UI features.

@mpahrens is going to write instructions for how to implement this, and then I will implement


The audio device is unaccessible

After recent changes audio is not working.
Ref #4.

Any ideas about how to solve this? Is there any info I should add to help figuring out what the problem is?

I will try to take a look at this week. I hope whatever bug I was experiencing with virtualbox is fixed in the new release.

Still a problem. Steps to reproduce:

Log in to webex.com conference via docker'd Firefox 52 as presenter,
it downloaded CiscoWebExServlet,
then it launched Cisco Webex Training
In opened Audio Conference window switched to Use Computer for Audio
Clicked Call Using Computer
Got error/warning message The Audio device is unaccesible now.

So audio does not work out the box.

Still a problem. Steps to reproduce:

Log in to webex.com conference via docker'd Firefox 52 as presenter,
it downloaded CiscoWebExServlet,
then it launched Cisco Webex Training
In opened Audio Conference window switched to Use Computer for Audio
Clicked Call Using Computer
Got error/warning message The Audio device is unaccesible now.

So audio does not work out the box.

Still a problem. Steps to reproduce:

Log in to webex.com conference via docker'd Firefox 52 as presenter,
it downloaded CiscoWebExServlet,
then it launched Cisco Webex Training
In opened Audio Conference window switched to Use Computer for Audio
Clicked Call Using Computer
Got error/warning message The Audio device is unaccesible now.

So audio does not work out the box.

Still a problem. Steps to reproduce:

Log in to webex.com conference via docker'd Firefox 52 as presenter,
it downloaded CiscoWebExServlet,
then it launched Cisco Webex Training
In opened Audio Conference window switched to Use Computer for Audio
Clicked Call Using Computer
Got error/warning message The Audio device is unaccesible now.

So audio does not work out the box.

Still a problem. Steps to reproduce:

Log in to webex.com conference via docker'd Firefox 52 as presenter,
it downloaded CiscoWebExServlet,
then it launched Cisco Webex Training
In opened Audio Conference window switched to Use Computer for Audio
Clicked Call Using Computer
Got error/warning message The Audio device is unaccesible now.

So audio does not work out the box.

Still a problem. Steps to reproduce:

Log in to webex.com conference via docker'd Firefox 52 as presenter,
it downloaded CiscoWebExServlet,
then it launched Cisco Webex Training
In opened Audio Conference window switched to Use Computer for Audio
Clicked Call Using Computer
Got error/warning message The Audio device is unaccesible now.

So audio does not work out the box.

Still a problem. Steps to reproduce:

Log in to webex.com conference via docker'd Firefox 52 as presenter,
it downloaded CiscoWebExServlet,
then it launched Cisco Webex Training
In opened Audio Conference window switched to Use Computer for Audio
Clicked Call Using Computer
Got error/warning message The Audio device is unaccesible now.

So audio does not work out the box.

This happens for client version <IP_ADDRESS> .


deployment pod hash field

woops, i misread the DeploymentSpec definition. The pod-hash bit is actually actually a constant defined right below DeploymentSpec.


Dockerfile.cuda fails to build server

On an AWS EC2 g4dn.2xlarge instance with Ollama https://github.com/jmorganca/ollama/tree/c345053a8bf47d5ef8f1fe15d385108059209fba:
> sudo docker buildx build . --file Dockerfile.cuda
[+] Building 57.2s (7/16)                                                                                docker:default
 => => transferring context: 97B                                                                                0.0s
[+] Building 57.3s (7/16)                                                                                docker:default
 => => transferring dockerfile: 939B                                                                                0.0s
[+] Building 113.7s (15/16)                                                                                docker:default
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 97B                                                                                0.0s
 => [internal] load build definition from Dockerfile.cuda                                                                                0.0s
 => => transferring dockerfile: 939B                                                                                0.0s
 => [internal] load metadata for docker.io/nvidia/cuda:12.2.0-runtime-ubuntu22.04                                                                                1.0s
 => [internal] load metadata for docker.io/nvidia/cuda:12.2.0-devel-ubuntu22.04                                                                                0.9s
 => [stage-0 1/7] FROM docker.io/nvidia/cuda:12.2.0-devel-ubuntu22.04@sha256:0e2d7e252847c334b056937e533683556926f5343a472b6b92f858a7af8ab880                                                                 71.6s
...
 => [stage-1 2/3] RUN groupadd ollama && useradd -m -g ollama ollama                                                                                20.6s
 => [stage-0 2/7] WORKDIR /go/src/github.com/jmorganca/ollama                                                                                21.0s
 => [stage-0 3/7] RUN apt-get update && apt-get install -y git build-essential cmake                                                                                13.5s
 => [stage-0 4/7] ADD https://dl.google.com/go/go1.21.1.linux-amd64.tar.gz /tmp/go1.21.1.tar.gz                                                                                0.4s
 => [stage-0 5/7] RUN mkdir -p /usr/local && tar xz -C /usr/local </tmp/go1.21.1.tar.gz                                                                                3.2s
 => [stage-0 6/7] COPY . .                                                                                0.0s
 => ERROR [stage-0 7/7] RUN /usr/local/go/bin/go generate ./...     && /usr/local/go/bin/go build -ldflags "-linkmode=external -extldflags='-static' -X=github.com/jmorganca/ollama/version.Version=0.0.0 -X=  2.9s
------
 > [stage-0 7/7] RUN /usr/local/go/bin/go generate ./...     && /usr/local/go/bin/go build -ldflags "-linkmode=external -extldflags='-static' -X=github.com/jmorganca/ollama/version.Version=0.0.0 -X=github.com/jmorganca/ollama/server.mode=release" .:
0.377 go: downloading github.com/mattn/go-runewidth v0.0.14
0.377 go: downloading github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
0.378 go: downloading golang.org/x/term v0.10.0
0.385 go: downloading gonum.org/v1/gonum v0.13.0
0.388 go: downloading github.com/chzyer/readline v1.5.1
0.388 go: downloading golang.org/x/crypto v0.10.0
0.391 go: downloading github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
0.391 go: downloading github.com/dustin/go-humanize v1.0.1
0.478 go: downloading github.com/gin-contrib/cors v1.4.0
0.480 go: downloading github.com/olekukonko/tablewriter v0.0.5
0.483 go: downloading github.com/gin-gonic/gin v1.9.1
0.486 go: downloading github.com/spf13/cobra v1.7.0
0.487 go: downloading golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63
0.565 go: downloading golang.org/x/sys v0.11.0
0.566 go: downloading github.com/rivo/uniseg v0.2.0
0.573 go: downloading github.com/spf13/pflag v1.0.5
0.580 go: downloading github.com/gin-contrib/sse v0.1.0
0.580 go: downloading github.com/mattn/go-isatty v0.0.19
0.597 go: downloading golang.org/x/net v0.10.0
0.624 go: downloading github.com/go-playground/validator/v10 v10.14.0
0.624 go: downloading github.com/pelletier/go-toml/v2 v2.0.8
0.651 go: downloading github.com/ugorji/go/codec v1.2.11
0.700 go: downloading google.golang.org/protobuf v1.30.0
0.707 go: downloading gopkg.in/yaml.v3 v3.0.1
0.741 go: downloading github.com/gabriel-vasile/mimetype v1.4.2
0.742 go: downloading github.com/go-playground/universal-translator v0.18.1
0.745 go: downloading github.com/leodido/go-urn v1.2.4
0.778 go: downloading golang.org/x/text v0.10.0
0.841 go: downloading github.com/go-playground/locales v0.14.1
1.894 fatal: not a git repository: /go/src/github.com/jmorganca/ollama/../.git/modules/ollama
1.895 llm/llama.cpp/generate.go:6: running "git": exit status 128
------
Dockerfile.cuda:13
--------------------
  12 |     ENV GOARCH=$TARGETARCH
  13 | >>> RUN /usr/local/go/bin/go generate ./... \
  14 | >>>     && /usr/local/go/bin/go build -ldflags "-linkmode=external -extldflags='-static' -X=github.com/jmorganca/ollama/version.Version=$VERSION -X=github.com/jmorganca/ollama/server.mode=release" .
  15 |
--------------------
ERROR: failed to solve: process "/bin/sh -c /usr/local/go/bin/go generate ./...     && /usr/local/go/bin/go build -ldflags \"-linkmode=external -extldflags='-static' -X=github.com/jmorganca/ollama/version.Version=$VERSION -X=github.com/jmorganca/ollama/server.mode=release\" ." did not complete successfully: exit code: 1

Line 13 fails with:
ERROR: failed to solve: process "/bin/sh -c /usr/local/go/bin/go generate ./...     && /usr/local/go/bin/go build -ldflags \"-linkmode=external -extldflags='-static' -X=github.com/jmorganca/ollama/version.Version=$VERSION -X=github.com/jmorganca/ollama/server.mode=release\" ." did not complete successfully: exit code: 1

Any idea what's going on here?

For some reason, git is looking for modules in the wrong place:
1.894 fatal: not a git repository: /go/src/github.com/jmorganca/ollama/../.git/modules/ollama

I tried the same commit without any issues albeit on MacOS.

I have ollama as a git submodule at repo/ollama:
[submodule "ollama"]
	path = ollama
	url = git@github.com:jmorganca/ollama.git

However, I was cd'd into the submodule when running docker buildx build.
Do you think git submodule would affect things?

Do you think git submodule would affect things?

Yes because the .git directory in ollama is a reference to the superproject's .git directory:
I created a git repo tmp with ollama as a submodule
$ mkdir tmp
$ cd tmp
$ git init
$ git submodule add https://github.com/jmorganca/ollama.git ollama
$ git submodule init
$ git submodule update

If you open ollama/.git, it refers to the parent directory, which isn't in the docker context:
$ cat ollama/.git
gitdir: ../.git/modules/ollama

I was able to reproduce your issue with this setup:
$ docker build -f Dockerfile.cuda .
[+] Building 29.7s (14/16)                                                                                docker:desktop-linux
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 97B                                                                                0.0s
 => [internal] load build definition from Dockerfile.cuda                                                                                0.0s
 => => transferring dockerfile: 939B                                                                                0.0s
 => [internal] load metadata for docker.io/nvidia/cuda:12.2.0-runtime-ubuntu22.04                                                                                1.0s
 => [internal] load metadata for docker.io/nvidia/cuda:12.2.0-devel-ubuntu22.04                                                                                0.0s
 => CACHED [stage-0 1/7] FROM docker.io/nvidia/cuda:12.2.0-devel-ubuntu22.04                                                                                0.0s
 => https://dl.google.com/go/go1.21.1.linux-arm64.tar.gz                                                                                4.4s
 => [stage-1 1/3] FROM docker.io/nvidia/cuda:12.2.0-runtime-ubuntu22.04@sha256:0f4f33b31222af3e4d66aea2af0a04368a44160af815b6ae7bfe36f5b536ab99                                                                                0.0s
 => [internal] load build context                                                                                0.1s
 => => transferring context: 1.30MB                                                                                0.0s
 => [stage-0 2/7] WORKDIR /go/src/github.com/jmorganca/ollama                                                                                0.1s
 => [stage-0 3/7] RUN apt-get update && apt-get install -y git build-essential cmake                                                                                15.9s
 => [stage-0 4/7] ADD https://dl.google.com/go/go1.21.1.linux-arm64.tar.gz /tmp/go1.21.1.tar.gz                                                                                0.2s
 => [stage-0 5/7] RUN mkdir -p /usr/local && tar xz -C /usr/local </tmp/go1.21.1.tar.gz                                                                                2.3s
 => [stage-0 6/7] COPY . .                                                                                0.0s
 => ERROR [stage-0 7/7] RUN /usr/local/go/bin/go generate ./...     && /usr/local/go/bin/go build -ldflags "-linkmode=external -extldflags='-static' -X=github.com/jmorganca/ollama/version.Version=0.0.0 -X=github.com/jmorganca/ollama/server.mode=release" .                                                                                5.6s
------
 > [stage-0 7/7] RUN /usr/local/go/bin/go generate ./...     && /usr/local/go/bin/go build -ldflags "-linkmode=external -extldflags='-static' -X=github.com/jmorganca/ollama/version.Version=0.0.0 -X=github.com/jmorganca/ollama/server.mode=release" .:
0.145 go: downloading golang.org/x/crypto v0.10.0
0.153 go: downloading github.com/mattn/go-runewidth v0.0.14
0.155 go: downloading github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
0.174 go: downloading golang.org/x/term v0.10.0
0.765 go: downloading github.com/chzyer/readline v1.5.1
0.766 go: downloading github.com/dustin/go-humanize v1.0.1
0.806 go: downloading github.com/olekukonko/tablewriter v0.0.5
0.910 go: downloading github.com/spf13/cobra v1.7.0
0.928 go: downloading github.com/gin-contrib/cors v1.4.0
0.944 go: downloading github.com/gin-gonic/gin v1.9.1
0.999 go: downloading golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63
1.059 go: downloading gonum.org/v1/gonum v0.13.0
1.113 go: downloading github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
1.171 go: downloading github.com/rivo/uniseg v0.2.0
1.331 go: downloading golang.org/x/sys v0.11.0
1.393 go: downloading github.com/spf13/pflag v1.0.5
1.397 go: downloading github.com/gin-contrib/sse v0.1.0
1.545 go: downloading github.com/mattn/go-isatty v0.0.19
1.556 go: downloading golang.org/x/net v0.10.0
1.765 go: downloading github.com/go-playground/validator/v10 v10.14.0
1.807 go: downloading github.com/pelletier/go-toml/v2 v2.0.8
1.854 go: downloading github.com/ugorji/go/codec v1.2.11
1.854 go: downloading google.golang.org/protobuf v1.30.0
1.950 go: downloading gopkg.in/yaml.v3 v3.0.1
2.009 go: downloading github.com/gabriel-vasile/mimetype v1.4.2
2.014 go: downloading github.com/go-playground/universal-translator v0.18.1
2.092 go: downloading github.com/leodido/go-urn v1.2.4
2.154 go: downloading golang.org/x/text v0.10.0
2.871 go: downloading github.com/go-playground/locales v0.14.1
5.364 fatal: not a git repository: /go/src/github.com/jmorganca/ollama/../.git/modules/ollama
5.366 llm/llama.cpp/generate_linux.go:3: running "git": exit status 128
------
Dockerfile.cuda:13
--------------------
  12 |     ENV GOARCH=$TARGETARCH
  13 | >>> RUN /usr/local/go/bin/go generate ./... \
  14 | >>>     && /usr/local/go/bin/go build -ldflags "-linkmode=external -extldflags='-static' -X=github.com/jmorganca/ollama/version.Version=$VERSION -X=github.com/jmorganca/ollama/server.mode=release" .
  15 |
--------------------
ERROR: failed to solve: process "/bin/sh -c /usr/local/go/bin/go generate ./...     && /usr/local/go/bin/go build -ldflags \"-linkmode=external -extldflags='-static' -X=github.com/jmorganca/ollama/version.Version=$VERSION -X=github.com/jmorganca/ollama/server.mode=release\" ." did not complete successfully: exit code: 1

Good investigating that .git in a git submodule is actually a file, not a directory.  That's news to me!
What's interesting is building Ollama server on my macOS (same git submodule structure) works fine.  I guess it's some specifics of the Dockerfile.cuda

I am guessing it's not worth the complexity to add traversal of .git symlink-like stuff, so feel free to close this out.
Are there plans for Ollama to publish to Docker hub?  Then I could just skip the local building entirely

This is specific to Docker build for two related reasons, the COPY and the build context.
The build context constrains build to . which in this case is the ollama submodule while COPY only copies everything in the context. This means git inside the Docker build can't follow the link to its parent directory.

Are there plans for Ollama to publish to Docker hub? Then I could just skip the local building entirely

Absolutely. A GPU-less image is already available in Docker Hub under ollama/ollama. Once Linux GPU is out the door, the next step is Docker GPU

This means git inside the Docker build can't follow the link to its parent directory.

Ah okay, gotchu.  Sounds good on future Docker support (and for me, more desirably is docker compose with Docker hub images).
Appreciate your hard work here!  Not sure if you want to make any changes here, otherwise feel free to close with the resolution of not docker building within git submodules.


Revert "Add config folder contents to the dev_package target"

This reverts commit 1ae30cd8c222f43bec1af774779527677e7bbca2.
The reason of this revert is that the original "make package" executed
this scrip too:
${PYTHON_BIN} ./scripts/build/extend_version_file.py -r $(ROOT)
$(CC_BUILD_DIR)/config/analyzer_version.json
$(CC_BUILD_DIR)/config/web_version.json
This command modifies the version json files, without this the CodeChecker
commands raise an error during usage.. However, if this modification is
done through the symlinks, then the original json files are modified too,
and shown as changed files in "git status".

GitHub silently rolls out ${\LaTeX}$ mode, and this is how we get to know of it?! 🤣


Allow setting one proxy var (not both rpm_proxy and https_proxy_value)

Minor item, but there are 2 separate proxy vars I had to set: rpm_proxy and https_proxy_value

Wait you had to set both? That shouldn't happen! well, back to the drawing board on that one.


Only publish docs binaries if checkout and generation succeed

Overview
Currently, the 2019 and 2020 docs binary generation steps always() try to publish artifacts, even if previous steps failed. This can get into a state like the linked pipeline below, where the checkout step failed initially, succeeded on a re-run, but can't publish binaries because the failed run published an empty artifact.
Changes

Fixes: https://microsoft.visualstudio.com/Analog/_build/results?buildId=33400250&view=artifacts&pathAsName=false&type=publishedArtifacts

/azp run


Bump simple-pytree, add tests.

Addresses #25

Codecov Report

Merging #27 (c725ee4) into main (ee03eee) will increase coverage by 0.59%.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main      #27      +/-   ##
==========================================
+ Coverage   36.21%   36.81%   +0.59%
==========================================
  Files          11       11
  Lines        1505     1505
==========================================
+ Hits          545      554       +9
+ Misses        960      951       -9

Flag
Coverage Δ

unittests
36.81% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Fix some typos.

Found I typo I added, tried to find others. The only real code change is Subreddit.subscribe, but I'm assuming it's a fix too (inital -> initial):
        data = {'action': 'sub', 'skip_inital_defaults': True,
                'sr_name': self._subreddit_list(self, other_subreddits)}

Thanks so much for taking the time to make these changes. The code change is slightly scary. Can you please confirm if it changes the behavior now that the parameter name is accurate? If so, please take that part out of this PR so we can get the other fixes in.
Great work!

I'll sync up later on the behavior change. I have to recall why that param was added as a default to see if it's worth pushing that behavior into PRAW5.


Add support for COG and STAC

Mapbox: https://docs.mapbox.com/mapbox-gl-js/example/map-tiles/
MapLibre: https://maplibre.org/maplibre-gl-js-docs/example/map-tiles
Cesium: https://github.com/CesiumGS/cesium-unreal/issues/863

I had a quick go at modifying your code for openlayers to open a COG.
I've been waiting for years for a tool like ipyleaflet that can display large raster without having to run a tile server. Seems like it is finally not too far fetched an idea.
function loadScript(src) {
    return new Promise((resolve, reject) => {
        let script = Object.assign(document.createElement("script"), {
            type: "text/javascript",
            async: true,
            src: src,
        });
        script.addEventListener("load", resolve);
        script.addEventListener("error", reject);
        document.body.appendChild(script);
    });
}
 await loadScript("https://cdn.jsdelivr.net/npm/ol@v8.1.0/dist/ol.js");
 await loadScript("https://cdn.jsdelivr.net/npm/geotiff@2.0.7/dist-browser/geotiff.js");

export function render(view) {
    // Header
    let center = view.model.get("center");
    center.reverse();
    let zoom = view.model.get("zoom");
    let width = view.model.get("width");
    let height = view.model.get("height");

    const div = document.createElement("div");
    div.style.width = width;
    div.style.height = height;

    const source = new ol.source.GeoTIFF({
      sources: [
        {
          url: 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif',
        },
      ],
    });

    // Map content
    var map = new ol.Map({
        target: div,
        layers: [
        new ol.layer.WebGLTile({
          source: source,
        }),
        ],
        view: source.getView(),
    });
    view.el.appendChild(div);
}

Nice! Can you submit a pull request for this?

Maybe if i take it further.
This is pretty hacky as i'm not experienced with javascript. It's a fairly basic mix of your code and this openlayers example.
https://openlayers.org/en/latest/examples/cog.html

Another postential solution
https://github.com/stac-utils/stac-layer

The readme of that makes it sound like it can only show a cog overview. I may have mis understood.
This makes sense as all the cog implementations for leaflet I've found have that limitation.
OpenLayers seems to have very good cog handling.

I'm aware of that service.
I use
https://github.com/banesullivan/localtileserver
Which works ok.
I wrote (badly) a similar tool way back in 2017,  and was wishing for a better way to view rasters in Jupyter for a few years before that. I'm obviously patient. 😃

Leafmap supports both TiTiler (for remote COG) and localtileserver (for local COG).
import leafmap
url = 'https://opendata.digitalglobe.com/events/california-fire-2020/pre-event/2018-02-16/pine-gulch-fire20/1030010076004E00.tif'
m = leafmap.Map()
m.add_cog_layer(url)
m

It seems the localtileserver remote COG is not working at the moment. I am considering switch from the TiTiler demo point to localtileserver once the issue is fixed. However, we still need TiTiler to render STAC assets. I am not aware any other python package that can render STAC assets without a tile server.
https://github.com/banesullivan/localtileserver/issues/172


gdf_column currently not able to support more complex data types

The current implementation of gdf_column contains its data type as an enum, which means it cannot fully describe more complex data types such as a decimal or timestamp.
Decimal requires to also describe the scale and precision while timestamp also requires at least the resolution (seconds, miliseconds, microseconds or nanoseconds) of the timestamp.
The way Apache Arrow handles this is with a DataType class which has in turn a vector or Fields which in turn has KeyValueMetadata and also a DataType, all this allowing for nested datatypes. This may be more complex than what gdf_column needs (unless we need support for nested datatypes).
I propose something in between, with a struct describing a datatype, with its current enum, but also adding the ability to have key value pairs for additional descriptors of that datatype enum.

My understanding is that GOAI plans to propose that this work be imported into Apache Arrow through the standard ASF IP Clearance process. In that case, the data structures defined in this project should go away in favor of the ones defined already in Arrow

We are starting that this week. That said, we're still using pygdf and daskgdf as a place to test new things and develop as it will probably take time to get everything cleared and accepted, and we can continue to test here. The thought is to keep both trains running until the ASF train catches up with the original train. We currently have people using this track and would like to continue seeing improvement instead of a hard stop and cut over.  You should expect an initial email to Arrow sometime this week and PRs following.  I also think it will be useful to see into the future when reviewing PRs to understand why certain things were done.  I understand this may be more headache for us, but ultimately I believe it will allow everyone to move faster.  I've been known to be wrong though.

@williamBlazing, your proposal sounds good.  It will keep things simple and changes to the minimal as we explore.
To be future and Arrow proof, we should use Arrow API if things become very complex.  Otherwise, sticking to plain-old-data struct should give us a easy transition to arrow.


VSCode to warn before committing if there's problems with files

I programme in python and for that I have several linters like flake8, mypy etc., but not only for python, I have several other linters.
So, sometimes, I forgot to check the Problems window in VSCode:

Just to get an email later from GH Action stating my workflow had failed etc.
It would be wonderful if VSCode could warn us about this cases, in a similar design as seen in #33004.
Yes, I know about git hooks but you can see how convenient VSCode could be.

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


recreating is failing, does not recreate applicaiton

this comes after the recent pr #87.

fixed in #89


Apply scripts with parallelism specification are not copied to workspace

When running the setup-workspace.sh script, the apply.sh scripts are not being propagated over to the 2## folders leaving the potential chance that users will only terraform init && terraform apply -auto-approve and hit ratelimits.

Fixed


Stop markings will be covered by crosswalk markings while two road angle is too small

hello~
I  find a question while using this rule,stop markings will be Covered by crosswalk markings while two road angle is too small. Can you help me ?
thanks

That is what i need !. if it can set "Begin_Crosswalk_To_Stop_Bar" for every lane ,that will more real.I try to rewrite cga for this .In addition，i try to add a  "Turn left to the transfer area" in the  crossing and it is too hard for me to connect two different shape in the cga. Can you give me some idea?What ever,you had give me  a lot of help,Thanks ,David
Jimz

Great! Glad that helped.
I have had trouble doing similar things in CGA. Are you trying to do a median with turn lane however? There is a setting for that.
This might be a different question altogether though, so I have closed the issue for now.
Thanks!


Migrate section for injecting comiple-time constants into Release Wiki page

The section moved into https://github.com/GoogleCloudPlatform/gcloud-eclipse-tools/wiki/Cloud-Tools-for-Eclipse-Release-Instructions.
Fixes #478.

LGTM


uv index feature will leak credentials to uv.lock

Hi,
Maybe I am doing things wrong, but is there a way to use the new index feature without it sending credentials to uv lock?
E.g.: With something like this
[[tool.uv.index]]
name = "ixname"
url =<EMAIL_ADDRESS>
[tool.uv.sources]
mypackage = { index = "ixname" }

I will get the user and password on the index name on uv.toml
{ name = "mypackage", specifier = "==5.4.1", index =<EMAIL_ADDRESS>},

Notice this won't happen to the URL portion, which remains the same after using the new syntax
{ url = "https://mynexusrepo.example.com/repository/hosted/packages/mypackage/5.4.1/...", hash = "sha256:..." }

Hi @charliermarsh
Thank you for looking into it.
I did try uv 0.4.24 and I get the exact same result.
I believe the credentials should not be added to this portion of the uv lock file.
{ name = "mypackage", specifier = "==5.4.1", index =<EMAIL_ADDRESS>},

That's why I asked if I am doing something wrong. I tend to have the credentials on dev environment, but then I can supply uv.lock as is (which didn't have credentials on it before) and the client credentials would be different for each one and passed more securely in an env variable, not on the file.

Just to confirm, did you remove the uv.lock before locking?

The second thing you're describing should already be supported: https://docs.astral.sh/uv/configuration/indexes/#providing-credentials

The second thing you're describing should already be supported: https://docs.astral.sh/uv/configuration/indexes/#providing-credentials

Very cool! I see a typo here:
url = "https://public:koala@https://pypi-proxy.corp.dev/simple"

There is a 2nd https:// in the middle of the url

Oops, thank you.
(I'll try that repro in a bit.)

Ok looks like I missed something here. Will fix.

Embarrassingly I had tests for this but the tests had the wrong assertion: https://github.com/astral-sh/uv/pull/8333


Doc Page 404

doc page no longer works for some reason.

doc page is works. It just uses HTTP instead of HTTPS, so it shows the warning message as HTTP is not as secured as HTTPS.

It was actually down! You must have it cached, @ghubrakesh ?
I've fixed the site and it is accessible and has functional certs


Dat sidebar (WIP)

This adds the Dat sidebar on Dat websites.
There are still some TODO items, but I'll leave them to you @pfrazee since they all are related to managing the open/closed state of the sidebar

[x] Update the buttons
[x] Fix .files-list rendering issue

Looking great. A couple UI/UX notes:

The font is just too small. Some of it feels right (the buttons) but I think the content text needs to be bigger, and we should widen the sidebar to make that work.
We should bold the title
The top buttons should be fixed and not scroll, same as the bottom button

For future PRs:

We need to rethink the save/remove button.
For owners, we'll need btns to add files, open the folder, and copy the folder path
For non-owners, we'll need a btn to download a zip of the the archive

Just reviewed the code, that's all good work

Progress report

This is awesome! Though I don't think we can use that icon. It looks like a play button.

Is there anything else you need to work on or can I take over from here?

No I've still got some TODOs

Progress report:
This has come along soo well!

There are few minor TODOs that I think will seal the deal. I'm OK with merging before we do these, but I wanted to write them down so we don't forget.

[ ] Close the sidebar automatically when the user navigates to away from the given archive by clicking a link from within the sidebar. This includes the network debugger and library view.
[ ] Alternatively, we could consider closing the sidebar when the user navigates to any non-Dat website. We would still allow the user to open the sidebar on a non-Dat site.
[ ] Gosh the rendering is slow :cry: I wonder if it's worth trying to mock the content to make it seem faster?

Ok, I'm going to go ahead and merge. Nice work!


predisposition to disease of type X is schema for creating classes, not a class

should have some way of representing such schemas

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 4 Sep 2009 at 11:18

Closed ticket because issues has not been acted upon in reasonable amount of time.


Procedure for ground state of quadratic Hamiltonians

Added jw_get_quadratic_hamiltonian_ground state, which computes the ground energy and state of a quadratic Hamiltonian. It can be used instead of get_ground_state when possible; it should be faster and more memory efficient. It also serves as a test for the Slater determinant preparation circuits.
Some minor optimizations and rewriting of Givens rotations code and tests
Fixed a bug in get_ground_state which caused it to return the complex conjugate of the ground state instead of the true ground state.

I think jw_get_quadratic_hamiltonian_ground_state still fits better in _slater_determinants.py for now. However, I took your second suggestion.


fix: Update golang.org/x/mod, fix problems with go1.21.0.

Makes https://github.com/bwplotka/bingo/issues/143 go away, edit: though some tests need to be updated...

My commit c4ae662 made it go-installable with:
go install github.com/rudo-thomas/bingo@c4ae6622e64f52b55eda9b8368486abb5d11cd55

To reiterate, this is an unsupported, quick, and temporary fix. Provided as-is.

#145 fixes this properly; closing.


fix issue #500: do not hold mailbox lock while calling reactor wakeup routine

A more elegant solution to avoid retaking the mutex

@ioquatix any chance to get it merged?

@tarcieri probably needs to check it.

I think this should be fine...


Migration from 'develop-snapshot' to 2.2.1

1-> In our Readium toolkit implementation we get the license followed by importing and processing publication in order to get the .epub file which is used to open the Reader screen of Any Ebook. We are able to successfully get the .lcpl and .epub file but unable to see any content. Please refer below code for the process of implementing the last part regarding opening the reader screen.
protected suspend fun importPublication() {
var sourceFile: File? = null
if (bookType == Constants.PDF)
sourceFile = File(Helper.getPdfLicenseStoredPath(isbn, applicationContext))
else
sourceFile = File(Helper.getLicenseStoredPath(isbn, isEBook, applicationContext))
    Log.e("bookPath", "${sourceFile.absolutePath}")
    lcpService.acquirePublication(sourceFile, isbn, bookType, ::downloadProgress).fold(

        {
            if (bookType == Constants.PDF) {
                openPublication(FileAsset(it.localFile, MediaType.LCP_PROTECTED_PDF))
            } else {
                openPublication(FileAsset(it.localFile, MediaType.EPUB))
            }

        },
        {
            Log.e("importPublication", it.message.toString())
            Timber.d(it)
            AlertDialog.alertWithFinishActivity1(
                this@EbookDownloadActivity, "",
                resources.getString(R.string.error_gb_009)
            )
            return
        }
    )

}

protected suspend fun openPublication(libraryAsset: FileAsset) {
    hideProgress()
    showBookLoadingDialog()
    streamer.open(libraryAsset, allowUserInteraction = true, sender = this)
        .onSuccess { publication ->
            if (publication.isRestricted) {
                publication.protectionError?.let { error ->
                    Log.e("TestError", "${error.getUserMessage(applicationContext).toString()}")
                    alert?.let {
                        it.dismiss()
                    }
                    //This license expired on
                    if (error.getUserMessage(applicationContext)
                            .contains("This license expired on")
                    )
                        AlertDialog.bookExpiredAlert(
                            this@EbookDownloadActivity, ::bookExpiredCallback,

                            )
                    else
                        AlertDialog.alertWithFinishActivity1(
                            this@EbookDownloadActivity, "",
                            getResources().getString(R.string.error_gb_009)
                        )
                    Timber.d(error)
                    tryOrNull {
                        libraryAsset.file.delete()
                    }

                }
            } else {
                UApplication.prepareToServe(publication)?.let { baseUrl ->
                    launch(Dispatchers.Main) {
                        openReaderScreen(
                            publication,
                            baseUrl,
                            libraryAsset,
                            Locator.fromJSON(JSONObject("{}"))!!
                        )
                    }
                }
            }

        }
        .onFailure {
            Log.e("Error-check", it.localizedMessage)
            Timber.d(it)
            AlertDialog.alertWithFinishActivity1(
                this@EbookDownloadActivity, "",
                resources.getString(R.string.error_gb_009)
            )
        }
}

fun openReaderScreen(
    publication: Publication,
    baseUrl: URL,
    asset: FileAsset,
    initialLocator: Locator
) {
    alert?.let {
        if (alert?.isShowing!!) {
            alert?.dismiss()
        }
    }

    val readerInitData = openVisual(publication, initialLocator)

    val arguments = ReaderActivityContract.Arguments(1)
    readerLauncher.launch(arguments)
    finish()
}

private fun openVisual(
    publication: Publication,
    initialLocator: Locator?
): VisualReaderInitData {
    val url = prepareToServe(publication)
    return VisualReaderInitData(1,publication, url, initialLocator)
}

2-> How can we open the ebook without using the bookId. We have following data with us which was used with the older 'develop-snapshot' version.
putPublication(publication)
putExtra("baseUrl", baseUrl.toString())
putExtra("publicationPath", asset.file.absolutePath)
putExtra("publicationFileName", asset.name)
putExtra(Constants.ISBN, isbn)
Note:- We are upgrading from 'develop-snapshot' to '2.2.1' version. We have added all the modules from the Test App

develop-SNAPSHOT could be any version so it's hard to know what you need to do. Find out the actual release version by comparing the date of your snapshot with the releases: https://github.com/readium/kotlin-toolkit/releases
Then once you know which Readium version you used, follow all the intermediary migration steps from https://github.com/readium/kotlin-toolkit/blob/main/docs/migration-guide.md

@mickael-menu We have referred the migration guide and the sample test app. We are doing everything same as per testapp except the bookId part.
How can we open the ebook without using the bookId. What else can be used in the absence of bookId? We have following data with us. Which Activity in the readium toolkit will accept this data in order to open ebook. Please refer below Intent data available with us which is working in older version of the SDK. This is a blocker for us while updating SDK. Kindly help
putPublication(publication)
putExtra("baseUrl", baseUrl.toString())
putExtra("publicationPath", asset.file.absolutePath)
putExtra("publicationFileName", asset.name)
putExtra(Constants.ISBN, isbn)

I don't understand your question with bookId, this is not needed by the toolkit if you use EpubNavigatorFragment.

@mickael-menu Can we use below code to open any ebook/PDF. If not please suggest what to change here?
var readerScreenIntent: Intent? = null
if (bookType == Constants.PDF)
readerScreenIntent = Intent(this, ReaderActivity::class.java)
else
readerScreenIntent = Intent(this, R2EpubActivity::class.java)
    readerScreenIntent.apply {
        putPublication(publication)
        putExtra("baseUrl", baseUrl.toString())
        putExtra("publicationPath", asset.file.absolutePath)
        putExtra("publicationFileName", asset.name)
        putExtra(Constants.ISBN, isbn)
        putExtra(Constants.sellerid, sellerId)
    }
    Log.d("ebookdownloadactivity","baseurl"+publication.baseUrl.toString())

    startActivity(readerScreenIntent)

I think it's okay, but you should migrate to EpubNavigatorFragment which is easier to use. R2EpubActivity will be deprecated soon.

We are passing the data Which we posted earlier to R2EpubActivity but the reader screen opens as a blank page. We are not even getting any error in this case? Please suggest how to resolve this.

How can we implement EpubNavigatorFragment instead of R2EpubActivity?

While trying alternate solutions in order to bypass bookId logic, I have passed data in the ReaderActivityContract as below:
fun parseIntentt(activity: Activity): Input = with(activity) {
            Input(
                file = File(intent.getStringExtra("publicationPath")!!),
                mediaType = null,
                publication = intent.getPublication(activity),
                bookId = intent.getLongExtra("bookId", -1),
                initialLocator = intent.getParcelableExtra("locator"),
                deleteOnResult = intent.getBooleanExtra("deleteOnResult", false),
                baseUrl = URL(intent.getStringExtra("baseUrl"))
            )
        }

But in the ReaderViewModel we are getting java.lang.IllegalStateException: This job has not completed yet for the below line in the below method. What needs to be used to get ReaderInitData here?
val readerRepository = application.readerRepository.getCompleted()

class Factory(
        private val application: UApplication,
        private val arguments: ReaderActivityContract.Input
    ) : ViewModelProvider.NewInstanceFactory() {

        @Suppress("UNCHECKED_CAST")
        override fun  create(modelClass: Class): T =
            when {
                modelClass.isAssignableFrom(ReaderViewModel::class.java) -> {
                    val readerInitData =
                        try {
                            val readerRepository = application.readerRepository.getCompleted()
                            readerRepository[arguments.bookId]!!
                        } catch (e: Exception) {
                            // Fallbacks on a dummy Publication to avoid crashing the app until the Activity finishes.
                            dummyReaderInitData(arguments.bookId)
                        }
                    ReaderViewModel(readerInitData, application.bookRepository) as T
                }
                else ->
                    throw IllegalStateException("Cannot create ViewModel for class ${modelClass.simpleName}.")
            }

        private fun dummyReaderInitData(bookId: Long): ReaderInitData {
            val metadata = Metadata(identifier = "dummy", localizedTitle = LocalizedString(""))
            val publication = Publication(Manifest(metadata = metadata))
            return VisualReaderInitData(bookId, publication)
        }
    }

To use the EpubNavigatorFragment, take a look at the examples either in the test app, or in this other discussion: https://github.com/readium/kotlin-toolkit/discussions/54#discussioncomment-792210

what will be the parent Activity for EpubNavigatorFragment? How about 1st and 3rd points?

what will be the parent Activity for EpubNavigatorFragment?

Your own reader activity with your own UI (action bar, etc.). In the latest test app, this is r2.testapp.reader.ReaderActivity.

How about 1st and 3rd points?

I can provide support for the toolkit APIs but not the app code, even if it was copy-pasted from the test app.


[Question] Extract JSON payload from In-app messages

We would like to display the in-app payload that's gets sent out from AJO as JSON payload without any HTML contents so we can design our UI with native framework without needing to use Webview.
I tried to use MessagingDelegate interface and there are no public method to extract payload.
Only option I could see assign the FullscreenMessage and then read the message with JavaScript which looks bad.
Have you got any delegate to extract the JSON payload?

hi @nksaroj, apologies for missing this question. Do you still have a need to receive the in-app payload as a JSON? If so, could you open a ticket with your customer care representative so we can get this feature request prioritized?
Thanks,
Ryan


Rollback bolt tx on mapper open error

Overview
This commit fixes SelectMapper.Open() so that it properly rolls back transactions. Previously, this caused transactions to stay open indefinitely which caused mmap resizes to hang indefinitely.

+1

:+1:

+1

Great fix.
On Tuesday, September 8, 2015, Ben Johnson<EMAIL_ADDRESS>wrote:

Merged #4034 https://github.com/influxdb/influxdb/pull/4034.
—
Reply to this email directly or view it on GitHub
https://github.com/influxdb/influxdb/pull/4034#event-403867548.


Add docker limit parameters

Related #83

I tested the code and it's working great.

Looks great, thanks for the input. I'll merge it now, then make a couple of changes.


Allow easier configuration of custom AWSCredentialsProviders

I want to configure my application to use a custom AWSCredentialsProvider.
Usually i would expect an auto configuration to consider bean definitions and use defaults only if no bean of a specific type was found. So as a user i'd expect the following code to successfully register a custom AWSCredentialsProvider:
@Bean
public AWSCredentialsProvider awsCredentialsProvider() {
	return new CustomAWSCredentialsProvider();
}

However the auto configuration still decides to configure it's own AWSCredentialsProvider bean.
It seems like you have to provide a bean with the following names to make it work:
@Bean(name = {CredentialsProviderFactoryBean.CREDENTIALS_PROVIDER_BEAN_NAME, AmazonWebserviceClientConfigurationUtils.CREDENTIALS_PROVIDER_BEAN_NAME} )
public AWSCredentialsProvider awsCredentialsProvider() {
	return new CustomAWSCredentialsProvider();
}

Inspecting the constants provided above i just noticed that they differ in value but still use the same name and are also used interchangeably* across the whole project. Wouldn't it make more sense to have one constant (e.g. one bean name) in order to provide a custom credentials provider.
Whats the idea behind using 2 bean names for the same thing? Or am i getting something wrong and they are used for different purposes?
* to be confirmed :D

Agreed credentials provider should be easily replaceable with user provided bean.

Closing as a duplicate of #102


Including Link in backend/scripts

Hello,
Could you please include Link in @app.post("/backend/scripts", response_model=sc.CustomScripts)

Fixed with 0.3.14, please let me know if you still having issue


feat: prints functions proxy output

- Summary
Takes the stderr output from the local functions proxy and pipes it to CLI's stdout. This allows functions to print data to the CLI console.

Note: CI tests are failing


Feature request: replace new tab with dashboard navigator panel

Great work! Thanks for your efforts. I'm seeking for a customized new tab page for navigating to my notes when I found this plugin. To fulfill my needs, I have the following feature request:
Is your feature request related to a problem? Please describe.
Replace new tab with dashboard navigator panel. Specifically, when we click the plus button at the top of the application window or use the shortcut Ctrl+T, the dashboard navigator panel appears as a new tab. After we select a file in the dashboard navigator panel, this file appears in this tab in place of the panel.
Describe the solution you'd like
Make the dashboard navigator panel able to open in a tab, just the way we open notes or canvas. Or allow us to embed the dashboard navigator panel into a note. And then we can make use of new-tab-default-page plugin or obsidian-homepage plugins to set this panel as our default new tab / home page.

Thank you for your kind words and insightful feature request.
While I currently prefer the modal approach for the Dashboard Navigator plugin, I understand your suggestion to replace the new tab with a dashboard navigator panel. It's a valuable idea that I'll keep in mind for future updates.
Regarding the embed option, I'm already working on a feature to embed the dashboard navigator search results directly into a note. This will allow you to add queries to tags or other data while working within your note. Still need to test some features and make it more user-friendly.
My time is really limited due to my schedule these days, but I'm committed to implementing the embed feature as soon as possible. It's nearly ready, so stay tuned for the next update.
Thanks again for your valuable feedback and support.


Format nested fields using dot-notation

Added support for sending nested data as fields using dot-notation.
We use this with the kubernetes_metadata plugin to send all kubernetes pod labels as fields.
dot_it function copied from https://stackoverflow.com/questions/17451487/classic-hash-to-dot-notation-hash

Thank You for PR - will test and merge in to project

@jleinfors can you please update the PR/rebase so that we could review and merge it. Thanks :)


README: remove content-type header field in GET request

It's confused to contain content-type header field in GET request

Hi @haoxins,
Thanks for submitting this pull request...much appreciated! I completely agree with you, that was not a good header to use as an example. Rather than remove the second header altogether as you have in this PR, I decided to change it to Accept: application/json instead in 20bc682d. Thanks again!
Cheers. 🍻


Add ability to do spatial queries

Add ability to do spatial queries.
Use geoalchemy https://geoalchemy-2.readthedocs.io/en/latest/
/wells?radius=3&latlng=35,-105

works.
but currently having an issue with testing.  testing relies on a sqlite/spatialite db but the command ST_DWithin is not available in spatialite


JOSS Review 2

Hi @Christopher-Khan !
Finally I was able to start reviewing your work and keep you posted here.

First of all, the software looks very useful and well documented. For JOSS your code is on the small (1000-2000 lines of code)  / not well known scale. I think you should include some reference to better known packages that solve GLMs with elastic-net regularisation such as  https://github.com/h2oai/h2o4gpu , and how your code stands out (e.g. it's Matlab, and there is no GPU-accelerated code for this method in Matlab yet). Please also search the net once more in case someone else did something similar already on the GPU, also in other front-end languages.

Hi @krystophny! Thank you for agreeing to review this submission in order to help improve it! It's great to hear that you think the code is useful and well documented. I spent a large amount of time trying to make it user-friendly :).
In regards to your comment, I have added a reference to the H2O4GPU software package in the paper. This package and glmnet appear to be some of the most widely used packages. In terms of how this code stands out, I suppose you could technically create a MEX-interface for other packages that use GPU acceleration, but I added an extra statement to highlight how even packages that use GPUs usually just parallelize the computations for one model fit at a time. GENRE is different in that it does not parallelize the computations for one model fit. Instead, it executes many model fits in parallel, where each model fit is performed using one computational thread. Essentially, with the other GPU packages, it appears as though the main focus is using the many computational resources of the GPU for just one model fit. In addition, I tried searching for other packages that perform many model fits in parallel, but I was not able to find any particular package. Was there one that you had in mind?
Thank you again for reviewing this submission.

Great, now I understand that your purpose is rather to solve many GLMs at once rather than solving a single large one. I haven't seen anything like this yet, and other GPU-enabled GLM software in R seems to be already unmaintained, so from the references this should be fine. I'll now proceed to trying out the code.

One more question regarding authors. I see that Brett Byram is in the author list, but doesn't appear in the commit history on GitHub. Since he is more senior I assume that has contributed conceptual and advisory work significant for the software and you rather did the coding - is that right?

Hi @krystophny. Yes. That is correct. He is my PhD advisor and contributed in the capacity that you have stated.

Perfect @Christopher-Khan , thanks! If the minor points of #3 are resolved in the README, I can support publication of your work in JOSS according to https://github.com/openjournals/joss-reviews/issues/2644 .


running plumber with... docker?

Hi!
I have pushed a decent API draft. I saw here and docker seems to be a suitable method to run the API in the server and then go data.local/api/yr?y=2010&r=chl or whatever from firefox
What do you think about docker and/or other methods?

Update: Docker works now
I created an image with RPostgreSQL named tradestatistics/plumber-api. There are two main problems I can detect:

I have to type

cd /the_directory/something/
docker run --rm -p 8000:8000 -vpwd`/queries_with_db_credentials.R:/plumber.R tradestatistics/plumber-api /plumber.R

to make it run, and then with ctrl+c I stop the api, but the cool working would be after I reboot the server and it runs in automatic mode

When I read from R I have to type fromJSON twice to get the tibble, that's probably bc the code in this repo is not cool.

Plz see the screenshots where I show that it works :)

Update 2: I was able to make this simpler
If I go to ~/github/ts-plumber-api and then I run docker run -p 8080:8000 tradestatistics/api
then it runs ok as shown in the screenshots
I still cannot make it work automatically after restarting

the server

there was something not ok on plumber docs, this command enables run after boot
docker run -p 8080:8080 -dit --restart unless-stopped tradestatistics/plumber-api

Strange... It was working
What do you see if you open a browser tab and go to "the.site/status"?
On Mon, Dec 17, 2018, 9:25 PM Amanda Dobbyn<EMAIL_ADDRESS>wrote:

Not super familiar with docker so this might be something simple --
running the command you have above from the repo directory I get
Unable to find image 'tradestatistics/plumber-api:latest' locally
docker: Error response from daemon: pull access denied for tradestatistics/plumber-api, repository does not exist or may require 'docker login'.
See 'docker run --help'.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/tradestatistics/ts-plumber-api/issues/2#issuecomment-448050220,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJn6Ob1kbBlLMipJlO20JengWqY_ucuaks5u6DYCgaJpZM4ZTpxG
.

@aedobbyn it's probably something related to /home permissions
what I did to make it work was (from home)
cd github
git clone git@github.com:tradestatistics/ts-plumber-api.git
sudo docker build -t tradestatistics/plumber-api
docker run -p 8080:8080 -dit --restart unless-stopped tradestatistics/plumber-api

to avoid potential permissions problems I created /api with permissions for all users, there I moved what I had on my home dir


bug: running the js record clears the data.record

figure out why it's refreshing even if it's not user-initiated (dispatchEvent new Event still logs .isTrusted as false, so something else is wrong)

also, combos shouldn't trigger record - maybe use a flag or one of the existing data variables?

also also, pausing combos shouldn't trigger record

avoid running reinitializeRecord when running combos


Typescript types are massively broken

Trying to use scramjet in TypeScript and getting a bucket of errors such as:

Cannot find name 'ScramjetOptions'.
Generic type 'Promise' requires 1 type argument(s).
Generic type 'Iterable' requires 1 type argument(s).

Just looking at them I'm not sure if they were ever meant to work or in what version of TypeScript they did but there's clearly references to types that aren't ever provided like ScramjetOptions:
https://github.com/signicode/scramjet/blob/2fcaefcb6c29064457f789f8303a9ec24cc7ec5a/.d.ts/scramjet.d.ts#L40-L45
Screenshots

System:

OS: [e.g. Ubuntu Server 18.04] OSX
Node version: [e.g. v10.6.0] 12.13.1
TypeScript version: 3.7.2
Scramjet Version: [e.g. 4.19] 4.27.0

Ok, so I've done some research around this and I'm going to rebuild the whole generation of documentation based solely on d.ts files. I managed to get very good code hinting with generic code.
I'll update this issue with the branch, where I'm going to work on this.
I found a way to do interface checks on js files which was the biggest dillema.

ScramjetOptions is now fixed. Better typings will be here in 4.29.

Typescript typings still broken in 4.29

@deman4ik yes, I'm still trying to make the compiler not to get into a loop and at the same time be able to fully support internal function typings (hint for instance map -> map operation).
This works in VSCode, but compiling against this causes call stack exceeded errors. :/

@intellix @deman4ik can you guys check<EMAIL_ADDRESS>

@MichalCz seems good.
Thank you for your work!

@deman4ik @intellix guys, another major rewrite of the d.ts files - can you check how this works now.
I removed completely the declare module thing and replaced it by top level declarations - these seem to work well for me and I see that the node.js stream inheritance now works well, although it would be good to know if that worked in an actual typescript project.

@MichalCz Updated to 4.33.0. TS build is fine in my project without any changes. 👍

Great. :)


⚠ Jenkins Plugins Artifactory has degraded performance

In 68be199, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1267 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 68a7d59 after 12 minutes.


Remove compiler warnings when compiled with 0.14

Removing compiler warnings from gleam/otp when compiled with gleam 0.14.
Some comments:

The changes in supervisor.gleam is due to a bug (gleam-lang/gleam#989)
The problem with unused warning for import gleam/opt/port.{Port} might mask another problem. Port is used as a constructor in another type in the module but it is actually port.Port that should be used (I think). I'd expect the compiler to fail here because of ambiguous use of types. I worked around the warning by using the type explicitly
I am unsure of the changes process_test.gleam relating to ExitStatus. As a quick workaround I add the ExitStatus to the open_port function. It passes the unit tests but I don't know if there are any side effects. The ExitStatus flags makes the port send an exit status command to the port process when the external command exits. An alternative could be to remove the PortSetting type completely and just send an empty list.  To some degree I don't know if I agree with the warning as it is quite nice to be able to document all the options in a type even if you are not using them. Perhaps it doesn't matter much for a test module and that you normally would use a public type in this case.

I've done the changes in separate commits based on the comments above, if anything need amending.

Thank you for this, I have not forgotten about this PR! I'm waiting a little bit until I have time to investigate the issues you've found here, should be soon


fixes #582 (Android not setting this onLayout first?)

Fixes #582

I have just merged #684. Please, resolve conflicts and I'll do a new release within this week

Styling fixed

It seems you still have conflicts since I have merged #684. Please resolve them :)

Call me a github noob, but how do I resolve conflicts directly? The button "resolve conflicts" is readonly for me, with this block for the conflict:
<<<<<<< master
=======

>>>>>>> master

which is a difference of a line break. You can merge with or without?

@fungilation, no worries ;)
I am not very familiar working with forks but you cannot do it here as you have only read rights. You should be able to do it from your fork. Else, you can still do it in local...

Here you go, no more conflicts


Workflow Editor - Node deletion

Currently nodes cannot be deleted in the workflow editor.

Suggestion is this: when selecting node in a graph, the node displays details on the right-side panel. Have a delete button that the use can click to delete the node. The button will only be enabled when the node is a leaf node; otherwise, it will be disabled, and a note will appear to the effect that nodes with dependencies can not be deleted, maybe "delete dependent nodes first".

This is done, with a first pass of testing. I've created a separate issue for 'full blown' automated testing on this added feature (see #773).


Generic Range Precondition checks

Comment added.
Agreed about the performance. In fact, having the int case be non-generic may be beneficial as this will probably be the most commonly used.


Avoid mutating object in istioctl pc all to avoid duplicate prefix

Before we duplicate the object, so we end up printing
listener/listener/listener/...

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-ambient_istio
6afcf970a2b109f8ec4082ebbe0c1d8368d288df
link
true
/test integ-ambient

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


gosl implementation and gpu compute for new WebGPU

This implements the compute functionality in gpu package under WebGPU and updates gosl to generate wgsl code to run under webgpu.

Note: this is an extension of #507, which will allow for #1134.


Customisation rework

Complete rework of the customisation system, cutting out lots of bulk boiler plate code and removing all global variables as suggested by @lesyk.
Props to @lesyk and PR #9 for giving me some inspiration on how to fix certain things.

Everything is tested and should be working.


Fix issure #413: Pagination::link() cant trans string param which retrieve from $_GET

Fix  issure#413: Pagination::link() cant trans string param which retrieve from $_GET to page href

At a glance I don't think there's anything wrong with what you have here.
However, please revised the tests for the Pager so they pass again.

@lonnieezell, I added test for this, please check.


Print MSSQL* events to stdout

As a user, I want to be able to view SQL-related event log entries without having to docker exec powershell get-winevent or similar.
PR adds display of events (via Get-EventLog) matching the Source filter of MSSQL*. I arbitrarily selected 2s as the refresh interval for logs because I wasn't sure if setting it lower (e.g., 1s) would have negative implications.

Does docker logs -f do anything similar?

@gigatexal - the docker logs only display text written to stdout; the PR will display event log entries to be when you call docker logs -f

That's awesome and a very welcome addition.

Totally! I haven't seen any other samples use this, so I almost feel like there's got to be some catch that I'm not aware of.

Let's see if it gets merged. If not I'm sure they'll let us know if you missed something.

This PR could resolve (at least in part) #16

{Merged PR} Thanks for the contribution @jelster


Add extend_mode

Twitter's search API returns tweets in truncated mode by default. To get the full tweet, you have to pass along the parameter: tweet_mode with a value of extended.
I would suggest either setting that by default, or allowing arbitrary extra parameters to be passed in when the queue is defined.

Sounds good. Would you be interested in contributing this?

Sure thing. Created a PR now.


[Material] tapping on any message should show its delivery/read receipt and then tapping again should hide it (except for the most recent)

No content

Issue created by BlueBubbles Bot in the BlueBubbles commnity on behalf of @jojejo in #feedback.

dupe of recent ticket


Error loading lodash

have exception  when i use runtime.executeScript load lodash.js .  i want add lodash library in javet runtime

Which mode did you use? Node.js or V8?
I wonder executeScript is a J2V8 API. In Javet, it's different. Usually, that's v8Runtime.getExecutor(PathToLodash).executeVoid().

thanks for your reply 。
Before I used j2v8, lodash can be loaded, I want to replace it with jawet, because jawet supports multi-threaded use.
The attachment is my test process, the following exception will be reported
On 4/13/2021 14:04，Sam @.***> wrote：
Which mode did you use? Node.js or V8?
I wonder executeScript is a J2V8 API. In Javet, it's different. Usually, that's v8Runtime.getExecutor(PathToLodash).executeVoid().
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
package com.skybird.edge.base.controlling.enginee;
import com.caoccao.javet.interop.engine.IJavetEngine;
import com.caoccao.javet.interop.engine.JavetEngineConfig;
import com.caoccao.javet.interop.engine.JavetEnginePool;
import com.caoccao.javet.values.primitive.V8ValueUndefined;
import com.skybird.edge.base.utils.FileUtils;
import java.io.File;
public class J2V8EngineeTest {
public static void main(String[] args) {
    String path = "C:\\project\\skybird_edge3\\src\\main\\java\\com\\skybird\\edge\\addons\\web\\lib\\lodash\\lodash.js";

    try {
        JavetEngineConfig config = new JavetEngineConfig();
        config.setPoolDaemonCheckIntervalMillis(1);
        JavetEnginePool pool = new JavetEnginePool();
        IJavetEngine engine = pool.getEngine();
        Object lodashGet = engine.getV8Runtime().getGlobalObject().get("_.get");
        if (lodashGet instanceof V8ValueUndefined) {
            /*lodash lodash into pool engine*/
            String str = FileUtils.readFileToString(new File(path));
            engine.getV8Runtime().getExecutor(str).executeVoid();
        }

        engine.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

}

In Javet, eval() is disabled by default for security reason. You may enable it by calling com.caoccao.javet.interop.V8Runtime#allowEval.

Thank you very much， is ok！


updated editor to 2019.4.29f1

XRTK - Mixed Reality Toolkit Pull Request
Overview

updated editor to 2019.4.29f1
replaces package submodues with relative manifest registration

What is relative manifest registration? Gotta check it out.

Basically we don't need to define the submodules as symbolic links, it'll help in the long term with project management

/azp run

/azp run


assistant_sdk failed, error: OS Error

Init ok,and write data ok,but  response always "OS Error";Some times ok.
ubuntu

assistant_sdk failed, error: Error in HTTP transport completing operation 。
some times ok.
windows 10

mpChannel->GetState()
when state is GRPC_CHANNEL_IDLE,it is ok.
but when state is GRPC_CHANNEL_READY,it is bad.

Is there any other information you can provide, such as a way to reproduce this error?

It looks like you're using an earlier version of the sample, such as using API version v1alpha1. You may want to consider updating to a newer version which uses v1alpha2 and has additional features like text input and output. It may also be slightly more reliable.
I am not familiar with the error that you've been getting.

ok i will have a try


Set Token Vision and Light Macro does not work in Foundry v9

the macro "Set Token Vision and Light" no longer functions when using Foundry v9. Was probably to be expected since v9 changed how lighting is rendered.
Thanks.

Thanks ,- yes, it's probably not going to work with the v9 changes yet. Can you share any console log errors you got please?  Thanks

I've hecked, and I just cant get an error to appear in the console log. After importing the macro from the compendium, I select a token, click the macro, select a lightsource, and click Apply Changes. Nothing happens. No error log. I doublechecked the token lighting settings, and nothing changes either. Sorry about that.

At the moment, updating token sight is bugged in Foundry v9 core: a fix is expected in Stale Patch 1.
Token light changes should process as expected, but vision updates do not process when multiple tokens are selected without moving or deselecting/reselecting first.
From what I can see, sight changes are being processed when only a single token is selected.

The core issue has been pushed back to Version 9 Stable Patch 2, so will be more like tail end of of the month rather than early Jan.


webscoket proxy always break after about 30s

Describe the bug
webscoket proxy always break after about 30s
Pingora info
Please include the following information about your environment:
Pingora version:  0.2
Rust version:  1.7.8
Operating system version: docker debian
Steps to reproduce
in upstream_request_filter, response_filter, and response_body_filter
if it is ws, just return Ok;
if session.is_upgrade_req() {
          debug!("upstream_request_filter ws upgrade request");
          return Ok(());
      }

if session.is_upgrade_req() {
          debug!("response_filter ws upgrade, header:{:?}", upstream_response);
          return Ok(());
      }

if session.is_upgrade_req() {
          debug!("response_body_filter ws upgrade， end_of_stream:{end_of_stream}");
          return Ok(None);
      }

Expected results
not break . but it always break after 30s
Observed results
pingora break the connection with out any log.
What actually happened?
pingora break the connection with out any log.
Additional context
logs:
[2024-05-31T02:40:41Z DEBUG im_api_rust_gateway::route] match path:/message-ws, route:PathMapper { path: "/message-ws", proxy_path: "im-message-backend:8888" }, proxy:im-message-backend:8888
[2024-05-31T02:40:41Z DEBUG pingora_core::connectors] No reusable connection found for addr: <IP_ADDRESS>:8888, scheme: HTTP,sni: im-gateway,
[2024-05-31T02:40:41Z DEBUG pingora_core::connectors::l4] connected to new server: <IP_ADDRESS>:8888
[2024-05-31T02:40:41Z DEBUG im_api_rust_gateway::route] upstream_request_filter ws upgrade request
[2024-05-31T02:40:41Z DEBUG pingora_proxy::proxy_h1] Sending header to upstream RequestHeader { base: Parts { method: GET, uri: /message-ws?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.dd.Sfove5prSXN6gpczgzqrRE-TG6MNNN5NPxHaRH9oUFg_PC, version: HTTP/1.1, headers: {"host": "api.xx.xyz", "upgrade": "websocket", "accept-encoding": "gzip, br", "cf-ray": "88c399c55fe76412-LHR", "x-forwarded-proto": "http", "cf-visitor": "{"scheme":"https"}", "pragma": "no-cache", "cache-control": "no-cache", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.215 Electron/22.3.27 Safari/537.36", "origin": "file://", "sec-websocket-version": "13", "accept-language": "zh-CN", "sec-websocket-key": "X0/BucmR2d04+CkRMsCJew==", "sec-websocket-extensions": "permessage-deflate; client_max_window_bits", "cf-connecting-ip": "240e:30c:d8a:c00:896f:f9ac:9c93:5bea", "cdn-loop": "cloudflare", "cf-ipcountry": "CN", "x-cloud-trace-context": "63273c657ec3d76d906c839875930daf/11640436728903102546", "connection": "Upgrade", "via": "1.1 google", "x-forwarded-for": "240e:30c:d8a:c00:896f:f9ac:9c93:5bea, <IP_ADDRESS>, <IP_ADDRESS>"} }, header_name_map: Some({"host": CaseHeaderName(b"Host"), "upgrade": CaseHeaderName(b"Upgrade"), "accept-encoding": CaseHeaderName(b"accept-encoding"), "cf-ray": CaseHeaderName(b"CF-RAY"), "x-forwarded-proto": CaseHeaderName(b"X-Forwarded-Proto"), "cf-visitor": CaseHeaderName(b"CF-Visitor"), "pragma": CaseHeaderName(b"Pragma"), "cache-control": CaseHeaderName(b"Cache-Control"), "user-agent": CaseHeaderName(b"Use
r-Agent"), "origin": CaseHeaderName(b"Origin"), "sec-websocket-version": CaseHeaderName(b"Sec-WebSocket-Version"), "accept-language": CaseHeaderName(b"Accept-Language"), "sec-websocket-key": CaseHeaderName(b"Sec-WebSocket-Key"), "sec-websocket-extensions": CaseHeaderName(b"Sec-WebSocket-Extensions"), "cf-connecting-ip": CaseHeaderName(b"CF-Connecting-IP"), "cdn-loop": CaseHeaderName(b"CDN-Loop"), "cf-ipcountry": CaseHeaderName(b"CF-IPCountry"), "x-cloud-trace-context": CaseHeaderName(b"X-Cloud-Trace-Context"), "connection": CaseHeaderName(b"Connection"), "via": CaseHeaderName(b"Via"), "x-forwarded-for": CaseHeaderName(b"X-Forwarded-For")}), raw_path_fallback: [] }
[2024-05-31T02:40:41Z DEBUG pingora_core::protocols::http::v1::client] Response header: ResponseHeader { base: Parts { status: 101, version: HTTP/1.1, headers: {"content-length": "0", "upgrade": "WebSocket", "connection": "upgrade", "sec-websocket-accept": "3msbQbeXiXEW79j3xtYxwXkvUA0="} }, header_name_map: Some({"content-length": CaseHeaderName(b"content-length"), "upgrade": CaseHeaderName(b"upgrade"), "connection": CaseHeaderName(b"connection"), "sec-websocket-accept": CaseHeaderName(b"sec-websocket-accept")}), reason_phrase: None }
[2024-05-31T02:40:41Z DEBUG pingora_proxy::proxy_h1] upstream event: Some(Header(ResponseHeader { base: Parts { status: 101, version: HTTP/1.1, headers: {"content-length": "0", "upgrade": "WebSocket", "connection": "upgrade", "sec-websocket-accept": "3msbQbeXiXEW79j3xtYxwXkvUA0="} }, header_name_map: Some({"content-length": CaseHeaderName(b"content-length"), "upgrade": CaseHeaderName(b"upgrade"), "connection": CaseHeaderName(b"connection"), "sec-websocket-accept": CaseHeaderName(b"sec-websocket-accept")}), reason_phrase: None }, false))
[2024-05-31T02:40:41Z DEBUG im_api_rust_gateway::route] response_filter ws upgrade, header:ResponseHeader { base: Parts { status: 101, version: HTTP/1.1, headers: {"content-length": "0", "upgrade": "WebSocket", "connection": "upgrade", "sec-websocket-accept": "3msbQbeXiXEW79j3xtYxwXkvUA0="} }, header_name_map: Some({"content-length": CaseHeaderName(b"content-length"), "upgrade": CaseHeaderName(b"upgrade"), "connection": CaseHeaderName(b"connection"), "sec-websocket-accept": CaseHeaderName(b"sec-websocket-accept")}), reason_phrase: None }
[2024-05-31T02:40:41Z DEBUG pingora_core::protocols::http::v1::server] ok upgrade handshake
[2024-05-31T02:40:42Z DEBUG pingora_core::protocols::http::v1::client] Response body: 110 bytes, end: false
[2024-05-31T02:40:42Z DEBUG pingora_proxy::proxy_h1] upstream event: Some(Body(Some(b"\x81l7OzTkuTQFvL+dGp7dbsQ67pxwLamUTYAM5cxbGbL4wS+8cff2jd4nPYj0BykLf4WgSHOMVuN0OPTxFsWT8iOZNLJ2Sh2PYU+kInDUQdGp+w="), false))
[2024-05-31T02:40:42Z DEBUG im_api_rust_gateway::route] response_body_filter ws upgrade， end_of_stream:false
[2024-05-31T02:40:42Z DEBUG pingora_proxy::proxy_h1] downstream event
[2024-05-31T02:40:42Z DEBUG pingora_proxy::proxy_h1] Read 864 bytes body from downstream
[2024-05-31T02:40:42Z DEBUG pingora_proxy::proxy_h1] Write 864 bytes body to upstream
[2024-05-31T02:40:42Z DEBUG pingora_core::protocols::http::v1::client] Response body: 2224 bytes, end: false
[2024-05-31T02:40:42Z DEBUG pingora_proxy::proxy_h1] upstream event: Some(Body(Some(b"\x81~\x08\xac+iUWE3iUPXPDg2Ib72rZvqv3384I8Sc1JNrOMCihYhsXkQK+kU/FGtxl2VFiWRFWVa8d5B2tp5KpahJdBhl8ZKRIugoKg8TS4df0TM+TreLoIY6kfJM2PEdRoSWDiklJKmbUT/I0N/lFFZAVilJZ1wQ9wNCCu53dh7Rdero6qxfYZi4f11i/2yBouNF/DLFARxgPmoU37KPjCl5/G8eJw0SOf8/abG/4BlbLIyNg3Via6UuVaw+rNg84T2BHlyhTnRTvwV9KWnZDPH6AkwZbSS0pn3DPCT9DELu5QLsZVs3U="), false))
[2024-05-31T02:40:42Z DEBUG im_api_rust_gateway::route] response_body_filter ws upgrade， end_of_stream:false
[2024-05-31T02:40:47Z DEBUG pingora_core::services::listening] new event!
[2024-05-31T02:40:47Z DEBUG pingora_proxy] Successfully get a new request
[2024-05-31T02:40:47Z DEBUG im_api_rust_gateway::route] health check
[2024-05-31T02:40:47Z DEBUG pingora_core::protocols::http::v1::server] HTTP shutdown connection
[2024-05-31T02:40:47Z DEBUG pingora_core::protocols::l4::stream] Dropping socket BufStream { inner: BufReader { reader: BufWriter { writer: Tcp(PollEvented { io: Some(TcpStream { addr: <IP_ADDRESS>:8094, peer: <IP_ADDRESS>:59324, fd: 22 }) }), buffer: 0/1460, written: 0 }, buffer: 0/65536 } }
[2024-05-31T02:40:47Z DEBUG pingora_proxy::proxy_h1] downstream event
[2024-05-31T02:40:47Z DEBUG pingora_proxy::proxy_h1] Read 864 bytes body from downstream
[2024-05-31T02:40:47Z DEBUG pingora_proxy::proxy_h1] Write 864 bytes body to upstream
[2024-05-31T02:40:47Z DEBUG pingora_core::protocols::http::v1::client] Response body: 2224 bytes, end: false
[2024-05-31T02:40:47Z DEBUG pingora_proxy::proxy_h1] upstream event: Some(Body(Some(b"\x81~\x08\xac+iUWE3iUPXPDg2Ib72rZvqv3384I8Sc1JNrOMCihYhsXkQK+kU/FGtxl2VFiWRFW2opOHBEqrn6CnmG+aJAfj2bsypFYbjvfDEX/ixjm+vYKlTqHlihSHtzhEeo3G0Hhrd3X+pReX+0RygS6QVH2uMmrwa0icKCwbY2Q45NGl5E+KX8ZSJvrxKUk8EA5KlX1e3fM/BX/SPi+l+nz2GHxD0A3U4Ol9oAAQkJ4TjTtiThzis7V8HuVsUM="), false))
[2024-05-31T02:40:47Z DEBUG im_api_rust_gateway::route] response_body_filter ws upgrade， end_of_stream:false
[2024-05-31T02:40:47Z DEBUG pingora_core::services::listening] new event!
[2024-05-31T02:40:47Z DEBUG pingora_proxy] Successfully get a new request
[2024-05-31T02:40:47Z DEBUG im_api_rust_gateway::route] health check
[2024-05-31T02:40:47Z DEBUG pingora_core::protocols::http::v1::server] HTTP shutdown connection
[2024-05-31T02:40:47Z DEBUG pingora_core::protocols::l4::stream] Dropping socket BufStream { inner: BufReader { reader: BufWriter { writer: Tcp(PollEvented { io: Some(TcpStream { addr: <IP_ADDRESS>:8094, peer: <IP_ADDRESS>:39170, fd: 22 }) }), buffer: 0/1460, written: 0 }, buffer: 0/65536 } }
[2024-05-31T02:40:47Z DEBUG pingora_core::services::listening] new event!
[2024-05-31T02:40:47Z DEBUG pingora_proxy] Successfully get a new request
[2024-05-31T02:40:47Z DEBUG im_api_rust_gateway::route] health check
[2024-05-31T02:40:47Z DEBUG pingora_core::protocols::http::v1::server] HTTP shutdown connection
[2024-05-31T02:40:47Z DEBUG pingora_core::protocols::l4::stream] Dropping socket BufStream { inner: BufReader { reader: BufWriter { writer: Tcp(PollEvented { io: Some(TcpStream { addr: <IP_ADDRESS>:8094, peer: <IP_ADDRESS>:41010, fd: 22 }) }), buffer: 0/1460, written: 0 }, buffer: 0/65536 } }
[2024-05-31T02:40:50Z DEBUG pingora_core::services::listening] new event!
[2024-05-31T02:40:50Z DEBUG pingora_proxy] Successfully get a new request
[2024-05-31T02:40:50Z DEBUG im_api_rust_gateway::route] health check
[2024-05-31T02:40:50Z DEBUG pingora_core::protocols::http::v1::server] HTTP shutdown connection
[2024-05-31T02:40:50Z DEBUG pingora_core::protocols::l4::stream] Dropping socket BufStream { inner: BufReader { reader: BufWriter { writer: Tcp(PollEvented { io: Some(TcpStream { addr: <IP_ADDRESS>:8094, peer: <IP_ADDRESS>:51264, fd: 22 }) }), buffer: 0/1460, written: 0 }, buffer: 0/65536 } }
[2024-05-31T02:40:51Z DEBUG pingora_core::services::listening] new event!
[2024-05-31T02:40:51Z DEBUG pingora_proxy] Successfully get a new request
[2024-05-31T02:40:51Z DEBUG im_api_rust_gateway::route] safe check not open
[2024-05-31T02:40:51Z DEBUG im_api_rust_gateway::route] match path:/message-ws, route:PathMapper { path: "/message-ws", proxy_path: "backend:8888" }, proxy:backend:8888
[2024-05-31T02:40:51Z DEBUG pingora_core::connectors] No reusable connection found for addr: <IP_ADDRESS>:8888, scheme: HTTP,sni: im-gateway,
[2024-05-31T02:40:51Z DEBUG pingora_core::connectors::l4] connected to new server: <IP_ADDRESS>:8888
[2024-05-31T02:40:51Z DEBUG im_api_rust_gateway::route] upstream_request_filter ws upgrade request

Not seeing anything obvious in the debug logs, could you provide some trace logs? Thanks.

Not seeing anything obvious in the debug logs, could you provide some trace logs? Thanks.

I add the trace log
trace.log

Do you have PeerOptions configured by any chance? (if so, check read_timeout)

Do you have PeerOptions configured by any chance? (if so, check read_timeout)

I try to config PeerOptions. it seems that not work

I add the trace log

The trace log is a bit hard to follow given that there are many ongoing requests.
Could you point out the the timestamp when the request started and when the request broke?

I add the trace log

The trace log is a bit hard to follow given that there are many ongoing requests. Could you point out the the timestamp when the request started and when the request broke?

ws start at line 3.
match path:/message-ws, route:PathMapper
lastline -1(271)  is the end of the ws connection

would this issue fixed?


Update stages_api.md

Added information on the scheduled_date field including links to how to convert it.

@reidca: Looks good! Could you please signing the CLA. It's a legal requirement. I thought you had already signed it. But, couldn't find an entry.
Thank you!

Ok done. Thanks.
On 7 Apr 2015 18:59, Aravind SV<EMAIL_ADDRESS>wrote:
@reidca: Looks good! Could you please signing the CLA. It's a legal requirement. I thought you had already signed it. But, couldn't find an entry.
Thank you!

Reply to this email directly or view it on GitHub:
https://github.com/gocd/documentation/pull/106#issuecomment-90677402

Merged. Thank you!

It can be seen at: http://www.go.cd/documentation/user/15.1.0/api/stages_api.html


Failed to build resources on Windows

During I install dependencies via node.js it shows such errors as:

Failed to load resource: the server responded with a status of 404 (Not videojs.record.css found) or (Not video.js.record.js found)
Uncaught Error: plugin "record" does not exist (video.min.js:5)
What should I do?

@inikonorov can you show me some example code, how are you loading this?

Clone git

Install dependencies

npm start

developer tools

I see, let me take a look.

look at what?

look at what?

At what could be wrong on your side (or buggy in this library).

I just tried to do this instructions
https://github.com/collab-project/videojs-record#examples
Error appears during npm start (look at screen - no such file or directory)
Sorry for my english :)
I don't understand completely what should I show you

@inikonorov hehe don't worry, it wasn't a request for you, I'm going to try to reproduce that error, just sit tight and I'll get back to you ;)

oh, thank you :)

@inikonorov what operating system are you using? And what version of node and npm? e.g. try running following commands and paste the output (or screenshot):
npm --version

node --version

win 10
npm 5.5.1
node 8.9.1

@inikonorov I've setup a windows build and I can recreate the issue which is good. See log at https://ci.appveyor.com/project/thijstriemstra/videojs-record/build/job/wfd4qlcv7d37n8cg
Now to fix it..

@inikonorov can you do a git pull and try again?

yeah, one second

hmm, the same error
i tried to clone again and node shows the same error

Ok thanks for the feedback I'll take a look at it again.

thank you very much, you're the best support i've ever seen 🥇

i can try to do this on Linux, but I have a question - what should i do with node_modules if I want to upload files to hosting? just upload this folder?

thank you very much, you're the best support i've ever seen :1st_place_medal:

i'm 'always poor, never bored' ;)

i'd like to get it working on windows, i imagine many people tried this on windows and failed, so I'm glad you raised the issue. Never thought about the windows build :-/

yeah, i think many people tried this on windows too
if you need anything from me - i'm ready :)

@inikonorov can you upgrade npm/node to version 9 and see if that makes a difference?

yeah, of course
after university i'll write you

the same error

versions

@inikonorov can you attach the full log file (as noted at bottom of error), e.g. 2017-11-28T12_03_02_719Z-debug.log?

of course
2017-11-28T12_03_02_719Z-debug.log

@inikonorov i was able to reproduce your error and improved some things. Can you do:

a fresh git checkout
npm install (there is a new dependency)
npm run build (so things like the fonts and other assets get build)
npm run start (make sure to use npm run start, i think you used npm start before)

woohoooo! everything is work, thank you very much :)

but i still have a question, help me please, if you know anything about it - what should I do with node/npm, if I want to upload this files on hosting?

can I just upload node_modules folder?

and I wanted ask you - can I ask you some questions about videojs? and if i can do this, where does it do better?

@inikonorov you move the javascript, css and html files onto a webserver, not the whole node_modules directory. Use a site like stackoverflow.com for video.js questions or their github page.

nono, i was wrong, i wanted write "some questions about videojs-record" of course :)

Yea this is the right place.

okay, thank you very much, i'm very appreciate your support 🥇
i try to read some information about videojs-record and fine-uploader and make some experiments, if something goes wrong, I'll write you :)

v2.0.3 with the fixes has been released, closing.

Hi I am facing issue with video recording and got the below issue


Added the Clockwork namespace to enums

Added the Clockwork namespace to the AccountType an dInvalidCharacterAction enums to prevent clashing with enums of the same name in a project that uses Clockwork

@k-green This is great, thanks!


Virtual Switch Interfaces

It would be interesting to create a VSI object for trunk interfaces. It's useful in the IXP use case.
The VSI would have a foreign key on a vlan, and its own vlan-id (to take into account the mapping between customer vlan id and internal vpls id), and it would have a foreign key on the interface (physical) it belongs to, and a foreign key on a IP (several VSIs on the same physical interface can have different IPs).
Interface should have a new boolean field indicating if it's tagged or not (access mode or trunk mode).
Before implementing this we'd need to take into account how we would handle ethereal channels, because in the case of a new object describing these, VSI should point at such an object and not at a physical interface directly...

I'm not clear on the concept being conveyed, but it seems a bit too complex to take on in the near term.

In an effort to clean up the issues backlog, I'm closing all issues labelled as "discussion." If there is interest in continuing this topic, please start a thread on the NetBox subreddit. Thanks!


Fixed #28934 -- Fixed DateTimeField microseconds handling on Oracle.

https://code.djangoproject.com/ticket/28934
test_cast_from_python_to_datetime should fail on SQLite (see https://github.com/django/django/pull/9460).

buildbot, test on oracle.

buildbot, test on oracle.


AOAF-414-Zip-portal-Build-header-footer-and-back-button-welsh-equivalent

CI: No security warnings found

CI: No security warnings found

CI: No security warnings found


There is a bug when resizing grid item in responsive layout

Overlapping occurs when resizing grid item size in responsive layout.
In that state, after you drag the grid item, it appears to be normal

Hey! i've got the same problem !

same here, doesn't seem to put it in the correct place

Please provide a code example to reproduce the problem, like a jsfiddle.

Please provide a code example to reproduce the problem, like a jsfiddle.

https://github.com/ScopZy/grid-layout-error you can find all my code here. just simple editor page. no more code.

you can end up wit this situation too...

.

i'll have a look into it :)

i was looking and i think find the solution.
In file src/components/GridLayout.vue when responsive mode is active, the item is not compacted according to its environment

then, I deleted the else condition, I did some tests and the problem was solved.
the code would be:
if (this.responsive) this.responsiveGridLayout();
compact(this.layout, this.verticalCompact);
this.eventBus.$emit("compact");
this.updateHeight();

i was looking and i think find the solution.
In file src/components/GridLayout.vue when responsive mode is active, the item is not compacted according to its environment

then, I deleted the else condition, I did some tests and the problem was solved.
the code would be:
if (this.responsive) this.responsiveGridLayout();
compact(this.layout, this.verticalCompact);
this.eventBus.$emit("compact");
this.updateHeight();

i think this breaks the mobile layout.. the columns seem to stack on top of each other

I was having this issue due to externally updating layout multiple times when mouted. See here
https://github.com/jbaysolutions/vue-grid-layout/issues/269#issuecomment-617639202