Plugin and timer performance on Kong 3.x

Is there an existing issue for this?

[X] I have searched the existing issues

Kong version ($ kong version)
3.0.1 (also tested against 3.1.0)
Current Behavior
(sorry, this is long)
We have a set of integration tests that run against our installation of Kong. Our rate limiting tests have been failing intermittently, with more requests allowed than there should be, when testing an upgrade from Kong 2.8.3 to Kong 3.x (initially 3.0.0 but we've more recently tried 3.0.1 and 3.1.0). When this happens it appears to take a while to recover and sometimes doesn't recover at all. That's not a terribly useful report without a complete reproduction of how we deploy and test Kong though so I've attempted to narrow it down.
One way that I've been able to reproduce the same symptoms is by configuring the Zipkin plugin (which we normally use) with an endpoint that times out (e.g. an unreachable IP address). When generating requests against 3.x this immediately causes more requests to be allowed than there should be. When increasing the request rate it eventually causes other plugins and operations that depend on timers to also fail and not recover:
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:18 [error] 1109#0: *17773 [kong] handler.lua:106 zipkin reporter flush failed to request: timeout, context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:19 [error] 1109#0: *16756 [kong] handler.lua:106 zipkin reporter flush failed to request: timeout, context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:19 [error] 1109#0: *18694 [kong] handler.lua:106 zipkin reporter flush failed to request: timeout, context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:19 [error] 1109#0: *18691 [kong] handler.lua:106 zipkin reporter flush failed to request: timeout, context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:19 [warn] 1110#0: *151 [lua] super.lua:120: scaling_execute(): [timer-ng] overload: load_avg: 10.239453125, runable_jobs_avg: 2621.3, alive_threads_avg: 256, context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:31 [warn] 1110#0: *151 [lua] super.lua:120: scaling_execute(): [timer-ng] overload: load_avg: 10.26875, runable_jobs_avg: 2628.8, alive_threads_avg: 256, context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:44 [warn] 1110#0: *151 [lua] super.lua:120: scaling_execute(): [timer-ng] overload: load_avg: 10.294921875, runable_jobs_avg: 2635.5, alive_threads_avg: 256, context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:57 [warn] 1110#0: *151 [lua] super.lua:120: scaling_execute(): [timer-ng] overload: load_avg: 10.324609375, runable_jobs_avg: 2643.1, alive_threads_avg: 256, context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:57 [error] 1110#0: *16493 [kong] handler.lua:74 failed to create Statsd logger: failed to connect to metrics.kube-system.svc.cluster.local.:8125: [cosocket] DNS resolution failed: dns lookup pool exceeded retries (1): timeout. Tried: ["(short)metrics.kube-system.svc.cluster.local.:(na) - cache-miss","metrics.kube-system.svc.cluster.local.:33 - cache-miss/scheduled/try 1 error: timeout/scheduled/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","metrics.kube-system.svc.cluster.local.:1 - cache-miss/scheduled/try 1 error: timeout/scheduled/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","metrics.kube-system.svc.cluster.local.:5 - cache-miss/scheduled/try 1 error: timeout/scheduled/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout"], context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:57 [error] 1110#0: *16494 [kong] handler.lua:74 failed to create Statsd logger: failed to connect to metrics.kube-system.svc.cluster.local.:8125: [cosocket] DNS resolution failed: dns lookup pool exceeded retries (1): timeout. Tried: ["(short)metrics.kube-system.svc.cluster.local.:(na) - cache-miss","metrics.kube-system.svc.cluster.local.:33 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","metrics.kube-system.svc.cluster.local.:1 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","metrics.kube-system.svc.cluster.local.:5 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout"], context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:57 [error] 1110#0: *16495 [kong] handler.lua:74 failed to create Statsd logger: failed to connect to metrics.kube-system.svc.cluster.local.:8125: [cosocket] DNS resolution failed: dns lookup pool exceeded retries (1): timeout. Tried: ["(short)metrics.kube-system.svc.cluster.local.:(na) - cache-miss","metrics.kube-system.svc.cluster.local.:33 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","metrics.kube-system.svc.cluster.local.:1 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","metrics.kube-system.svc.cluster.local.:5 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout"], context: ngx.timer
…
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:57 [error] 1110#0: *16501 [kong] init.lua:75 failed to connect to Redis: [cosocket] DNS resolution failed: dns lookup pool exceeded retries (1): timeout. Tried: ["(short)redis.kong.svc.cluster.local.:(na) - cache-miss","redis.kong.svc.cluster.local.:33 - cache-miss/scheduled/try 1 error: timeout/scheduled/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","redis.kong.svc.cluster.local.:1 - cache-miss/scheduled/try 1 error: timeout/scheduled/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","redis.kong.svc.cluster.local.:5 - cache-miss/scheduled/try 1 error: timeout/scheduled/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout"], context: ngx.timer
…
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:57 [error] 1110#0: *16505 [kong] init.lua:75 failed to connect to Redis: [cosocket] DNS resolution failed: dns lookup pool exceeded retries (1): timeout. Tried: ["(short)redis.kong.svc.cluster.local.:(na) - cache-miss","redis.kong.svc.cluster.local.:33 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","redis.kong.svc.cluster.local.:1 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","redis.kong.svc.cluster.local.:5 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout"], context: ngx.timer
api-gateway-v1-kong-5cd66f4b67-m5ql4 proxy 2022/12/02 12:03:57 [error] 1110#0: *16506 [kong] init.lua:75 failed to connect to Redis: [cosocket] DNS resolution failed: dns lookup pool exceeded retries (1): timeout. Tried: ["(short)redis.kong.svc.cluster.local.:(na) - cache-miss","redis.kong.svc.cluster.local.:33 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","redis.kong.svc.cluster.local.:1 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout","redis.kong.svc.cluster.local.:5 - cache-miss/in progress (sync)/try 1 error: timeout/in progress (sync)/try 2 error: timeout/dns lookup pool exceeded retries (1): timeout"], context: ngx.timer

The significant difference between 2.x and 3.x is that it appears to fail with lower requests rates, earlier on, and doesn't recover. I think that rate limiting is acting as an "early warning" of this because delays in running timers means that usage counters aren't being incremented quick enough within each "second" bucket.
Expected Behavior
The performance of one plugin and its network dependencies shouldn't adversely affect the performance of other plugins and operations.
I expect that changes like https://github.com/Kong/kong/pull/9538 (rate-limiting) and https://github.com/Kong/kong/pull/9521 (Datadog) will alleviate some of the symptoms of this. I wasn't able to reproduce the same problem with the OpenTelemetry plugin, which already batches+intervals submissions. I suspect that applying the same changes to the Zipkin plugin would help.
However I think there's also an underlying problem where timer performance appears to be worse under certain circumstances in 3.x and these kinds of issues are likely to reoccur without some safety guards. Which is what I'm most interested in focusing on.
Steps To Reproduce
This is the simplest way that I could reproduce the symptom. I wasn't able to push it hard enough to cause timer errors in Gojira, like we can in Minikube, because Docker appeared to fall over first.
Install:

vegeta: https://github.com/tsenart/vegeta
jaggr: https://github.com/rs/jaggr
gojira using this branch: https://github.com/Kong/gojira/pull/74

Create egg.yaml:
version: '3.5'
services:
  kong:
    ports:
      - 8000:8000
      - 8001:8001
  httpbin:
    image: "kong/httpbin:latest"
    labels:
      com.konghq.gojira: "True"
    networks:
    - gojira

Create kong.yaml
_format_version: "2.1"
_transform: true

plugins:
  - name: zipkin
    config:
      http_endpoint: http://<IP_ADDRESS>/will/timeout
      sample_ratio: 1
  - name: rate-limiting
    config:
      second: 50
      limit_by: ip
      policy: redis
      redis_host: redis

services:
- name: httpbin
  url: http://httpbin:80
  routes:
  - name: httpbin
    paths:
    - /

Start the container:
gojira up --tag 3.0.1
gojira run --tag 3.0.1 make dev
gojira snapshot --tag 3.0.1
gojira up --tag 3.0.1 --egg egg.yaml --yml kong.yaml

Run a load test:
echo "GET http://<IP_ADDRESS>:8000/status/200" | vegeta attack -rate 200 -duration 2m | tee vegeta.out | vegeta encode | ~/go/bin/jaggr '@count=rps' 'hist[100,200,300,400,500]:code' | tee jaggr.out

Check the results, ideally:

jaggr.out should show roughly 50 responses with 200 statuses each second
vegeta report vegeta.out should show a success rate of 25% (50/200)

Anything else?
I've put the results of my tests in a Gist so as not to clutter the issue: https://gist.github.com/dcarley/cc3c8959fd8f6a811d0b3c0ddf458a5c

@ADD-SP what do ya think?

@flrgh We've run into this type of issue, which is essentially timer abuse, and I think we should fix this issue like https://github.com/Kong/kong/pull/9521 did.

While we will investigate this issue and put some limits on the amount of memory and timers that zipkin consumes, I must point out that this setting is not realistic for production environments:
sample_ratio: 1

The intended usage for the Zipkin plugin is that tracing is done on a sample of all the requests - that is why the default value for sample_ratio is 0.001. It means that 1 out of 1000 requests will produce traces. Setting it to 1 is akin to setting the log level to debug. Something that would be done on a production system on an emergency setting temporarily in order to debug a critical failure.
I will make sure that we point this out in our docs.

@dcarley I'm curious in which cases the performance of the timer becomes bad. In 3.x we introduced lua-resty-timer-ng to reduce the overhead of the timer, and it shouldn't get any worse.

@dcarley I'm curious in which cases the performance of the timer becomes bad. In 3.x we introduced lua-resty-timer-ng to reduce the overhead of the timer, and it shouldn't get any worse.

We've observed that 3.x performance is worse under load when a plugin makes calls to an external network dependency and those calls take longer than normal.
Are you able to provide any information from FTI-4367, FTI-4269, and FT-3464? Were those issues prompted by timer performance?

good  thankyou

Hi @dcarley , could you please try 3.2.2 to check if this issue exists now?

Hi @dcarley , could you please try 3.2.2 to check if this issue exists now?

3.2.2 appears to be worse than 3.0.1 for the reproduction case where rate-limiting "fails open" when the zipkin endpoint is timing out. I've updated the results in the gist here: https://gist.github.com/dcarley/cc3c8959fd8f6a811d0b3c0ddf458a5c#gojira-322

Dear contributor,
We're closing this issue as there hasn't been any update to it for a long time. If the issue is still relevant in the latest version, please feel free to reopen it. We're more than happy to revisit it again.
Please have a look at our pledge to the community for more information.
Sincerely,
Kong Gateway Team


Missing fps cause of fps limiter

Video loses 2-3 fps cause of fps limiter on OffScreenGlThread. By removing it got smoother video and more fps.
We had added it because of audio out of sync. Gonna test more on this.
Also this may cause the laggy sound when streaming. I am gonna test record and stream.

Ok its better to use fpslimiter only on OffScreenGlThread and none in video encoder. It doesnt need two limiters.
Fps are back. Though if we could use limiter only on video encoder would be better. But audio is out of sync.

It's with display. But I ll check others too!
I tried a lot of configs. When on 30fps I get audio out of sync.
I tried all resolutions and several fps settings.
Audio too.

And something that i remembered pedro.. is that with limiter are we sure that key frames are passed as it should ? cause in resulted video i can see lag.. maybe it misses key frame or something like that and cause the lag.

change limitfps to this and out of sync audio is fixed. No need to use limiter on GlThreads.
Tested on Offscreenglthread with DisplayBase recording
public boolean limitFPS(int fps) {
if (System.currentTimeMillis() - lastFrameTimestamp < 1000 / fps) {
lastFrameTimestamp = System.currentTimeMillis();
return true;
}
return false;
}
}

