text:
Failed to build the 1.3.1 docker image

The failed log as follwing:
atw@atw-predsac-vm:~/modbus-server$ sudo docker build . -t modbus-server
[+] Building 79.2s (5/8)                                                                                docker:default
=> [internal] load build definition from Dockerfile                                                                                0.0s
=> => transferring dockerfile: 593B                                                                                0.0s
=> [internal] load metadata for docker.io/library/alpine:3.19.1                                                                                25.4s
=> [internal] load .dockerignore                                                                                0.0s
=> => transferring context: 2B                                                                                0.0s
=> ERROR [1/4] FROM docker.io/library/alpine:3.19.1@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b                      53.7s
=> => resolve docker.io/library/alpine:3.19.1@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b                             0.0s
=> => sha256:6457d53fb065d6f250e1504b9bc42d5b6c65941d57532c072d929dd0628977d0 528B / 528B                                                         0.0s
=> => sha256:05455a08881ea9cf0e752bc48e61bbd71a34c029bb13df01e40e3e70e0d007bd 1.47kB / 1.47kB                                                     0.0s
=> => sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8 0B / 3.41MB                                                        53.7s
=> => sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b 1.64kB / 1.64kB                                                     0.0s
=> [internal] load build context                                                                                0.0s
=> => transferring context: 217B                                                                                0.0s

[1/4] FROM docker.io/library/alpine:3.19.1@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b:

Dockerfile:1
1 | >>> FROM alpine:3.19.1
2 |
3 |     LABEL maintainer="Michael Oberdorf IT-Consulting info@oberdorf-itc.de"
ERROR: failed to solve: failed to read expected number of bytes: unexpected EOF

Hi @cnhache18 ,
you have described an error in the Dockerfile - an "unexpected EOF". Could it be that your download of the data from the GIT repository is incomplete or incorrect?
When I download and unpack the repo as a ZIP (just done on Ubuntu 20.04 as WSL2 under Windows 10) and run the build, I don't get any errors:
System:
$ uname -a
Linux <HOSTNAME> 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

