fix: evaluate symlinks when connecting to directory

Hi Josh, very nice tool you've built: it falls very nice and natural in my day-to-day workflow and thank you for that!
In this PR though I'm trying to fix one of the issues I've encountered and fixed locally for 1st version of sesh, but now, as we have 2nd major version, decided to contribute 😄
So, in my home folder I have a bunch of things that are managed by my public repo of dotfiles, Dev folder though I manage as a private submodule that I mount to the folder home/private/Dev/(that's how it looks basically). For the ease of use though I've made a symlink home/Dev/ -> /home/private/Dev to access my projects via cd ~/Dev/my-project1
So, when connecting to these directories with sesh, from gitName strategy, I'm getting:
topLevelDir /home/glebglazov/private/Dev/sesh
baseDir sesh
relativePath /home/glebglazov/Dev/sesh
tmuxSession sesh/home/glebglazov/Dev/sesh

Resulting tmux session is sesh/home/glebglazov/Dev/sesh while I'm expecting it to be just sesh. If symlink was expanded, then prefix would be trimmed
Fastest mitigation I came up with was to filepath.EvalSymlinks in dir connector, though I believe it might not be the optimal solution for some of the workflows, in which such a name for a tmux session would be justified, so please let me know what you think

@joshmedeski moved it up the stack to dir package
one extra thing I think about is whether or not there's sense in combining logic of Abs and EvalSymlinks in a wrapper function RealPath and expose it instead of these two methods. WDYT?

Upon testing this on a symbolic link I'm getting this output, which is incorrect:

So if the symbolic links original source is inside a git repo it creates a bad session name.
I recommend unit tests get added for the following types.

A symbolic linked folder
A symbolic linked folder that is a git repo base
A symbolic linked folder that is inside a git repo
A symbolic link that's inside a git worktree

I'm happy to help talk it out or even pair program, feel free to reach out to me on Discord:
https://discord.gg/RQnZH7fFse

@joshmedeski thanks for review, added tests that check that :) Let me know what you think

Great! I'll look it over this week, thanks for the updates.

Thanks for the work on this, it works great!


nsp default output formatter fails if process.stdout.getWindowSize()[0] <= 7

nsp default output formatter fails if process.stdout.isTTY == true and process.stdout.getWindowSize <= 7.  When using buildkite, the following conditions are true:
process.stdout.isTTY == true
process.stdout.getWindowSize()[0] == 0

In this case, if nsp finds any vulnerabilities, it throws an exception:
$ nsp check
/home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/node_modules/cli-table/lib/utils.js:12
  return Array(times + 1).join(str);
         ^

RangeError: Invalid array length
    at exports.repeat (/home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/node_modules/cli-table/lib/utils.js:12:10)
    at line (/home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/node_modules/cli-table/lib/index.js:140:11)
    at lineTop (/home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/node_modules/cli-table/lib/index.js:154:13)
    at Table.toString (/home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/node_modules/cli-table/lib/index.js:252:5)
    at /home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/lib/formatters/default.js:49:27
    at Array.forEach (native)
    at Object.module.exports [as output] (/home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/lib/formatters/default.js:34:6)
    at /home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/lib/commands/check.js:25:23
    at /home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/lib/check.js:240:7
    at /home/tucker/.nvm/versions/node/v4.8.0/lib/node_modules/nsp/node_modules/wreck/lib/index.js:472:20