Tested and not working. If you set 5fps and test with camera1 or camera in
openglview it isn't working.
On Thu, Dec 20, 2018 at 12:47 AM mhackeras<EMAIL_ADDRESS>wrote:

change limitfps to this and out of sync audio is fixed. No need to use
limiter on GlThreads.
Tested on Offscreenglthread with DisplayBase recording
public boolean limitFPS(int fps) {
if (System.currentTimeMillis() - lastFrameTimestamp < 1000 / fps) {
lastFrameTimestamp = System.currentTimeMillis();
return true;
}
return false;
}
}
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/issues/267#issuecomment-448793682,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQvljCHB9q26oU5n_51m0AaxWUxVNSrkks5u6tApgaJpZM4ZNY2v
.

Yeah that's why I had this removed.


[WIP] Support discontinuous field

I found some "discontinuous field" when I make timer_v2.
eg.
MMS of TIMx_CR2 from Page1567 of Section38 AdvTim of H573 RM0481;
TS of TIMx_SMCR from the same page.
I try add support for this situation.

yaml file should support
fieldset/CR2_2CH_CMP:
  extends: CR2_1CH_CMP
  description: control register 2
  fields:
  - name: MMS
    description: Master mode selection
    bit_offset:
      - start: 4
        end: 6
      - start: 25
        end: 25
    bit_size: 4

new syntax, and chiptool do properly check when parse source file.

github workflow crashed...
post CI result:
diff: https://ci.embassy.dev/jobs/1a00117c1301/artifacts/diff.html


cherry-pick fix that enables optimization in REPL and jupyter

This PR updates tensorflow-0.10 to point at aab740d2c156397313396a894e2f984a830e5781, which is a cherry-pick of https://github.com/apple/llvm-project/pull/1424 onto the tensorflow-0.10 llvm-project commit.

@swift-ci please test tensorflow

@swift-ci please clean test tensorflow


Replace python with python3 in Terraform scripts.

Python 2.7 is deprecated, replace all instance of python with python3 in all scripts.

changes merged to main branch.

changes merged to main branch.


Layout/SpaceInsideBlockBraces infinite loop, but corrected everything?

Using the following configuration:
AllCops:
  DisabledByDefault: true

Layout/SpaceInsideBlockBraces:
  Enabled: true
  EnforcedStyle: no_space