Build:
$ docker build . -t modbus-server
[+] Building 545.4s (10/10) FINISHED                                                                                docker:default
 => [internal] load build definition from Dockerfile                                                                                0.1s
 => => transferring dockerfile: 593B                                                                                0.0s
 => [internal] load metadata for docker.io/library/alpine:3.19.1                                                                                4.9s
 => [auth] library/alpine:pull token for registry-1.docker.io                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [1/4] FROM docker.io/library/alpine:3.19.1@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b                                                                                34.4s
 => => resolve docker.io/library/alpine:3.19.1@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b                                                                                0.0s
 => => sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b 1.64kB / 1.64kB                                                                                0.0s
 => => sha256:6457d53fb065d6f250e1504b9bc42d5b6c65941d57532c072d929dd0628977d0 528B / 528B                                                                                0.0s
 => => sha256:05455a08881ea9cf0e752bc48e61bbd71a34c029bb13df01e40e3e70e0d007bd 1.47kB / 1.47kB                                                                                0.0s
 => => sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8 3.41MB / 3.41MB                                                                                33.9s
 => => extracting sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8                                                                                0.2s
 => [internal] load build context                                                                                0.1s
 => => transferring context: 13.79kB                                                                                0.0s
 => [2/4] RUN apk upgrade --available --no-cache --update     && apk add --no-cache --update        python3=3.11.8-r0        py3-pip=23.3.1-r0     && rm -rf /var/cache/apk/* /tmp/* /var/tmp/*                                                                                501.8s
 => [3/4] COPY --chown=root:root /src /                                                                                0.1s
 => [4/4] RUN pip3 install --no-cache-dir -r /requirements.txt --break-system-packages                                                                                3.7s
 => exporting to image                                                                                0.3s
 => => exporting layers                                                                                0.3s
 => => writing image sha256:b77ccfd11b44bd2af74e3c65d0e9e91751f155d621cf9783d947d411eabcd013                                                                                0.0s
 => => naming to docker.io/library/modbus-server                                                                                0.0s

$ docker images
REPOSITORY                                         TAG              IMAGE ID       CREATED         SIZE
modbus-server                                      latest           b77ccfd11b44   7 seconds ago   78.8MB

Hello @cybcon ,
I just fixed my issue, the root reason is the alpine respositry is blocked from my location ( China ），I need to to add a local respositry mirror in Dockerfile. Just oneline as below:
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
Thansk!

repo: cybcon/modbus-server


text:
Fix cucumber param deprecation warning

The master branch of the Ruby API is currently failing on an error before the cucumber tests even get run. The failure immediately follows a deprecation warnings about using "not @tag" instead of "~@tag" and the stacktrace involves thor (a CLI gem) so I think this deprecation may also be the source of the error. Let's fix the deprecation warning and see if it fixes the CI build.

The deprecation warning and stacktrace:
Deprecated: Found tags option '~@wip'. Support for '~@tag' will be removed from the next release of Cucumber. Please use 'not @tag' instead.
Expression /^the (?:JSON|json)(?: response)?(?: at "(.*)")? should( not)? be (".*"|\-?\d+(?:\.\d+)?(?:[eE][\+\-]?\d+)?|\[.*\]|%?\{.*\}|true|false|null)$/ has 3 capture groups (["mime_type", nil, "\"application/x-pem-file\""]), but there were 2 parameter types ([".*)\"", " not"]) (Cucumber::CucumberExpressions::CucumberExpressionError)
/usr/local/bundle/gems/cucumber-expressions-4.0.3/lib/cucumber/cucumber_expressions/argument.rb:16:in `build'
/usr/local/bundle/gems/cucumber-expressions-4.0.3/lib/cucumber/cucumber_expressions/regular_expression.rb:43:in `match'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/glue/step_definition.rb:101:in `arguments_from'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/glue/registry_and_more.rb:66:in `block in step_matches'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/glue/registry_and_more.rb:65:in `each'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/glue/registry_and_more.rb:65:in `reduce'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/glue/registry_and_more.rb:65:in `step_matches'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/step_match_search.rb:19:in `call'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/step_match_search.rb:19:in `call'
/usr/local/lib/ruby/2.3.0/delegate.rb:83:in `method_missing'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/step_match_search.rb:62:in `call'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/filters/activate_steps.rb:66:in `matches'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/filters/activate_steps.rb:47:in `result'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/filters/activate_steps.rb:37:in `find_match'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/filters/activate_steps.rb:33:in `attempt_to_activate'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/filters/activate_steps.rb:29:in `map'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/filters/activate_steps.rb:29:in `new_test_steps'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/filters/activate_steps.rb:23:in `test_case'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/filters/activate_steps.rb:12:in `test_case'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core/test/case.rb:25:in `describe_to'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core/test/filters/locations_filter.rb:18:in `block in done'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core/test/filters/locations_filter.rb:17:in `each'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core/test/filters/locations_filter.rb:17:in `done'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core/filter.rb:62:in `done'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core/test/filters/tag_filter.rb:18:in `done'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core/compiler.rb:24:in `done'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core/gherkin/parser.rb:37:in `done'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core.rb:32:in `parse'
/usr/local/bundle/gems/cucumber-core-3.0.0/lib/cucumber/core.rb:21:in `compile'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/runtime.rb:74:in `run!'
/usr/local/bundle/gems/cucumber-3.0.1/lib/cucumber/cli/main.rb:33:in `execute!'
/usr/local/bundle/gems/cucumber-3.0.1/bin/cucumber:9:in `<top (required)>'
/usr/local/bundle/bin/cucumber:17:in `load'
/usr/local/bundle/bin/cucumber:17:in `<top (required)>'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:74:in `load'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:74:in `kernel_load'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:27:in `run'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/cli.rb:362:in `exec'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/cli.rb:22:in `dispatch'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/cli.rb:13:in `start'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/exe/bundle:30:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.15.4/exe/bundle:22:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'

source: gharchive/issue

repo: cyberark/conjur-api-ruby

license_type: permissive

license_source: github-api


text:
CLI container doesn't work and returns 502 bad gateway

If you try to use the CLI container that is deployed with these scripts, you get an error like

<title>502 Bad Gateway</title>

502 Bad Gateway

nginx

error: 502 Bad Gateway

I have seen this with DAP clusters deployed both in and outside openshift 3.9.

Closed by parent issue https://github.com/cyberark/kubernetes-conjur-deploy/issues/80

repo: cyberark/kubernetes-conjur-deploy


text:
Ошибка в join()

Пример запроса:
$userRepository
  ->select()
  ->buildQuery()
  ->join('LEFT', 'user_profile', 'profile', 'user.id = profile.user_id')
  ->fetchAll()

В запросе получается вот такой JOIN:
LEFT JOIN "user_profile" AS "profile"
    ON "profile" = "user"."id" = "profile"."user_id"

Проблема в том, что в методе JoinTrait:join(), передается параметр $alias  в аргументы метода JoinTrait::on(...$args).
Поэтому получается ошибка в запросе JOIN, лишний параметр "profile" =

Рекомендую использовать отдельный метод ->on():
$userRepository
  ->select()
  ->buildQuery()
  ->join('LEFT', 'user_profile as profile')
  ->on('user.id' => 'profile.user_id')
  ->fetchAll()

authors: only-viktor roxblnfk

repo: cycle/orm

license: MIT


text:
Update to Upstream

Material UI Commit Head 93ec209b41112bec76ba5fbd55cd7414541995d3

Updated to Material UI 4.2.1!

Better Integrations (Less color bleed)
More Icons and File Associations
Title bar is back
Better GO code highlighting
Better PHP syntax highlighting?

[x] Works on MacOS

[x] Works on Windows

source: gharchive/pull-request

repo: cyclic-reference/ddlc-jetbrains-theme


text:
Add namespace import

Example:
import * as foo from "foo";

will be transformed into:
const foo = __cjsInterop1__?.default?.__esModule
            ? __cjsInterop1__.default
            : __cjsInterop1__;
import __cjsInterop1__ from "foo";

Thank you for your contribution and taking the time to write tests 🎉
Merged and published as 1.1.0.


text:
谁有MEOW 1.5的fork？

MEOW已经挂了~~

找到备份了：https://github.com/dou4cc/MEOW/

已经fork了cow的话fork不了meow

@chestermax01 新建空项目再导入，或者建一个organization

最好有人能维护啊~

没人维护。。cow也是。。

还有类似的软件么？

repo: cyfdecyf/cow

license_source: bigquery


text:
[bug][typescript support] throw unknown typescript type while use decorators

att

It's not a bug, due to project's ts config incomplete

repo: cyjake/leoric


text:
🛑 cypggs is down

In 475bd82, cypggs (https://www.cypggs.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: cypggs is back up in d8d4a55.

repo: cypggs/uptime


text:
sample by taxa overview (stream-graphish)

stacked bars showing the per-sample reads to:

eukaryote
chordata
bacteria less wolbachia
wolbachia
viral families (~6)

This is now Figure 3.

repo: czbiohub/skeeters


text:
add description and name to IBAN analyzer

Were forgotten in the last PR for #35

Great, thanks a lot.

repo: d-Rickyy-b/pastepwn


text:
Changed the behavior of the dynamic width

https://github.com/d-oliveros/angular-sticky/pull/20 adapted for v1.7.7

Cool, thanks @dmgts !

authors: d-oliveros dmgts

repo: d-oliveros/angular-sticky


text:
D3planner PTR 2.6.1 when ?

When can we expect the release of D3Planner PTR 2.6.1 ? Thanks.

I'll try to get it up soon, thanks for the reminder.

Should be up now.

Thanks! Wait for Sets update 👍

Oh! Whoops.

Okay done that too.


text:
🛑 Staging Webhook Public Api is down

In 0f6e938, Staging Webhook Public Api ($STAGING_WEBHOOK) was down:

HTTP code: 503
Response time: 303 ms

Resolved: Staging Webhook Public Api is back up in cbc6b49.


text:
🛑 Staging Homologation API is down

In e1ec48e, Staging Homologation API ($STAGING_HOMOLOGATION_API) was down:

HTTP code: 503
Response time: 521 ms

Resolved: Staging Homologation API is back up in 3e00899.


text:
Fix deployment target

podspec deployment target 10.0,
It is possible to fix?

Are you asking if I can lower the ios version? The library requires the User Notifications framework, which requires IOS 10.

I am going to go ahead and close this as I have not received a reply from you. Comment again and I can reopen it.

license: mit


text:
Can't seem to disable Online Status Share

Description:
Not sure where I'm going wrong, but I can't disable this. When I add "online_status_share=0" to my ui.conf, and then run the app, my status is still shared, and the moment I quit nchat, that line is removed from the ui.conf file.
What am I doing wrong here?
Environment: iTerm2,

OS / distro: MacOS Ventura

Hi @EttVenter - can I check what version of nchat you're using? (nchat -v should output it)
Configurable and dynamic online status was added fairly recently, in v3.68 / 28bec95.
Let's say if you're installing nchat via brew, you'll be using the latest official stable release, which currently is v3.67. FYI the next stable release is at the end of every quarter.

I just did all of this but I can't figure out how to run it. Hahaha. Sorry, I'm a total noob. All your steps worked, but how do I run it?

Okay 🙂  The commands listed would've uninstalled the brew installation of nchat, and then installed it from your source clone instead. It should be possible to run just nchat in a terminal now. If you're getting
nchat: command not found
it's possible the default installation directory for nchat is not in your PATH, so then you can try run it like this:
/usr/local/bin/nchat
or alternatively update your PATH to be able to simply run nchat. How to do that depends on what your shell is (zsh, bash, etc) I think. For me (using bash) I would edit ~/.bash_profile and add a line line
export PATH=$PATH:/usr/local/bin"

Hope this helps!

Just in case the above doesn't work, you can re-run ./make.sh install from the nchat source clone directory, and check the output which would have output like:
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/bin/nchat
-- Installing: /usr/local/lib/libncutil.dylib
-- Installing: /usr/local/lib/libduchat.dylib
-- Installing: /usr/local/lib/libtgchat.dylib

The line ending with /nchat would be the one saying where it has been installed, i.e. in the above example
/usr/local/bin/nchat

This all worked perfectly. Thank you so much for all your help, and thank you for helping me with even the basics here. Haha. Love your app!

No probs, great to hear it worked 👍


text:
[Suggestion] Colors for various elements

Colored text would make reading chats and distinguishing UI elements much easier.
I would suggest adding color to the following elements:

Name of the person who sent message
URLs
Titles generated from Telegram Instant View
Documents
Stickers
Date
Time
Contacts in side pane

Of course it would be nice if the colors could be changed in a config rather than an element like URL being hardcoded as blue.

Hi @IronPiston  - basic support for color customization has been implemented in e5b20c0.


text:
feat: Add install directory customization

Use an optional environment variable BIN_DIR to customize the final
install directory of the dagger binary.
Update documentation to show how to use the environment variable
Signed-off-by: Connor Kelly connor.r.kelly@gmail.com

This should fix issue #1950 cc: @samalba

Thanks for the contribution!

authors: clly samalba

repo: dagger/dagger


text:
feat: Add NodeSDK provisioner

Implement cloak provisioning by pulling the
binary directly from docker image instead of
using local one.
This implementation is based on the Golang
and Python SDK.
Implement a generic system to include more
provisioner in the future thanks a map of
function.
This is based on the Golang connection
helpers.
:warning: Issue
The pull binary is currently broken; there are a bunch of extra bytes in it when it's written on the local host. We're still trying to figure out with @slumbering what's going on.
EDIT: The above issue is fixed
TODO

[x] Rebase PR on last changes
[x] Make logging configurable (same as other SDKs, right now its just hardcoded to write to process's stderr)
[x] Add in garbage collection of old binaries
[x] Fix hang when client is done running but doesn't exit because the child process is still running

@slumbering I think the issue is that we spawn the child process with execa and then need to keep it running, but once the client is done sending queries, that subprocess just keeps running and nodejs doesn't exit because there's still an unresolved promise. I could be wrong, just my best guess.
How do you think this is best handled? Simplest might be to have a close method on the client object that explicitly kills the subprocess, but is there a better way of cleaning up async background resources like this in nodejs?

Most of my comments can be addressed in follow ups, the only one worth fixing before merge is the one about making the temporary file actually random and I'd be totally okay with the easy solution of just appending the unix nanosecond timestamp to it.
The other comments are significant and should be addressed before we release but they don't need to block this PR IMO, so pre-emptively approving!

Thanks :)

Waiting for every tests, then the PR is ready to be merged. 🚀

authors: TomChv slumbering


text:
Update zenith dev guides with incoming breaking changes.

The most important updates here are in anticipation of breaking changes in the next release. There are also some more opinionated cleanups, but for now just leaving the overall structure the same.
The big breaking changes to adapt for are:

dagger mod init/install/etc. moving to be right under dagger
dagger up replaced by chainable dagger call ... up
dag.Host() being replaced with dag.CurrentModule().Source()

The more opinionated tweaks are:

Don't use raw graphql queries, only use dagger call
In Go, avoid use of Optional and instead center on //+optional and //+default pragmas.

One important note: the moving of dagger mod init/install/etc. has not been merged yet (PR here), so depending on how the timing works out may or may not need to modify this update before merging.

Let me know what you think about the opinionated tweaks. If we need more discussion about them but need to release, I can update this PR to only cover the breaking changes and save the rest for later.
Draft until:

[ ] I run through all the commands to double check
[ ] https://github.com/dagger/dagger/pull/6533 is finalized (since it impacts the command updates in here)

Don't use raw graphql queries, only use dagger call

🙏

Just FYI I'm going to update this to not have the changes that move dagger mod init/install/etc. to the top level since we want to merge ASAP and https://github.com/dagger/dagger/pull/6533 is still pending review. If that PR is merged then I'll just send out another update

Doing a manual run through of each guide to double check everything, will merge after

authors: helderco sipsma


text:
[Ordering] add ability to define order constraints within rank

Allows for node order constraints like:
dagre.layout(g, {constraints: [{left: "node-B", right: "node-A"}]})

Addresses: https://github.com/dagrejs/dagre/issues/112, https://github.com/dagrejs/dagre/issues/201, https://github.com/dagrejs/dagre/issues/251, among others
Related PRs: https://github.com/dagrejs/dagre/pull/263, https://github.com/dagrejs/dagre/pull/252
Usage
interface Constraint {
    left: string;
    right: string;
}

interface Options {
    constraints?: Constraint[];
}

function layout(g: graphlib.Graph, opts: Options) {...}

Example
Without constraints:

With constraints:

const g = new dagre.graphlib.Graph({}).setGraph({}).setDefaultEdgeLabel(function () {
    return {}
})
g.setNode("root")
g.setNode("node-A")
g.setNode("node-B")
g.setEdge("root", "node-A")
g.setEdge("root", "node-B")
dagre.layout(g, {constraints: [{left: "node-B", right: "node-A"}]})

Details
I'm following a suggestion made by @cpettitt in https://github.com/dagrejs/dagre-d3/issues/64#issuecomment-52138308
To specify the constraints, I'm following the opts approach used in https://github.com/dagrejs/dagre/pull/263, but open to suggestions.

how does this address #201? im looking for that functionality but dont see how this maps to the ability to incrementally layout a new node to a graph.

@mx2323 I haven't tested it yet, but after calling layout(), take the output ordering of nodes within the same rank (done by looking at their x + y coordinates) and generate pairwise constraints. further calls to layout() w/ these constraints should not create any shuffling, even after adding a new node

Are you sure this addresses #112? My understanding is that this adds node order constraints but that doesn't necessary help with outgoing edges. For example:

Swapping C and D or A and B won't fix the edges by itself. The correct way is to add an extra crossing between either A's outgoing edges or B's outgoing edges.

@branpk ah good point, this won't necessarily solve outgoing edges. My understanding is that this PR fixes the second ask of #112 (within same rank):

In fact, it would be the best if i could constraint nodes order too (position from left to right in top down graph), but as I understand, it is not possible at the moment

Thanks for the callout, hope that clarifies!

@izhan excellent, solved my question. nice

Does any knows a hack to accomplish this?

Could someone please review and merge the open PRs? It would also be great if we could get responses to the open issues. Thank you!

authors: ZahidChandio branpk danyflorez izhan mx2323 zygeilit

repo: dagrejs/dagre


text:
Log non impersonated user

Not sure if this is possible:
I wrote an app that monitors tasks on several servers and I use impersonation to run the service if the user logged into the app is in a certain security group. What I was wondering is if there is a way to put that users name into the task history instead of the impersonated user's name.
Thanks,
Originally posted: 2016-08-16T11:34:10

Task history is controlled by the native scheduler. I know no way of manipulating how or what it puts into the event log.
Originally posted: 2016-08-19T11:01:29

repo: dahall/TaskScheduler


text:
nineoldandroids dependency should be optional.

Since many applications don't support the oldest versions of android, many of them doesn't depend on nineoldandroids library.
This dependency can be optional for applications targeting greater Android API levels.

I agree, this library is not always necessary.

Any word on this?

authors: acosti gmikhail safaorhan

repo: daimajia/AndroidImageSlider


text:
WIP - PR merge 40+42 (l10n + Axe runner Electron adapter)

https://github.com/daisy/ace-gui/pull/40
+
https://github.com/daisy/ace-gui/pull/42

Ace core: https://github.com/daisy/ace/pull/229

This PR has been updated to complete https://github.com/daisy/ace-gui/pull/42
(merge conflicts solved because of l10n + axe-axe-runner combined)
This also upgrades to Electron5, and references local Ace core packages (not published yet)

Because the Ace Core packages have not been published yet, it is essential to use this Ace Core PR in order to build Ace GUI:
https://github.com/daisy/ace/pull/229

repo: daisy/ace-gui


text:
Request: Autodispose subscriptions when disposing an IStreamStore instance.

Problem space
At the moment, when one disposes a stream store instance, subscriptions find out about this fact when they try to read the next page from the specified stream store instance. The end users using the IAllStreamSubscription SubscribeToAll(long? continueAfterPosition, AllStreamMessageReceived streamMessageReceived, AllSubscriptionDropped subscriptionDropped = null, HasCaughtUp hasCaughtUp = null, string name = null) part of the API to set up these subscriptions, get notified about this via the AllSubscriptionDropped callback, which has the following signature delegate void AllSubscriptionDropped(IAllStreamSubscription subscription, SubscriptionDroppedReason reason, Exception exception = null). The SubscriptionDroppedReason is StreamStoreError in this particular case, not Disposed, which is reserved for dropping the subscription itself (AFAICT). In order to figure out whether one should resubscribe, one has to inspect - next to the reason - the exception and figure out whether it is an ObjectDisposedException with an ObjectName property that matches the name of the specific IStreamStore implementation. It should go without saying that this is a bit leaky and difficult to figure out.
In essence, it should be clear and easy to figure out when resubscribing is appropriate and when it is not.
Solution space

IF a stream store were to track and dispose of its subscriptions, the SubscriptionDroppedReason could become Disposed again, since that is effectively what would be going on.
A simpler, short term solution might be to make the SubscriptionDroppedReason less ambiguous, namely:

  public enum SubscriptionDroppedReason
  {
    SubscriptionDisposed,
    StreamStoreDisposed,
    SubscriberError,
    StreamStoreError,
  }

I like. Thanks for writing this up @yreynhout

If I understand you right, when the store is disposed and it disposes of the subscriptions SubscriptionDroppedReason.Disposed is fine? You don't see a need for StreamStoreDisposed even when tracking is done?

Indeed, if tracking and auto dispose is done by the store, we don't need need the short term solution.

Whether the subscription is being disposed implicitly or explicitly seems less interesting.

Agreed. While trivial to do this now, I'll wait for a use case.

authors: damianh yreynhout

repo: damianh/SqlStreamStore


text:
Support proto3 Field Presence

Field presence is a new experimental feature that adds support for optional fields.
TLDR: it works in a somewhat hacky way by representing an optional field with a  oneOf with only one variant.
https://github.com/protocolbuffers/protobuf/blob/master/docs/implementing_proto3_presence.md#satisfying-the-experimental-check

This was implemented in #388.

authors: danburkert theduke

repo: danburkert/prost


text:
EPUB & HTML command with individual functions

Created individual functions for the EPUB and HTML generation and changed to code in those to generate the EPUB and HTML file respectively.
Can't test any of the three commands at the moment due to an issue:
✖ enhancement is not a function
(node:28178) UnhandledPromiseRejectionWarning: TypeError: enhancement is not a function
at forEach.enhancement (.../percollate/index.js:44:3)
You must be working on the repo since I didn't touch that code. Also PDF function is untouched and should have otherwise worked. Anyways, I hope this was the approach you had in mind. 😄

Closing in favor of https://github.com/danburzo/percollate/pull/98

repo: danburzo/percollate


text:
Remove spaces before pry sample code #trivial

🎱

          1 Error

:no_entry_sign:
Please provide a summary in the Pull Request description

  Generated by :no_entry_sign: danger

authors: DangerCI KrauseFx

repo: danger/danger


text:
Removing nap dependency

Fixes #63.
It seems that nap wasn't really used (just imported) or I missed something here :grin:
I also imported faraday in the Gemfile, as we're now using it directly.

Great, I was probably using it before we started using the github gem :+1:

what's with circle ATM?

It did run with success (https://circleci.com/gh/danger/danger/58), but it seems that it didn't update the status for some reason.

Cool cool, this can be rebased and merged then :+1:

authors: marcelofabri orta


text:
Image resize occurring before upload

Hi,
We are using ng-file-upload to do client side image resize and exif rotation.
We have a spinner that is tied into active http requests.
This means that when our users select several large images to upload, then there is a long delay between them selecting upload and the spinner appearing.
Is there a way to receive an event from ng-file-upload for when the user has clicked upload?
Otherwise, would it be better to do resize and file upload together to avoid the large delay before uploading?
Has anyone else found ways around this issue?
Thanks.

Use ngf-before-model-change read the docs and there are already similar issues with answers

authors: JamesTPF danialfarid

repo: danialfarid/ng-file-upload


text:
Change ansible-lint command

Unlike yamllint, when running ansible-lint in the molecule workflow there is no need to specify the current path using . as it should auto-detect files.
It could also make sense to extend the command further with other flags, such as forced colour output. See usage for more examples.

Fixed in #15.

repo: daniel-mizsak/workflows


text:
Complete documentation

The README and generated docs should give the user enough information to fully understand how Telephonist works.

@danielberkompas I've looked at this and your other work with ex_twiml
**I'm wondering, can use this state machine with the SMS verb or are there call specific things in here?`

@cloudbring You could use this with the SMS verb, yes. Do you have a specific use case in mind?

I'm trying to tie SMS messages to an in-browser chat session with JS.
Basically allow the users of the app I'm building to chat with people over
SMS. I was thinking that Elixir and Phoenix's support for channels would be
a good choice for my usecase. Do you agree and would telephonist be up to
the job?
On Sun, May 31, 2015 at 9:35 PM Daniel Berkompas notifications@github.com
wrote:

@cloudbring https://github.com/cloudbring You could use this with the
SMS verb, yes. Do you have a specific use case in mind?
—
Reply to this email directly or view it on GitHub
https://github.com/danielberkompas/telephonist/issues/1#issuecomment-107302606
.

I think Elixir, Phoenix and Twilio would be a good fit for what you're building, but I don't think you need Telephonist for that. Telephonist is primarily intended to help manage inbound phone calls, for example, for a help desk. It's not really needed to handle inbound/outbound SMS.
It sounds like your app would have two main transactions:
1. User sends message from JS chat

Message is sent over websockets to Phoenix channel
App decides what phone number needs to be sent an SMS
Contact Twilio REST API to send an SMS message to that phone number

2. User sends SMS from phone

Message is sent to a Twilio phone number
Twilio posts information about the SMS message, including the number it was sent to, to an endpoint on your Phoenix app
Your app interprets what JS chat this message belongs to, and broadcasts the message on the appropriate Phoenix channel.
Message comes through websockets to JS client
Display to user

Telephonist doesn't fit into this picture. However, another library I wrote, ExTwilio might be useful for the Twilio API calls you'd need to make.

Thanks for the advice! I'm gonna take that to heart and try and build it
out over the next couple of weekends.
I saw ExTwillio. Looks good, can't wait to jump in and start playing
around.
So, I wrote up a little Gist kinda outlining what's in the Phoenix
Ecosystem as of June 2015 (in the context of writing this app) and I list
your Twilio packages (among other things).  Take a look and let me know
what you think and if there's anything that's missing.
j.mp/phoenix_ecosystem_June2015 http://j.mp/phoenix_ecosystem_June2015
Best,
Emmanuel
On Mon, Jun 1, 2015 at 1:29 PM Daniel Berkompas notifications@github.com
wrote:

I think Elixir, Phoenix and Twilio would be a good fit for what you're
building, but I don't think you need Telephonist for that. Telephonist is
primarily intended to help manage inbound phone calls, for example, for a
help desk. It's not really needed to handle inbound/outbound SMS.
It sounds like your app would have two main transactions:

User sends message from JS chat

Message is sent over websockets to Phoenix channel
App decides what phone number needs to be sent an SMS
Contact Twilio REST API to send an SMS message to that phone number

User sends SMS from phone

Message is sent to a Twilio phone number
Twilio posts information about the SMS message, including the number
it was sent to, to an endpoint on your Phoenix app
Your app interprets what JS chat this message belongs to, and
broadcasts the message on the appropriate Phoenix channel.
Message comes through websockets to JS client
Display to user

Telephonist doesn't fit into this picture. However, another library I
wrote, ExTwilio https://github.com/danielberkompas/ex_twilio might be
useful for the Twilio API calls you'd need to make.
—
Reply to this email directly or view it on GitHub
https://github.com/danielberkompas/telephonist/issues/1#issuecomment-107697271
.

authors: cloudbring danielberkompas

repo: danielberkompas/telephonist


text:
Deploy with aws configure profile

How can I use an aws profile already configured? I have tried:
serverless --profile myProfile
and also in the serverless.yml file:
provider:   profile: myProfile
But none seems to work.

The next component credentials can be configured as per https://github.com/serverless/components#credentials.
tl;dr: You'll need a .env file with your access and secret key. Or exported env. variables.


text:
Problem with setup for qaeval

Hi there,
I have a problem setup qaeval. When I run  sacrerouge setup-metric qa-eval, it always shows
Traceback (most recent call last):
  File "/net/nfs.cs/s2-research/wenx/miniconda3/envs/qaeval2/bin/sacrerouge", line 8, in <module>
    sys.exit(main())
  File "/net/nfs.cs/s2-research/wenx/miniconda3/envs/qaeval2/lib/python3.7/site-packages/sacrerouge/__main__.py", line 5, in main
    parser = build_argument_parser()
  File "/net/nfs.cs/s2-research/wenx/miniconda3/envs/qaeval2/lib/python3.7/site-packages/sacrerouge/arguments.py", line 10, in build_argument_parser
    import_module_and_submodules('sacrerouge')
  File "/net/nfs.cs/s2-research/wenx/miniconda3/envs/qaeval2/lib/python3.7/site-packages/sacrerouge/common/util.py", line 101, in import_module_and_submodules
    if path_string and module_finder.path != path_string:
AttributeError: 'zipimport.zipimporter' object has no attribute 'path'

It worked the the first time I installed it several days ago, but it does not work now, when I create a new virtual environment on a new linux machine.
Thanks!

Thanks for raising this issue. Nothing has changed in a long time, so I suspect something about your new environment changed.
What Python version was the previous one you tried? I generally use 3.6, so I guess it is possible that that code does not run with 3.7.

authors: Wendy-Xiao danieldeutsch

repo: danieldeutsch/sacrerouge


text:
Bar Chart Bars Disappears On Zoom And Highlight Bars Don't Match

Figured best way to explain would be to show a video of this occurring:
https://vimeo.com/131596405

I think I figured out the issue. The yValues need to be sorted by xIndex? Seems to work when sorted.

repo: danielgindi/ios-charts


text:
cuda in master-branch

Hi,
is there a reason for nvidia "cuda" being used in the master-branch now?
The "latest"-version pulled from Dockerhub does not work on my generic x86-VMs anymore and the image is four times bigger now.
Should I just keep the former latest image (a72ec1fff4c6) running or are there any plans to bring out a new version without cuda?
Thanks a lot for your work.

Sorry my fault, its rebuilding on the hub

Thanks. Is the updated image already on the hub? When I pull, I still get the 4.04 GB one:
root@host:/var/docker/experimental# docker pull danielguerra/ubuntu-xrdp:latest
...
root@host:/var/docker/experimental# docker images | grep xrdp
danielguerra/ubuntu-xrdp   latest              888d980e8116        6 weeks ago         4.04GB
danielguerra/ubuntu-xrdp   <none>              a72ec1fff4c6        2 months ago        957MB

Wrong merge action !

It seems that there are still nvidia-components included :/.
root@host:/var/docker/experimental# docker history 2ecf7cb88c9a --no-trunc
IMAGE                                                                     CREATED             CREATED BY                                                                                SIZE                COMMENT
sha256:2ecf7cb88c9a2f643893a5ae55177cfa929fa79a0a26327e4c40dea7fe361e91   24 minutes ago      /bin/sh -c #(nop)  CMD ["supervisord"]                                                                                0B
<missing>                                                                 24 minutes ago      /bin/sh -c #(nop)  ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]                                                                                0B
<missing>                                                                 24 minutes ago      /bin/sh -c #(nop)  EXPOSE 22 3389 9001                                                                                0B
<missing>                                                                 24 minutes ago      /bin/sh -c #(nop)  VOLUME [/etc/ssh /home]                                                                                0B
<missing>                                                                 24 minutes ago      /bin/sh -c dpkg -i ./libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb                                                                                348MB
<missing>                                                                 24 minutes ago      /bin/sh -c wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb                                                                                137MB
<missing>                                                                 24 minutes ago      /bin/sh -c dpkg -i ./libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb                                                                                351MB
<missing>                                                                 24 minutes ago      /bin/sh -c wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb                                                                                149MB
<missing>                                                                 24 minutes ago      /bin/sh -c apt-get update && apt-get install wget -y                                                                                29.2MB
<missing>                                                                 25 minutes ago      /bin/sh -c cp -r /etc/ssh /ssh_orig &&   rm -rf /etc/ssh/* &&   rm -rf /etc/xrdp/rsakeys.ini /etc/xrdp/*.pem                                                                                561kB
<missing>                                                                 25 minutes ago      /bin/sh -c echo "ubuntu    ALL=(ALL) ALL" >> /etc/sudoers                                                                                779B
<missing>                                                                 25 minutes ago      /bin/sh -c echo "ubuntu:ubuntu" | /usr/sbin/chpasswd                                                                                865B
<missing>                                                                 25 minutes ago      /bin/sh -c useradd -m -s /bin/bash -g ubuntu ubuntu                                                                                399kB
<missing>                                                                 25 minutes ago      /bin/sh -c addgroup ubuntu                                                                                2.41kB
<missing>                                                                 25 minutes ago      /bin/sh -c rm -rf /etc/xrdp/rsakeys.ini /etc/xrdp/*.pem                                                                                0B
<missing>                                                                 25 minutes ago      /bin/sh -c echo "xfce4-session" > /etc/skel/.Xclients                                                                                14B
<missing>                                                                 25 minutes ago      /bin/sh -c locale-gen en_US.UTF-8                                                                                1.69MB
<missing>                                                                 25 minutes ago      /bin/sh -c sed -i "s/xrdp\/xorg/xorg/g" /etc/xrdp/sesman.ini                                                                                2.47kB
<missing>                                                                 25 minutes ago      /bin/sh -c sed -i "s/console/anybody/g" /etc/X11/Xwrapper.config                                                                                630B
<missing>                                                                 25 minutes ago      /bin/sh -c cp /etc/X11/xrdp/xorg.conf /etc/X11                                                                                1.45kB
<missing>                                                                 25 minutes ago      /bin/sh -c #(nop) ADD dir:700ecedba55dda79f75129715c09b64888a095a78159f27ec8767be12eca1067 in /etc/xdg/autostart                                                                                212B
<missing>                                                                 25 minutes ago      /bin/sh -c #(nop) ADD dir:e331040aacb6dfed9776d311cc480fbc96ae9ed364db49558ac3b43b041a66a5 in /etc                                                                                1.61kB
<missing>                                                                 25 minutes ago      /bin/sh -c #(nop) ADD dir:0a3a61d5b9f5f394d81cea9fff97af4df6cfc6ba1a018f0a4d0d20bebdbb5746 in /usr/bin                                                                                2.23kB
<missing>                                                                 25 minutes ago      /bin/sh -c #(nop) COPY file:4d0168756e544ca209adba02c288d03b5ad919c933c91cd5f7be397f238412e2 in /var/lib/xrdp-pulseaudio-installer                                                                                24.9kB
<missing>                                                                 25 minutes ago      /bin/sh -c #(nop) COPY file:fc80964263b32c056ebb63a91784fc2fdfb92da3b202e2c7334862f2bf840860 in /var/lib/xrdp-pulseaudio-installer                                                                                24.5kB
<missing>                                                                 25 minutes ago      /bin/sh -c apt update && apt -y full-upgrade && apt install -y   ca-certificates   less   locales   openssh-server   pulseaudio   sudo   supervisor   uuid-runtime   vim   wget   xauth   xautolock   xorgxrdp   xprintidle   xrdp   &&   rm -rf /var/cache/apt /var/lib/apt/lists &&   mkdir -p /var/lib/xrdp-pulseaudio-installer                                                                                595MB
<missing>                                                                 27 minutes ago      /bin/sh -c #(nop)  ENV DEBIAN_FRONTEND=noninteractive                                                                                0B
<missing>                                                                 6 days ago          /bin/sh -c #(nop)  CMD ["/bin/bash"]                                                                                0B
<missing>                                                                 6 days ago          /bin/sh -c mkdir -p /run/systemd && echo 'docker' > /run/systemd/container                                                                                7B
<missing>                                                                 6 days ago          /bin/sh -c set -xe   && echo '#!/bin/sh' > /usr/sbin/policy-rc.d  && echo 'exit 101' >> /usr/sbin/policy-rc.d  && chmod +x /usr/sbin/policy-rc.d   && dpkg-divert --local --rename --add /sbin/initctl  && cp -a /usr/sbin/policy-rc.d /sbin/initctl  && sed -i 's/^exit.*/exit 0/' /sbin/initctl   && echo 'force-unsafe-io' > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup   && echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' > /etc/apt/apt.conf.d/docker-clean  && echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' >> /etc/apt/apt.conf.d/docker-clean  && echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' >> /etc/apt/apt.conf.d/docker-clean   && echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/docker-no-languages   && echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/docker-gzip-indexes   && echo 'Apt::AutoRemove::SuggestsImportant "false";' > /etc/apt/apt.conf.d/docker-autoremove-suggests   745B
<missing>                                                                 6 days ago          /bin/sh -c [ -z "$(apt-get indextargets)" ]                                                                                987kB
<missing>                                                                 6 days ago          /bin/sh -c #(nop) ADD file:5c125b7f411566e9daa738d8cb851098f36197810f06488c2609074296f294b2 in /                                                                                63.2MB