I can't get the tests to run successfully and since I'm not at all a JS developer, I'd hate to spend time on this only to realize I botched it but I think this would work:
$ git diff
diff --git a/lib/formatters/default.js b/lib/formatters/default.js
index c2fafd4..53aaf61 100644
--- a/lib/formatters/default.js
+++ b/lib/formatters/default.js
@@ -18,7 +18,9 @@ module.exports = function (err, data, pkgPath) {

   var width = 80;
   if (process.stdout.isTTY) {
-    width = process.stdout.getWindowSize()[0] - 10;
+    if (process.stdout.getWindowSize()[0] > 90) {
+      width = process.stdout.getWindowSize()[0] - 10;
+    }
   }
   if (data.length === 0) {

That would enforce a minimum output width of 80 chars and expand for any displays wider than that.  Since the current default is 80 chars for times where isTTY is false, it's seems sane to stick with that as the bare minimum.


Implement 404 tile

In TileStache?

There are no longer any styles that should result in 404 tiles (since they're all worldwide now).


[incubator/elasticsearch/]

FEATURE REQUEST:
Version of Helm and Kubernetes:
helm version
Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.1", GitCommit:"3a1c9449a956b6026f075fa3134ff92f7d55f812", GitTreeState:"clean", BuildDate:"2018-01-04T11:52:23Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.1", GitCommit:"3a1c9449a956b6026f075fa3134ff92f7d55f812", GitTreeState:"clean", BuildDate:"2018-01-04T11:40:06Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"

Which chart:
[incubator/elasticsearch/]
What happened:
support passing variables via values file.
What you expected to happen:
Instead of passing variables via --set it would be nice to provide values.yaml via -f or --values.
Not sure but this might be a bug in case it was expected behavior
helm install --name zez --values state.yaml incubator/elasticsearch

content of values.yaml:
appVersion=5.6,image.repository=docker.elastic.co/elasticsearch/elasticsearch
image.tag: "5.6.10"
cluster.name: zzz
client.name: zzz-client
client.heapSize: 256m
cluster.kubernetesDomain: "tenable.prem."
client.replicas: 1
client.serviceType: ClusterIP
master.name: zzz-master
master.exposeHttp: false
master.replicas: 3
master.heapSize: 256m
master.persistence.name: master
data.persistence.name: data
data.persistence.size: 2Gi
data.persistence.enabled : true

How to reproduce it (as minimally and precisely as possible):
Anything else we need to know:

@aba182 Can you please share your values.yml and command, please.

Command
helm install --name elastic-test --namespace elastic-test incubator/elasticsearch -f /tmp/x.yml

Yaml (Defaults besides storage class) I know it works because it takes my storageclass modifications:
# Default values for elasticsearch.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
appVersion: "6.3.1"

image:
  repository: "docker.elastic.co/elasticsearch/elasticsearch-oss"
  tag: "6.3.1"
  pullPolicy: "IfNotPresent"

cluster:
  name: "elasticsearch"
  kubernetesDomain: cluster.local
  # If you want X-Pack installed, switch to an image that includes it, enable this option and toggle the features you want
  # enabled in the environment variables outlined in the README
  xpackEnable: false
  config:
  env:
    # IMPORTANT: https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#minimum_master_nodes
    # To prevent data loss, it is vital to configure the discovery.zen.minimum_master_nodes setting so that each master-eligible
    # node knows the minimum number of master-eligible nodes that must be visible in order to form a cluster.
    MINIMUM_MASTER_NODES: "2"

client:
  name: client
  replicas: 2
  serviceType: ClusterIP
## (dict) If specified, apply these annotations to the client service
#  serviceAnnotations:
#    example: client-svc-foo
  heapSize: "512m"
  antiAffinity: "soft"
  nodeSelector: {}
  tolerations: {}
  resources:
    limits:
      cpu: "1"
      # memory: "1024Mi"
    requests:
      cpu: "25m"
      memory: "512Mi"
  priorityClassName: ""
  ## (dict) If specified, apply these annotations to each client Pod
  # podAnnotations:
  #   example: client-foo
  podDisruptionBudget:
    enabled: false
    minAvailable: 1
    # maxUnavailable: 1

master:
  name: master
  exposeHttp: false
  replicas: 3
  heapSize: "512m"
  persistence:
    enabled: true
    accessMode: ReadWriteOnce
    name: data
    size: "4Gi"
    storageClass: "rook-block"
  antiAffinity: "soft"
  nodeSelector: {}
  tolerations: {}
  resources:
    limits:
      cpu: "1"
      # memory: "1024Mi"
    requests:
      cpu: "25m"
      memory: "512Mi"
  priorityClassName: ""
  ## (dict) If specified, apply these annotations to each master Pod
  # podAnnotations:
  #   example: master-foo
  podDisruptionBudget:
    enabled: false
    minAvailable: 2  # Same as `cluster.env.MINIMUM_MASTER_NODES`
    # maxUnavailable: 1

data:
  name: data
  exposeHttp: false
  replicas: 2
  heapSize: "1536m"
  persistence:
    enabled: true
    accessMode: ReadWriteOnce
    name: data
    size: "30Gi"
    storageClass: "rook-block"
  terminationGracePeriodSeconds: 3600
  antiAffinity: "soft"
  nodeSelector: {}
  tolerations: {}
  resources:
    limits:
      cpu: "1"
      # memory: "2048Mi"
    requests:
      cpu: "25m"
      memory: "1536Mi"
  priorityClassName: ""
  ## (dict) If specified, apply these annotations to each data Pod
  # podAnnotations:
  #   example: data-foo
  podDisruptionBudget:
    enabled: false
    # minAvailable: 1
    maxUnavailable: 1

Notice though that I have another issue open against this chart here: https://github.com/helm/charts/issues/6741

thank you @aba182 that worked like a charm!

Actually one more question @aba182 it seems that the name passed in values.yml is not used? I see you're passing name with helm install command and you have one specified inside the file.
I've run helm install without passing the name to the command and it looks like the one inside config file was not used?

These are all "how to use helm" questions please read official helm docs and they will show you all you need to know.


Avenues for rich host functions

What is your question?

First, a caveat: I'm new to rust and WASM and risk asking some truly naive questions.

Hi team, huge fan of your work and the javy project. I really love this idea of a portable WASM binary in which the full power of ES2020 can be unleashed.
I've read through your thoughts on complex data types and have understood some of it. My understanding is that because of number-based I/O over the WASM boundary, passing and receiving complex arguments to a javy program is a BYO exercise. In my exploration of the ecosystem, I've seen projects like wasm-bindgen and jco that seem to offer better ergonomics for crossing the WASM <--> host boundary. My use-case is very much like Shopify's use-case except that our host runtimes would either be JavaScript or go-based.
I'm trying to understand how those other projects might relate to something like javy and where to start.
Some of what I'm trying to accomplish is:

Untrusted JavaScript receives an object from the host that conforms to a JSON schema.
Expose a host function that the untrusted code can use to emit strongly-typed JSON objects conforming to schemas known ahead of time. The emit function doesn't strictly need to return data but it would be nice if we could.
As a stretch, support some form of function that would support basic http/1.1.

AFAICT from public docs is that the Shopify use-case uses a subset of WASI for passing in bytes over stdin and collecting bytes over stdout. Were there trade-offs that pushed you in this direction over coupling to host functions?

Hi @ggoodman -- others from Shopify may jump in here on the relationship to other projects, but some of the reasons we chose JSON over I/O streams include:

WIT wasn't a thing when we were first designing our wasm-based extensibility, so there weren't great options for exchanging rich data structures over host calls.
We use GraphQL queries for the wasm author to define the input for the module, which makes the API dynamic. It's a potentially very large API surface and we only want to provide the module with the data it needs.
We wanted an extensibility API contract that could easily be implemented across many languages. WIT is improving in many toolchains but reading/writing JSON over stdio is about as simple as it gets.

Hi @nickwesselman thanks a ton for getting back to me.

We use GraphQL queries for the wasm author to define the input for the module, which makes the API dynamic. It's a potentially very large API surface and we only want to provide the module with the data it needs.

That idea of using a GraphQL query as a declarative signal of required inputs is fascinating! What an interesting idea. Thanks for sharing.

WIT wasn't a thing when we were first designing our wasm-based extensibility, so there weren't great options for exchanging rich data structures over host calls.

Do you get the sense that your design might be different if revisited today, with the current component model momentum?

We wanted an extensibility API contract that could easily be implemented across many languages. WIT is improving in many toolchains but reading/writing JSON over stdio is about as simple as it gets.

I was playing around with Javy a bit and struggled to get things working with the js event loop. I tried experimenting with a model where stdin passed in length-prefixed messages over time. Any Promises / micro tasks seemed to cause the WASM program and runtime to exit. I think (rust noob) I enabled the event loop feature when I built javy-cli locally so I feel like I'm not quite understanding the different moving parts quite yet.
Have you done any experimentation with async javascript workloads?

That idea of using a GraphQL query as a declarative signal of required inputs is fascinating! What an interesting idea. Thanks for sharing.

No problem, you can read more about our approach here.

Do you get the sense that your design might be different if revisited today, with the current component model momentum?

I think it's too early for us to say. We are certainly looking at the component model and how practical it is for our execution model, and there is definitely a performance cost to JSON serialization and deserialization.

Have you done any experimentation with async javascript workloads?

Our execution is entirely sync and short lived, so we do not enable the event loop. One of the actual maintainers from our team may have more to say here though, I'm just a PM. 😆

👋 I'm back from vacation 😄

My understanding is that because of number-based I/O over the WASM boundary, passing and receiving complex arguments to a javy program is a BYO exercise.

Yes. Javy uses Core Wasm which only supports integers and floats for arguments and return values.

In my exploration of the ecosystem, I've seen projects like wasm-bindgen and jco that seem to offer better ergonomics for crossing the WASM <--> host boundary.

Yes they absolutely do offer better ergonomics. However, the tradeoff is they depend on the runtime environment supporting the Wasm Component Model as opposed to Core Wasm. Older versions of wasm-bindgen did not require the Component Model but modern versions do.

Were there trade-offs that pushed you in this direction over coupling to host functions?

The big tradeoff is that, with the context of using Core Wasm and not the Component Model, it's much, much easier for people using Javy (or other languages) to read from stdin and write to stdout/stderr compared to importing a host function and then invoking that host function given the arguments for a host function in Core Wasm can only take and return numbers. The tradeoff would be different using the Component Model but the Component Model wasn't available when we made this decision.
So to send a byte array (and by extension, a string representation) back and forth between the host and the Wasm instance, the Wasm module will need custom code to convert the byte array to a pointer and a length (or another pointer to represent the end of the array) and the host function will need to perform a similar conversion. And to receive input from a host function, the Wasm module would likely need an additional function to get the size of the input so it can allocate the correct of memory or export a function that the host can use to allocate memory of a certain size. Using WASI stdio streams or the Component Model is much more straightforward.

Any Promises / micro tasks seemed to cause the WASM program and runtime to exit

By default, Javy does not run the event loop and will trap if there are events remaining on the event queue after the JS has executed.

I think (rust noob) I enabled the event loop feature when I built javy-cli locally so I feel like I'm not quite understanding the different moving parts quite yet.

The javy-core crate is where the experimental_event_loop feature needs to be enabled. We have a feature with the same name on the javy-cli crate but it just changes which integration tests are run, it doesn't actually enable the event loop.
Something like:
$ cargo build -p javy-core --target=wasm32-wasi --features=experimental_event_loop -r
$ cargo build -p javy-cli -r

should build the CLI with event loop support enabled.
I hope this helps!

I'm going to close this issue for now. Feel free to continue the conversation or re-open if you feel that something was not addressed.

Hi thanks again for getting back to me. I just got back from the break today and will be poking around in the space over the next little while (or more, hopefully!). Our use-cases appear to be remarkably similar but the level of expressiveness we want / need to give to customers seems to be a bit different.
As a first level of exploration. I'm imagining a world in which we can transparently take untrusted JavaScript and determine if it can be fully understood through static analysis. Our extensibility use-case has some domain-specific APIs we expose in JavaScript that we fully understand. My intuition is that there will be a meaningful subset of untrusted code that only leverages basic JavaScript and our own proprietary APIs. Anything that can be fully understood in this way can then be translated / transpiled / simplified to logic that could be run using Javy's lighter-weight isolation approach.
That gives us a pathway towards on-boarding increasingly complex JavaScript workloads that require an event loop (or at least a microtask queue) and later controlled I/O. Any opportunities to shift untrusted code to lighter-weight and more strongly-isolated runtimes would be a major boon.
Are there any more interactive venues you recommend to chat?

Are there any more interactive venues you recommend to chat?

I'm on the Bytecode Alliance Zulip and keep an eye on the Javy channel.


Private Domain

Hey,
There is no option to overwrite the base url with different base url for private domain,
I tried to fix it and open merge request but had no permission to push my branch.
simple example for usecase:
if company uses gitlab.google.com , this package does not support it .
If you can simply expose the setBaseURL method as public that will be good enough to overwrite the existing one,
Thanks in advanced.

This already exists: https://github.com/xanzy/go-gitlab/blob/master/client_options.go#L29
Additionally if you want to make a PR, it is common to fork the repo, create a branch and the make a PR from your fork to this repo. But in this case the functionality you want already exists.


Rocm 3.3 codegen bug

Rocm generates code with incorrect constant.
Source code:  https://www.dropbox.com/s/dfo1ztg02vrth5y/rocmbug?dl=0
Disassembly:  https://www.dropbox.com/s/xbmynmrvpazos1d/rocmbug.bad?dl=0
Disassembly compiled with the WORKAROUND_ROCM_BUG defined:
https://www.dropbox.com/s/d2f8botaigandak/rocmbug.good?dl=0
In particular the constant S0 = 3.359992142876784201685022306409177725743E-3 in ksinpi is mangled.  In the good disassembly you'll see:
s_mov_b32 s3, 0xbf6b866a
s_mov_b32 s2, 0xbca875c
in the bad disassembly you'll see:
s_mov_b32 s11, 0xbf341b2f
s_mov_b32 s10, 0x769cf0e0

The source code does not compile as-is.  Could you provide the complete preprocessed source?

I want to confirm that I can repro this. Here are detailed repro steps and ISA.
Repro:

check out gpuowl at: https://github.com/preda/gpuowl/tree/a39cc1a460bc6f2cac6ab4134088f220bfde4060
and build with scons or make
Good case:

mkdir good
./gpuowl -prp 95680699 -use TEST_KERNEL,ULTRA_TRIG -dump good

Bad case:
mkdir bad
./gpuowl -prp 95680699 -use TEST_KERNEL,ULTRA_TRIG,NO_KCOS_ROCM_BUG -dump bad

Open the files good/5M_0_gfx906.s and bad/5M_0_gfx906.s and extract the testKernel ISA (also attached).
Compare, and see that in the good case the FMA towards the end is done with
-0.003359992142876784 (0xbca875c, 0xbf6b866a)

while in the bad case it's done with
-0.00030679615757712823 (0x769cf0e0, 0xbf341b2f)

I did parse the ISA for a while trying to find a way that this constant replacement would be correct, but no matter what it does not work out.
Note that the testKernel provides a very nice isolated case, small and without any OMOD involvement.
bad.txt
good.txt
I'll look into extracting a small standalone program if you'd find that useful, but in the meantime the above steps should allow repro and confirmation.

@preda we can focus on what is important to solving problems faster if we are given the minimum possible instance needed to produce it.  In this case, we don't need or want to pull, build, and run gpuowl.  If there is a minimal OpenCL C source file that we can compile and observe the problem, then that would be best for us.

I put together a single-file reproducer, attached. Compile with
g++ main.cpp -lOpenCL
run with ./a.out
Observe difference in dump files good_xxx.s and bad_xxx.s
A bit unexpectedly, it does reproduce :)
Please let me know if repro works.
A quick repro check is
grep 0xbf6b866a *.s

main.cpp.txt

@b-sumner:
Any progress on this.   Do you need more from us?

@b-sumner please do provide feedback about what the bug/fix is. (a reference to the fix commit would be great)

The report is in the system.  I'm afraid I don't any other updates currently.

I don't see any comment here about the effects of the incorrect/unexpected constant.
The code is compiling with cl-fast-relaxed-math and there may have been some reassociation.  Do you see a problem when not using cl-fast-relaxed-math?

I did a new review of the generated ISA today, and now I see that the generated code is valid. Indeed when -cl-fast-relaxed-math is used, two constants are multiplied together into a new constant. While this changes a tiny bit the result (and this is most likely the difference we were seeing in gpuowl), it's legal under relaxed math. Feel free to close the issue and sorry for the false alarm.

Thanks for checking.  I will close this.


bump(*): make project go-gettable with go modules

bump k8s.io/klog to v1.0.0
bump containers/image/v5 to v5.4.3
rm replace for go-ansiterm
pin containerd/containerd to 1.3.6
go mod tidy && go mod vendor

/lgtm


chore(main): release 0.1.0

:robot: I have created a release beep boop
0.1.0 (2022-05-29)
Features

initial commit (4726940)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/smarlhens/npm-check-engines/releases/tag/v0.1.0 :sunflower:


Implementing Mystery Number in Go

💥 Proposal
Implementing Mystery Number in Go.
Have you read the Contributing Guidelines on Pull Requests?
Yes

/assign


Bug v0.4.0 - Sound lag

There is a lag in sounds, at least for Mac, of about 1 or 2 seconds.

Issue fixed. To be released in 0.5.0.

Released in 0.5.0

It's still happening in v0.5.0. Weird.

The sound leg seem to appear again in 0.5.0

Fixed, will be released in v0.7.0

I'm getting several seconds sound lag in Klive v0.9.0 in Windows

@TurtleQuality, could you give me some more details on your Windows machine? Windows version, CPU, memory,etc?

Hi,
thanks for the quick response.
Edition Windows 10 Pro
Version 21H1
Installed on 13/08/2020
OS build 19043.1237
Experience Windows Feature Experience Pack 120.2212.3530.0
Processor AMD A6-5400B APU with Radeon(tm) HD Graphics      3.60 GHz
Installed RAM 8.00 GB (7.19 GB usable)
System type 64-bit operating system, x64-based processor
By modern standards it's quite underpowered.
Just installed Klive yesterday, I've been using Zeus for about 3 years.
Install went well except on page "Setup » Configure the Emulator" you refer
to file "klive.config" which is actually "klive.setup".
Have a good weekend,
Thomas Quillin
On Fri, 24 Sept 2021 at 08:07, Istvan Novak @.***>
wrote:

@TurtleQuality https://github.com/TurtleQuality, could you give me some
more details on your Windows machine? Windows version, CPU, memory,etc?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Dotneteer/kliveide/issues/90#issuecomment-926350130,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUAYMKP6KFAIKBM72VPK3QLUDQBQVANCNFSM4RJTFJGQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@TurtleQuality
Thomas, thanks for the info!
Unfortunately, the sound lagging is caused by the Electron shell, so I can't do too much to improve it. Nonetheless, v0.9.0 uses Electron shell v11.1.1, while the current development branch relies on 13.1.6, which is much faster. A few of my friends tried it (on Mac, where the sound issue was always the worst), and they experienced that the issue vanished with the new Electron version.
Since March, I'm working on a brand-new version of Klive that has its own IDE, and does not need VS Code. Though it is still not stable enough for release, you can try it to check the sound issue:
Clone the repository (git clone), use the master branch
npm run bootstrap
Select the packages/klive-emu folder (this contains the brand-new, single-app Klive version)
npm run build (it takes about 1-2 minutes)
npm start
Select ZX Spectrum 48/128
Start the machine, run LOAD "", and check the sound.
Here are a few screenshots from the new IDE (click IDE|Show IDE window in the main menu):

Hi Ivan,
it was a learning experience, but I wanted to try it out. So I installed
Github Desktop, the Command Line tool and Node.JS for the NPM commands. But
NPM start fails with the errors copied below
Not sure if I need to specifically install Electron 13.1.6 or if it's some
other issue.
I mainly needed an assembler / emulator to check and play with some "chase
the raster" code - is it correct that the debugger raster tracker follows
only the top line to show horizontal position ? I was hoping it would move
down the screen
Look forward to the new release
Regards,
Thomas
C:\Users\User1\Documents\GitHub\kliveide\packages\klive-emu>npm start

@.*** start
C:\Users\User1\Documents\GitHub\kliveide\packages\klive-emu
electron ./dist/main.bundle.js

internal/modules/cjs/loader.js:892
throw err;
^
Error: Cannot find module
'C:\Users\User1\Documents\GitHub\kliveide\packages\klive-emu\node_modules\electron\cli.js'
at Function.Module._resolveFilename
(internal/modules/cjs/loader.js:889:15)
at Function.Module._load (internal/modules/cjs/loader.js:745:27)
at Function.executeUserEntryPoint [as runMain]
(internal/modules/run_main.js:76:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @.*** start: electron ./dist/main.bundle.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @.*** start script.
On Fri, 24 Sept 2021 at 09:50, Istvan Novak @.***>
wrote:

@TurtleQuality https://github.com/TurtleQuality
Thomas, thanks for the info!
Unfortunately, the sound lagging is caused by the Electron shell, so I
can't do too much to improve it. Nonetheless, v0.9.0 uses Electron shell
v11.1.1, while the current development branch relies on 13.1.6, which is
much faster. A few of my friends tried it (on Mac, where the sound issue
was always the worst), and they experienced that the issue vanished with
the new Electron version.
Since March, I'm working on a brand-new version of Klive that has its own
IDE, and does not need VS Code. Though it is still not stable enough for
release, you can try it to check the sound issue:
Clone the repository (git clone), use the master branch
npm run bootstrap
Select the packages/klive-emu folder (this contains the brand-new,
single-app Klive version)
npm run build (it takes about 1-2 minutes)
npm start
Select ZX Spectrum 48/128
Start the machine, run LOAD "", and check the sound.
Here are a few screenshots from the new IDE (click IDE|Show IDE window
in the main menu):
[image: electron_koyCcJCiN3]
https://user-images.githubusercontent.com/4783390/134630639-7c384253-df60-40a9-bb86-d0019c74d896.png
[image: electron_ib1arX8WYM]
https://user-images.githubusercontent.com/4783390/134630708-533ab895-a3ce-48c2-8b06-af7da2e11dd0.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Dotneteer/kliveide/issues/90#issuecomment-926388488,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUAYMKP4C5K4JOETK2MTMSDUDQNSLANCNFSM4RJTFJGQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thomas,
Sorry for the build does not work on your machine ☹. During the weekend, I will create a build with the newest Electron so that you can try that version on your Windows machine.
“Chasing the raster code” works for the entire screen area and not just for the top line 😊. When you stop the code, it always happens after a screen has been entirely rendered, so you see the current raster be the top one after pausing the machine.
So, after a pause, use the step-into and step-over buttons on the toolbar. As you use them, you will see the raster/pixel position move.
Later, I will add a debug feature to pause the code when the screen rendering reaches a particular raster line.
Istvan
Feladó: TurtleQuality @.>
Küldve: 2021. szeptember 27., hétfő 15:53
Címzett: Dotneteer/kliveide @.>
Másolatot kap: Istvan Novak @.>; State change @.>
Tárgy: Re: [Dotneteer/kliveide] Bug v0.4.0 - Sound lag (#90)
Hi Ivan,
it was a learning experience, but I wanted to try it out. So I installed
Github Desktop, the Command Line tool and Node.JS for the NPM commands. But
NPM start fails with the errors copied below
Not sure if I need to specifically install Electron 13.1.6 or if it's some
other issue.
I mainly needed an assembler / emulator to check and play with some "chase
the raster" code - is it correct that the debugger raster tracker follows
only the top line to show horizontal position ? I was hoping it would move
down the screen
Look forward to the new release
Regards,
Thomas
C:\Users\User1\Documents\GitHub\kliveide\packages\klive-emu>npm start

<EMAIL_ADDRESS>start
C:\Users\User1\Documents\GitHub\kliveide\packages\klive-emu
electron ./dist/main.bundle.js

internal/modules/cjs/loader.js:892
throw err;
^
Error: Cannot find module
'C:\Users\User1\Documents\GitHub\kliveide\packages\klive-emu\node_modules\electron\cli.js'
at Function.Module._resolveFilename
(internal/modules/cjs/loader.js:889:15)
at Function.Module._load (internal/modules/cjs/loader.js:745:27)
at Function.executeUserEntryPoint [as runMain]
(internal/modules/run_main.js:76:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: electron ./dist/main.bundle.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
On Fri, 24 Sept 2021 at 09:50, Istvan Novak<EMAIL_ADDRESS>wrote:

@TurtleQuality https://github.com/TurtleQuality
Thomas, thanks for the info!
Unfortunately, the sound lagging is caused by the Electron shell, so I
can't do too much to improve it. Nonetheless, v0.9.0 uses Electron shell
v11.1.1, while the current development branch relies on 13.1.6, which is
much faster. A few of my friends tried it (on Mac, where the sound issue
was always the worst), and they experienced that the issue vanished with
the new Electron version.
Since March, I'm working on a brand-new version of Klive that has its own
IDE, and does not need VS Code. Though it is still not stable enough for
release, you can try it to check the sound issue:
Clone the repository (git clone), use the master branch
npm run bootstrap
Select the packages/klive-emu folder (this contains the brand-new,
single-app Klive version)
npm run build (it takes about 1-2 minutes)
npm start
Select ZX Spectrum 48/128
Start the machine, run LOAD "", and check the sound.
Here are a few screenshots from the new IDE (click IDE|Show IDE window
in the main menu):
[image: electron_koyCcJCiN3]
https://user-images.githubusercontent.com/4783390/134630639-7c384253-df60-40a9-bb86-d0019c74d896.png
[image: electron_ib1arX8WYM]
https://user-images.githubusercontent.com/4783390/134630708-533ab895-a3ce-48c2-8b06-af7da2e11dd0.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Dotneteer/kliveide/issues/90#issuecomment-926388488,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AUAYMKP4C5K4JOETK2MTMSDUDQNSLANCNFSM4RJTFJGQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDotneteer%2Fkliveide%2Fissues%2F90%23issuecomment-927896812&data=04|01||be34ed85918f430dcd8d08d981be242d|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637683475910660993|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=L%2BjsWqF5P%2BHDi1qRkbTD6UITvlsZlyLNekReMSs%2BIdo%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABEP2HXN5NSCIZO6BKTNJ6DUEBZMLANCNFSM4RJTFJGQ&data=04|01||be34ed85918f430dcd8d08d981be242d|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637683475910670946|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=dtgUDdueyFHnpUUf7lRHLnf6mIjd7AxCj%2BdYmmz6jhc%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01||be34ed85918f430dcd8d08d981be242d|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637683475910670946|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=wDuXzndfIMfV%2B7FP6hAPLfLjdT6g83dMNc03%2BsUp%2F84%3D&reserved=0 or Androidhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01||be34ed85918f430dcd8d08d981be242d|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637683475910680902|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=q1tTnRwzAoWYwt9gR7Yg2ReVGZ8r9oIrWsXgAMDyQ%2BQ%3D&reserved=0.

By my experience, the sound lagging issue goes away with Electron v16. I cannot reproduce it wiht Klive v0.11.0.


Add support for the [QueryString] attribute into reverse url resolution

So you can do things like:
    public class ModelWithQueryStringInput
    {
        [QueryString]
        public int Param { get; set; }
    }

and get "?Param=345" built into the url.

Alba has a different scope and direction now, closing this.


TFLu - Apollo3 - Fix Existing Issues

Addressing #44737
This PR is meant to fix existing issues with Apollo3 support in TensorFlow Lite Micro.

improves apollo3evb audio provider
silences compilation warning/error for sparkfun_edge hello_world
enables 96 MHz burst mode on apollo3evb to match sparkfun_edge performance

closing this pr per discussion in #44737


Feat/toggle

Closes #18

@aigoncharov i tried using Label component as the inner label but it looked messier than the current code which is like 3 lines anyway. all your other comments from the deleted pr should be handled by this pr.

@utkukaratas please, do not forget to connect the PR with the issue on zenhub and link to it via comment as well.

thanks again for the great points @aigoncharov. all implemented except the sizing stuff - for that i'm waiting the final design.

thanks again for the great points @aigoncharov. all implemented except the sizing stuff - for that i'm waiting the final design.

@utkukaratas AFAICS, @pawelklasa provided the design for the off state of the toggle and for the focused state. Let's follow the common sense here and replicate the design based on the Checkbox component:

hover - use the same border style as specified for the Toggle  focus design, but use the color from checkbox hover.
disabled - use all colors from the checkbox design
error - same as hover, but use the error color
helper text - use the same Help component with the same margin as for the checkbox.

hi @aigoncharov, all of your suggestions are taken into account with the latest commits.  (i did imitate Checkbox as much as it makes sense & all around refactoring to the css)

@utkukaratas GJ!

Could you make sure it passed the CI checks?
When the component is in an error state, the focus styles for the border should override the error ones.

@aigoncharov thanks for another great round of reviews, extremely helpful for me.
i implemented most of your suggestions and resolved related comments. the comments i left unresolved are the ones i had other ideas. feel free to resolve them or pressure me to look again.
ps. i'm still pursuing the pr errors with clean install...

@utkukaratas I have merged master into your branch, ran npx lerna clean, npm ci, and it started giving correct errors.
Here they are:
andreygoncharov@andrey-goncharov-ThinkPad-X1-Extreme:~/Dev/Hazelcast/frontend-shared/packages/ui$ npm run lint

><EMAIL_ADDRESS>lint /home/andreygoncharov/Dev/Hazelcast/frontend-shared/packages/ui
> npm run lint:ts && npm run lint:css

><EMAIL_ADDRESS>lint:ts /home/andreygoncharov/Dev/Hazelcast/frontend-shared/packages/ui
> eslint --ext .ts,.tsx .

><EMAIL_ADDRESS>lint:css /home/andreygoncharov/Dev/Hazelcast/frontend-shared/packages/ui
> postcss --config ./.postcss-lint --replace '**/*.{css,scss}'

src/Toggle.module.scss
92:3	⚠  Expected selector ".wrapper .error .toggleTrack" to come before selector ".wrapper .disabled .toggleTrack:focus" (no-descending-specificity) [stylelint]
104:15	⚠  Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation) [stylelint]
118:54	⚠  Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation) [stylelint]
124:46	⚠  Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation) [stylelint]
136:54	⚠  Expected double colon pseudo-element notation (selector-pseudo-element-colon-notation) [stylelint]
139:5	⚠  CSS unset value not supported by: IE (11) (css-unset-value) [doiuse]

Error:
** postcss-reporter: warnings or errors were found **

@utkukaratas did you have a chance to take a look at the border color thing for the focused toggle in the error state?

@aigoncharov a clean install did the trick, weird. anyhow this branch should now pass from the pr builder.

@utkukaratas did you have a chance to take a look at the border color thing for the focused toggle in the error state?

yes this should be fixed.


PlatformException(IO_ERROR, A network error occurred trying to lookup the supplied coordinates

🐛 Bug Report
It works fine for a few days , after few days it is not working. When I supply a co-ordinates to look up into the placemark of that place, It throws an exception "PlatformException(IO_ERROR, A network error occurred trying to lookup the supplied coordinates " . But , the same co-ordinate's placemark was returned correctly at the beginning, after few days of using it , it shows this error.
Expected behavior
Reproduction steps
Configuration
Version: 1.0.5
Platform:
Android

Duplicate of #9 and #23. Please have a look there for detailed information.


No UDP packets received from server

Hello,
We are developing on Android 5.1.1 and we are using Kryonet 2.22.0-RC1.
We manage to send packets to the server from clients via UDP but it seems that UDP packets send from the server are not received by clients.
In the debug logs, we get "DEBUG: [kryo] write: PacketMovement" but the client receives nothing except KeepAlive packets.
Currently we are using the "Connection" object of the received method from the server to resend data to our clients.
What are we doing wrong ?

I also have this issue. It seems to work for TCP though.

Have a look it this it might help
https://github.com/EsotericSoftware/kryonet/pull/111


Postsubmit fails pushing to the Docker registry

This has just started happening - it looks like a transient/flake type of issue but its only gotten worse.
Mostly there is not much log info - altho on one run i saw this
write tcp <IP_ADDRESS>:56978-><IP_ADDRESS>:443: use of closed network connection"

https://dev.azure.com/cncf/envoy/_build/results?buildId=167961&view=logs&j=86165412-e6cf-5df7-4573-670f16ea7b21&t=17984700-8a8b-562b-3e24-93462ef57afd&l=1384
Its possibly a skopeo issue
either way - this will block release

this problem doesnt seem to be going away
possibly related (historical issue) https://github.com/containers/skopeo/issues/1627

as i suspected - kicking ci and it passes on second run (i think the issue occurs when there are a lot of large layers to upload)

closing this - seems it was transient


Add Dockerfile.sys-mgmt-agent (and related updates) as part of POC C …

The work done in this PR is per Issue #834, which is for the SMA start/stop/restart refactor (Edinburgh Roadmap Item).
Assistance from @jpwhitemn and @JPWKU has been indispensable, and is greatly appreciated 👍
The SMA (via the DinD container hosting it) can now start, stop, restart EdgeX services, responding to REST calls.
We don’t want the SMA to be responsible for the creation of containers; only for starting, stopping, and restarting services in containers. Some research confirmed that running docker (instead of docker-compose fits the bill perfectly.)
In other words, the SMA needs to be able to start and stop the EdgeX containers (more precisely the services, because we have the inside-DinD and outside-of-docker scenarios)
The preceding is the latest update incorporated in the work done in this PR.
Other salient aspects are covered by notes (aka comments) below.
Postman was used for testing.
Here is a sample payload corresponding to the start operation during use of http://localhost:48090/api/v1/operation in Postman:

{
   "action":"start",
   "services":[
   	  "edgex-support-logging",
   	  "edgex-core-metadata",
      "edgex-support-notifications",
      "edgex-core-data",
      "edgex-core-command",
      "edgex-export-client",
      "edgex-export-distro"
   ],
   "params":[
   	"graceful"
   	]
}

During development and especially during testing, these commands helped a lot, and for which I'm grateful to both @jpwhitemn and @JPWKU:

docker run -d -p <IP_ADDRESS>:48090:48090 -v /var/run/docker.sock:/var/run/docker.sock IMAGEID
docker exec -it CONTAINERID /bin/sh

Signed-off-by: Akram Ahmad<EMAIL_ADDRESS>

@jpwhitemn Getting feedback from the local environment and / or Docker itself has been trickier than anticipated. Basically, verifying whether this worked or not: COPY . . Tried several variants, including some online wisdom on How can I inspect the file system of a failed docker build?

@jpwhitemn Getting feedback from the local environment and / or Docker itself has been trickier than anticipated. Basically, verifying whether this worked or not: COPY . . Tried several variants, including some online wisdom on How can I inspect the file system of a failed docker build?

@akramtexas If you look at the console logs of edgex-go-master-verify and/or edgex-go-master-verify-arm you will find the specific build error there.

The Jenkins build eventually runs aground, but has interesting feedback: Jenkins build and which I'm parsing for clues 🔍

Things looking up: 11:19:25 Finished: SUCCESS
That's per the Jenkins' build: Jenkins Console
Meanwhile, I’m testing it locally, by running make docker locally, and then try to run the image (locally) to verify that all works as expected per POC C. However, getting this error, locally, on running make docker:

[WARN]  Unable to checkout github.com/mitchellh/consulstructure
[ERROR] Update failed for github.com/mitchellh/consulstructure: Unable to get repository: Cloning into '/root/.glide/cache/src/https-github.com-mitchellh-consulstructure'...
fatal: unable to access 'https://github.com/mitchellh/consulstructure/': Empty reply from server
: exit status 128
[WARN]  Unable to checkout github.com/mitchellh/copystructure
[ERROR] Update failed for github.com/mitchellh/copystructure: Unable to get repository: Cloning into '/root/.glide/cache/src/https-github.com-mitchellh-copystructure'...
fatal: unable to access 'https://github.com/mitchellh/copystructure/': Empty reply from server
: exit status 128

Using the following, two-step process to shell-in to the Docker image...

docker run -itd -v /var/run/docker.sock:/var/run/docker.sock IMAGEID
docker exec -it CONTAINERID /bin/bash
...I get the following feedback at this time, using locally-generated Docker images:

Looking into how we might adjust the last entry point in the Dockerfile (Thanks for the tip, @JPWKU) since the container does start running, but only momentarily, stopping unbidden:

docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
3bf37022c05c        6a691ee9f9dd        “/sys-mgmt-agent --p…”   3 minutes ago       Exited (0) 3 minutes ago                        eager_cocks
e2223a063ec8        6a691ee9f9dd        “/sys-mgmt-agent --p…”   4 minutes ago       Exited (0) 4 minutes ago                        upbeat_hofstadter

Right now we got in in Dockerfile.sys-mgmt-agent: ENTRYPOINT ["/sys-mgmt-agent","--profile=docker","--confdir=/res"]

@jpwhitemn Thanks to tips from @JPWKU (i.e. in Dockerfile, replacing ENTRYPOINT ["/sys-mgmt-agent","--profile=docker","--confdir=/res"] by ENTRYPOINT ["/bin/bash", "-c"], etc.) we aimed to exec in to the generate imaged, start the SMA, and see if there is anything wrong.

Got the following, and investigating:

bash-4.4# ./sys-mgmt-agent --profile=docker --confdir=/res
level=ERROR ts=2018-12-13T00:02:01.494654173Z source=main.go:91 msg="edgex-sys-mgmt-agent: Service bootstrap failed!"

Check

Preserving some Docker-related info (often-used, diagnostic commands) that will be helpful down-the-road, for myself and others:
As an intermediate (testing) step, to to start all EdgeX services from outside the container (effectively bypassing the SMA), run: docker exec -it CONTAINERID docker-compose -d up

While testing through the SMA's REST interface, the response as in the snippet below is expected when (other-than-SMA) EdgeX services are down. I had issued this REST call via the PostMan client, after having gotten port-forwarding going via docker run -it -p <IP_ADDRESS>:48090:48090 8767fe8f90bf:
http://localhost:48090/api/v1/config/edgex-support-logging,edgex-core-metadata,edgex-support-notifications,edgex-core-data,edgex-core-command,edgex-export-client,edgex-export-distro
And got a response, of which a partial snippet is like this:

level=INFO ts=2018-12-14T16:18:02.7891318Z source=main.go:72 msg="Service dependencies resolved..."
level=INFO ts=2018-12-14T16:18:02.7892279Z source=main.go:73 msg="Starting edgex-sys-mgmt-agent 1.0.0 "
level=INFO ts=2018-12-14T16:18:02.7893398Z source=main.go:84 msg="Listening on port: 48090"
level=ERROR ts=2018-12-14T16:18:22.3871968Z source=services.go:78 msg="edgex-support-logging get config error: Get http://edgex-support-logging:48061/api/v1/config: dial tcp: lookup edgex-support-logging on <IP_ADDRESS>:53: no such host"
level=ERROR ts=2018-12-14T16:18:22.4518932Z source=services.go:78 msg="edgex-core-metadata get config error: Get http://edgex-core-metadata:48081/api/v1/config: dial tcp: lookup edgex-core-metadata on <IP_ADDRESS>:53: no such host

Thanks to a crucial insight from @jpwhitemn, the SMA (running inside the DinD Docker container) can now start and stop EdgeX services when it (i.e. the DinD Docker container hosting the SMA) is started with bindings as illustrated in the command below:

docker run -d -p 48090:48090 --name akram-sma -v /var/run/docker.sock:/var/run/docker.sock IMAGE-ID-of-DinD

Using the following, two-step process to shell-in to the Docker image...

docker run -itd -v /var/run/docker.sock:/var/run/docker.sock IMAGEID
docker exec -it CONTAINERID /bin/bash
...
docker run -itd -v /var/run/docker.sock:/var/run/docker.sock 6a691ee9f9dd
7a6bd045d8c58e5d5a7394e933f2326587415be7fc7e602dc7db5353dd34ca9c
...

Starting the custom DinD Docker container (hosting the SMA) with (similar) proper bindings was attempted (as in the quoted comment that appears earlier in this PR) at one time, during the work on predecessors of POC C, this information had now been applied (thanks to Jim, as mentioned in the preceding note).

Separate from the preceding two comments, in a parallel effort, I created the SMA executable with the make command, then did a docker build with a Dockerfile that simply copies the SMA executable (rather than building it in the Docker image).
Here is the outcome of that parallel effort:

bash-4.4# ./sys-mgmt-agent
bash: ./sys-mgmt-agent: cannot execute binary file: Exec format error
bash-4.4# whoami
root

@jpwhitemn While the SMA now can, via the DinD Docker image with SMA, start all EdgeX services, it is, oddly enough, at the moment, unable to stop them 🛑 I am investigating 🔍

@jpwhitemn While the SMA now can, via the DinD Docker image with SMA, start all EdgeX services, it is, oddly enough, at the moment, unable to stop them 🛑 I am investigating 🔍

@jpwhitemn I exec'd in to running container and found telltale signs in the logging by SMA, and am investigating:

2018/12/19 15:21:15 http: panic serving <IP_ADDRESS>:54228: runtime error: invalid memory address or nil pointer dereference
goroutine 23 [running]:
net/http.(*conn).serve.func1(0xc0002bb2c0)
/usr/local/go/src/net/http/server.go:1746 +0xd0
panic(0x7555e0, 0xa70a40)
/usr/local/go/src/runtime/panic.go:513 +0x1b9
github.com/edgexfoundry/edgex-go/internal/system/agent.InvokeOperation(0x7bf65e, 0x4, 0xc0003c0090, 0x7, 0x9, 0x0)
/go/src/github.com/edgexfoundry/edgex-go/internal/system/agent/services.go:48 +0x5a7
github.com/edgexfoundry/edgex-go/internal/system/agent.operationHandler(0x822260, 0xc0004ea000, 0xc00038e500)
/go/src/github.com/edgexfoundry/edgex-go/internal/system/agent/router.go:69 +0x5d2
net/http.HandlerFunc.ServeHTTP(0x7d74e0, 0x822260, 0xc0004ea000, 0xc00038e500)
/usr/local/go/src/net/http/server.go:1964 +0x44
github.com/edgexfoundry/edgex-go/vendor/github.com/gorilla/mux.(*Router).ServeHTTP(0xc0002c8280, 0x822260, 0xc0004ea000, 0xc00038e500)
/go/src/github.com/edgexfoundry/edgex-go/vendor/github.com/gorilla/mux/mux.go:114 +0xe

553  docker run -d -p <IP_ADDRESS>:48090:48090 -v /var/run/docker.sock:/var/run/docker.sock 5b844e9acd6b
554  docker exec -it a827a5252080 /bin/sh

As noted earlier, the SMA now can, via the DinD Docker image with SMA, start all EdgeX services, for example as in this logging:

level=INFO ts=2018-12-19T15:20:23.1481388Z source=services.go:36 actiontype=start servicename=edgex-export-distro msg="invoking operation on service"
[370/1536]0xc0004ae600
level=INFO ts=2018-12-19T15:21:15.4507536Z source=services.go:36 actiontype=stop servicename=edgex-support-logging msg="invoking operation on service"

@jpwhitemn I exec'd in to running container and found telltale signs in the logging by SMA, and am investigating:

2018/12/19 15:21:15 http: panic serving <IP_ADDRESS>:54228: runtime error: invalid memory address or nil pointer dereference

Identified the problem, or at least a major part that is problematic, which is that this call (made during execution of the SMA function func (de *ExecuteDocker) StopService(service string) error {...}) is returning nil:

containers, err := cli.ContainerList(ctx, types.ContainerListOptions{})

No containers are found by the SMA, and so it can stop none...
Investigating the cause of the disconnect (i.e. unreachability of the containers that host the other EdgeX services)

Captured this (annotated) runtime information through debugger, related to the containers list being empty:

Through a combination of Dockerexec'ing and stepping through code, figured out and fixed the cause ofstopoperation not working throughDinD (Tested and pushed the change-set to remote repo).

@akramtexas - based on Ian's breakage note, let's hold off on this.  Let's get it cleaned up in the new year.  Thanks Ian, Thanks Trevor and thanks much Akram.  We'll get it right.

@akramtexas - based on Ian's breakage note, let's hold off on this. Let's get it cleaned up in the new year. Thanks Ian, Thanks Trevor and thanks much Akram. We'll get it right.

@jpwhitemn Checking the status of PR quick while on holiday and notice Ian rightly pointing out the breakage. Yes, will get it cleaned up and make it right early in the new year 👍

I’m close to a fully-functioning Dockerfile. This glitch, however, is currently holding me back. Both SMA and executor build fine, but the executor is not getting COPY over as it’s not found by Docker runtime. Reached out to @JPWKU 👍

Status: Downloaded newer image for docker:latest
---> 57d6f6487e82
Step 12/21 : COPY --from=builder /go/src/github.com/edgexfoundry/edgex-go/cmd/sys-mgmt-agent/sys-mgmt-agent /
---> da8441825aef
Step 13/21 : COPY --from=builder /go/src/github.com/edgexfoundry/edgex-go/cmd/sys-mgmt-agent/res/docker/configuration.toml /res/docker/configuration.toml
---> 331fd288e07b
Step 14/21 : COPY --from=builder /go/src/github.com/edgexfoundry/edgex-go/cmd/sys-mgmt-agent/res/docker/configuration.toml /res/configuration.toml
---> fbac498ab7f4
Step 15/21 : COPY --from=builder /go/src/github.com/docker-compose/main /
COPY failed: stat /var/lib/docker/overlay2/c332cccd64f8f2e6f16fda79aa646eb62e9648a94b4060c7b9c080caea73b88e/merged/go/src/github.com/docker-compose/main: no such file or directory
make: *** [docker_sys_mgmt_agent] Error 1

This PR will break the SMA working with the snap

Following several discussions with Ian and Tony, and indeed in the Sys Mgmt WG meetings, we got three new abstractions now (the following) that address Ian’s comments:
`type ServiceStarter interface {
Start(service string) error
}
type ServiceStopper interface {
Stop(service string, ) error
}
type ServiceRestarter interface {
Restart(service string) error
}
`

Please note the new coordinates for the cleaned-up repo, which houses a reference implementation for an SMA executor: Temporary home.

Is the reference implementation for the docker-compose executor not going to be pulled into edgex-go?

Is the reference implementation for the docker-compose executor not going to be pulled into edgex-go?

The thinking there is to have a separate repo (outside of edgex-go) where this reference implementation, which of course is for the docker-compose executor (and other reference implementations) to find a (unifying) home as well.

The thinking there is to have a separate repo (outside of edgex-go) where this reference implementation, which of course is for the docker-compose executor (and other reference implementations) to find a (unifying) home as well.

I guess I still don't understand... Is the code you wrote for the docker-compose-executor going to be committed to edgex-go (either as a part of this PR or a future one)? I think it should, otherwise you have 2 scenarios:

The default distribution of EdgeX doesn't include this and users have to someone inject this new binary into their running docker images, which is a very bad user experience OR
We have to modify this repository's docker build scripts so that it builds a different repository and then includes it into the SMA image. I think this is wrong and will prove to be difficult to maintain.

The thinking there is to have a separate repo (outside of edgex-go) where this reference implementation, which of course is for the docker-compose executor (and other reference implementations) to find a (unifying) home as well.

I guess I still don't understand... Is the code you wrote for the docker-compose-executor going to be committed to edgex-go (either as a part of this PR or a future one)? I think it should, otherwise you have 2 scenarios:

The default distribution of EdgeX doesn't include this and users have to someone inject this new binary into their running docker images, which is a very bad user experience OR
We have to modify this repository's docker build scripts so that it builds a different repository and then includes it into the SMA image. I think this is wrong and will prove to be difficult to maintain.

Good question @anonymouse64 - To simplify things, we're going to track that related work (i.e. the code I wrote for the docker-compose-executor) here: Issue #1091

Recheck

Recheck


Pods - Overhaul - Template/Pods/Images/Snapshots/Volumes

Adding tabbing interface between existing Pod main endpoints. Giving a pretty similar interface for each page.
Changing how router works so page components are on the page.
Adding context so state is saved between tabs.
Reorganization to best-practices.

New PodsNavigation bar with state and layout of the pages. Attempted to keep code deduplication down, but definitely areas to

New PodsNavigation bar with state and layout of the pages. Attempted to keep code deduplication down, but definitely areas to


fix: Reduce opinionation of editorconfig

The new editorconfig was a little too strict when combined with automatic code formatting in VSCode, resulting in very undesirable minification/whitespace removal. I loosened it a bit. After some testing, I believe submitting autoformatted code should be quite safe after this change.

Additionally, none of the changes introduced any kind of minification, if any of it resulted in minified Lua code then that's a bug in the formatter you're using.


Remove unused functionality in pkg/bpf

See commits for details.

/test

l4lb test failure will be fixed by #18370

/test-runtime

Approved and runtime tests passed. All other tests (except l4lb, see https://github.com/cilium/cilium/pull/18378#issuecomment-1005582857) passed on previous run. Marking as ready to merge.


When userCheckpoint() is the first checkPoint call of the target user, many useless calls are made. [Recommended]

int128 checkpoint = period[tokenId][user] to check the checkpoint, if it is 0, if(checkpoint == 0) {periodOf[tokenId][user] = _period; return;} would be better.

It's a valid point for first time calls, but I don't want to consider security breach that could possiblly be brought due to this change.


A while-statement should not be used for a delay.

In the file "NHD-3.12-25664UC.ino" in the functions "data()" and "command()" there is a while-statement that seems to be used as a delay:
while(0);

That is not a safe delay. The compiler might even remove it.
The 'nop' instruction is used for very short delays. There is a function to insert 'nop' instructions: __builtin_avr_delay_cycles(delay)
The compiler might insert other instructions instead of 'nop', but it will delay the number of clock cycles that is in the parameter.

Hello Koepel,
Thank you for pointing this out and providing information on properly inserting 'nop' instructions.
We will work on fixing this issue.


Possible to hide some code?

Use case:
I'm using Handout as an alternative to ShareLatex/Notebook for my homework reports. The reports consists many plots and a few comments.
What I want to be able to do
I want to hide some parts of my code that are not relevant to the reader of the report, but necessary to create my plots. For instance, I usually have several lines specifying formatting of my pyplots.
Thanks

# handout: begin-exclude
fig, ax = plt.subplots()
ax.plot(np.sin(np.linspace(0, 20, 100)))
doc.add_figure(fig)
doc.show()
# handout: end-exclude


[Backport 2.x] [Manual backport] Bump com.google.guava:guava from 32.0.0-jre to 32.0.1-jre in /distribution/tools/upgrade-cli (#8011)

Description
This is a manual backport of #8011 - Bump com.google.guava:guava in /distribution/tools/upgrade-cli
Bumps com.google.guava:guava from 32.0.0-jre to 32.0.1-jre.

Release notes
Commits

updated-dependencies:

dependency-name: com.google.guava:guava dependency-type: direct:production update-type: version-update:semver-patch ...

Signed-off-by: dependabot[bot]<EMAIL_ADDRESS>
Update CHANGELOG

Signed-off-by: Kartik Ganesh<EMAIL_ADDRESS>
Signed-off-by: dependabot[bot]<EMAIL_ADDRESS>Signed-off-by: Kartik Ganesh<EMAIL_ADDRESS>Co-authored-by: dependabot[bot]<EMAIL_ADDRESS>Co-authored-by: Kartik Ganesh<EMAIL_ADDRESS>(cherry picked from commit a81ef5aa322faf46e7c8be776571612b93c646f5)

Check List

[ ] New functionality includes testing.

[x] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff
[x] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@kartg This PR will also need a rebase since #8051 was merged in.


Add guava cache to cache table schema in pinot broker

This PR adds a guava cache to cache table schemas in broker so that non-existence column check can directly be done on broker side.
When the EV of broker resource got changed, the guava cache will make an async call to ZK once to fetch the schema for the table (referring to the code in BrokerResourceOnlineOfflineStateModelFactory).
The cached schema will be expired after certain amount of time. The reason of using expire instead of refresh is to reduce the number of times of ZK access. E.g. a single cluster is serving for thousands of tables. If we use refreshAfterWrite(lets say 30 mins), there'll be thousands of ZK read to update schema in the cache every 30 mins. The tables with less qps shouldn't be kept in the cache unless it's queried. And the ones with more qps should stay in the cache and keep updated.
When processing a query, if the cache contains the table schema, just simply returns the schema and compares against the columns appeared in the query.
Otherwise, the cache calls ZK only once to load the schema asynchronously. The following queries asking for the same new table will ignore the schema check until guava cache successfully gets the schema from ZK.
If there're columns in the query missing in the table schema, broker emits a broker metric and returns an exception back to the client.

Codecov Report

Merging #3568 into master will decrease coverage by 12.05%.
The diff coverage is 34.28%.

@@              Coverage Diff              @@
##             master    #3568       +/-   ##
=============================================
- Coverage     70.88%   58.82%   -12.06%
  Complexity        4        4
=============================================
  Files           997     1148      +151
  Lines         45779    58266    +12487
  Branches       6137     8066     +1929
=============================================
+ Hits          32449    34274     +1825
- Misses        11208    21612    +10404
- Partials       2122     2380      +258

Impacted Files
Coverage Δ
Complexity Δ

...m/linkedin/pinot/common/utils/CommonConstants.java
39.58% <ø> (ø)
0 <0> (ø)
:arrow_down:

...roker/requesthandler/BaseBrokerRequestHandler.java
67.64% <10%> (-11.96%)
0 <0> (ø)

...kedin/pinot/broker/broker/BrokerServerBuilder.java
91.66% <100%> (+0.14%)
0 <0> (ø)
:arrow_down:

...com/linkedin/pinot/common/metrics/BrokerMeter.java
100% <100%> (ø)
0 <0> (ø)
:arrow_down:

.../pinot/broker/broker/helix/HelixBrokerStarter.java
72.88% <100%> (+0.7%)
0 <0> (ø)
:arrow_down:

...thandler/SingleConnectionBrokerRequestHandler.java
88.09% <100%> (ø)
0 <0> (ø)
:arrow_down:

...esthandler/ConnectionPoolBrokerRequestHandler.java
88.05% <100%> (ø)
0 <0> (ø)
:arrow_down:

.../pinot/broker/requesthandler/TableSchemaCache.java
50% <50%> (ø)
0 <0> (?)

...egation/function/customobject/MinMaxRangePair.java
75.86% <0%> (-24.14%)
0% <0%> (ø)

...mpl/dictionary/DoubleOffHeapMutableDictionary.java
65.45% <0%> (-18.19%)
0% <0%> (ø)

... and 178 more

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 f1512e6...eed8217. Read the comment docs.

Can you explain why does the broker needs to cache the schema in the first place?

@jfim The purpose of keeping schemas in broker is to reduce the call to pinot servers if any columns in the query don't exist in table schema. Currently pinot brokers blindly send out the query to all the selected servers and get empty response without any extra info.

Closed this PR due to 6 months inactivity. Reopen if needed.


anyway to add personal.transfer?

since no way to use metamask, any idea to add transfer function?

This library uses native go-ethereum implementation. SendTransaction method from go-ethereum will be used to send a transaction. It is already implemented for android & I am working on the iOS part.


jpegtran and optipng binaries have different names than their folder

In the aspect the code expects both to be the same.
Foldername is "jpegtran-bin", binary is "jpegtran"
Foldername is "optipng-bin", binary is "optipng"

Solve in the PR https://github.com/mocdk/MOC.ImageOptimizer/pull/6

Fixed with efba5c88499fc724b1454c825a68cd0e44dd2c8d


Changing request prompts doesn't seem to work.

passwordView.titleToRequestAuthentication = "Enter Password"
passwordView.topView.requestPassword = "Enter Password"
passwordView.topView.currentPassword = "Enter Password"
have no effect the view still displays "Inform your password"

This problem solved on #7


Is there a way to update the value of a dashboard variable from custom code?

Hi,
I am using Custom Code for the Initial and Update requests. I would like to update a ${serverStatus} dashboard variable from the Custom Code. Is this possible?
Thanks,
-Ray

@rantinray It's described in the documentation: https://volkovlabs.io/plugins/volkovlabs-form-panel/code/#update-variable-after-update-request-to-interact-with-other-panels


Cookies

User needs to re-login each time the page refreshed? Can you add cookie integration please?

closing this as a duplicate of https://github.com/tylerjrichards/st-paywall/issues/23


Using *mut with an active &mut to a parent container

Probably covered by the 'key question' in https://github.com/nikomatsakis/rust-memory-model/blob/master/litmus_tests/overlapping_ref_mut_star_mut.md, but this is something I've encountered recently so thought I'd raise it.
fn x() -> Vec<usize> {
    let mut x = vec![1, 2, 3, 4, 5, 6];
    let mut p = ptr::null_mut();
    for v in x.iter_mut() {
        if *v % 2 == 0 && p != ptr::null_mut() {
            unsafe { *p = *v }
        }
        p = v as *mut _;
    }
    x
}

Is the compiler allowed to return vec![1, 2, 3, 4, 5, 6] (e.g. generating a new vector after the loop and pointer writes) because it cannot see any change occurring through the mutable reference to the overall vec? Or is this something you could get away with because you're mutating the previous elements of the vec (without a direct mutable reference to them)?
(in the code that I'm looking at, this is split across 3 different functions for 1) the traversal over a custom tree-like structure, 2) storing pointers into the structure and 3) mutation of pointers based on a condition. So using a function as the maximum boundary of unsafety wouldn't be sufficient to support it)

Not really related, but since this issue is open: is there a litmus test for converting *mut to &mut (i.e. reverse of https://github.com/nikomatsakis/rust-memory-model/blob/master/litmus_tests/ffi_ref_mut_to_star_mut.md) and what invariants that implies?
For example, someone might have multiple aliasing *mut pointers that they cast to &mut for the duration of a function for convenience of calling methods on them. The correct solution is probably to make the whole function unsafe, but in practice I believe that this has always been permitted by rust because noalias was only ever added to function parameters - is there a chance rust may want noalias annotations on variables, which could prohibit this casting?

A thought on my original case: rust needs to permit things like
fn y() {
    let mut x = vec![1usize, 2, 3];
    let p = &mut x[1] as *mut _;
    unsafe { ffi(p) };
}
unsafe fn ffi(p: *mut usize) {
    *p.offset(-1) = 3;
    *p.offset(0) = 2;
    *p.offset(1) = 1;
}

for ffi. So creating a pointer from a mutable borrow of a vec should probably give access to the whole vec, which means my initial example should be fine.
The next question for me is how far 'upwards' the permissible access goes. If there are four functions on the stack, each having done a split_at_mut on a slice and passed part of it down, when the final function calls into an ffi function with a pointer to a single element of the slice can the compiler assume anything about which elements of the whole slice are accessed?

Well, it works with a safe pointer:
fn x() -> Vec<usize> {
    let mut x = vec![1, 2, 3, 4, 5, 6];
    { // extra block only needed because of non-lexical lifetimes
    let mut p = &mut 0;
    for v in x.iter_mut() {
        if *v % 2 == 0 {
            *p = *v;
        }
        p = v;
    }
    }
    x
}

fn main() { println!("{:?}", x()); }

The next question for me is how far 'upwards' the permissible access goes. If there are four functions on the stack, each having done a split_at_mut on a slice and passed part of it down, when the final function calls into an ffi function with a pointer to a single element of the slice can the compiler assume anything about which elements of the whole slice are accessed?

That's where the "tootsie pop model" comes into play - if you are passing raw pointers around, we can't second-guess you, but if you wrap a safe interface around it, we will.

This same pattern arose at various points in btree iterators, iirc. It may still.

That's where the "tootsie pop model" comes into play - if you are passing raw pointers around, we can't second-guess you, but if you wrap a safe interface around it, we will.

I admit I've warmed to it since first reading about it, and I think I'd be happy with it subject to having sufficient knobs to twiddle to carefully opt into rustc assumptions. I know this has been mentioned before.

Closing as being (preliminarily) answered by Stacked Borrows. The code given above is fine, in particular since basically the same can be implemented without raw pointers.


terraform apply job does not run even if there is a diff

Overview of the Issue
In the workflow tf-plan-apply.yml, executing terraform-apply is controlled by the condition tfplanExitCode == 2 .
But it does not work because terraform installed by setup-terraform does not return exit code 2.
Github Actions handle all nonzero exit codes as errors.
https://github.com/hashicorp/setup-terraform/pull/125
https://docs.github.com/en/actions/creating-actions/setting-exit-codes-for-actions
Reproduce the Error

Create PR to add some resources
Merge the PR, but terraform-apply job does not start.

Suggest a Fix
I don't have good alternate ideas, sorry.
But tfplanExitCode condition should be removed if there is no alternatives.

This issue can be fixed with the terraform_wrapper: false option on the hashicorp/setup-terraform action. By default, the terraform action sets up a wrapper to help dealing with the exit codes, but this interfere with the way the error codes are used in this repo.

Thanks for your reply. Sorry, I overlooked the terraform_wrapper: false option in the workflow. Thanks.


🛠 Tooling: Enable typescript-eslint's allowAutomaticSingleRunInference

Bug Report Checklist

[X] I have tried restarting my IDE and the issue persists.
[X] I have pulled the latest main branch of the repository.
[X] I have searched for related issues and found none that matched my issue.

Overview
https://typescript-eslint.io/architecture/typescript-estree: parserOptions.allowAutomaticSingleRunInference is an opt-in feature that should get more testing in real-world projects. I'm volunteering to be a tester.
Additional Info
No response

Blocked on https://github.com/DavidAnson/markdownlint/issues/669. I'll try to help out there when I have time soon.

Blocked on https://github.com/typescript-eslint/typescript-eslint/issues/6176#issuecomment-1340488704.


Bug in SpecialFunctions.Hypotenuse

Hello, the implementation of Hypotenuse is buggy. The following test fails:
[Fact]
void TestHypotenuse()
{
  Assert.True(double.IsNaN(SpecialFunctions.Hypotenuse(double.NaN, 0)));
}

This has severe consequences, because e.g. the following test also fails:
 [Fact]
 void TestL2Norm()
 {
   var v = Vector<double>.Build.Dense([double.NaN, 0]);
   Assert.True(double.IsNaN(v.L2Norm()));
 }

Best regards, Dirk

Please have a look at the implementation of System.Numerics.Complex.Magnitude. If it not affects performance, you can it even call directly in Hypotenuse.
Dirk


Special Events: Commencement 2019 Testing

This task is to complete testing of the Commencement 2019 special event.

Testing completed on 6/13/19


allowSnapshots from app version Backup

Existence of a Backup in an app version enables snapshots unless
overridden by license or by kots.io/exclude or kots.io/when annotations
in the Backup itself.

Actually I need to rework this. This uses the the current_sequence from the app table to get the current app version, but it should be checking the deployed version of the app, which appears to be in the app_downstream table.


feat: Keep track of state_dict corresponding to best model according to validation accuracy

This may be already possible but I can't seem to figure out how to do it. Is there a way to use the FitConfig components to keep track of the best state_dict of a model according to validation accuracy and then saving that state dict?
Thanks so much!

Hi Paul,
in general, you can use FitMonitor to keep track of metrics during the training, and enable early stopping. Furthermore, you can use FitCheckpointer to define how many checkpoints you want to store in your directory, and how often do you want to save.
If you enable early stopping, e.g. you set early_stopping_patience=2 in the FitMonitor, and you pass a save_checkpoint_dir to the FitCheckpointer, then you are going to save a checkpoint by default every time the metric that you are tracking is improved. By default, early stopping tracks the validation loss, but you can configure early_stopping_monitor and set it to what you need.
Does this answer your question?

I think so!
So say I don't want early stopping...:
num_epochs = 100

optimizer=FitOptimizer()

monitor=FitMonitor(
    metrics=(accuracy,),
    early_stopping_patience=num_epochs,
    early_stopping_monitor="val_loss",
    eval_every_n_epochs=1,)

checkpointer=FitCheckpointer(
    save_checkpoint_dir="/checkpoints/"
    keep_top_n_checkpoints=1)

Will this code only save 1 checkpoint, and will this 1 checkpoint be the checkpoint where the model had the best validation loss?
Pretty much I always want the checkpoint where the model did the best according to some validation metric. However I don't want to have to do early stopping if I don't want to.

Like this it should be the last, since the final state is always saved if you pass a save_checkpoint_dir. But you should be able to do what you want if you set keep_top_n_checkpoint=2. Then the best checkpoint should be the second last, unless the last checkpoint is not only the last but also the best. In the latter case, there is gonna be only one checkpoint in the directory, corresponding to both the last and the best.

Okay thank you!
In the documentation it says keep_top_n_checkpoints is the "Number of past checkpoint files to keep." Maybe I'm missing something but according to that documentation it is not entirely obvious that setting keep_top_n_checkpoints=2 would give you the best checkpoint as the second last (or the last if that is also the best).
Maybe have something like: keep_best_n_checkpoints and have a mechanism that contains the best n checkpoints seen thus far and then writes those to file. What do you think?

Yes good points, I'll definitely try to improve this part, thanks. I'm working on a refactoring that also involves checkpointing. I'll take this into account! 👍🏼


batch insert

how to speed up
“insert into bigtable(a,b,c,d) select a,b,c,d from smalltable”
16G,8C/per node  all:16Nodes
bigtable:5billion
smalltable:50million
poor performance, job not finished.

hi @cmdares - this issue tracker is for the core development of CrateDB.
Please refer to StackOverFlow or the community slack channel for this kind of questions.
https://crate.io/support/


Docs for propsData incomplete

What problem does this feature solve?
The documentation for propsData omits:

the fact that props set via propsData: { p: object_or_array[n] } do not update when n's value changes.
any description of ways to simulate reactivity for props of programmatically instantiated components.

What does the proposed API look like?
NA

This is normal as long as the value is not an object.
I agree that a notice on the docs would be helpful but please directly open a PR in the docs repo 🙂

Will this trigger watch: { p: { deep: true, handler: function(o) {...} } }
for propsData: { p: {k:0} }
If so you should certainly document that the object/array case works!


Consider wrapping samples

Currently, if a rotate would sample something off-screen, we return black instead. We could instead just wrap the coordinates, and take a sample from the other side of the image. This might be better, not sure.

Done!


[offtopic] Do you know gethttpsforfree.com?

https://gethttpsforfree.com/ is fun!
You copy-paste a lot then you are presented with a certificate.

That's great. Do you want to put something like that live?

Do you want to put something like that live?

For all I-don't-care environments.


List Generation Failing

The list generation on my end is failing at the moment. I'll have a fix within the next 8 hours for it.
Seems like the included lists are returning 404 Not Found errors.

Resolved, I've temporarily disabled CHEF-KOCH's lists.

Once CHEF-KOCH's lists are back up I'll re-enable them 💃

CHEF-KOCH's lists are still down.


MWPW-160618, MWPW-160613, MWPW-160606

Resolves: MWPW-160606, MWPW-160613 & MWPW-160618

Dropzone is not clickable
Brand icon in landing page dropzone not visible on Safari
TOU & Privacy Policy links should open in new tab

Codecov Report
Attention: Patch coverage is 0% with 6 lines in your changes missing coverage. Please review.

Project coverage is 85.06%. Comparing base (c45a743) to head (a5b32bd).

Files with missing lines
Patch %
Lines

acrobat/blocks/verb-widget/verb-widget.js
0.00%
6 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##            stage     #858      +/-   ##
==========================================
- Coverage   85.10%   85.06%   -0.04%
==========================================
  Files          48       48
  Lines        6088     6092       +4
==========================================
+ Hits         5181     5182       +1
- Misses        907      910       +3

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


chrome not reachable

This code works great, but I'm consistently getting "chrome not reachable" errors if I run another instance of my lambda within a few minutes or a prior run.  I've tried manually creating "tmp" folders for  the 3 chrome data folers as well as using mkdtemp().
For background: My processes run for about 1-2 minutes and access multiple sites. Some processes require that I download and upload files. I've been having this issue for several months from chrome 99 through 103.  My current "solution" is to retry after a long wait period, hoping that the lambda instance is wiped out and the next process starts on a fresh/cold instance.
I'm hoping someone can take a look at my settings and guide me in the right direction.

from selenium import webdriver
import json
import base64
import os
import shutil
from tempfile import mkdtemp

# functions for printing web page to pdf:
def send_devtools(driver, cmd, params={}):
  resource = "/session/%s/chromium/send_command_and_get_result" % driver.session_id
  url = driver.command_executor._url + resource
  body = json.dumps({'cmd': cmd, 'params': params})
  response = driver.command_executor._request('POST', url, body)
  # if response['status']:
  #   raise Exception(response.get('value'))
  return response.get('value')

def save_as_pdf(driver, path, options={}):
  # https://timvdlippe.github.io/devtools-protocol/tot/Page#method-printToPDF
  result = send_devtools(driver, "Page.printToPDF", options)
  with open(path, 'wb') as file:
    file.write(base64.b64decode(result['data']))

def enable_download_in_headless_chrome(driver, download_dir):
    # add missing support for chrome "send_command"  to selenium webdriver
    driver.command_executor._commands["send_command"] = ("POST",'/session/$sessionId/chromium/send_command')
    params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_dir}}
    command_result = driver.execute("send_command", params)

def getchrome(s3key='temp'):
    # Set options for headless chrome:
    options = webdriver.ChromeOptions()
    options.binary_location = '/opt/chrome/chrome'
    options.add_argument('--headless')
    options.add_argument('--no-sandbox')
    options.add_argument("--disable-gpu")
    options.add_argument("--window-size=1280x1696")
    options.add_argument("--single-process")
    options.add_argument("--disable-dev-shm-usage")
    options.add_argument("--disable-dev-tools")
    options.add_argument("--no-zygote")
    options.add_argument(f"--user-data-dir={mkdtemp()}")
    options.add_argument(f"--data-path={mkdtemp()}")
    options.add_argument(f"--disk-cache-dir={mkdtemp()}")
    # options.add_argument(f"--user-data-dir=/tmp/{s3key}/udd")
    # options.add_argument(f"--data-path=/tmp/{s3key}/dp")
    # options.add_argument(f"--disk-cache-dir=/tmp/{s3key}/dcd")
    options.add_argument("--remote-debugging-port=9222")

    options.add_experimental_option("prefs", {
        "download.default_directory": f"/tmp/{s3key}/downloads",
        "savefile.default_directory": f"/tmp/{s3key}/downloads",
        "download.prompt_for_download": False,
        "download.directory_upgrade": True,
        "safebrowsing.enabled": True
    })
    options.add_experimental_option('excludeSwitches', ['enable-logging'])

    driver = webdriver.Chrome('/opt/chromedriver', options=options)

    # Allow chrome to download files. Set download directory.
    driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
    params = {'cmd':'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': f'/tmp/{s3key}/downloads'}}
    driver.execute("send_command", params)

    return driver

Hello. Thank you for sponsoring! This is also a great bug report.
I was expecting randomizing data directory to avoid duplication was enough, but I can introduce my older solution. It was cleaning /tmp fully.
To share, I created a demo branch. Could you try and tell me how it goes?
https://github.com/umihico/docker-selenium-lambda/commit/85dfc26f7b8af2281c8d215996d9a2869c264d05

Possibly your s3 files size are more than 512MB? It must counts prior files if not cold start and could be bigger more than expected

Oh man!  Thank you for the repository AND this issue!

Possibly your s3 files size + chrome tmp size are more than 512MB? Then chrome may crush. It must counts prior files if not cold start and could be bigger more than expected

It look me a lot of brute force testing to come to this conclusion.  The code in this repository works perfectly, but as soon as I swapped out https://example.com/ for almost any other website, everything starts crashing.  Sometimes it took until the second run, but it'd eventually crash.
Increasing the size to be larger than 512mb fixed the problem, and I added your flush_tmp() function in for good measure since I'll be calling this many times.
I could be worth mentioning that Chrome will randomly crash in the main README.md file until you use more than 512mb storage.

@humphrey

but as soon as I swapped out https://example.com/ for almost any other website, everything starts crashing.

Thank you for sharing! I didn't know that. Chrome is rapidly changing its major version, so latest ones may consume storage more than before.
I'll think about increasing memory limit by Serverless Framework config.

@umihico

Thank you for sharing! I didn't know that. Chrome is rapidly changing its major version, so latest ones may consume storage more than before.

Thanks! Also, I suspect that websites are running more and more bloated JavaScripts, which would use more memory.  The sites I needed to test take a while to load all of those things into memory to display the site.
I reckon something in the README.md that sayings something like.
If you experience any errors such as Chrome crashing or not being available you might need to increase the storage available to your Lambda Function.

I'll think about increasing memory limit by Serverless Framework config.

Because even if the value in Serverless config was good enough, I added a couple of my own things (such wrapping Selenium in a GraphQL API) which takes up more storage.

@humphrey
I'm so sorry to keep this issue so long.
I added the note as you suggested and hope it helps others. Thank you again.

👌

@umihico Is it safe to flush the temporary storage? Since AWS Lambda reuses the storage, and multiple invocations are running in parallel, wouldn't this cause unexpected issues?
For anyone facing this issue, I also had to remove the following option
options.add_argument("--remote-debugging-port=9222")

Removing it gave me far fewer Chrome unreachable errors

@samkit-jain
I don't think temporary storage is not shared by multiple invocations if they are running at the same time. After the invocation process completely end, new invocation may use the used storage. This is my idea about AWS Lambda.
Also I don't think current code is flushing storage. It is just specifying location randomly, therefore all lambda processes can have own clean space even if they get old used storages

@umihico Thanks 🙏🏻


App Store Connect create function fails

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
When calling Spaceship::ConnectAPI::App.create it crashes with an unexpected response.
Command executed
Spaceship::Tunes::Application.create!(name: title,
primary_language: "English",
sku: sku,
bundle_id: bundleID)
Complete output when running fastlane, including the stack trace and command used
Spaceship::Tunes::Application.create!(name: title,
primary_language: "English",
sku: sku,
bundle_id: bundleID)
Traceback (most recent call last):
3: from ./createAppContainer.rb:46:in <main>' 	2: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.170.0/spaceship/lib/spaceship/tunes/application.rb:96:in create!'
1: from /Library/Ruby/Gems/2.6.0/gems/fastlane-2.170.0/spaceship/lib/spaceship/tunes/tunes_client.rb:296:in create_application!' /Library/Ruby/Gems/2.6.0/gems/fastlane-2.170.0/spaceship/lib/spaceship/client.rb:732:in parse_response': {"data"=>nil, "messages"=>{"warn"=>nil, "error"=>["Not Found"], "info"=>nil}, "statusCode"=>"ERROR"} (Spaceship::UnexpectedResponse)

Environment
✅ fastlane environment ✅
Stack

Key
Value

OS
11.1

Ruby
2.6.3

Bundler?
false

Git
git version 2.24.3 (Apple Git-128)

Installation Source
/usr/local/bin/fastlane

Host
macOS 11.1 (20C69)

Ruby Lib Dir
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib

OpenSSL Version
LibreSSL 2.8.3

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
12.3

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL

LANGUAGE

fastlane files:
No Fastfile found
No Appfile found
fastlane gems

Gem
Version
Update-Status

fastlane
2.170.0
✅ Up-To-Date

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.3.0

slack-notifier
2.3.2

atomos
0.1.3

CFPropertyList
2.3.6

claide
1.0.3

colored2
3.1.2

nanaimo
0.2.6

xcodeproj
1.14.0

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

unicode-display_width
1.7.0

terminal-table
1.8.0

plist
3.5.0

public_suffix
4.0.6

addressable
2.7.0

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

babosa
1.0.4

colored
1.2

highline
1.7.10

commander-fastlane
4.4.6

excon
0.78.1

ruby2_keywords
0.0.2

faraday
1.1.0

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.3

faraday-cookie_jar
0.0.7

faraday_middleware
1.0.0

fastimage
2.2.0

gh_inspector
1.1.3

json
2.1.0

mini_magick
4.11.0

rubyzip
2.3.0

security
0.1.3

xcpretty-travis-formatter
1.0.0

dotenv
2.7.6

bundler
1.17.2

naturally
2.2.0

simctl
1.6.8

jwt
2.2.2

uber
0.1.0

declarative
0.0.20

declarative-option
0.1.0

representable
3.0.4

retriable
3.1.2

mini_mime
1.0.2

multi_json
1.15.0

signet
0.14.0

memoist
0.16.2

os
1.1.1

googleauth
0.14.0

httpclient
2.8.3

google-api-client
0.38.0

google-cloud-env
1.4.0

google-cloud-errors
1.0.1

google-cloud-core
1.5.0

rake
12.3.2

digest-crc
0.6.3

google-cloud-storage
1.29.2

emoji_regex
3.2.1

jmespath
1.4.0

aws-partitions
1.411.0

aws-eventstream
1.1.0

aws-sigv4
1.2.2

aws-sdk-core
3.110.0

aws-sdk-kms
1.40.0

aws-sdk-s3
1.87.0

forwardable
1.2.0

logger
1.3.0

stringio
0.0.2

ipaddr
1.2.2

openssl
2.1.2

ostruct
0.1.0

strscan
1.0.0

date
2.0.0

fileutils
1.1.0

etc
1.0.1

io-console
0.4.7

zlib
1.0.0

libxml-ruby
3.1.0

rexml
3.1.9

psych
3.1.0

mutex_m
0.1.0

generated on: 2020-12-28

It makes no real sense what you posted. Which command did you use? Spaceship::ConnectAPI::App.create or Spaceship::Tunes::Application.create! ? Most of the old Tunes APIs are no longer working. I've set up countless apps with the new ConnectAPI, so this works, it just required the old cookies/Apple ID-based logins.

It makes no real sense what you posted. Which command did you use? Spaceship::ConnectAPI::App.create or Spaceship::Tunes::Application.create! ? Most of the old Tunes APIs are no longer working. I've set up countless apps with the new ConnectAPI, so this works, it just required the old cookies/Apple ID-based logins.

@max-ott - The documentation describes this as "not working".  https://github.com/fastlane/fastlane/blob/master/spaceship/docs/AppStoreConnect.md#applications
I found the issue though, instead of "primary_language" the parameter should be "primary_locale".

@max-ott - The documentation describes this as "not working".  https://github.com/fastlane/fastlane/blob/master/spaceship/docs/AppStoreConnect.md#applications
I found the issue though, instead of "primary_language" the parameter should be "primary_locale".

@Adam0101 thanks for the feedback - I just opened a PR fixing that issue 💪

@Adam0101 thanks for the feedback - I just opened a PR fixing that issue 💪


Cumulative Incidence Functions for competing risks

Hello.
What are your thoughts on adding support for cumulative incidence functions in lifelines.  I am relatively new to survival analysis, but my current use case involves analyzing "deaths" from competing risks.  There may be a better way of handling competing risks, but I thought I would ping you for your thoughts.
See, for instance.
http://data.princeton.edu/pop509/cumulativeIncidence.pdf

I have the Aalen-Johansen estimator implemented in #450 It generates the cumulative incidence function non-parametrically for the event of interest. It is different from Fine-Gray which is a parametric estimation method. Tentatively plan is to be part of 0.15.0 release but it works currently

but my current use case involves analyzing "deaths" from competing risks

Do you mean that death is your competing risk and you are interested in some other event (e.g. cancer) or that you are interested in the CIF of death?

tldr;  It looks like something good is in the works. @CamDavidsonPilon feel free to close this issue.
Thanks for the quick response @pzivich and thanks for the reference.  I'm looking forward to having that PR merged.
This is probably not the right forum for this, but since you asked... :)  I am actually modeling a sales process.  In sales, you have software that tracks "opportunities" for closing deals.  I'm modeling the creation of the opportunity as "birth" and the closing of the opportunity as "death."  Of course, there can be two reasons for closing an opportunity.  You either won the deal or you lost it.  I believe the correct model for that is a competing risk model.  And, of course, I'm interested in the CIF of deals that were won.

@robdmc  Happy to help. Your application is interesting. My area is health statistics, so this a little outside my realm of conceptual thinking. However, losing the deal sounds like it would be a competing risk rather than censoring to me, since it "prevents" winning the deal


build(deps): update cxf to 3.4.7

Fix #740

:tada: This PR is included in version 2.17.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Document deployment

I'm going through this now as I work on getting an instance of this deployed.

Relevant bits from https://probot.github.io/docs/deployment/

Permissions:

Issues (read) with issues webhook
Pull Requests (read) with pull_request webhook

Creating a Slack app

#34 documents development setup, which is pretty much the same as production. Calling this good enough.


Allow natural language queries

Current plan is to have:
/knowhows BufferedOutputWriter
@alex, @ben, @robbie

However, if we use StackOverflow as planned in #12, we could cleverly allow for NL queries like
/knowhows writing a file in Java
@alex, @ben, @robbie

Query-handling should now work with natural language queries. Upgrades have been made to how diffs are indexed and queried upon. Now when a diff is inserted we tokenize, remove common english stopwords, create an index of edge-wise ngrams, and stem. When querying we remove query stop words, stem, trim, etc.
Right now assumption is "in language" should be provided to further filter for requests.


Show the original name/type of a node somewhere.

For example, inside the built-in “Gemini API Call” board, there is a “Make API Call” node. By the looks for it, it’s just the normal Fetch node, but it doesn‘t tell me that anywhere. That would be nice to show somewhere.
On that note: Would probably be interesting to add a visual marker whether a node is a primitive node or a board that I can drill further into.

In the Settings we support "Show Node Type Descriptions", which adds them to the graph. They can be added to the overlay title, however, which I think would be a good thing, and I can default "Show Node Type Descriptions" to true by default.

+1. As of #3488 landing the default is to show type descriptions, but only when it differs from the title. The type is also shown in the overlay with the same criterion.


Ram 2500 + 3500 HD support

This implements Ram HD trucks into the standard Chrysler brand.

Re: UDS fingerprinting, bear in mind the constellation of fingerprint modules needs to be:

Widely, preferably universally shared among supported Chryslers
Useful for distinguishing between different supported Chryslers, for selection of APIs and mass/wheelbase/tuning
Useful for verifying lateral control API compatibility
Useful for verifying longitudinal control API compatibility

Before discarding combinationMeter, do you have enough other info (from SRS or other addresses) to reliably tell a Jeep Grand Cherokee apart from a Pacifica apart from a Ram 1500 apart from a Ram HD? Are you confident that things like ESP and DASM firmware as-read-by this field aren't shared between models?
Before discarding transmission, do you know enough about the longitudinal control API that you can confidently do without knowing the trans type? Is the API acceleration based, or gas/brake percentage? Are there ever different transmission types available with the same chassis/engine that might affect gas tuning, or are there manual transmissions available?

I just installed on my 2500. dongle id: 6038cd2b8addb4dc
will put in a few hundred miles tomorrow, but I'll be pulling a camper... not sure if that'll throw things off or not

Ram HD will be "dashcam only" until #25389 is fixed.


Allways return null from CrossLocalNotifications

Allways going into this # IF and return null
17 #if PORTABLE
18         return null;
19 #else
20         return new LocalNotifier();
21 #endif
My Project is a Portable Project, but just testing with the Android app.

Looks like this is affecting me too.

I'm experiencing the same problem, any solution to this? What exactly do you mean by moving the class that integrates with Xamarin.LocalNotifications into the project? (I'm testing on Android, not iOS though)

It always returns null for me on portable
Anyone have idea about this?