On this project: https://github.com/socketry/async-http-cache
results in an infinite loop for what looks like relatively benign code:
11 files inspected, 8 offenses detected, 8 offenses corrected
Infinite loop detected in /home/samuel/Projects/socketry/async-http-cache/spec/async/http/cache/general_spec.rb and caused by Layout/SpaceInsideBlockBraces -> Layout/SpaceInsideBlockBraces
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:300:in `check_for_infinite_loop'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:283:in `block in iterate_until_no_changes'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:282:in `loop'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:282:in `iterate_until_no_changes'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:251:in `do_inspection_loop'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:134:in `block in file_offenses'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:159:in `file_offense_cache'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:133:in `file_offenses'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:124:in `process_file'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:105:in `block in each_inspected_file'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:104:in `each'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:104:in `reduce'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:104:in `each_inspected_file'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:90:in `inspect_files'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/runner.rb:47:in `run'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/cli/command/execute_runner.rb:26:in `block in execute_runner'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/cli/command/execute_runner.rb:52:in `with_redirect'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/cli/command/execute_runner.rb:25:in `execute_runner'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/cli/command/execute_runner.rb:17:in `run'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/cli/command.rb:11:in `run'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/cli/environment.rb:18:in `run'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/cli.rb:72:in `run_command'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/cli.rb:79:in `execute_runners'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/lib/rubocop/cli.rb:48:in `run'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/exe/rubocop:19:in `block in <top (required)>'
/home/samuel/.rubies/ruby-3.1.2/lib/ruby/3.1.0/benchmark.rb:311:in `realtime'
/home/samuel/.gem/ruby/3.1.2/gems/rubocop-1.35.0/exe/rubocop:19:in `<top (required)>'
/home/samuel/.gem/ruby/3.1.2/bin/rubocop:25:in `load'
/home/samuel/.gem/ruby/3.1.2/bin/rubocop:25:in `<main>'

Branch for repro: https://github.com/socketry/async-http-cache/tree/rubocop
Let me know if I can help further.

Thanks!!!


Governance. Wrong available amount in Delegation

Description
When user delegate with already locked tokens it shows wrong Available balance (does not include locked balance)

Steps to Reproduce

Add locked balance via vote or delegate
Go to Add new delegation flow

Expected Behavior
On confirmation page shows locked balance + transferable in available part
Actual Behavior
Only transferable balance part is shown
Environment
https://github.com/novasamatech/nova-spektr/commit/ee67896d8f551b7d6792cb9880528ac7c66e1bb4

@Asmadek please check how it works for voting.

Status verification: ✅
Created separate issue to count staking balance:

https://github.com/novasamatech/nova-spektr/issues/2272


latest nuxt3 not working

cloning the repo and installing deps will update to use latest version with this error, it seems nuxt3 not fully compatible with pnpm:

error with nuxt3 3.0.0-27428764.271289c
exports is not defined
  at $id_56a97886 (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:130:23)
  at __instantiateModule__ (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:24647:9)
  at __ssrLoadModule__ (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:24594:25)
  at ssrImport (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:24619:13)
  at $id_39fc60f4 (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:32:37)
  at __instantiateModule__ (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:24647:9)
  at __ssrLoadModule__ (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:24594:25)
  at ssrImport (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:24619:13)
  at ssrDynamicImport (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:24630:12)
  at file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:10:31
m.default is not a function
  at file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/dist/server/server.mjs:10:185
  at processTicksAndRejections (node:internal/process/task_queues:96:5)
  at async renderToString (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/node_modules/.pnpm/vue-bundle-renderer@0.3.5/node_modules/vue-bundle-renderer/dist/index.mjs:247:19)
  at async renderMiddleware (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/.nuxt/nitro/index.mjs:206:20)
  at async handle (file:///F:/work/projects/quini/nuxt3/nuxt3-vuetify3/node_modules/.pnpm/h3@0.3.9/node_modules/h3/dist/index.mjs:601:19)

using previous version just works:
devDependencies:
- nuxt3 3.0.0-27428764.271289c
+ nuxt3 3.0.0-27393784.b110c8c (3.0.0-27428764.271289c is available)

same problem, any update?

I think it should be caused by this issue, in my case, I put the project in the "nuxt3" folder. The problem is resolved since I rename the parent folder from "nuxt3" to "nuxt3-study", I hope this message is useful for you.


See comments for update info

Auto grant access upon sharing function
Fixed a bug that allowed users to preview removed functions
New: type check in function builder
New: disconnection check in function builder

Auto grant access upon sharing function
Fixed a bug that allowed users to preview removed functions
New: type check in function builder

All unmerged work in this branch has been moved to Homepage


A possible typo in README.md

It seems there is a typo or absent example in Error Requests section of README.md:

Your server will call a erroredRequest method with the HTTP verb, path, original request, and the original error object if your handler code causes an error:

Sorry, I'm not quite seeing it. Can you elaborate?

I suppose there should be an example after the sentence or the sentence should be ended with a period (not the colon).


net: openthread: Convert API worker thread to a work queue

Direct openthread API usage requires explicit locking,
which is also used internally.
Exposing a work queue through the openthread context allows
work to be submitted without the need to block other threads.
In particular with CONFIG_OPENTHREAD_MANUAL_START, application
logic can offload work which otherwise would need to wait for
the lock to become available.

CC @MarekPorwisz

I'm afraid I miss the reasoning behind this change.
How's the new solution different from the existing one, apart from using different kernel primitives? We still get a separate thread, we still lock it for the time of the OT processing, any OT API user still needs to lock and wait for the mutex. What's the actual benefit of this conversion?

@rlubos, a scenario that I use, is a UI that provides some basic control for the OpenThread API, the simplest being 'start joiner'. My UI thread shouldn't get blocked on trying to get the OpenThread API lock. So I submit a work object, defined in my application, to the OpenThread work queue that actually starts the joiner. While my UI thread can continue doing whatever it needs to do.
At first I used the default system work queue, however depending on the platform implementation for OpenThread (RCP for example) it is unpredictable how long it will take for the lock to become available.
I thought this change was elegant enough as it works exactly the same as before, while adding a bit more flexibility.
Any alternative that I should consider?

@pdgendt Thanks for the additional context, I missed the fact that the new proposal would allow to submit custom work items to the OT work queue. I think that's actually nice, as it'd allow to reuse the large stack that is assigned to the OT thread (for the aforementioned joiner operation for instance).

I thought this change was elegant enough as it works exactly the same as before, while adding a bit more flexibility.

Yeah, I think I agree now as I fully understand the new approach. One question though, did you compare the memory footprint of the new approach vs the current one? I guess the difference shouldn't be too large, but it'd actually be good to know what the difference is.

Yeah, I think I agree now as I fully understand the new approach.

Great!

One question though, did you compare the memory footprint of the new approach vs the current one? I guess the difference shouldn't be too large, but it'd actually be good to know what the difference is.

I didn't pay much attention to this to be honest, I think the added objects to the struct openthread_context are the only additions?
So in theory the added footprint will be:
sizeof(struct k_work_q) - sizeof(struct k_thread) + sizeof(struct k_work)

Ok, I've built the echo_server sample for nRF52840, just to see the numbers.
Before:
Memory region         Used Size  Region Size  %age Used
           FLASH:      302392 B         1 MB     28.84%
            SRAM:       98432 B       256 KB     37.55%
        IDT_LIST:          0 GB         2 KB      0.00%

After:
Memory region         Used Size  Region Size  %age Used
           FLASH:      302380 B         1 MB     28.84%
            SRAM:       98432 B       256 KB     37.55%
        IDT_LIST:          0 GB         2 KB      0.00%

I'm quite surprised to see that the new approach is actually slightly smaller, but the difference is negligible, to be honest. In that case I don't have any objections to integrate this change, but let's here from others as well in case I miss something (@edmont @MarekPorwisz please have a look at convenience).


Prune go.sum

Description
To explore preformance issues more deeply, we need to prune go.sum as much as possible.  This represents a good first start, but is in no way complete.  Since when do cosmos projects need four different versions of btcd, for example?
Sure, likely they need one.... but I reckon that we've got four may be causing trouble.

For contributor use:

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer

Codecov Report

Merging #643 (bf6c342) into main (442dd07) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #643   +/-   ##
=======================================
  Coverage   18.43%   18.43%
=======================================
  Files         172      172
  Lines       24250    24250
=======================================
  Hits         4470     4470
  Misses      19015    19015
  Partials      765      765

Continue to review full report at Codecov.

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

Also not sure I agree with the performance improvement aspect of this. (Not at all clear to me how this impacts performance, aside from potentially binary size)
I do agree with the dependency mitigation / security surface area reduction aspects of consideration with the imports / replaces though!

Re: performance-- the claim isn't so much that this will improve performance, but instead that it'll allow for investigation into performance issues.

@ValarDragon thanks so much for your review and responsiveness throughought my discovery process on this.  I summarized my findings in this thread of tweets:
https://twitter.com/gadikian/status/1469512833809678342
Conclusion:  We can actually close this PR and should work to get this:
https://github.com/cosmos/ibc-go/pull/611
merged asap, and we're all good.  I'll see if I can get our tm-db updated w/the changes from tendermint/tm-db so all of this is simply eliminated as a concern.

Sweet! Thanks for the work on investigating all of the dependencies


Add link to dandi jupyterhub onto main page or dandiset page

In our NWB outreach, we sometimes use or refer to the dandi jupyterhub, but as far as I can see, there is no link or easy way to get to the dandihub except if you happen to know the URL. Can this link be added to the main page and/or from a dandiset page? I vaguely remember this existing previously.

good idea. i think we were still in do not make it too explicit mode in the past. but at this point this should be completely fine.


Remove-TeamChannelUser - Failed to find the user on the channel roster

The cmd Remove-TeamChannelUser returns the following error even though the user is a member of the private channel.
Remove-TeamChannelUser : Failed to find the user on the channel roster. Remove-TeamChannelUser
At line:1 char:1
+ Remove-TeamChannelUser -GroupId 0dea739f-3ab2-4f05-858f-c5de33e2ddb0  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Remove-TeamChannelUser], Exception
    + FullyQualifiedErrorId : System.Exception,Microsoft.TeamsCmdlets.PowerShell.Custom.RemoveTeamChannelUser

Version details
PS C:\Windows\system32> Get-InstalledModule MicrosoftTeams
Version              Name                                Repository           Description
-------              ----                                ----------           -----------
2.4.0-preview        MicrosoftTeams                      PSGallery            Microsoft Teams cmdlets module for Windows PowerShell and PowerShell Core....

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

ID: 87a158a7-c33c-f57c-4556-8a44de42abc9
Version Independent ID: 383ea288-abe0-28d2-10b8-7683a7eb1541
Content: Remove-TeamChannelUser (MicrosoftTeamsPowerShell)
Content Source: teams/teams-ps/teams/Remove-TeamChannelUser.md
Service: teams-powershell
GitHub Login: @SerdarSoysal
Microsoft Alias: serdars

Hello @rwkt how are you?
I checked to see if we needed to adjust the article, however, I could reproduce it, the cmdlet is still part of the preview module only (not the General Availability), I will try to pass this information on.
Thanks for your feedback,

@get-itips Thank you very much for the contribution and sharing this explanation. @rwkt Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


remote-redux-devtools failing

First of all, amazing project! Thank you!
I am getting this error when running project:
VM9234:35 WebSocket connection to 'ws://localhost:8000/socketcluster/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

Fixed it by removing port: 8000 in composeWithDevTools from middleware.js file.
Maybe will help someone with same issue.

Hey @perminder-klair, Thanks for your advice! I fixed this on the new version.


Document "touch-none" css for draggables or set it automatically

I was wondering why drag and drop on my iPad was not working properly, but only on my own examples, not the solid-dnd website. By process of elimination I found the inclusion of "touch-none" within the windi config. Adding that tw class to my draggables resolved the issues I had seen.
It would be great if solid-dnd would set that css either manually or document that this is necessary to make things work on touch devices.

Seems like this was already requested in #59


Windows on ARM, Support?

We can help you test we have Windows on Rasberry Pi 4 B+ setup. Please pursue it we at Windows on Rasberry Pi community will be glad to extend support in testing your drivers and tools for ARM64.

Sorry, this is just a Linux driver, so neither Windows nor Windows on ARM support.
However, I’d be really interested to see a picture of your Raspberry Pi 4 B+ with an AMD GPU in it :)

https://www.jeffgeerling.com/blog/2020/external-gpus-and-raspberry-pi-compute-module-4

👀


Makefile: add git tagging

I had recently added this Makefile for easy/safe deploying. This was missing :)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 51.21%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
127

Relevant Lines:
248

💛  - Coveralls

Shipped in https://github.com/rm-hull/nvd-clojure/commit/fcd9b8cdd7db032029d6957820d8517d6d0236c7


Prevent use of AutosizeInput in react-select.

Problem:
react-select uses react-input-autosize internally which puts hooks in for when elements are mounted or updated which trigger reflows during the React render call chain, which needlessly puts strain on various updates like changing selection.
Fix:
react-select supports replacing the Input component, which has been done in all the places it is used.
Commit Details:

Use a custom implementation of the Input component wherever
react-select is used.
Couple of tiny changes in SelectModeControlContainer which are
mostly tiny fine tuning.

how does this change the frame times? I have high hopes because AutoSizeInput crops up a lot of places...

how does this change the frame times? I have high hopes because AutoSizeInput crops up a lot of places...

Well it appears to have chopped a bunch of time out of the mouse down/click event that changes selection, which consisted of up to 15ms.


[WIP] AVX-2 accelerated SAD functions to speedup motion estimation

Here are the obtained bench results with a unaligned accesses:
Benchmarking get_sad/BLOCK_4X4: Collecting 100 samples in estimated 5.0000 s (28                                                                                get_sad/BLOCK_4X4       time:   [12.919 ns 12.926 ns 12.935 ns]
                        change: [-7.8931% -7.7870% -7.6862%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  2 (2.00%) high mild
  4 (4.00%) high severe
Benchmarking get_sad/BLOCK_4X8: Collecting 100 samples in estimated 5.0000 s (21                                                                                get_sad/BLOCK_4X8       time:   [19.543 ns 19.551 ns 19.561 ns]
                        change: [-6.0339% -5.9476% -5.8651%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  5 (5.00%) high mild
  2 (2.00%) high severe
Benchmarking get_sad/BLOCK_8X4: Collecting 100 samples in estimated 5.0000 s (22                                                                                get_sad/BLOCK_8X4       time:   [18.048 ns 18.063 ns 18.082 ns]
                        change: [-5.5344% -5.4019% -5.2604%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 14 outliers among 100 measurements (14.00%)
  1 (1.00%) low severe
  5 (5.00%) high mild
  8 (8.00%) high severe
Benchmarking get_sad/BLOCK_8X8: Collecting 100 samples in estimated 5.0001 s (27                                                                                get_sad/BLOCK_8X8       time:   [13.736 ns 13.742 ns 13.747 ns]
                        change: [-6.8187% -6.7357% -6.6548%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  2 (2.00%) high mild
  3 (3.00%) high severe
Benchmarking get_sad/BLOCK_8X16: Collecting 100 samples in estimated 5.0001 s (1                                                                                get_sad/BLOCK_8X16      time:   [22.036 ns 22.047 ns 22.059 ns]
                        change: [-2.7995% -2.6955% -2.5958%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 10 outliers among 100 measurements (10.00%)
  4 (4.00%) high mild
  6 (6.00%) high severe
Benchmarking get_sad/BLOCK_16X8: Collecting 100 samples in estimated 5.0001 s (2                                                                                get_sad/BLOCK_16X8      time:   [20.582 ns 20.604 ns 20.629 ns]
                        change: [-3.0224% -2.7958% -2.6272%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  2 (2.00%) low mild
  4 (4.00%) high mild
  3 (3.00%) high severe
Benchmarking get_sad/BLOCK_16X16: Collecting 100 samples in estimated 5.0001 s (                                                                                get_sad/BLOCK_16X16     time:   [17.758 ns 17.768 ns 17.778 ns]
                        change: [-51.338% -51.294% -51.248%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  4 (4.00%) high mild
  3 (3.00%) high severe
Benchmarking get_sad/BLOCK_16X32: Collecting 100 samples in estimated 5.0001 s (                                                                                get_sad/BLOCK_16X32     time:   [29.969 ns 29.987 ns 30.005 ns]
                        change: [-54.651% -54.593% -54.540%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 13 outliers among 100 measurements (13.00%)
  3 (3.00%) low severe
  4 (4.00%) low mild
  3 (3.00%) high mild
  3 (3.00%) high severe
Benchmarking get_sad/BLOCK_32X16: Collecting 100 samples in estimated 5.0000 s (                                                                                get_sad/BLOCK_32X16     time:   [29.423 ns 29.441 ns 29.461 ns]
                        change: [-54.971% -54.927% -54.884%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  6 (6.00%) high mild
  3 (3.00%) high severe
Benchmarking get_sad/BLOCK_32X32: Collecting 100 samples in estimated 5.0000 s (                                                                                get_sad/BLOCK_32X32     time:   [25.039 ns 25.069 ns 25.098 ns]
                        change: [-79.765% -79.739% -79.716%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 22 outliers among 100 measurements (22.00%)
  8 (8.00%) low severe
  3 (3.00%) low mild
  7 (7.00%) high mild
  4 (4.00%) high severe
Benchmarking get_sad/BLOCK_32X64: Collecting 100 samples in estimated 5.0002 s (                                                                                get_sad/BLOCK_32X64     time:   [45.083 ns 45.121 ns 45.157 ns]
                        change: [-81.788% -81.762% -81.733%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
  3 (3.00%) low severe
  4 (4.00%) low mild
  3 (3.00%) high mild
  1 (1.00%) high severe
Benchmarking get_sad/BLOCK_64X32: Collecting 100 samples in estimated 5.0002 s (                                                                                get_sad/BLOCK_64X32     time:   [43.684 ns 43.728 ns 43.773 ns]
                        change: [-82.089% -82.060% -82.033%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 19 outliers among 100 measurements (19.00%)
  8 (8.00%) low severe
  4 (4.00%) low mild
  5 (5.00%) high mild
  2 (2.00%) high severe
Benchmarking get_sad/BLOCK_64X64: Collecting 100 samples in estimated 5.0004 s (                                                                                get_sad/BLOCK_64X64     time:   [62.709 ns 62.743 ns 62.782 ns]
                        change: [-86.687% -86.669% -86.651%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  4 (4.00%) high mild
  3 (3.00%) high severe
Benchmarking get_sad/BLOCK_64X128: Collecting 100 samples in estimated 5.0001 s                                                                                get_sad/BLOCK_64X128    time:   [166.02 ns 169.76 ns 173.26 ns]
                        change: [-83.166% -82.930% -82.702%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 22 outliers among 100 measurements (22.00%)
  22 (22.00%) high severe
Benchmarking get_sad/BLOCK_128X64: Collecting 100 samples in estimated 5.0006 s                                                                                get_sad/BLOCK_128X64    time:   [119.19 ns 119.35 ns 119.54 ns]
                        change: [-87.075% -87.055% -87.034%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  3 (3.00%) high mild
  6 (6.00%) high severe
Benchmarking get_sad/BLOCK_128X128: Collecting 100 samples in estimated 5.0030 s                                                                                get_sad/BLOCK_128X128   time:   [523.51 ns 524.07 ns 524.70 ns]
                        change: [-74.082% -74.040% -73.998%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe
Benchmarking get_sad/BLOCK_4X16: Collecting 100 samples in estimated 5.0000 s (1                                                                                get_sad/BLOCK_4X16      time:   [32.774 ns 32.787 ns 32.801 ns]
                        change: [-3.7121% -3.6143% -3.5287%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  3 (3.00%) high mild
  3 (3.00%) high severe
Benchmarking get_sad/BLOCK_16X4: Collecting 100 samples in estimated 5.0000 s (1                                                                                get_sad/BLOCK_16X4      time:   [28.848 ns 28.881 ns 28.929 ns]
                        change: [-2.8088% -2.6928% -2.5612%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 12 outliers among 100 measurements (12.00%)
  1 (1.00%) low mild
  8 (8.00%) high mild
  3 (3.00%) high severe
Benchmarking get_sad/BLOCK_8X32: Collecting 100 samples in estimated 5.0002 s (1                                                                                get_sad/BLOCK_8X32      time:   [38.372 ns 38.385 ns 38.399 ns]
                        change: [-1.5874% -1.4598% -1.3111%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  5 (5.00%) high mild
  4 (4.00%) high severe
Benchmarking get_sad/BLOCK_32X8: Collecting 100 samples in estimated 5.0002 s (1                                                                                get_sad/BLOCK_32X8      time:   [35.230 ns 35.265 ns 35.289 ns]
                        change: [-1.9183% -1.7353% -1.5565%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 21 outliers among 100 measurements (21.00%)
  9 (9.00%) low severe
  9 (9.00%) high mild
  3 (3.00%) high severe
Benchmarking get_sad/BLOCK_16X64: Collecting 100 samples in estimated 5.0003 s (                                                                                get_sad/BLOCK_16X64     time:   [54.226 ns 54.266 ns 54.309 ns]
                        change: [-56.833% -56.792% -56.752%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 18 outliers among 100 measurements (18.00%)
  8 (8.00%) low mild
  4 (4.00%) high mild
  6 (6.00%) high severe
Benchmarking get_sad/BLOCK_64X16: Collecting 100 samples in estimated 5.0002 s (                                                                                get_sad/BLOCK_64X16     time:   [52.418 ns 52.458 ns 52.506 ns]
                        change: [-56.556% -56.511% -56.462%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 19 outliers among 100 measurements (19.00%)
  8 (8.00%) low mild
  5 (5.00%) high mild
  6 (6.00%) high severe

Coverage decreased (-0.7%) to 81.914% when pulling 4a8a535d0acaa25a489799552971c3edebf2ad55 on magwyz:sad-avx2 into 9317e7d2323c36d2e2667576384a0c6463a89ca3 on xiph:master.

It needs a rebase ^^;

This is great and the changes to benches/me.rs are no longer needed. (Can be dropped at rebase.)
Just for the record, these are the numbers @tdaede got when benchmarking with  a baseline of #1143:
get_sad/BLOCK_4X4       time:   [15.453 ns 15.454 ns 15.455 ns]
                        change: [-31.022% -31.008% -30.996%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
  2 (2.00%) low severe
  2 (2.00%) low mild
  6 (6.00%) high mild
  1 (1.00%) high severe
get_sad/BLOCK_4X8       time:   [30.076 ns 30.081 ns 30.085 ns]
                        change: [-2.7481% -2.7182% -2.6928%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) low severe
  1 (1.00%) low mild
  1 (1.00%) high mild
  1 (1.00%) high severe
get_sad/BLOCK_8X4       time:   [27.425 ns 27.428 ns 27.430 ns]
                        change: [-3.4026% -3.3732% -3.3428%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild
  2 (2.00%) high severe
get_sad/BLOCK_8X8       time:   [17.176 ns 17.177 ns 17.178 ns]
                        change: [-27.664% -27.656% -27.650%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  2 (2.00%) low severe
  3 (3.00%) low mild
  1 (1.00%) high mild
  2 (2.00%) high severe
get_sad/BLOCK_8X16      time:   [33.520 ns 33.522 ns 33.525 ns]
                        change: [-2.4336% -2.4082% -2.3660%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  4 (4.00%) high mild
  4 (4.00%) high severe
get_sad/BLOCK_16X8      time:   [30.476 ns 30.478 ns 30.480 ns]
                        change: [-3.8034% -3.7931% -3.7816%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  3 (3.00%) low mild
  1 (1.00%) high mild
  2 (2.00%) high severe
get_sad/BLOCK_16X16     time:   [22.126 ns 22.141 ns 22.156 ns]
                        change: [-55.375% -55.326% -55.268%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe
get_sad/BLOCK_16X32     time:   [44.531 ns 44.538 ns 44.546 ns]
                        change: [-48.014% -47.978% -47.930%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 14 outliers among 100 measurements (14.00%)
  6 (6.00%) high mild
  8 (8.00%) high severe
get_sad/BLOCK_32X16     time:   [41.643 ns 41.651 ns 41.661 ns]
                        change: [-50.819% -50.788% -50.744%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
  5 (5.00%) high mild
  6 (6.00%) high severe
get_sad/BLOCK_32X32     time:   [30.111 ns 30.114 ns 30.117 ns]
                        change: [-80.300% -80.282% -80.257%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 14 outliers among 100 measurements (14.00%)
  5 (5.00%) high mild
  9 (9.00%) high severe
get_sad/BLOCK_32X64     time:   [61.459 ns 61.475 ns 61.493 ns]
                        change: [-79.844% -79.827% -79.804%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  3 (3.00%) high mild
  5 (5.00%) high severe
get_sad/BLOCK_64X32     time:   [71.771 ns 71.776 ns 71.781 ns]
                        change: [-75.796% -75.776% -75.751%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 14 outliers among 100 measurements (14.00%)
  5 (5.00%) high mild
  9 (9.00%) high severe
get_sad/BLOCK_64X64     time:   [131.28 ns 131.30 ns 131.33 ns]
                        change: [-76.749% -76.732% -76.709%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  4 (4.00%) high mild
  5 (5.00%) high severe
get_sad/BLOCK_64X128    time:   [317.02 ns 317.10 ns 317.19 ns]
                        change: [-74.314% -74.207% -74.090%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 13 outliers among 100 measurements (13.00%)
  2 (2.00%) low mild
  6 (6.00%) high mild
  5 (5.00%) high severe
get_sad/BLOCK_128X64    time:   [263.03 ns 263.18 ns 263.33 ns]
                        change: [-76.003% -75.984% -75.960%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe
get_sad/BLOCK_128X128   time:   [789.06 ns 789.60 ns 790.14 ns]
                        change: [-68.450% -68.427% -68.402%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe
get_sad/BLOCK_4X16      time:   [47.717 ns 47.719 ns 47.720 ns]
                        change: [+0.4193% +0.4370% +0.4553%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 10 outliers among 100 measurements (10.00%)
  1 (1.00%) low severe
  2 (2.00%) low mild
  4 (4.00%) high mild
  3 (3.00%) high severe
get_sad/BLOCK_16X4      time:   [39.040 ns 39.046 ns 39.054 ns]
                        change: [-2.2906% -2.2457% -2.1981%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  2 (2.00%) low severe
  2 (2.00%) low mild
  2 (2.00%) high mild
  2 (2.00%) high severe
get_sad/BLOCK_8X32      time:   [54.730 ns 54.737 ns 54.747 ns]
                        change: [-0.1244% -0.0966% -0.0705%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 12 outliers among 100 measurements (12.00%)
  1 (1.00%) low severe
  4 (4.00%) high mild
  7 (7.00%) high severe
get_sad/BLOCK_32X8      time:   [45.214 ns 45.219 ns 45.224 ns]
                        change: [-6.9701% -6.9476% -6.9202%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  1 (1.00%) low severe
  3 (3.00%) low mild
  1 (1.00%) high mild
  3 (3.00%) high severe
get_sad/BLOCK_16X64     time:   [75.599 ns 75.604 ns 75.610 ns]
                        change: [-52.299% -52.269% -52.227%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 10 outliers among 100 measurements (10.00%)
  3 (3.00%) high mild
  7 (7.00%) high severe
get_sad/BLOCK_64X16     time:   [75.092 ns 75.103 ns 75.114 ns]
                        change: [-49.672% -49.636% -49.591%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 14 outliers among 100 measurements (14.00%)
  8 (8.00%) high mild
  6 (6.00%) high severe


Processing hangs after updating the gem

In one of our projects I updated the contentful_middleman gem to use the latest version, coming from the "dl/upgrade-to-v4" branch.
After this update, running the middleman contentful command with anything higher than "max_include_resolution_depth: 1"
in the config causes processing to hang after a few seconds.
I've tried playing with the all_entries_page_size, but that doesn't seem to help.

Hey @brtdwchtr,
This may be related to how your content model is done, it looks like you have multiple circular relationships.
Something that may make it go much faster is by enabling reuse_entries: true in the client options. This should make the SDK not re-create already hydrated entries.
Hope this helps,
Cheers

thanks for the quick reply @dlitvakb
Thing is, I had issues with circular relationships before, but limiting the max depth to 2 and setting reuse_entries to true fixed it at the time and haven't had any problems since.
do you think any specific change in the latest releases has increased the vulnerability towards probs with circular relationships? This can't just be a performance problem, right?

Hey @brtdwchtr ,
This hasn't been changed in almost a year, so I don't really know what may be going on, have you considered setting the gem to use the latest release instead of the one in the branch?
Using 'contentful_middleman', '~> 4.0' should do the trick.
Cheers


Avatar caching improvements

@RocketChat/android
This PR improves the avatar caching. Note that it updates the Fresco library version using its new features (released two days ago).

LGTM. Can you review it and merge @luciofm?


python311Packages.pyqt5-sip: rename from pyqt5_sip

Description of changes
part of #245383
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 279395 run on x86_64-linux 1

4 packages built:

python310Packages.pyqt5-sip
python310Packages.pyqt5-sip.dist
python311Packages.pyqt5-sip
python311Packages.pyqt5-sip.dist


Switched to locally scoped partitioning for MPI

1st step towards #106 by using a scoped Partitioning::with_local_partition entry point. No functionality for internal parallelism is added yet, but the MPI partitioning is updated to make use of the scope, allowing to remove its usage of static muts for MPI state.

Codecov Report

Merging #128 (45c4191) into main (35e7612) will decrease coverage by 0.39%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #128      +/-   ##
==========================================
- Coverage   50.03%   49.63%   -0.40%
==========================================
  Files          82       82
  Lines        5916     5963      +47
==========================================
  Hits         2960     2960
- Misses       2956     3003      +47

Impacted Files
Coverage Δ

necsim/partitioning/core/src/lib.rs
25.00% <ø> (ø)

necsim/partitioning/monolithic/src/lib.rs
0.77% <0.00%> (-0.11%)
:arrow_down:

necsim/partitioning/mpi/src/lib.rs
0.83% <0.00%> (-0.31%)
:arrow_down:

rustcoalescence/algorithms/cuda/src/lib.rs
1.49% <ø> (ø)

rustcoalescence/algorithms/independent/src/lib.rs
1.51% <ø> (ø)

rustcoalescence/algorithms/src/lib.rs
100.00% <ø> (ø)

rustcoalescence/src/main.rs
9.09% <ø> (ø)

Continue to review full report at Codecov.

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

TODO:  @MomoLangenstein code review since MPI currently deadlocks at the end of the simulation

TODO: @MomoLangenstein code review since MPI currently deadlocks at the end of the simulation

Fixed in 4b9b190d8c2c0046fc548afe5e4814462f384d87

@MomoLangenstein Reviewed non-critical changes, mpi request and root+parallel partitions require further review and some test runs


pre-trained embeddings are not available

Could you please make public ai2_embeddings? Thanks!

Hi @8ma8X, I just checked and they should already be publicly available. Could you provide more info about what kind of message you're getting?

Now I can download the file. Thank you for your quick response!


Working on drone/drone#959

Cleaning up build traces of repo when it is deleted. Some of the cleanup steps may not be necessary for buckets that have been rolled up into the main build document.

Just FYI. I created a separate repo_del_test.go to avoid stepping on @oliveiradan's efforts for repo_test.go. These should be merged together.

great, we'll merge those test files in a follow-up


ci: Fix licensee error of<EMAIL_ADDRESS>

Downgrading the package and making sure that "npm test" runs the check.
Also removes exceptions of packages that now declare a valid license.

<EMAIL_ADDRESS>should fix this, too.


Fix db queries

Fixes the database queries which were broken after schema changes.

Closing this PR as changes from here is picked in PR -  https://github.com/RedHatInsights/ros-backend/pull/36


920 viper package deploy variables do not work

Description
Fixes a bug where deploy variables are not settable (and adds a test to catch it)
Related Issue
Fixes #920
Type of change

[X] Bug fix (non-breaking change which fixes an issue)

Checklist before merging

[X] Tests have been added/updated as necessary (add the needs-tests label)
[X] Documentation has been updated as necessary (add the needs-docs label)
[X] (Optional) Changes have been linted locally with golangci-lint. (NOTE: We haven't turned on lint checks in the pipeline yet so linting may be hard if it shows a lot of lint errors in places that weren't touched by changes. Thus, linting is optional right now.)

@jeff-mccoy mentioning this here to link these together: https://github.com/defenseunicorns/zarf/issues/922


[QUESTION] Is there a way to use customLevels?

I am trying to add some customLevels to my Logger.
I am trying to do the following:
@Global()
@Module({
  providers: [LoggerService],
  exports: [LoggerService],
  imports: [LoggerModule.forRoot({
    pinoHttp: {
       logger: pino({customLevels: { aCustomLevel: 99 }})
    }
  })],
})
export class MyLoggerModule {}

And then in a custom service:
@Injectable()
export class LoggerService extends PinoLogger {
  constructor(@Inject(PARAMS_PROVIDER_TOKEN) params: Params) {
    super(params);
  }

  custom(msg: Message) {
    super.aCustomLevel(msg);
  }
}

But I get aCustomLevel is not a function.
Am I doing something wrong?
Thanks in advance!

NestJS has it's own Logger interface.
PinoLogger has only standard methods at the moment.
But you can try to play with logger field, maybe that would be enough for your case
If that's doesn't work we can make call method protected to have access to it in sub-classes

I wasn't able to get the assign method to work exactly. I essentially have 3 extra log methods I need to add and setting the customLevels attribute doesn't work. Assign let me assign some fields and methods, but I really just want extra log methods. Have you given any additional thought on if customLevels pino option could work with this library?
(apologies if this isn't the right place...I searched for my issue and found this question)

@jmsims2 please feel free to open a new issue with more details


Fix for #3466 Render total monthly goals on another changed node

Fixes #3466
The total monthly goals card was rendered on the changed node of budget-inspector-button, when switching months, this node re-rendered 3 times, causing our total monthly goals card to render 3 times as well.
This happens quick, so our guard against re-rendering the card multiple times doesn't trigger.
The proposed fix is to render the goals card on a node that's only rendered once upon changing months within the budget page.

I just saw another feature using the debounce() function, I'm assuming that's why we use it? 😅

One of many debounce use cases :)


List Proxy iterates forever in for of loop

The new proxy API is iterating forever when iterating over a list of components using a for (const component of cmp.get("v.body")) loop. For in loops and .forEach calls work as expected - this issue is unique to for of loops. The first few iterations of the loop will work as expected, but it will continue past the end of the list indefinitely, returning "undefined" each time.
To reproduce this issue, create two components:
A body called "TEST_CHILD"
Markup:
<aura:component >
    <aura:handler name="init" value="{!this}" action="{!c.onInit}" />

    {!v.body}
</aura:component>

Controller:
({
    onInit: function(component, event, helper) {
        for (const element of component.get("v.body")) {
            console.log(element);
        }
    }
})

An app Called "TEST"
Markup:
<aura:application >
    <c:TEST_CHILD>
        <ui:outputText value="google" />
        <ui:outputText value="google" />
        <ui:outputText value="google" />
    </c:TEST_CHILD>
</aura:application>

Upon loading the TEST application, the for of loop will iterate through the 3 components, then continue with "undefined" forever.

The array proxy seems to be broken for for of loops completely

@byao this is breaking the spread operator ... as well and breaks code in Edge in particular.

@byao it appears that next() on the iterator your returning from your proxy is never returning done === true per the iteration spec
the code
case "Symbol(Symbol.iterator)":
              ret = function() {
                var nextIndex = 0;
                return{next:function() {
                  if(nextIndex < filtered.length) {
                    var value = filtered[nextIndex]["rawValue"];
                    nextIndex++;
                    return{value:value ? SecureObject.$filterEverything$(handler, value) : value, $done$:false}
                  }else {
                    return{$done$:true}
                  }
                }}
              };
              break;

Does not satisfy the requirements because $done$ is not done

this was fixed by https://github.com/forcedotcom/aura/commit/bcd014266bb5d91463b4a32039e5753c3f288368
it will be patched in Salesforce production instances soon

@lukeis @jfparadis So what I noticed was that done is getting captured by lockerservice, have you verified that's not still the case?  Please ensure your tests cover for..of loops, [...value] spread operator and [].concat all of which I've had serious (showstopper) level issues on multiple platforms.

i believe this is fixed. comment back if not and I can reopen.

@lukeis appears to be still broken in safari 10 for for in loops

thanks, will check if we have an internal issue tracking this too

@mgetzbw In certain situations, array gets wrapped in a Proxy(by LockerService). It seems like in Safari 10 looping over an array using for..in is including the 'length' property as one of the enumerable properties. We have implemented all the proxy traps and they behave exactly the same in all browsers. Safari 10 seems to be behaving differently and I have not been to get to the root of that difference.
Having said that, using for..in to loop over an array is discouraged. Can you perhaps use for (var i =0; i< arr.length; i++) loop for your iteration?

We already have made that change. We just figured we would report the proxy
issue.
On Mon, Oct 9, 2017 at 17:31 Ravi Jayaramappa<EMAIL_ADDRESS>wrote:

@mgetzbw https://github.com/mgetzbw In certain situations, array gets
wrapped in a Proxy(by LockerService). It seems like in Safari 10 looping
over an array using for..in is including the 'length' property as one of
the enumerable properties. We have implemented all the proxy traps and they
behave exactly the same in all browsers. Safari 10 seems to be behaving
differently and I have not been to get to the root of that difference.
Having said that, using for..in to loop over an array is discouraged
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in#Array_iteration_and_for...in.
Can you perhaps use for (var i =0; i< arr.length; i++) loop for your
iteration?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/forcedotcom/aura/issues/112#issuecomment-335317109,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJCydmh62iiilJGqgCi1ftzkmDsnRHT2ks5sqqzWgaJpZM4N-o89
.

--

Michael Getz http://www.bluewolf.com/people/mike-getz ─ Senior Developer,
Mobile ─ Bluewolf, an IBM Company ─ O:<PHONE_NUMBER>
→ Download Bluewolf’s Annual The State of Salesforce Report
http://bit.ly/Zsb1xZ


Messaging Semantic Conventions for PubSub Messaging Systems

I was surprised to see that subscribe and unsubscribe are not listed as operation names in the messaging spans doc, especially when the higher level doc pointing to it mentions them in the general trace doc. Should those be listed as known conventions there?

The semantic conventions for messaging spans take a message-centric view, trying to model the lifetime of a message in a trace (or a set of traces), from production to consumption and settlement.
Subscribing or unsubscribing are actions that can't be directly related to a single message, and thus weren't in our focus. However, there's definitely a possibility to discuss and add additional operations, but likely after an initial stable release of messaging semantic conventions, which is our current focus.


npm start error

how can i solve this error message ? i'am install this on my vps

node binary does not exist on your system. You've node but binary is named as nodejs not node. Also your node version is very old.
To resolve this, simply install node(This project is tested with 6.11.1).
I'd recommend using n to easily install node. To use n, run
curl -L https://git.io/n-install | bash

Then install node 6.11.1 by running:
n 6.11.1

wait, i'll try it

how about this ?

I guess you did run npm install, did you?

yeah i did npm install and this is what can i get

I don't see any error in your screenshot.
Did you let it complete? If yes, try to remove node_modules folder and run npm install again.
After successful npm install it should work.

not sure, but this is my step while i installing them

clone to vps
run this command npm install
edit ..../server/storage/GDrive/GDrive.js
. replace GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET / GOOGLE_REDIRECT_URL with my own
while run npm start , and the end i get any message error

Please run npm install again after installing new node.

okay, it's my result

:man_facepalming:  This is how you declare variables:
var CLIENT_ID = "<your id here>"
Now change all of then this way, like:
var CLIENT_ID="3541......content.com";

keep process.env ? or delete it ?

Delete it

was started

but forbidden when i check on browser

I'm sorry but without any information about your system, I don't think I can help you with this.
One thing you might wanna check is PORT.
By default, this program starts on port 3000, which can be changed by running
PORT=<some port> npm start

Closing for now as this is not an issue with the program itself. Feel free to comment.

can you suggest me with similiar app ?


Split screen with task bar on each screent

Description of the new feature / enhancement
Dear Sir/Madam,
I purchased 49 inch ultra wide curved screen. The screen is nice. However, the taskbar is very far from one end to the other when the taskbar is on the left or right end of the screen.
I wonder whether it would be possible to include a task bar on each screen when using FancyZones?
I look forward to hearing from you.
Kind regards,
Jan
Scenario when this would be used?
For long curved screens
Supporting information
No response

/dup #1488


Do you want an OAuth implementation? I have one that I'm willing to share...

Hello Volkan,
I have implemented OAuth authentication using Azure App Services and Serenity.  The good news is that it does not require any NUGET packages and it works for Facebook, Twitter, Google, standard Microsoft accounts and Azure Active Directory.  It's also fairly lightweight with only a few files added to the Serenity project. The downside is that it works by leveraging Azure App Services so it may only work if the Serenity App is deployed on Azure.  There might be a way to deploy on-site with a small stub app in Azure, but this is not my use case, so I have not investigated this option.
I would be happy to share the code and write the necessary documentation.  Let me know if I can contribute back to the project! I would like to both give and take from this open source effort!
One warning, however... I'm more of a hacker than a professional programmer, so I'm guessing you will want to take a good look at my code before committing it to the main branch.  :-)
Thanks,
James

Hi James,
Thanks, i'd like to see any such contribution, and this one is certainly one of most requested. If you can share your changes as a Gist, or similar, i'd have a look and decide if it is better to go in a wiki or optional feature enabled by some setting etc. Not requiring Nuget package or DLL is certainly a plus, as it won't bring an additional dependency.

Volkan, here are the OAuth files you requested:
https://gist.github.com/James-A-White/641bde233da6813d5c3be371738b56aa
I think these are all of the files required... let me know if you think something is missing.
If you want to see it in action, feel free to log in to my test instance.
https://harriercentralweb.azurewebsites.net/Account/Login?ReturnUrl=%2F
Additionally, you will need to configure Azure App Services for each of the 5 providers they support, which also involves going to those providers and setting up your app.  I would be happy to explain how this is done if the link below is not thorough enough:
https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-how-to-configure-google-authentication/
Please keep in mind, however, once you authenticate for the first time, you will not be able to access any information because you will not have any roles assigned to you.  It might be an interesting feature to include a flag in the roles table that indicates that the Serenity framework should automatically add that role to new users when they first authenticate. This way people can create an account and start immediately accessing information. There may be another way to do this that I have not thought of yet.
One last note: This has not been thoroughly tested.  I have logged in with each of the four providers and have seen the credentials being populated into the database. I have also assigned roles and permissions to those uses and things seem to be working well. I do not know the behavior of the system when an authentication token expires. I think it should simply ask you to log in again.  Bottom line: I'm not yet ready to offer a warranty on this code!  :-)

Updated the Gist... I had an error in the Google code that prevented the e-mail from being properly recorded.  Also I now capture the nameidentifier and store it in the PasswordHash field just in case we ever would need access to it.  Happy to answer questions if you have them.

Thanks again @James-A-White, for great looking sample, and well documented code. I don't have much experience with Azure, so it will take some time for me to test it myself, understand and improve it if needed. But i'll try to add it to Serene, kinda blindly, with login screen parts commented out, so you and others can try and let me know if it is working as is.

If you want a little primer on Azure, I would be happy to guide you through it.  it is very, very easy to get Serenity based apps running in Azure.  I'd even be happy to create a free Azure account and share the credentials with you.  I'll then upload a Serenity app with OAuth and get it running and share the code with you.  This way, we can give you an "express lane" ride into the Azure cloud.  Happy to support in whatever way I can!
Jw

On Nov 1, 2016, at 7:00 PM, Volkan Ceylan<EMAIL_ADDRESS>wrote:
Thanks again @James-A-White https://github.com/James-A-White, for great looking sample, and well documented code. I don't have much experience with Azure, so it will take some time for me to test it myself, understand and improve it if needed. But i'll try to add it to Serene, kinda blindly, with login screen parts commented out, so you and others can try and let me know if it is working as is.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/volkanceylan/Serenity/issues/1349#issuecomment-257642250, or mute the thread https://github.com/notifications/unsubscribe-auth/AFkOuvYRY86lF2cE14kFGqdtID-K7SoOks5q534_gaJpZM4KejvK.

Volkan,
I've noticed a very strange behavior when logging in using Azure OAuth. I can successfully log in using Facebook, Google and Twitter, but when I go to log in using Microsoft the Authorization.UserId value does not get set... it remains null even though the Dependency.Resolve().ByUsername(username) is returning a valid user record.  I think this is new behavior with the most recent framework update because when I originally implemented OAuth I tested each case. I'm a bit baffled why this would be the case, but it is something happening within the framework.
I don't know if you have had the chance to look at the OAuth stuff, but if you have, perhaps you can look deeper into the framework and see if you can figure out why this is happening.
Thanks!
James

On Nov 1, 2016, at 7:22 PM, James White<EMAIL_ADDRESS>wrote:
If you want a little primer on Azure, I would be happy to guide you through it.  it is very, very easy to get Serenity based apps running in Azure.  I'd even be happy to create a free Azure account and share the credentials with you.  I'll then upload a Serenity app with OAuth and get it running and share the code with you.  This way, we can give you an "express lane" ride into the Azure cloud.  Happy to support in whatever way I can!
Jw

On Nov 1, 2016, at 7:00 PM, Volkan Ceylan<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
Thanks again @James-A-White https://github.com/James-A-White, for great looking sample, and well documented code. I don't have much experience with Azure, so it will take some time for me to test it myself, understand and improve it if needed. But i'll try to add it to Serene, kinda blindly, with login screen parts commented out, so you and others can try and let me know if it is working as is.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/volkanceylan/Serenity/issues/1349#issuecomment-257642250, or mute the thread https://github.com/notifications/unsubscribe-auth/AFkOuvYRY86lF2cE14kFGqdtID-K7SoOks5q534_gaJpZM4KejvK.

I've updated the gist with the error handling code in OAuthService if you want to see where it is happening.
https://gist.github.com/James-A-White/641bde233da6813d5c3be371738b56aa
Thx!
J

On Nov 12, 2016, at 11:43 AM, James White<EMAIL_ADDRESS>wrote:
Volkan,
I've noticed a very strange behavior when logging in using Azure OAuth. I can successfully log in using Facebook, Google and Twitter, but when I go to log in using Microsoft the Authorization.UserId value does not get set... it remains null even though the Dependency.Resolve().ByUsername(username) is returning a valid user record.  I think this is new behavior with the most recent framework update because when I originally implemented OAuth I tested each case. I'm a bit baffled why this would be the case, but it is something happening within the framework.
I don't know if you have had the chance to look at the OAuth stuff, but if you have, perhaps you can look deeper into the framework and see if you can figure out why this is happening.
Thanks!
James

On Nov 1, 2016, at 7:22 PM, James White<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
If you want a little primer on Azure, I would be happy to guide you through it.  it is very, very easy to get Serenity based apps running in Azure.  I'd even be happy to create a free Azure account and share the credentials with you.  I'll then upload a Serenity app with OAuth and get it running and share the code with you.  This way, we can give you an "express lane" ride into the Azure cloud.  Happy to support in whatever way I can!
Jw

On Nov 1, 2016, at 7:00 PM, Volkan Ceylan<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
Thanks again @James-A-White https://github.com/James-A-White, for great looking sample, and well documented code. I don't have much experience with Azure, so it will take some time for me to test it myself, understand and improve it if needed. But i'll try to add it to Serene, kinda blindly, with login screen parts commented out, so you and others can try and let me know if it is working as is.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/volkanceylan/Serenity/issues/1349#issuecomment-257642250, or mute the thread https://github.com/notifications/unsubscribe-auth/AFkOuvYRY86lF2cE14kFGqdtID-K7SoOks5q534_gaJpZM4KejvK.

I couldn't try it yet, but it might be a simple caching issue.

The GIST has been updated to include code that will grab the URL to the profile picture (for Google and Facebook, not MS or Twitter yet) and insert it into the database so it can be accessed by Serenity.  I have had to also make a small modification to the _Layout.cshtml file to ensure that UserImage strings that have full URLs are not processed through the VirtualPathUtility. This has also been added to the GIST.  GIST has also been made public (not that this matters too much).
Here's the link:

Let's add to wiki for now. I don't have an Azure account to test at the moment. Dear Microsoft rejected my application for BizSpark.

I was able to accomplish this by simple enabling the Authentication service in Azure w/out the code updates suggested by James.
Everything works as expected and the user is added and logged in.  Only issue is that the logout link doesn't log the user out until you manually force it to : ../.auth/logout

Excellent… can you share more details on how you did this?  Where does the login button come from that allows users to choose to log in with OAuth vs. the built-in security mechanism? Otherwise, sounds pretty simple.
Thx!
James

On Mar 22, 2017, at 1:19 AM, Tony Lim<EMAIL_ADDRESS>wrote:
I was able to accomplish this by simple enabling the Authentication service in Azure w/out the code updates suggested by James.
Everything works as expected and the user is added and logged in. Only issue is that the logout link doesn't log the user out until you manually force it to : ../.auth/logout
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/volkanceylan/Serenity/issues/1349#issuecomment-288260095, or mute the thread https://github.com/notifications/unsubscribe-auth/AFkOutXwL1fEjs1OaymXedCQdtXOVtbcks5roGj4gaJpZM4KejvK.

I'm working on an update version of your Oauthservice class with the correct variables.  Will post here when done.

Super… I’m not very good at HTML so the buttons on my home page for logging in using Facebook, Twitter, etc. were not “responsive”.  If you can get that to work, that would be great as well.
Thanks!
James

On Mar 23, 2017, at 5:14 AM, Tony Lim<EMAIL_ADDRESS>wrote:
I'm working on an update version of your Oauthservice class with the correct variables. Will post here when done.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/volkanceylan/Serenity/issues/1349#issuecomment-288612733, or mute the thread https://github.com/notifications/unsubscribe-auth/AFkOuiNrEyd7eSxV8IfYImBY8kb4M77zks5rofGegaJpZM4KejvK.


Permissioned Rune minting

Any thoughts on utilizing parent child provenance to restrict who can mint a Rune?
Following 3 options associated with etching inscription (say, first inscription revealed in etching tx) provenance could offer a wide range of options to the etcher.

self - Etching inscription must be an input to the mint transaction.
children - A child inscription of etching inscription must be an input to the mint transaction.
siblings - A child inscription of etching inscription's parent(s) must be an input to the mint transaction.

Example:
parents:
- 6ac5cacb768794f4fd7a78bf00f2074891fce68bd65c4ff36e77177237aacacai0

etching:
  rune: THE•BEST•RUNE
  divisibility: 2
  premine: 1000.00
  supply: 10000.00
  symbol: $
  terms:
    amount: 100.00
    cap: 90
    restrict: self | children | siblings

inscriptions:
- file: mango.avif

self - mango.avif inscription must be an input to the mint transaction.
children - A child inscription of mango.avif inscription must be an input to the mint transaction.
siblings - A child inscription of 6ac5cacb768794f4fd7a78bf00f2074891fce68bd65c4ff36e77177237aacacai0, parent of mango.avif inscription, must be an input to the mint transaction.

Premine can be disallowed for children restriction.

Hi @lifofifoX - I believe Casey suggested something similar here, but qualified it by saying only if the change was absolutely necessary would it be done.  I think another reason that request closed was because a good-enough use case for the change was not presented.  I'm not sure if this should be considered a dupe of #3677 or not.  What do you think?

I'd argue that allowing children of an inscription opens up more possibilities than just the stable coin use case. For example, you could have a rune that can only be minted by holders of certain collections. I don't have any concrete use case, besides introducing a new variable to degening with Runes.

It was argued extensively in #3677 which is a dupe.
"A good-enough use case for the change was not presented" is an inaccurate statement. A significant number of people posted various real-world use cases and product/legal/financial reasons why.
This "not good enough" was a vote of one person (= Casey) against all others.
We (the Bitcredit Protocol initiative) have meanwhile resorted to using BRC-20 5Byte. We don't like it but we have enough on our plates. If someone develops self-mint, we'd soon switch to Runes, in all likelihood.

"A good-enough use case for the change was not presented" is an inaccurate statement. A significant number of people posted various real-world use cases and product/legal/financial reasons why.
This "not good enough" was a vote of one person (= Casey) against all others.

Yes, this is what I meant - not good enough to be accepted into the code stream by Casey - not a comment on my opinion of the merit of the use cases.

My proposal here is a little broader than restricting minting to a small group of people, as per #3677. That's why I opened a new ticket. Tying provenance with degening with open mints is much more interesting to me than the stable coin use case.

much more interesting to me

Sure, whatever gets this going.

I would say this is not a dupe of #3677, because #3677 only considered allowing the etching parent inscription to be allowed to mint, whereas this issue proposes also gating mints to children and siblings of the etching parent.
I am still not convinced that gating mints to the parent is worthwhile, because I still think that just premining a bunch in advance is a fine workaround.
Gating mints to children and sibling inscriptions is a bit more interesting, however, you can still just premine the rune and air drop it to holders of inscriptions.
However, all that being said, doing this would tie the inscription and rune protocols together, which I do not think we want to do.
Indexing runes takes 30 minutes and results in an index.redb which is only about a gigabyte. Indexing inscription takes about six hours, and results in an index.redb which is 60-80 gigs. If we tied the two protocols together, it would be impossible to index runes without inscriptions.
Additionally, the runes protocol is extremely compact, simple, and well thought out. The inscriptions protocol is much more complex and crufty.
I do like this idea, but there are real costs, and I think it's not an acceptable tradeoff.

Thanks @casey. That's a fair point 👍

Thanks @Casey, I get the cost argument. Is there any "cheaper" way?

Hmm, thinking out loud, the reason it's expensive is because it uses possession of an inscription to determine whether a mint transaction is valid. This is expensive because it adds a dependency on inscriptions and ordinals. Alternatively, we could use possession of another rune to determine whether or not a mint transaction is valid.
So, you would etch rune A, and then when etching rune B, you would say that for a mint of rune B to be valid, the mint transaction inputs have to contain some amount of rune A. Rune A could have a supply of 1, if you wanted only a single person to be able to mint more of rune B, or it could have a larger supply, if you wanted the ability to allow multiple people to mint rune B. You could also specify the amount of rune A that would have to be in the transaction in order to mint rune B. So you could gate it to anyone holding 1 or more of rune A, or gate it to anyone holding 1000 or more of rune A.
This would have the same desirable properties as gating mints to an inscription holder, namely that it wouldn't be tying permission to mint to a single address, since you could transfer rune A to a new address.
This does however have somehwat dangerous protocol implications that I'm not sure are acceptable.
Runes has a very simple strategy for invalid transactions and future upgrades: If a transaction is invalid (which also includes transactions by future versions of ord, as seen by a old version of ord), etchings and mints in that transaction do occur, but any input runes, and any proceeds of a mint or etching are also burned.
The reason that etchings and mints occur in otherwise invalid transactions is that if they didn't, an upgrade which rendered old invalid transactions valid could invalidate previously valid mints.
Consider rune X with a mint cap of 1. In version 0, ord sees:

Invalid transaction A minting rune X
Valid transaction B minting rune X

ord v0 credits the mint to transaction A, and transaction B doesn't receive the mint.
If transaction A is valid according to v1, then v1 still credits the appropriate transaction.
If v0 ignored transaction A, and credited the mint to transaction B, then balances would change between v0 and v1, which would be catastrophic.
Now, back to gated mints. Let's say we have rune ABC which is needed to mint rune XYZ.
Ord v0 sees this:

Invalid transaction A with rune ABC in inputs.
Valid transaction B with input from A minting XYZ.
Valid transaction C with with rune ABC in inputs minting XYZ.

In this case, ord would credit transaction C with the mint, since B didn't contain any of rune ABC.
Ord v1 sees this:

Valid transaction A with rune ABC in inputs.
Valid transaction B with input from A minting XYZ.
Valid transaction C with with rune ABC in inputs minting XYZ.

In this case, ord would credit transaction B with the mint, since A was valid under the new rules, and would not credit transaciton C, since the mint in B had already happened.
This would lead to a balance change between v0 and v1, which would be bad.

This does however have somehwat dangerous protocol implications that I'm not sure are acceptable.

Would it be possible to work around the requirement of including a rune in the etching by gating on the etching address somehow?  It would be a much more restrictive system, and might tie the runes and address indexes together, but could it get around the 'upgrade changes the rules/version balance mismatch' issues you described?

@cryptoni9n This would be possible, but I'm not a fan of such a design. It means you couldn't, for example, migrate to a new address type or custody setup, because the mint permission was tied to a specific address.
One way of getting around it would be to require that the rune with permissioned minting had a huge number of mints allowed, like 2**64 or more. This would avoid the possibility of, after an upgrade, a mint becoming invalid because an previous transaction was now valid under the new rules.


When I run the IPython tutorial I get - IPython initialization failed

thanks for the report.
i think you have python3 as your default python, is that right?
that tutorial is for python2.

my default python is 2.7.4 on the 64 bit Anaconda 2.3.0

if you close the error, can you make a code cell and evaluate the following:
os.environ["PYTHONPATH"]

where do you have beaker installed?

I ran os.environ["PYTHONPATH"] and it revealed two paths separated by a ':' not ';'. It looks like when beaker runs it adds itself to the pythonpath with a hardcoded ':' instead of using os.pathsep.

what version of beaker do you have? that was recently fixed.
BeakerNotebook.com
ScottDraves.com
twitter.com/Scott_Draves
On Oct 9, 2015 12:14 PM, "Will"<EMAIL_ADDRESS>wrote:

I ran os.environ["PYTHONPATH"] and it revealed two paths separated by a
':' not ';'. It looks like when beaker runs it adds itself to the
pythonpath with a hardcoded ':' instead of using os.pathsep.
—
Reply to this email directly or view it on GitHub
https://github.com/twosigma/beaker-notebook/issues/2686#issuecomment-146914389
.

v1.3.1-0-g3072e5e

OK, try downloading the latest release, 1.4.1.

That worked. Thanks for your help.
On Fri, Oct 9, 2015 at 1:56 PM, Scott Draves<EMAIL_ADDRESS>wrote:

OK, try downloading the latest release, 1.4.1.
—
Reply to this email directly or view it on GitHub
https://github.com/twosigma/beaker-notebook/issues/2686#issuecomment-146947697
.


Preferred multi-line comment style for Haxe docs?

What is the preferred multi-line comment style for the manual and possibly other official Haxe docs?
/*
    This one takes up a couple extra lines of vertical space, and I
    don't like that the comment is indented from the code beneath it,
    but it is handsome and symmetrical, and not too much of a pain to
    wrap in my editor. Lorem ipsum dolor sit amet, consectetur
    adipiscing elit, sed do eiusmod tempor incididunt ut labore et
    dolore magna aliqua.
*/
var x = 1;
var s = 'Hello';

/* This one ends up indenting subsequent lines by 3 spaces, which
   flagrantly violates the rules of civil society and so is
   unacceptable.  Lorem ipsum dolor sit amet, consectetur adipiscing
   elit, sed do eiusmod tempor incididunt ut labore et dolore magna
   aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
   laboris nisi ut aliquip ex ea commodo consequat.
*/
var x = 1;
var s = 'Hello';

/* This one is most compact, provides the greatest number of columns
for comment characters, is easy to wrap in my editor, and I like that
it's fully left-aligned (vertically-aligned with the code beneath it),
but I'm not sure how common this style is in Haxe code. Lorem ipsum
dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. */
var x = 1;
var s = 'Hello';

/* This one is _somewhat_ pretty, but a pain to type and to wrap correctly.
 * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
 * eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
 * minim veniam, quis nostrud exercitation ullamco laboris nisi ut
 * aliquip ex ea commodo consequat.
 */
var x = 1;
var s = 'Hello';

/*
 * Variation of the one above. Again, a pain to wrap.
 * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
 * eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
 * minim veniam, quis nostrud exercitation ullamco laboris nisi ut
 * aliquip ex ea commodo consequat.
 */
var x = 1;
var s = 'Hello';

Did I miss any?
Also, how many consecutive single-line comments before changing to multi-line commenting?
Thanks!

As far as I know this is the official block preferred comment style https://github.com/HaxeFoundation/dox/wiki/How-to-document-Haxe-code

Ha. Just found that and was about post the link but you beat me to it. Do you know if dox supports the "vertical column of asterisks" as above? Also, does it require the closing **/? As in
/**
 * Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
 * eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
 * minim veniam, quis nostrud exercitation ullamco laboris nisi ut
 * aliquip ex ea commodo consequat.
**/

?

I thought that page could use some clarification, but wasn't sure of the details, so created https://github.com/HaxeFoundation/dox/issues/246 .

I think it is either /* everything on one line*/
Or
/**
Multi
Line
Comments
**/

I guess the reason for that is because the indentation is easier to detect.

Also the amount of asteriks (one or two) doesnt matter.

Ok. Thanks. I updated the dox wiki page to mention those.


On commit, the keys get shuffled

The keys get shuffled after I hit commit
Here's how the file looks now

            bindings = <
&kp ESCAPE     &kp N1    &kp N2        &kp N3     &kp N4     &kp N5     &kp N6
   &kp TAB      &kp Q     &kp W         &kp E      &kp R      &kp T      &kp Y
     &mo 1      &kp A     &kp S         &kp D      &kp F      &kp G      &kp H
 &kp LSHFT      &kp Z     &kp X         &kp C      &kp V      &kp B      &kp N
 &kp LCTRL   &kp LGUI  &kp LALT                           &kp SPACE
    &kp N7     &kp N8    &kp N9        &kp N0  &kp MINUS  &kp EQUAL     &trans
     &kp U      &kp I     &kp O         &kp P   &kp LBKT   &kp RBKT   &kp BSPC
     &kp J      &kp K     &kp L      &kp SEMI    &kp SQT    &kp DEL  &kp ENTER
     &kp M  &kp COMMA   &kp DOT  &kp QUESTION     &kp UP                 &mo 1
                       &kp LEFT      &kp DOWN  &kp RIGHT
            >;

            sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
        };

        Layer__2 {
            bindings = <
 &kp GRAVE        &kp F1        &kp F2           &kp F3        &kp F4        &kp F5       &kp F6
&bt BT_CLR  &bt BT_SEL 0  &bt BT_SEL 1     &bt BT_SEL 2  &bt BT_SEL 3  &bt BT_SEL 4       &trans
    &trans      &kp CAPS        &trans           &trans        &trans        &trans       &trans
    &trans        &trans        &trans           &trans        &trans   &bootloader  &bootloader
    &trans        &trans        &trans                                       &trans
    &kp F7        &kp F8        &kp F9          &kp F10       &kp F11       &kp F12   &kp DELETE
    &trans        &trans        &trans  &kp PRINTSCREEN        &trans        &trans       &trans
    &trans        &trans        &trans           &trans        &trans        &trans       &trans
    &trans        &trans        &trans           &trans     &kp PG_UP                     &trans
                              &kp HOME    &kp PAGE_DOWN       &kp END
            >;
        };
    };
};

The row and col properties in your layout don't seem to be set correctly. I'm assuming this is for the https://github.com/EagleVee/Mystery60_52833 repo in your profile?
I have a tool for inspecting/editing layouts you can try: https://nickcoutsos.github.io/keymap-layout-tools/. Here's a visualization of an older version of the layout (seems to match the square-ish example you've provided).

The Text Rendering section will show you how the bindings are rendered into the keymap source code. Note that it goes from 0-6 and then 7-14 is several rows down. What you want to see here is an ordered sequence that matches your keyboards matrix transform.
You can paste the contents of your info.json file (whichever version is most correct) into that and adjust rol/col accordingly to see the results live.


Adding role filtering for use with federated AWS login

Added to and tried to clarify the documentation, including changing 'target account' to 'target role' to better reflect what it's actually describing.
Added to the example config to show all 3 major use cases with both styles of role parameters as well as account aliases.
Added a setting to only show roles that match the role you're logged in with.  This is very useful with sophisticated setups where your organization has a master account that uses federated logins to log in with one of several roles and then assume those roles in the org's member accounts.

Thank you for your proposal! I am happy for improving better readme.
I don't know the feature for the federated AWS login because I do not use it. Have you already been using the version to be applied this PR?
I noticed some things, so please fix them.

I've made the changes you requested.  To answer your question, yes, I'm using the extension with my changes and it works well.  Thanks for the useful extension.  :)

Also, please note that I have NOT bumped the version.

Any idea when you'll bump the version and republish the extension?  I'd like to have people in my office use this but I'd prefer to have them install the official version rather than having to build my fork.  Thanks!

I will confirm the new feature that works well myself and release new version after the holidays. please wait for it.