Now things look good again, thanks!
root@host:/var/docker/experimental# docker images | grep xrdp
danielguerra/ubuntu-xrdp   latest              3809bc1ef2f0        3 hours ago         966MB
danielguerra/ubuntu-xrdp   <none>              a72ec1fff4c6        2 months ago        957MB


text:
first event no callback

after subscribed channel, the first event not callback.

Which event are you looking for?

I think the channel doesn't subscribe for some reason, @danielrhodes. If so, I have the same issue many times

First of all, did you retain the channel somewhere? I kind of want to change the design of the library somewhat to make this not necessary as I used another realtime library and was unhappy with having a separate channel object.

@danielrhodes Actually having a separate Channel object is great. In our app we have Websocket object as a singleton at all times, and create Channel's on demand, whenever user needs them. This flow makes sense also because Starscream library seems to fail to cleanup properly, and crash when we recreate Websocket object =)

I am not, @danielrhodes. I have it like

    var webSocketsRoomChannel: Channel {
        let channelIdPayload = ["channel_id" : viewModel.channel?.identifier]
        let channel = SocketRouter.shared.client.create(WebSocketEventsChannel.channel, identifier: channelIdPayload, autoSubscribe: true, bufferActions: true)
        return channel
    }

Server-side to send the event changed to asynchronous, it is solved.

authors: Chakery DenHeadless danielrhodes danipralea

repo: danielrhodes/Swift-ActionCableClient


text:
Optimizations > Cached Descriptor Sets, Implied Multiple Frames in Flight, Fencing for faster perf 2X

Hi Everyone.
This PR is a followup to a comment I left a few months ago, visible here https://github.com/memononen/nanovg/issues/614#issuecomment-1426870962
I made some optimizations that have doubled the frame-rate of the example_vulkan demo on my machine. These changes do not break compatibility with the older implementations either, specifically with example_vulkan_min_no_glfw.
The changes I made are listed below:

Support for multiple command buffers, specifically one per swap-chain image / buffer
Caching of descriptor sets, removing the need to create new ones per draw func or to call vkResetDescriptorPool per frame.
Under example_vulkan, using vkWaitForFences to control rendering as opposed to vkQueueWaitIdle (seems to be the biggest perf booster). This change also has implied "multiple frames in flight" as dictated by the swap-chain image count.
Using persisted mapped buffers via VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT instead of VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT , allows to skip calls to vkMap/UnmapMemory per frame

The best way to observe the differences in performance is to run example_vulkan and example_vulkan_min_no_glfw separately. On my system ( RX 6800, Ryzen R7 7700 ) the example_vulkan demo has an average frame time of 0.80 ms (1250 fps) as opposed to the example_vulkan_min_no_glfw demo with 1.98 ms (505 fps). For reference example-gl3 runs at 0.55 ms (1818 fps), but this is a big improvement as example_vulkan is now just 31% slower as opposed to 72% slower for example_vulkan_min_no_glfw.
The main difference in terms of setup is:

Treating cmd_buffer as an array
Setting swapchainImageCount and * currentBuffer within the VKNVGCreateInfo init.

Open for comments and feedback, particular around tests on Nvidia, Intel and Apple Silicon hardware.

Doing additional tests after enabling validations. Caught a few bugs and working on them, however it's clear that a lot of the performance issues come down to synchronization and having multiple frames in flight/processing. Rendering works with no issues, however I feel the validation warnings need to be addressed.

Happy to say all validation issues and bugs have been addressed. Performance is still maintained at 0.80 to 0.78ms locally. Feel free to provide feedback and thanks for laying the foundations :)

Absolutely crazy amount of effort! Wow!
Thank you for doing it!
il check it latter today/tomorrow

Sorry for delay, I said "will check" I still did not, will do during this week probably next days.

These changes do not break compatibility with the older implementations either, specifically with example_vulkan_min_no_glfw.

on Linux I can not build your repo after cloning, there few mistake in code example/example_vulkan_min_no_glfw.c, I think you change and not tested Linux version
can you change your example/example_vulkan_min_no_glfw.c to this fixed, in attachment
there 3 changes at 450-480 lines arroung VK_USE_PLATFORM_XCB_KHR
example_vulkan_min_no_glfw.zip

About performance:
Nvidia - absolutely no change in performance, your updated repo - it is exact same to this my original without your changes, I opened multiple window, make them fullscreen, pressed Space to test - everything is exact same.
And Nvidia performance with this is "same bad" as before about 50% slower than OpenGL. Nvidia drop below 60FSP on fullscreen with Space-clicked.
But maybe this is because I use Wayland with Nvidia being second GPU and Nvidia performance just "downgraded" because Nvidia driver being bad...
AMD - huge improvement on this repository-examples. from ~300fps original to 1200fps your improved.
it is even 2x more fps than "multiple frames in flight" example.
Now il check "multiple frames in flight"... I thought it will be faster...

If I understand correctly - you integrated "multiple frames in flight" to nanovg_vk.h but you did it more correctly than I did in my example, you did it with cache and and memory optimizations. Looks good.
You also keep compatibility with "minimal example that use single frame".
I need to remake my external examples with integration, il do it latter.
Il wait for you reply.
Confirm if you do this fixes or I will after accepting your pull request:

Linux fix in https://github.com/danilw/nanovg_vulkan/pull/7#issuecomment-1604170006
I also saw g++ complaining about this:
https://github.com/SubiyaCryolite/nanovg_vulkan/blob/feature/use-persistent-mapped-memory/src/nanovg_vk.h#L1504 arguments of vknvg_UpdateBuffer :
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
when:
static void vknvg_UpdateBuffer(... VkMemoryPropertyFlagBits memory_type ...)

I think it may work incorrectly because expected VkMemoryPropertyFlagBits and VkMemoryPropertyFlagBits is typedef enum VkMemoryPropertyFlagBits
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryPropertyFlagBits.html
And your value result of VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT may not go correctly.
I think this need to be fixed, by replacing VkMemoryPropertyFlagBits memory_type with uint32_t type or VkFlags type in chain down to vknvg_memory_type_from_properties.
I have not tested it on Windows, I assume it works.
I tested with validation layers on Nvidia and AMD - no errors. (there is 1 error when you close example_vulkan something is not cleaned - but it is same as in my original, I just keep it as it is this is not important)
I also saw bug with resize - crash on resize very common, on AMD GPU only, but my minimal "vulkan shader app" that is source of "no_glfw" example does not crash here, so this need investigation...
There no validation errors on crash it just segfault, crash message is this:
example-vk: /home/danil/2021_vulkan_projects/not_clean/nanovg_vulkan/example/example_vulkan.c:66: prepareFrame: Assertion `res == VK_SUCCESS' failed.

or
example-vk: /home/danil/2021_vulkan_projects/not_clean/nanovg_vulkan/example/example_vulkan.c:171: submitFrame: Assertion `res == VK_SUCCESS' failed.

But same bug happening in this my original version, not your bug.

If I understand correctly - you integrated "multiple frames in flight" to nanovg_vk.h but you did it more correctly than I did in my example, you did it with cache and and memory optimizations. Looks good. You also keep compatibility with "minimal example that use single frame".
I need to remake my external examples with integration, il do it latter.
Il wait for you reply.
Confirm if you do this fixes or I will after accepting your pull request:
1. Linux fix in [Optimizations > Cached Descriptor Sets, Implied Multiple Frames in Flight, Fencing for faster perf 2X #7 (comment)](https://github.com/danilw/nanovg_vulkan/pull/7#issuecomment-1604170006)

2. I also saw g++ complaining about this:
   https://github.com/SubiyaCryolite/nanovg_vulkan/blob/feature/use-persistent-mapped-memory/src/nanovg_vk.h#L1504 arguments of `vknvg_UpdateBuffer` :
   `VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT`
   when:
   `static void vknvg_UpdateBuffer(...` **`VkMemoryPropertyFlagBits memory_type`** `...)`

I think it may work incorrectly because expected VkMemoryPropertyFlagBits and VkMemoryPropertyFlagBits is typedef enum VkMemoryPropertyFlagBits https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryPropertyFlagBits.html
And your value result of VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT may not go correctly.
I think this need to be fixed, by replacing VkMemoryPropertyFlagBits memory_type with uint32_t type or VkFlags type in chain down to vknvg_memory_type_from_properties.
I have not tested it on Windows, I assume it works. I tested with validation layers on Nvidia and AMD - no errors. (there is 1 error when you close example_vulkan something is not cleaned - but it is same as in my original, I just keep it as it is this is not important)
I also saw bug with resize - crash on resize very common, on AMD GPU only, but my minimal "vulkan shader app" that is source of "no_glfw" example does not crash here, so this need investigation... There no validation errors on crash it just segfault, crash message is this:
example-vk: /home/danil/2021_vulkan_projects/not_clean/nanovg_vulkan/example/example_vulkan.c:66: prepareFrame: Assertion `res == VK_SUCCESS' failed.

or
example-vk: /home/danil/2021_vulkan_projects/not_clean/nanovg_vulkan/example/example_vulkan.c:171: submitFrame: Assertion `res == VK_SUCCESS' failed.

But same bug happening in this my original version, not your bug.

Thanks for the feedback. I'll be sure to look into these issues in the upcoming days.
Unfortunately I only have access to an AMD GPU (Windows) and my M1 Macbook Pro. So I may not be able to test on Nvidia anytime soon.
Thanks again.

Unfortunately I only have access to an AMD GPU (Windows) and my M1 Macbook Pro. So I may not be able to test on Nvidia anytime soon.

I mean - its fine, il test Linux and Nvidia

I see your updates, will check tomorrow.

@SubiyaCryolite you missed one Linux fix:
https://github.com/SubiyaCryolite/nanovg_vulkan/blob/feature/use-persistent-mapped-memory/example/example_vulkan_min_no_glfw.c#L486
https://github.com/SubiyaCryolite/nanovg_vulkan/blob/feature/use-persistent-mapped-memory/example/example_vulkan_min_no_glfw.c#L506
change fb->current_frame to fb.current_frame
I also checked dynamic UI - seems work, so only crash with resize - il fix it after, its this project bug.
I will accept this pull request after you fix this 2 lines I mention above.

Just addressed your last comment, thanks for catching those issues.

Thank you again for all this changes, huge improvement and huge effort from you. Much appreciated!
For future real-time communication if you need - you can join my discord, link in project description.

authors: SubiyaCryolite danilw

license: Zlib


text:
Feat: Add support for Terraform?

Would anybody be interested in that?

Here are the features I anticipated to work, but they did not. I have included the code example used for testing. I am happy to support the Terraform aspect if possible.
Features:
Auto-completion: Provides intelligent auto-completion for IAM actions as you type.
Documentation Links: Quick access to AWS documentation for each IAM action directly from the snippet.
Smart Hover Information: When hovering over wildcard actions, displays all matching IAM actions, providing a comprehensive view of the permissions covered.
#---examplecode---
resource "aws_iam_policy" "policy" {
name        = "test_policy"
path        = "/"
description = "My test policy"
Terraform's "jsonencode" function converts a
Terraform expression result to valid JSON syntax.
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = [
"ec2:Describe*",
"ec2:"
    ]
    Effect   = "Allow"
    Resource = "*"
  },
]

})
}

Awesome Thanks

Awesome thanks

authors: ValAug charisad dannysteenman


text:
Format

By giving a country code and business id, a function could return a VAT ID formatted to international format.
Examples:
format('FI', '1234567-1') would return FI12345671
format('SE', '556697-6009') would return SE556697600901

I like this idea @artur-gajewski. Will take a while before I have time to take a stab at it though, PR's are welcome & appreciated!

authors: artur-gajewski dannyvankooten


text:
uninitialized constant Spice (NameError)

Hi,
I am attempting the basic connection script to my chef server, although I get an error:
./chef_get.rb:7: uninitialized constant Spice (NameError)

I have tried using straight gem install, and building the gem from git directly. I have specified the gem and the version in the code but same error.
Please help,
Bryan
#!/usr/bin/env ruby

require 'rubygems'
#gem 'spice', '= 0.7.3'
gem 'spice'

Spice.server_url = "http://chef.domain.com:4000"
Spice.client_name = "chef-validator"
Spice.key_file = "/etc/chef/client.pem"
Spice.connect!

root@tools1:~# ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
root@tools1:~# gem -v
1.8.12

root@tools1:~# ls -lha /usr/lib/ruby/gems/1.8/gems/spice-0.7.3/
total 64K
drwxr-xr-x   4 root root 4.0K 2011-12-05 17:40 .
drwxr-xr-x 137 root root 4.0K 2011-12-05 17:40 ..
-rw-r--r--   1 root root  445 2011-12-05 17:40 CHANGELOG.md
-rw-r--r--   1 root root   55 2011-12-05 17:40 .document
-rw-r--r--   1 root root  391 2011-12-05 17:40 Gemfile
-rw-r--r--   1 root root   78 2011-12-05 17:40 .gitignore
-rw-r--r--   1 root root  261 2011-12-05 17:40 Guardfile
drwxr-xr-x   3 root root 4.0K 2011-12-05 17:42 lib
-rw-r--r--   1 root root 1.1K 2011-12-05 17:40 LICENSE.txt
-rw-r--r--   1 root root  433 2011-12-05 17:40 Rakefile
-rw-r--r--   1 root root 3.7K 2011-12-05 17:40 README.md
-rw-r--r--   1 root root   21 2011-12-05 17:40 .rspec
drwxr-xr-x   4 root root 4.0K 2011-12-05 17:43 spec
-rw-r--r--   1 root root 1.5K 2011-12-05 17:40 spice.gemspec
-rw-r--r--   1 root root  111 2011-12-05 17:40 TODO.md
-rw-r--r--   1 root root  385 2011-12-05 17:40 .watchr

root@tools1:~/spice# gem build spice.gemspec
  Successfully built RubyGem
  Name: spice
  Version: 0.7.3
  File: spice-0.7.3.gem
root@tools1:~/spice# gem install spice-0.7.3.gem
Successfully installed spice-0.7.3
1 gem installed
Installing ri documentation for spice-0.7.3...
Installing RDoc documentation for spice-0.7.3...

Hey @tightwork, I'm able to duplicate your issue with the code you provided. The trouble is that you are calling gem 'spice' when you should be calling require 'spice'The former is used to configure RubyGems, while the latter will actually import the library into the current environment.
#!/usr/bin/env ruby

require 'rubygems'
#gem 'spice', '= 0.7.3'
require 'spice'

Spice.server_url = "http://chef.domain.com:4000"
Spice.client_name = "chef-validator"
Spice.key_file = "/etc/chef/client.pem"
Spice.connect!

Cool, good to hear! I'll close this out, but if you need any help just let me know.

authors: danryan tightwork

repo: danryan/spice


text:
Only enable dithering feature of ACM

On surface pro 9, enabling ACM makes gradients smoother and the display’s color depth is “8-bit with dithering.” I am on 11th gen intel (surface laptop go 2) and my display is already reasonably color accurate and not wide gamut but I want the smoother gradients that come from dithering. Is that possible?

It is possible to enable ACM without ICC profiles, which will use EDID data for color transform and likely result in an identity transform.

authors: dantmnf perrinpagess

license: Unlicense


text:
901 inner join and semi join with result cardinality hint

Enhance Join Operations with Customizable Result Size Allocation

PR Description
Enhancements to Join Operations
This update introduces a new optional parameter, numRowRes, to the InnerJoin and SemiJoin DaphneDSL Operations, enabling precise control over result size allocation.  Addresses issue #901.
Key Changes:

Kernel changes:

innerJoin:

If numRowRes = -1, the result size defaults to numRowRhs * numRowLhs (cartesian product).
Otherwise, the result size is defined by numRowRes.

semiJoin:

If numRowRes = -1, the result size defaults to numRowLhs.
Otherwise, the result size is defined by numRowRes.

DaphneDSL Updates:

numRowRes is now an optional argument for innerJoin and semiJoin.
Defaults to -1 if not provided.

DaphneIR Adjustments:

numRowRes is now a mandatory argument for InnerJoinOp and SemiJoinOp.

Implementation Updates:

Modified DaphneDSLBuiltins.cpp to set default values for numRowRes.
Updated SQLVisitor.cpp to ensure compatibility by passing -1  as numRowRes.
Adjusted kernels.json to reflect the new parameter for relevant operations.

Testing:

Added script-level test cases to validate correct behavior across various scenarios.

Bug Fixes

Resolved issues in CastScar, CastObj, and EwBinaryObjSca kernel functions, where string values were not handled correctly during type casting.

I committed the changes not directly related to the topic of this PR in commit a3748141adc98d0544416492b04c48feb3b31c24.

authors: pdamme saminbassiri

repo: daphne-eu/daphne


text:
❌  stat /home/codespace/.dapr/components: no such file or directory

I'm following the quickstart: Service Invocation & I opened the sample in a dev container.
I'm able to build the project:

codespace ➜ .../service_invocation/csharp/http/order-processor (master ✗) $ dotnet build
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:06.24

But when I try to run the app, it can't find the components directory:

codespace ➜ .../service_invocation/csharp/http/order-processor (master ✗) $ dapr run --app-port 7001 --app-id order-processor --app-protocol http --dapr-http-port 3501 -- dotnet run
❌  stat /home/codespace/.dapr/components: no such file or directory

I'm guessing the components folder is there in the dev container just not under that path? 🤔🤷♂

it happens the same to me. I have installed dapr using brew

This sounds like an issue with the CLI, rather than the dev container, to me? If the ~/.dapr/components folder doesn't exist, it should probably not throw an error.

@mukundansundar what do you think?

@spottedmahn could you give some details on which devcontainer was used?
@ItalyPaleAle It seems that that folder is not present ... And it should throw and error IMO since daprd will try to read from given location

authors: Eitol ItalyPaleAle mukundansundar spottedmahn

repo: dapr/dapr


text:
Refactor script to check for registry in E2E test

Refactor script to check for E2E registry:
$ tests/test-infra/wait_azure_registry.sh  daprtests2
The resource with name 'daprtests2' and type 'Microsoft.ContainerRegistry/registries' could not be found in subscription 'Dapr Tests (38875a89-0178-4f27-a141-dc6fc01f183d)'.
Azure Container Registry not ready yet: sleeping for 20 seconds
^C
$ tests/test-infra/wait_azure_registry.sh  daprtests
"/subscriptions/38875a89-0178-4f27-a141-dc6fc01f183d/resourceGroups/dapr-test/providers/Microsoft.ContainerRegistry/registries/daprtests"
$ echo $?
0

Please reference the issue this PR will close: N/A
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

I totally get the value of using scripts. The downside however is that when we trigger the pipelines, they always run the pipeline from the master branch, but the scripts are loaded from the repo at the version that is cloned.
For example, say that this gets merged and then you want to run the E2E pipeline on the release-1.8 branch. The pipeline will always come from master, but then the pipeline does a  “git checkout”  for the “release-1.8” branch, which does not have the scripts.
If we go down this path of relying on external scripts, we should have another pipeline to keep other branches in sync.

I totally get the value of using scripts. The downside however is that when we trigger the pipelines, they always run the pipeline from the master branch, but the scripts are loaded from the repo at the version that is cloned.
For example, say that this gets merged and then you want to run the E2E pipeline on the release-1.8 branch. The pipeline will always come from master, but then the pipeline does a “git checkout” for the “release-1.8” branch, which does not have the scripts.
If we go down this path of relying on external scripts, we should have another pipeline to keep other branches in sync.

I think we should add the scripts on-demand once we need to run this workflow on another branch.

Should the perf test workflow be updated too? https://github.com/dapr/dapr/blob/master/.github/workflows/dapr-perf.yml#L219

Should the perf test workflow be updated too? https://github.com/dapr/dapr/blob/master/.github/workflows/dapr-perf.yml#L219

There is less of a demand for that because we don't have the instability with ARM64 there.

authors: ItalyPaleAle artursouza


text:
.NET 5 Support

Hello!
We're looking forward to use Dapr in one of our proof-of-concepts.
I am however unable to ascertain whether an .NET 5 app is able to consume Dapr packages - my bad, it's probably written in caps somewhere but I haven't found it.
Thank you

@rcollina I don't think it's written explicitly anywhere, but it's by design. In .NET, you always can reference an assembly compiled in older .NET versions. The opposite is not feasible most of the time.

@karoldeland so netcoreapp3.1 deps can be use in a net50 application.
That wasn’t clear for me until now - thank you. I’ve been using .NET Standard so far for libs and I thought the compatibility story was limited to that.
Thank you again

@rcollina - yes you can you absolutely use the SDK with .NET 5. We already run .NET 5 in tests.
Please let us know if you encounter any issues!

authors: karoldeland rcollina rynowak

repo: dapr/dotnet-sdk


text:
Add multi-app run file for Dotnet pubsub quickstarts

Add a multi-app run configuration file to the SDK and HTTP pubsub quickstarts in Dotnet to start both order-processor and checkout apps at the same time.
Quickstarts:

[ ] HTTP: https://github.com/dapr/quickstarts/tree/master/pub_sub/csharp/http
[ ]  SDK: https://github.com/dapr/quickstarts/tree/master/pub_sub/csharp/sdk

this was resolved here: #874

authors: alicejgibbons hhunter-ms

repo: dapr/quickstarts


text:
🛑 FediFinder is down

In 7a31579, FediFinder (https://finder.dariox.club) was down:

HTTP code: 0
Response time: 0 ms

Resolved: FediFinder is back up in dd8966b after 5 minutes.

repo: darioxmastodon/status


text:
Exit code 1 returned after yarn dev

This is what was returned after running "yarn dev":
$ concurrently 'cd client && yarn start' 'cd server && yarn dev'
[0] ''cd' is not recognized as an internal or external command,
[0] operable program or batch file.
[1] 'client' is not recognized as an internal or external command,
[1] operable program or batch file.
[0] 'cd exited with code 1
[1] client exited with code 1
error Command failed with exit code 1.

I haven't been able to fully install this on localhost or on a server with shared webhosting.

Hey @teganish, thanks for reporting this. Can you provide system info?

What kind of system info?

authors: alanfriedman teganish


text:
any progress yet?

Hi, good to know there is a repo about Imagic. Is there any code or checkpoint you are releasing?

Hi @jimmieliu , thanks for commenting. Currently we are still in the phase of preprocessing the data for it. We won't be able to release the code or the checkpoints even after the training is complete

oh, ok. better knowing, thx


text:
Not found: 'package:equatable/equatable.dart'

What happened?
DartPad can not compile code with equatable package
Steps to reproduce problem
Just import equatable package
Additional info
Browser
Browser: Firefox
Version: 104.0 (64-bit)
No browser extensions & plugins.
Console errors
XHRPOSThttps://stable.api.dartpad.dev/api/dartservices/v2/compile
[HTTP/2 400 Bad Request 755ms]

GETwss://ff.kis.v2.scr.kaspersky-labs.com/7D8B79A2-8974-4D7B-A76A-F4F29624C06BEKJxGTsPyQmkXikgPvOuevsWhA3plspcECghnCzrtw1lxqj2i44zxO3cZbxD8YARG6mzW4DMALrzUfuV1NcHeg/websocket?url=https://dartpad.dev/scripts/frame_dark.html&nocache=1662713630711
[HTTP/1.1 400  6ms]

XHRGEThttps://ff.kis.v2.scr.kaspersky-labs.com/7D8B79A2-8974-4D7B-A76A-F4F29624C06BEKJxGTsPyQmkXikgPvOuevsWhA3plspcECghnCzrtw1lxqj2i44zxO3cZbxD8YARG6mzW4DMALrzUfuV1NcHeg/init?url=https://dartpad.dev/scripts/frame_dark.html&plugins=wnt&wsm&kpm&ua&abn&abn_shadow&cb&xhr_content&data={"data":[{"plugin":"wnt","parameters":"{\"referrer\":\"https://dartpad.dev/?\"}"},{"plugin":"wsm","parameters":"{\"referrer\":\"https://dartpad.dev/?\",\"stubId\":\"\"}"},{"plugin":"abn","parameters":"{\"isCssUrlInjected\":false}"},{"plugin":"abn_shadow","parameters":"{\"isCssUrlInjected\":false}"},{"plugin":"xhr_content","parameters":"{\"referrer\":\"https://dartpad.dev/?\"}"}]}&isTopLevel=false&nocache=1bdcd
[HTTP/2 400 Bad Request 0ms]

Firefox не может установить соединение с сервером wss://ff.kis.v2.scr.kaspersky-labs.com/7D8B79A2-8974-4D7B-A76A-F4F29624C06BEKJxGTsPyQmkXikgPvOuevsWhA3plspcECghnCzrtw1lxqj2i44zxO3cZbxD8YARG6mzW4DMALrzUfuV1NcHeg/websocket?url=https%3A%2F%2Fdartpad.dev%2Fscripts%2Fframe_dark.html&nocache=1662713630711. main.js:1196:32
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://ff.kis.v2.scr.kaspersky-labs.com/7D8B79A2-8974-4D7B-A76A-F4F29624C06BEKJxGTsPyQmkXikgPvOuevsWhA3plspcECghnCzrtw1lxqj2i44zxO3cZbxD8YARG6mzW4DMALrzUfuV1NcHeg/init?url=https%3A%2F%2Fdartpad.dev%2Fscripts%2Fframe_dark.html&plugins=wnt%26wsm%26kpm%26ua%26abn%26abn_shadow%26cb%26xhr_content&data=%7B%22data%22%3A%5B%7B%22plugin%22%3A%22wnt%22%2C%22parameters%22%3A%22%7B%5C%22referrer%5C%22%3A%5C%22https%3A%2F%2Fdartpad.dev%2F%3F%5C%22%7D%22%7D%2C%7B%22plugin%22%3A%22wsm%22%2C%22parameters%22%3A%22%7B%5C%22referrer%5C%22%3A%5C%22https%3A%2F%2Fdartpad.dev%2F%3F%5C%22%2C%5C%22stubId%5C%22%3A%5C%22%5C%22%7D%22%7D%2C%7B%22plugin%22%3A%22abn%22%2C%22parameters%22%3A%22%7B%5C%22isCssUrlInjected%5C%22%3Afalse%7D%22%7D%2C%7B%22plugin%22%3A%22abn_shadow%22%2C%22parameters%22%3A%22%7B%5C%22isCssUrlInjected%5C%22%3Afalse%7D%22%7D%2C%7B%22plugin%22%3A%22xhr_content%22%2C%22parameters%22%3A%22%7B%5C%22referrer%5C%22%3A%5C%22https%3A%2F%2Fdartpad.dev%2F%3F%5C%22%7D%22%7D%5D%7D&isTopLevel=false&nocache=1bdcd. (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»). Код состояния: 400.

Machine
Operating system: Windows 10 corporate
Version: 21H2
Code
import 'package:equatable/equatable.dart';

class Foo extends Equatable {
  final int id;

  const Foo(this.id);

  @override
  List<Object?> get props => [id];
}

void main() {
  const f = Foo(1);
}

DartPad's output
Error compiling to JavaScript:
Info: Compiling with sound null safety
Error: Couldn't resolve the package 'equatable' in 'package:equatable/equatable.dart'.
lib/main.dart:1:8:
Error: Not found: 'package:equatable/equatable.dart'
import 'package:equatable/equatable.dart';
       ^
lib/main.dart:3:19:
Error: Type 'Equatable' not found.
class Foo extends Equatable {
                  ^^^^^^^^^
Error: Compilation failed.

I suspect @parlough fixed this one a while back:
import 'package:equatable/equatable.dart';

class Foo extends Equatable {
  final int id;

  const Foo(this.id);

  @override
  List<Object?> get props => [id];
}

void main() {
  const f = Foo(1);
  print(f);
}

produces:
Foo(1)

repo: dart-lang/dart-pad


text:
update mobile UI to polymer 1.0

fix #444
@devoncarew @lukechurch
I think I lost a couple of animation, riddles etc, but the basic functionality should work the same as in our 0.5 version. There is a lot changed, so there are probably a couple of new bugs that I haven't catched yet.
I have changed it so that the node structure is build in mobile.html, in that way I could easier debug, understand what was going on etc. If there is some reason to prefer having the nodes build in mobile.dart, I could change this back of course.
Some things are probably not done in the cleanest way possible. I probably will look at this code a couple of more times, trying to look for nicer solutions, but at least it all works :)

Awesome! Very comprehensive overhaul!
Can you change this to be a PR into a polymer branch (instead of master)? I'd like to be able to iterate on this before we pull it into the main branch.

Also, can you attach a screenshot of the UI (for posterity). And I see one analysis warning here:
[info] The value of the field '_polymer' is not used at lib/polymer/polymer.dart, line 15.

Can you change this to be a PR into a polymer branch (instead of master)? I'd like to be able to iterate on this before we pull it into the main branch

I don't know what you mean with this. It is now in my kasperpeulen:polymer1.0 branch, do you want me to merge it to some dart-lang:polymer branch ? If so, I think I can't create such a branch for dart-lang.

Also, can you attach a screenshot of the UI (for posterity).

see also kasperpeulen.github.io/dart-pad/mobile.html

[info] The value of the field '_polymer' is not used at lib/polymer/polymer.dart, line 15.

I don't use this field anymore, but I thought that it could be useful in the future. Maybe comment it out ?

I don't use this field anymore, but I thought that it could be useful in the future. Maybe comment it out ?

sgtm

OK, I pushed your current branch to https://github.com/dart-lang/dart-pad/tree/polymer. Let's work off that one, and plan to merge it to master when we're happy with it. Sound good?

I guess I can close this one than @devoncarew

authors: devoncarew kasperpeulen


text:
test coverage for formatter

possibly mentioned in another issue, but I thought I'd file an issue for it

done

repo: dart-lang/dart-services


text:
@ReferenceProperty()

I was reading the Python API and I think this is an important feature to be able to easily implement complex models. For now what would be my best alternative?

Closing as obsolete. Please open new issue if this is still relevant.

authors: cgarciae sigurdm

repo: dart-lang/gcloud


text:
Mac OS support

I don't have a Mac OS setup. Therefore unable to build dartjni for macos on desktop.
It's build system is different (podspec), and it may take more effort than porting same CMake config to windows.
I searched through github and sourcegraph, and unfortunately not able to find a single podspec that makes use of JNI libraries.
So this would involve finding JNI libraries and listing them in podspec then fixing os-specific errors / warnings..
edit @dcharkes list of tasks that we should do

[x] run package:jni tests on MacOS (on CI)
[x] run package:jnigen tests on MacOS (on CI)
[x] MacOS CLI apps using some jnigen'ed code working (on CI)
[x] MacOS Flutter desktop app using some jnigen'ed code working
[x] MacOS as host for running jnigen on some Java sources (on CI)
[ ] MacOS as host for Android Flutter app working

Not all of these can be run on the CI unfortunately (e.g. Flutter apps can be build, but not run).

Not a priority and blocked by https://github.com/flutter/flutter/issues/152221. Moving to backlog.

authors: HosseinYousefi mahesh-hegde

repo: dart-lang/native


text:
Changelog entry missing for ServiceExtensionResponse

Hi, can you please add an entry to the changelog for these and related changes?
https://github.com/dart-lang/sdk/commits/9f8da952179ef1b7a2d9ac06da5e48c0efa1d333/sdk/lib/developer/extension.dart

@johnmccutchan, we are just a few days away from cutting the 1.13 release. Can you add this today, please?

repo: dart-lang/sdk


text:
Generic method syntax in dart2js causes checked mode error

The support for generic method syntax causes a type error when dart2js is executed in checked mode, e.g.:
sdk/bin/dart2js_developer --enable-checked-mode --package-root=out/ReleaseX64/packages \
    --generic-method-syntax tests/language/generic_methods_test.dart

Addressed by https://github.com/dart-lang/sdk/commit/ee926fac8dd4fbc1b1cec9c8e836be916baf81b1 and https://github.com/dart-lang/sdk/commit/fa48b7e17ba79038c465270f40d2b6caa9cae954.


text:
Using void with a prefix causes unprefixed "void" to suddenly report "not a type"

Given a program that imports dart:core with and without a prefix:
import 'dart:core';
import 'dart:core' as core;

Then by attempting to use core.void, suddenly void stops working:
void x; // error: not a type
core.void y; // also an error

Note: originally was not sure if void should be usable with a prefix. Per @lrhn's comment, it should not be. So that part is working at least!

Working as intended. The word void is a reserved word, not an identifier. As such, the name is not looked up anywhere, and cannot be exported by any library, including dart:core.

OK that clarifies things!
However, I think you missed this part:
void x; // error: void is not a type
core.void y;

That should never happen based on what you're saying!

Edited the title and description to account for the fact that core.void should not in this case work.

There is no longer the 'void is not a type' issue.

authors: MichaelRFairhurst lrhn srawlins


text:
URLs: Uri.parse & Uri.https

I'm trying to parse a URL generated by pacakge:oauth2 an example of the URL is:
http://localhost:9000/#/facebook?code=foobar#_=_#_=_

if I use Uri.parse I get a FormatException as it doesn't like the # in the query parameter. I've been informed that I need to use Uri.http or Uri.https but this requires me to parse the URL myself in to the authority, path & parameter components, esentially implemented my own Uri.parse function.
Am I misunderstanding or is this correct?
I really think that Uri.parse should support all http & https or perhaps there could be Uri.parseUrl?

The currently released Dart is following the URI grammar from RFC 3986 and requires the URI to not have URI "general delimiters" in wrong places. The grammar for URIs does not allow # to occur more than once ([https://tools.ietf.org/html/rfc3986#section-3.5] does not allow # as a character in the fragment), so all but one of them would need to be escaped as %23.
The newest dev-release of Dart is more lenient wrt. general delimiters, and will parse the above URI the same way as
http://localhost:9000/#/facebook?code=foobar%23_=_%23_=_

So, this is fixed, but has not been released in a stable version yet.

authors: jimmyff lrhn


text:
test_downcast_widest_type_from_top_type_parameters is failing

With https://dart-review.googlesource.com/125084, the migration engine test test_downcast_widest_type_from_top_type_parameters (in api_test.dart) has begun failing.

As of 1c7fe7196dd7a542f7f91cd6ea2ac81e1a13146c, the null safety migration tool has been removed from active development and retired. No further work on the tool is planned.
If you still need help, or you believe this issue has been closed in error, please feel free to reopen.


text:
Consider adding the ability to display post-migration analysis errors in the preview tool

The idea is that after we've finished generating a migration preview, we would re-run analysis, applying it to the migrated code (using an overlay since the migrated code hasn't been written to dish), and then display the results to the user so that they can see ahead of time where migration might have left static errors.

As of 1c7fe7196dd7a542f7f91cd6ea2ac81e1a13146c, the null safety migration tool has been removed from active development and retired. No further work on the tool is planned.
If you still need help, or you believe this issue has been closed in error, please feel free to reopen.


text:
Dart should give compile error for WhereIterables

This happens VERY OFTEN with Flutter developers.
Check this simple code:
void main(List<String> arguments) async {
  var aList = <int>[1, 2, 3];

  aList = aList.where((element) => element.isEven);

  print(aList);
}

It compiles properly but gives runtime error:
type 'WhereIterable<int>' is not a subtype of type 'List<int>'
#0      main (file:///C:/Users/shina/Desenvolvimento/dart_projects/tests_dart/example/main.dart:31:3)
#1      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#2      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

Well, if "where" doesn't return an List, why do the compiler let it be assigned to a List<int>?
It would save us tons of hours of developemnt trying to debug that.

It seems that this will be fixed on NNBD release.
Source: https://github.com/dart-lang/language/issues/192


text:
[Breaking change request] Change UTF-8 encoder and decoder to match the WHATWG encoding standard

Summary
Change encoding and decoding of UTF-8 to conform to the WHATWG encoding standard. This means that it will never emit invalid UTF-8, only accept valid UTF-8 and be compatible with the TextEncoder and TextDecoder classes in JavaScript.
Related issues: https://github.com/dart-lang/sdk/issues/7046, https://github.com/dart-lang/sdk/issues/22330, https://github.com/dart-lang/sdk/issues/28832, https://github.com/dart-lang/sdk/issues/31370, https://github.com/dart-lang/sdk/issues/31954
What is changing:

When decoding UTF-8 data with the Utf8Codec or Utf8Decoder class, the input is considered malformed if it contains an encoded surrogate character (code point in the range U+D800-U+DFFF, encoded in UTF-8 as a 3-byte character encoding where the first byte is 0xED and the second byte is in the range 0xA0-0xBF).
When encoding a string as UTF-8 with the Utf8Codec or Utf8Encoder class, and the string contains an unpaired surrogate, that surrogate is emitted as a replacement character (U+FFFD, encoded in UTF-8 as 0xEF, 0xBF, 0xBD) instead of an encoded surrogate (which is invalid UTF-8). For chunked conversion, if a chunk ends with a high surrogate and the next chunk starts with a low surrogate, these surrogates are considered properly paired and are combined, like before.
When decoding malformed UTF-8 data with allowMalformed set to true, the number of replacement characters emitted will sometimes differ from the number currently emitted. Specifically, the decoder will emit one replacement character for each maximal sequence of input bytes that is either

a prefix of a valid encoding of a character, or
a single byte that is not a prefix of a valid encoding of a character.

When decoding malformed UTF-8 data with allowMalformed set to false, the offset in the resulting FormatException will point to the first byte from which the decoder can conclude that the sequence is malformed, rather than the first byte that was not decoded successfully. Also, the message of the FormatException will sometimes be different from what it is currently. If the input contains more than one error, the FormatException may point to a different error than before.

Why is this changing?
Dart strings (like JS and Java strings) may contain unpaired surrogates. The current strategy of allowing surrogates when encoding and decoding UTF-8 ensures that any Dart string can be encoded as UTF-8 (actually, WTF-8) and decoded back into the original string.
This strategy has a number of drawbacks:

The output of the UTF-8 encoder is sometimes not valid UTF-8, which can be problematic when this data needs to be consumed by other programs.
When UTF-8 data is read, and that data contains encoded unpaired surrogates, this may cause problems much later, when the string is processed, rather that catching the invalid encoding up front.
The Dart behavior deviates from JS, which means that when Dart code is translated to JS, UTF-8 encoding and decoding can't directly use the JS TextEncoder and TextDecoder classes. It must do some or all of the conversion in Dart code, which has a significant performance cost.
Retaining exact compatibility with the current error behavior complicates some planned optimizations to UTF-8 decoding in the Dart VM.

The purpose of the change is thus to:

ensure that Dart programs don't inadvertently produce or accept invalid UTF-8.
enable faster UTF-8 encoding and decoding for both JS and VM targets.

Expected impact
Programs manipulating strings through usual string operations are unlikely to be affected.
A program may be affected by this change if it does any of the following:

Manipulates strings in a way that may introduce unpaired surrogates, encodes these strings as UTF-8, decodes them again and expects the string contents to be preserved.
Encodes arbitrary substrings as UTF-8 without regard to surrogate pairs, decodes them again, concatenates them (before or after decoding) and expects the string contents to be preserved.
Relies on the exact offsets and/or error messages from decoding invalid UTF-8 data or which error is reported in case of multiple errors.
Relies on the number of replacement characters produced by decoding invalid UTF-8 data.

Mitigation
For the scenarios listed above:

UTF-8, being an interchange format, is unsuited for representing such broken strings. Consider a different representation.
For encoding in multiple chunks, use the chunked conversion API.
Adjust the program to detect specific errors in a different way, or adapt it to the new errors.
Same as 3.

Variations
An optional allowSurrogates parameter could be added to the encoder and decoder to support the round-trip use case. To obtain the performance benefits, it should default to false. This could introduce further breakage for programs implementing the Utf8Codec interface (unless we only put the flag on the constructors).
If the surrogate change is considered too risky, the error and replacement character changes on their own can still ease the VM optimizations and possibly improve the performance of JS when allowMalformed is set to true.

Please send the announce
https://github.com/dart-lang/sdk/blob/master/docs/process/breaking-changes.md
The change will need to wait for the beta branch snapped before it can be submitted.

The breaking change has been announced on dart-announce, see announcement.

The change will need to wait for the beta branch snapped before it can be submitted.

The beta branch has been cut, so this is not blocked anymore.
We would like to move forward with this.
@franklinyow Can you help us getting the LGTM from all veto powers?

cc @Hixie @matanlurey @dgrove @vsmenon for review and approval.

Is there an impact on prod code size for web or native?  ( @rakudrama )

@rakudrama and I just discussed the web situation. There is currently a 4k size increase and a significant speed regression for small inputs, but we have ideas for fixing both issues.
For native there will probably be a small (a few k) constant size increase.

One detail that we need to decide on: for JS, when allowMalformed is set to true, we can choose either to fall back to the Dart implementation like we do currently, or we can use the TextDecoder (when available).
Using TextDecoder is significantly faster, but it might result in different output between browsers, since not all browsers follow the WHATWG standard precisely. Experiments indicate that:

Firefox follows the standard.
Chrome (and Chromium-based browsers): When an unfinished sequence is interrupted by end-of-input, or when an unfinished 4-byte sequence is interrupted after exactly 2 bytes, then one replacement character is emitted per byte instead of just one.
Safari: When a valid first byte of a multi-byte sequence is followed by fewer bytes than necessary to complete the sequence and then end-of-input, a replacement character is emitted and the rest of the input is discarded, even if it contains valid sequences.

@lrhn @rakudrama @vsmenon WDYT?

Use TextDecoder and file bugs against Chrome and Safari.
(And mark the corresponding tests as failing on those browsers).
I don't think the exact behavior on malformed inputs is that important. We don't otherwise try to work around browser bugs.

Using TextDecoder for short inputs is slower than the Dart implementation, so we will likely use a hybrid approach, using the backup Dart implementation for short inputs, where the threshold depends on some arguments.
@lrhn How do you feel about the bug existing for some inputs but not others?
@askeksa-google, is the following statement true: All cases of non-standard behaviour have an output containing the replacement character.
If so, we have a relatively simple remedy: in the allowMalformed case, check the output for the replacement character and if present, redo the conversion with the backup dart code.
It might be less work to do this than split the tests to keep good test coverage.
We do work around some other browser bugs - for example, fixing the unusual exponential form in IE11's Number.toString(radix), and various differences in the DOM APIs.

That statement is true. A stricter statement which is also true is: All cases of non-standard behaviour have an output containing the replacement character as the last character or two replacement characters in a row.
The "when an unfinished 4-byte sequence is interrupted after exactly 2 bytes" deviation in Chromium is unfortunate, since without that (assuming only the other observed deviations) we would only have to check the last character of the output.
For mostly-ASCII inputs, it might very well be faster to always fall back than to scan the result. At least the cross-over point will be quite high.

@lrhn How do you feel about the bug existing for some inputs but not others?

I feel fine. File bug reports against the browsers and hope they get around to fixing it.
It's still only error handling, it's not like they do something different for a well-formed input.

Having standards-compliant error handling can be as important as handling valid input. For one, variance in error handling is often a vector in vulnerabilities. For another, most people don't care if input is valid or not. They just care that all their software interoperates.

Having consistent behavior is a good thing, but there is a limit to how much work should be spent on mitigating browser bugs. I don't think the impact here is big enough to warrant adding detection and workarounds for something which is, arguably, already an error situation.

I benchmarked a post-scan for replacement characters. Here it adds about 6ns per byte on top of the TextDecoder time of 2-6ns per byte. In other words, it is a 4x slowdown for ASCII strings and 2x for the most complex strings. Still faster than the Dart version, though (for long strings).

Hey guys I'm really stuck and I hope, someone can help me :)
I get the following error: ReferenceError: TextEncoder is not defined
I know this has something to do with the whatwg module and the UTF-8 but the explanations above are too tricky for me to understand... I'm currently learning node and I follow tutorials from March 2020, so they are probably outdated.
Here is my code:
'use strict';

const https = require("https");

const { flaschenpost } = require("flaschenpost"),
      { processenv } = require("processenv");

const database = require("./lib/database"),
      getApp = require("./lib/getApp.js"),
      getKeys = require("./keys");

const logger = flaschenpost.getLogger();

const connectionString = processenv("MONGO_URL") || "mongodb://localhost:27017/admin";

const port = processenv("PORT") || 3000;

database.initialize(connectionString, err => {
    if (err) {
        logger.error("Failed to connect to database.", { err });
        process.exit(1);
    }

    const app = getApp(),
    keys = getKeys();

    const server = https.createServer({
        cert: keys.certificate,
        key: keys.privateKey
    }, app);

    server.listen(port, () => {
        logger.info(`Server started`, { port });
    });
});```

The problem is that I do not even see, what CAUSES the error.

Thanks in advance!!!

authors: Dimianovic Hixie askeksa-google franklinyow lrhn mkustermann rakudrama vsmenon