Add buttons

Add Button component
This is the first component that I've added to an exportable package. I've added some updates to the README in order to discuss versioning and publishing.
I've included tinycolor2 in order to help with any color manipulation that needs to happen in styled-components.

@Darrken I spoke with the design team about both issues you brought up. they're good with the active state as it is right now as well as the icon positioning. I did push a177643 which makes the icon appear bold the way that it should which helps the positioning a little bit.

Sounds good.  I like the colors in your active state for the alt buttons better anyway because they're clearer.  The only issue I really have with the onclick state is the normal buttons look like they're pushing/compressing while maintaining the same baseline, while the alt buttons are just shifting down.


Issue1973 Add gradle tasks to generate Deb and RPM packages

Issue #1973
Add gradle tasks to generate Deb and RPM packages.
Package includes umple.jar, a bash script to run umple, copyright and README of umple, a manpage zip file of umple.
Related files are in dev-tools/files directory
Thes gradle tasks are using gradle-ospackage-plugin.
Run below after build the project in umple/
./gradlew genPackages

This task creates packages in umple/dist/gradle/distributions directory

About the LICENSE, copyright is in

Good start.
Instead of using dev-tools as the directory for the three files, please use the build directory ... the dev-tools directory is for scripts that are used by developers of Umple itself.
And instead of 'files' as the subdirectory, please use a more meaningful name such as rpmfiles for the files used to build rpm.
Also there is already a license for Umple in LICENSE.md. Is there a way this could just be copied directly, rather than being duplicated>? This is am MIT license. I have been putting the names of all the authors there, so it may change over time. Also I have updated the date periodically.
Please fix these (or at least reply), then I will test.
Also in the issue, it would be good if you could tell me how I might set the resulting package up so I can test it using an apt or a yum command

I have updated file directory, about the copyright, the format is machine-readable with headers and upstream sources, contact address for the upstream authors. Should copy LICENSE.md for it or create copyright from LICENSE.md for every build.
To install the packages:
#1973


Hit Cancel on Mysql while loading leads to Discard

Hi all,
i was trying to cancel a query that was loading some that,
i had the spinner with the "(or) Cancel" button.
I tried to hit the button, but it doesn't seems to do the trick .
( I'm kind of remember that canceling queries in mysql was not possible / perfect / easy ?)
no big deal, the issue is that, in fact when the query finished, the "discard" effect triggered (what replace the cancel button if there is no query running)
i looked the action logs but it seems that a "UPDATE_QUERY" with a query "" is triggered

ok so it's the onDiscQueryClick that is launched probably because the whole interface (except the loader) is frozen


[Feature Suggestion] File satisfies interface

Suggestion

🔍 Search Terms
File implements interface, file satisfies, file interface
✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behaviour of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
A way to declare the export signature of a whole file.
Consider, for instance, NextJS pages. Every page must default-export a React Component that satisfies a certain type and may export additional methods, such as getStaticProps. Currently, every export in every file must be explicitly annotated, which is repetitive and error- and inconsistency-prone.
Instead, (on a per-file-basis?; with glob src/pages/**/*?) exports for the entire file can be declared at once, which comes with the added benefit of automatic type inference for parameters, return types etc. for exported stuff.
📃 Motivating Example
When writing pages for NextJS, annotate page files with
/// <exports satisfy="next#NextPageExports" />

// Return type automatically checked
export default () => { ... };

// Parameters automatically inferred
export const getStaticProps = (ctx) => { ... };

💻 Use Cases
Many systems (both backend and frontend) use a modularized approach for declaring essentially anything. Consider a CMS whose individual components are found under something like:
└── src/
    └── components/
        ├── Box.tsx
        ├── Textarea.tsx
        ├── FancyWhatnot.tsx
        └── index.ts

A component can be described with the following interface:
interface CMSComponent {
  ID: string;
  description?: string;
  render(...): ...;
  renderEdit(...): ...;
}

with the index file re-exporting components with
// src/components/index.ts

import * as Box from "./Box";
import * as ... from "./...";

export interface CMSComponent {
  ID: string;
  description?: string;
  render(...): ...;
  renderEdit(...): ...;
}

Box satisfies CMSComponent;
// ^^^ Property 'renderEdit' is missing in type '{ ID: string; render: (...) => ... }' but required ...
... satisfies CMSComponent;

export {
  Box,
  ...,
};

The X satisfies CMSComponent is currently the best way to check the exported types. The problem of this is that if a component were, for instance, missing props, the error would be thrown in the wrong place. It would be the file that exported properties incorrectly, not the index file that used a file incorrectly.
With this proposal, an incorrect file would throw an error something like the following:
// src/components/Box.tsx

/// <exports satisfy=".#CMSComponent" />
//  ^^^ This file does not satisfy its export types. Property 'renderEdit' is missing in type '{ ID: string; render: (...) => ... }' but required ...

export const ID =  ...;

export const render = (...) => { ... };

Consider a server-side project, in which such an index file may not even exist, with files being imported dynamically. Here, the user would need to make sure that all files would be set up correctly to not run into runtime errors.
With some way to declare to declare glob-based export patterns, this could be prevented entirely:
// src/components/index.tsx

/// <exports satisfy="#CMSComponent" in="./**/*" />

export interface CMSComponent {
  ID: string;
  description?: string;
  render(...): JSX.Element;
  renderEdit(...): ...;
}

Sounds like a duplicate of #38511.


Sometimes urlopen function stucks

Sometimes when i do an ASR request in Python 2.7.6 with Google ASR, the urlopen function get stucked see this line.
So when i wait more than several minutes i get the error:

recognition request failed: Bad Gateway

I added the argument timeout=10 to the urlopen function which fixed the issue for me.
Maybe you can add such an timeout parameter to the library.

Hi @jhoelzl,
That is a good suggestion - we'll put it in for the next release.

Fixed in 3.5.0!


Add support for direct S3 access on SageMaker tasks

Because DistDGL and by extension GraphStorm has an assumption of a shared filesystem to function properly, in our SageMaker implementations need to implement various downloads and uploads to "fake" the existence of a shared filesystem, by downloading data locally to specific locations per instance.
This introduces a maintenance burden as we can't make the same environment assumptions for our SageMaker vs. EC2 with EFS execution, and introduces a lot of glue code, to make the two system compatible.
Mountpoint for S3 is an AWS project that allows entire S3 buckets to mounted onto EC2 instances and treated a (mostly) regular filesystem. If we are able to use S3 buckets as virtual shared filesystems for SageMaker we should be able to simplify and align the codebase. We note the use-cases suggested by the mountpoint-s3 project align with ours:

Mountpoint for Amazon S3 is optimized for applications that need high read throughput to large objects, potentially from many  clients at once, and to write new objects sequentially from a single client at a time. This means it's a great fit for applications that use a file interface to:
* read large objects from S3, potentially from many instances concurrently, without downloading them to local storage first
* access only some S3 objects out of a larger data set, but can't predict which objects in advance
* upload their output to S3 directly, or upload files from local storage with tools like cp
but probably not the right fit for applications that:
* use file operations that S3 doesn't natively support, like directory renaming or symlinks
* ( make edits to existing files (don't work on your Git repository or run vim in Mountpoint 😄)

We propose starting with a POC that modifies our SageMaker images and entry points to use mountpoint-s3, but does not affect the user-facing launch scripts, providing a backwards-compatible solution for our users.
Our first target will be adding GraphBolt support to SageMaker DistPartition, which is currently not possible, because DistDGL to GraphBolt partition conversion assumes that the leader instance has access to the entire distributed graph on disk. Following that, we can migrate our other SageMaker tasks to mountpoint-s3, where shared filesystems are normally required:

[ ] DistPartition, remove download/upload of data from S3
[ ] DistTraining
[ ] DistInference

After some investigation it seems like using mountpoint-s3 might not be a viable solution. Will look instead into other SageMaker file modes, although for GraphBolt we require access to files that are created by the job and not pre-existing
https://docs.aws.amazon.com/sagemaker/latest/dg/model-access-training-data.html


added slugs to autocomplete titles for all page types and for the "an…

…y page" case, in a way that extends whatever projection is being returned for all doctypes. In addition, fixed a bug in the apostrophe-global module: it would crash on startup if an existing "global" doc contained widgets referencing doc types not yet initialized, such as "plain old page types" which get initialized at the last minute. Also, this module now correctly respects its "slug" option.

Oops, this was supposed to go out last night but only an earlier version of it did, so I published it a 2.2.2 as it includes an important bug fix.


Link to JavaDocs is broken

#153

For those who are looking for
http://static.javadoc.io/org.reflections/reflections/0.9.10/org/reflections/Reflections.html


Yordan/my wit component

WIP

Pesho asked me to review this PR, focusing on the server/host side of things. The following is the account of what followed.
I spent an hour and I managed to build only few packages of the ones affected by this PR. I couldn't run any tests. I'm attaching my review notes, but perhaps I'm doing something wrong. Have I missed some crucial setup step that would allow me to build this and run the tests?
Notes:

My eyes hit this PR. They met no README or any sort of instruction of how to proceed.
I built the code. It fails to build. (Actually, realized on a later retry.)
I tried to run the tests. They fail to build. The error message is the following:
  --- stderr
     Compiling proc-macro2 v1.0.86
     Compiling indexmap v2.2.6
     Compiling image v0.24.9
  error[E0658]: use of unstable library feature 'proc_macro_byte_character'
     --> /home/stan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.86/src/wrapper.rs:871:21
      |
  871 |                     proc_macro::Literal::byte_character(byte)
      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      |
      = note: see issue #115268 <https://github.com/rust-lang/rust/issues/115268> for more information
      = help: add `#![feature(proc_macro_byte_character)]` to the crate attributes to enable
      = note: this compiler was built on 2024-03-17; consider upgrading it if it is out of date

  error[E0658]: use of unstable library feature 'proc_macro_c_str_literals'
     --> /home/stan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.86/src/wrapper.rs:898:21
      |
  898 |                     proc_macro::Literal::c_string(string)
      |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      |
      = note: see issue #119750 <https://github.com/rust-lang/rust/issues/119750> for more information
      = help: add `#![feature(proc_macro_c_str_literals)]` to the crate attributes to enable
      = note: this compiler was built on 2024-03-17; consider upgrading it if it is out of date

I started looking for new tests introduced by this PR. I found crates/core/tests/test_host_components/empty_ml.rs.
I get "file not included in crate hierarchy" for it, which after investigation seems to be related to the build configuration. It defines an MLHostComponent which is used in crates/trigger/src/lib.rs. Due to the configuration, however, actually, a different MLHostComponent is used there, the one from ml/src/host_component.rs.
So the purpose of empty_ml.rs remains a mystery to me at this point. Is it used in testing, to mock the type?

Skipping through the test_host_components files, I reach crates/ml/Cargo.toml. I try to build just that package with cargo build -p spin-ml. It fails to build with the following message:
error[E0432]: unresolved imports `openvino::Precision`, `openvino::TensorDesc`
  --> crates/ml/src/backend/openvino.rs:10:30
   |
10 | use openvino::{Core, Layout, Precision, TensorDesc};
   |                              ^^^^^^^^^  ^^^^^^^^^^ no `TensorDesc` in the root
   |                              |
   |                              no `Precision` in the root

This is followed with more errors, 14 in total.
So I give up on the spin-ml package and move on.

There are what seem to be drive-by changes until I reach crates/trigger/Cargo.toml. It includes spin-ml as a dependency, so I have no hope that it builds. Still, I run direnv reload, in case I have messed something up and run cargo build -p spin-trigger. I get the same error as before.

I discover crates/world/wit/ml.wit. Comments! How refreshing! crates/world/wit/world.wit includes it, it's not clear to me how to build it, though, so I skip forwards.

I reach examples/http-rust-imagenet/.cargo/config.toml and go there to build that package. This build succeeds! I see that there are also tests in it, but running cargo test fails. The error message is the following:
     Running unittests src/lib.rs (target/wasm32-wasi/debug/deps/http_rust_imagenet-84fec25580a30f29.wasm)
error: test failed, to rerun pass `--lib`

Caused by:
  could not execute process `/home/stan/code/repos/spin/examples/http-rust-imagenet/target/wasm32-wasi/debug/deps/http_rust_imagenet-84fec25580a30f29.wasm` (never executed)

Caused by:
  Exec format error (os error 8)

The next example I discover is examples/spin-timer/Cargo.lock. Strangely, there are changes only to the lock file, but I try to build it anyway. Building fails with 14 jobs. I am not looking into the error message, but I guess the problem is as before.

There are no more files. The review is done!


fix: Update trtllm-tutorial with latest changes on their branch and added gen-ai tutorial

Added triton_backend flag to the fill_template.py script and copied over gen-ai tutorial from existing docs.

Nice work! left some comments


Additional input text

With the introduction of the Camera status there is need for an additional input text field.
In readme.md:
This script makes use of two sensors that are created in Home Assistant up front:

sensor.teams_status
sensor.teams_activity

I've added the following:
input_text:
  teams_status:
    name: Microsoft Teams status
    icon: mdi:microsoft-teams
  teams_activity:
    name: Microsoft Teams activity
    icon: mdi:phone-off
  teams_cam_status:
    name: Microsoft Teams Camera Status
    icon: mdi:webcam

What benefit do the input_text fields add to integration?
I could find a use for them from the original code so I removed them and everything is still working fine on my end, without the additional tiles on my dashboard which I would have ended up hiding.
The only thing I noticed is the icons need to be set by the service (on the first update), until then they are the default eye icon for sensors.

What benefit do the input_text fields add to the integration? I could not find a use for them from the original code so I removed them and everything is still working fine on my end, without the additional cards on my dashboard which I would have ended up hiding. The only thing I noticed is the icons need to be set by the service (on the first update), until then they are the default eye icon for sensors.

I haven't tested it when removing. If it still works without these text fields, it's fine by me. I just figured, since the other two sensors have these text fields too, this one needed one as well. I'll just remove the other two and see if it still works. If it doens't i'll reopen. tnx!


Flexgroup Collection Issue

Hi,
I'm trying to retrieve flexgroup constituents with the Volume template.
I could enable it in Dev environment with below template (adding partial template to be brief).
This template that I created collects the constituent information including size and usage. This works on harvest version: (harvest version 21.10.2515-v21.08.0 (commit febb603) (build date 2021-10-25T15:20:30-0700) linux/amd64)
I created the same template for production environment with harvest version: (harvest version 22.03.3118-nightly (commit cf0ed8d) (build date 2022-03-31T18:20:39-0700) linux/amd64). It does not collect the correct constituent or size or usage information for the constituents.
My question is: Are there any changes done in this version that prevents this template from working?
- volume-state-attributes:
  - ^state
  - ^status
  - ^is-flexgroup                      => is_flexgroup
  - ^is-constituent                    => is_constituent

plugins:
LabelAgent:
# metric label zapi_value rest_value default_value
value_to_num:
- status state online online 1
exclude_equals:
- style flexgroup_constituent
replace:
- style style flexgroup_constituent flexgroup
Aggregator:
volume<style=flexgroup>volume node,svm,aggr,style
export_options:
instance_keys:
- volume
- node
- svm
- aggr
- style
- junctionpath
instance_labels:
- state
- is_sis_volume
- is_space_guarantee_enabled
- space_guarantee
- is_flexgroup
- is_constituent

I think I figured it out. It seems that the old harvest version did not have the exclude equals plugin so it did not exclude even though I had exclude_equals in my template. But new version knows about exclude_options so it excluded the constituents.


vec_static_blob_entries should support other distance metrics

Only uses L2 distance for now

@asg017 thanks for this package. Just dropping by to give a vote in favor of implementing this.
if I understand correctly, this is what handles the distance in a WHERE vector MATCH '[...]' LIMIT k query. If so, I would find it useful to be able to use other distance metrics here. I find cosine similarity produces better results for my data, and also have existing code relying on cosine similarity thresholds, so it would be great to be able to use it here.

@mfonda are you using the vec_static_blob_entries table, or vec0 tables?
The "static blob" approach is experimental and undocumented, so if you're using vec0 tables, you can specify which distance metric to use like so:
create virtual table vec_items using vec0(
  text_embedding float[128] distance_metric=cosine
);

Only l1, l2, and cosine are currently supported. The default is l2

You can also always use the vec_distance_l1(), vec_distance_l2(), and vec_distance_cosine()scalar SQL functions manually, but theMATCH` operation on vec0 virtual tables will be faster

@asg017 I'm using vec0 tables. Your code example using distance_metric=cosine is exactly what I was looking for.
Thank you very much for the info. Sorry for the noise here--I'm not very familiar with c or sqlite internals, and I was attempting to read the code and figure out if there was a way to use cosine as the distant metric. Seems I was looking in the wrong place.

no problem, i should have this documented better!


Call end write stream in updateStoreData and deleteStoreData

Tldr; After the first update to the db, all other updates are failing. The .old file was not getting deleted due to the write stream staying open.
// utils.js replaceFile
await promisify(rename)(a, a + ".old");  // <---- EPERM Error here on 2nd update.
await promisify(rename)(b, a);
await promisify(unlink)(a + ".old");    // <---- Successful on 1st update, but file is not actually removed

On Windows 10 using Node v12.19.0 an issue was occurring where the error
Error: EPERM: operation not permitted, rename
was being thrown on the second update.
The first update was successful, but it was not unlinking the last .old file. The .old file remained in the directory but could not be read or deleted until the nodejs process was closed. What was happening was the .old file still had an open file handler so when unlink was called Windows was "marking the file for deletion" and couldn't be accessed until the file handler was closed. Explained here
After a lot of trial and error I found that the write stream in updateStoreData was never closing. This appears to be Windows specific, because I run njodb in linux with no issues. I think the best way to ensure the write stream gets closed is by calling the .end() method on the write stream when the read stream gets closed. Once the write stream is closed the .old file gets unlinked properly.
For testing I added .on("close", ...) listeners to the write stream with a few console logs and found that when calling .end() the write stream closed properly.
Also updated a small typo in objects.js

Hey there! I apologize for not getting around to this sooner. I've been a bit swamped so haven't even had a chance to look at this yet :( But I will hopefully get some time to do so in the next few days...

No problem, it's not urgent at all. This is only effecting my dev environment, so I'm using my fork for now.

I want to add that this issue also occurs inside a docker container running on Windows 10.

Thanks for catching that! I've merged your commit 👍
I'm thinking about maybe moving the call to writer.end() into the handler's return method (the writer, if there is one, would be passed in as a parameter), but I'm not entirely sure that's a worthwhile refactoring...


the program does not support AARM in 12 position

I have some anisotropy of anhysteretic remanent magnetization data in generic format, which was measured in 12 positions.
When I try to convert them into magic, an error was raised, saying "the program does not support AARM in 12 positions".
"PmagPy_MagIC.ipynb -- generic magic -- ATRM" has mentioned that the position number n=6, but I have no idea if the AARM is limited to the 6 positions mode, too.

Hope that all the AMR measurement modes can be added to the program.

This is the 15-position standard measurement routine for AMS at the Institute for Rock Magnetism. I assume you did four measurements along each of the three orthogonal axes of your samples? If you can draw out your experiment design like the attached schematic picture, we could work on modifying the aarm_magic function to make this work.

Thanks for your replying. Here are some directional schemes for AMR acquisition from Chadima, AGICO.  I performed the A mode with 12 positions as it is shown in the second picture. Wish that all the directional modes could be added to the program so researchers performing other modes could use the program, too. Thank you!

This is helpful. This could be a task for the ongoing RockmagPy project: https://github.com/PmagPy/RockmagPy-notebooks.
This will take time to implement. Feel free to look into the available PmagPy programs and contribute to the functions with a pull request!

Wow, the project is cool. I'll try my best to make some contribution to the functions. Hope that I could be reminded as those directional modes being added to the project. Thanks again!

I tried the convert.generic function with 6 positions and surprisingly it worked, although my data were measured according to the 12 positions mode. Yet, the ipmag.aarm_magic function doesn't support the 12 positions mode. Hope it might not be hard to modify the latter one.


Microk8s snapctl error access denied

When enabling the plugin microk8s.enable rbac, an error occurs:
Enabling RBAC
Reconfiguring apiserver
error: access denied
Failed to enable rbac
it is related to old snapd deb 2.21 and snapctl utility
This error was reported in the bug tracker https://bugs.launchpad.net/snapd/+bug/1933392
dpkg -l | grep snapd
ii  snapd                                 2.21-2+b1
snap list
Name      Version    Rev    Tracking       Publisher   Notes
core      16-2.51.1  11316  -              canonical✓  core
microk8s  v1.19.11   2263   -              canonical✓  classic
snapd     2.51.3     12704  latest/stable  canonical✓  snapd
inspection-report-20210803_181747.tar.gz

snap list
Name      Version    Rev    Tracking       Publisher   Notes
core      16-2.51.1  11316  -              canonical✓  core
microk8s  v1.19.11   2263   -              canonical✓  classic
snapd     2.51.3     12704  latest/stable  canonical✓  snapd

Thank you for reporting this @poropeked while we figure out what to do for the snapd issue, let me try to offer a workaround.
The enable rbac script [1] just adds an argument in the apiserver and then restarts it. I think the restart is failing due to the bug you reported. Can you make sure /var/snap/microk8s/current/args/kube-apiserver has the argument --authorization-mode RBAC,Node and then do a microk8s stop; microk8s start; ?
[1] https://github.com/ubuntu/microk8s/blob/master/microk8s-resources/actions/enable.rbac.sh

Thank you for reporting this @poropeked while we figure out what to do for the snapd issue, let me try to offer a workaround.
The enable rbac script [1] just adds an argument in the apiserver and then restarts it. I think the restart is failing due to the bug you reported. Can you make sure /var/snap/microk8s/current/args/kube-apiserver has the argument --authorization-mode RBAC,Node and then do a microk8s stop; microk8s start; ?
[1] https://github.com/ubuntu/microk8s/blob/master/microk8s-resources/actions/enable.rbac.sh

As a temporary solution, after restarting this service, the addon will turn on!
systemctl restart snap.microk8s.daemon-apiserver-kicker.service

Here is a cleaner workaround that would not require restarts.
We know the snapctl that comes with the deb package is outdated and we should be using the one from the core snap so first install the core snap, remove the old snapctl and create a symlink to the new snapctl.
sudo snap install core
sudo mv /usr/bin/snapctl /usr/bin/snapctl.old
sudo ln -s  /snap/core/current/usr/bin/snapctl /usr/bin/snapctl

Вот более чистый обходной путь, который не потребует перезапуска.
Мы знаем, что snapctl, поставляемый с пакетом deb, устарел, и мы должны использовать тот, который находится в основной оснастке, поэтому сначала установите базовую привязку, удалите старый snapctl и создайте символическую ссылку на новый snapctl.
sudo snap install core
sudo mv /usr/bin/snapctl /usr/bin/snapctl.old
sudo ln -s  /snap/core/current/usr/bin/snapctl /usr/bin/snapctl

Thanks, this solution suits me better!


[Request] Seperate Section for snipers in Triggerbot and Aimbot

Is there anyway you could add a seperate section for sniper rifles in the aimbot and triggerbot sections? Could help a lot of people out with their Legit configs

There in the rifes tab, so IDK what doing that would acomplish. just config the sniper rifes sepreatly...

its already separated.
open the Rifles tab to see more info


Add icon for .cake extension

How would I go about doing this?
This would be to support this build automation tool:
http://cakebuild.net/
Thanks!

Solved! Uploaded right now

@robertohuertasm thanks! Where does the actual cake icon reside though?

Icons are downloaded to resources/app/out/vs/workbench/parts/files/browser/media/icons/ folder.
Depending on your OS you will have to look in Program Files (x86), inside your .app contents or in usr/share/code

@robertohuertasm sorry, that wasn't my question, but now I see what you have done...  I didn't notice the icons.zip in your commit: https://github.com/robertohuertasm/vscode-icons/commit/ce232284dc586cd2f656aa0f9d6cfb02e99720bc so I couldn't see where you were adding the cake icon.  But now I see what you are doing.
Thanks!

@gep13 :+1:


SAM: Add route component to handle redirects from legacy map

Soon, there will be an Apache redirect for links to the old map, if query params are present. These links will be redirected to the new map, and will retain the query params.
We need to modify https://github.com/VEuPathDB/web-monorepo/blob/8f14604c562bdb10994379c54bddbfa19764507b/packages/libs/web-common/src/controllers/EdaMapController.tsx to do the following, if any query params are present:
Create a new analysis with the following properties:

If a projectID query param is present, use its value to create a studyId filter (POPBIO_8000215)
If other query params are present, format them into a human-readable string, and add them to the description of the new analysis.
Both of these can be provided to the createAnalysis method of AnalysisClient.

Once the analysis has been created, redirect to the new analysis.
The Notes side-menu section should be open by default. It's unclear how best to implement that, since the active side-menu section is currently help in component state.
If no query params are present, then skip the steps above, and render the map as usual.

Question related to the Apache redirect: do we want to have a list of known query params to prevent this from happening with non-redirected links?
Maybe we can have the Apache redirect set the original query params as the value of a new query param, named something like legacyMapQueryParams.

FUT Mar 13 2024
https://vectorbase.org/popbio-map/web/?signposts_ss=Pathogen&view=smpl&zoom_level=3&center=23.07973176244989,3.5156250000000004&summarizeBy=Sample type&grid=true&shared_link=true&limitTerms=true
OR
https://vectorbase.org/popbio-map/web/?signposts_ss=Pathogen&projectID=VBP0000812&view=smpl&zoom_level=4&center=26.82407078047018,45.08789062500001&summarizeBy=Project&grid=true&shared_link=true&limitTerms=true
SYSTEMS:  https://vectorbase.org/vectorbase/app/workspace/maps/legacy-redirect-handler?signposts_ss=Pathogen&view=smpl&zoom_level=3&center=23.07973176244989,3.5156250000000004&summarizeBy=Sample type&grid=true&shared_link=true&limitTerms=true
CLIENT:    => https://vectorbase.org/vectorbase/app/workspace/maps/DS_480c976ef9/analysis_id
***REQUEST SYSTEMS a new URL for old MAP
https://vectorbase.org/popbio-map-internal/web


[Refactor]: improve code modularity & readability for contributors generator script ✨

File Name
contributors/style.js
Reason for Refactoring the Code

We want to enhance maintainability, readability, and to promote best coding practices. The current script lacks modularity and contains repetitive code.
I will update the changes that i made during refactoring on PR.

Checklist

[X] I have checked the existing issues.
[X] I have read the Contributing Guidelines.
[X] The changes don't break the code and don't introduce new functionality.
[X] I am willing to work on this issue (optional).
[X] I am a GSSoC23 contributor.

Hey there @Vaishnavi-Patil2211 👋🏻
Please make sure to assign this issue to me to make the work done, Thank you!


merge driver options array while preserving keys. fixes zf2-188

Hi!
This is a fix for [1], the problem is explained there in detail.
This fix basically does an array_merge, but preserves keys, both numeric and string. The values from the second array will overwrite the values from the first one, if the keys are the same.
[1] http://framework.zend.com/issues/browse/ZF2-188

Yep, confirmed, Thanks!


Serve in web browser for Dev, still use electron build?

I want use my Web Browser for development, rather than Electron itself. I still want the option to build for Electron or Web, though.
How do I set up the project to run in the browser during development (e,g., when using npm run dev)?

Note: I saw another issue related to this, but the solution outlined very clearly there by the OP does not appear to be relevant anymore in the current version of electron-vue.

Hello @brianjlacy,
I also want to run the app n in the browser during development after typing npm run dev.
Did you resolve this issue? Please let me know.
Thanks.


Pass $workingDirectory as source to cli volume as it breaks docker run on macos

Passing the current directory (.) as a docker volume brings up an error on macos. As the working directory is set in the Process.run call, passing it through again in the docker run command has the same effect but works on mac os.

Thank you!
That's interesting, as it has worked correctly on my tests on Linux and Windows with the latest Docker version.
What version of Docker are you using?
I don't mind using the full path if it improves compatibility with other Docker versions.

You're right, looks like I was using an old version installed through Homebrew and not the client from Docker Desktop, working well after an update :)

Do you know the version you were using? Depending how old it was it might be worth adding the full path. As you said, it should be the same behavior.

@davidmartos96 It was quite old, version 20. I think it's probably safe to leave as is :)


use viper watcher instead of configmap watcher for config changes

Feature Request

mount configmap
k8s handles updates
viper watcher will update kubearmor configurations

viper watcher is implemented in #1862 (might need to update it or handle separately for k8s)

Hey @Prateeknandle
I would be interested in picking this issue as well


Fix pwsafe installation

Thanks.
What's the reason for changing it to the installer? They still provide the zip files
https://github.com/pwsafe/pwsafe/releases/latest

It extracted the zip to a subdirectory (pwsafe-3.47.1-bin) and failed to install the shortcuts to startmenu-shortcuts

The extract_dir property is avaialable for this.
Add this to 64bit
"extract_dir": "pwsafe64-3.47.1-bin"
This to 32bit
"extract_dir": "pwsafe-3.47.1-bin"
And these to the autoupdate property:
"extract_dir": "pwsafe64-$version-bin"
"extract_dir": "pwsafe-$version-bin"

Ok will try, thanks


Custom smart lockout defaults doesn't match current defaults in AAD

Documentation for smart lock out default value is listed as 10. In the Azure directory portal (Azure US government portal), the lockout threshold is populated with 3.  Documentation needs review and edit.

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

ID: 9c7b90ca-a2b1-9cd8-9769-cd48c27f10ea
Version Independent ID: b8c29389-c435-b2f0-4186-1e9c47ab4f3e
Content: Prevent attacks using smart lockout - Azure Active Directory
Content Source: articles/active-directory/authentication/howto-password-smart-lockout.md
Service: active-directory
Sub-service: authentication
GitHub Login: @Justinha
Microsoft Alias: justinha

@Kasisrinivasan
Thanks for your feedback! We will investigate and update as appropriate.

@Kasisrinivasan
Thank you for pointing this out!
Within my AzureAD tenant (not US gov), I wasn't able to see the default value of 3 for the account lockout threshold. Can you share a screenshot, so I can gain a better understanding of what you're seeing.

If you have any other questions, please let me know.
Thank you for your time and patience throughout this issue.

We don't have the AAD tier upgraded to premium to leverage smart lock out but below is the default I see with free tier

Based on your screenshot, I'm guessing the Smart lock out defaults vary between the different AAD tiers

@Kasisrinivasan
Thank you for the quick follow up on this!
My test tenant is using the free tier also, but I can see the same defaults within my premium tenant. However, I believe you're right, that the defaults can vary between Public and Gov tenants.

I've created a PR to update the documentation and it's currently waiting for the author to review and sign off.
I will now close out this issue. Please allow some time for the author to review and the changes to reflect.
Thank you for your time and patience!


hcxdumptool: invalid option -- 'o'

when i write this commands i got this error
┌──(kali㉿kali)-[~]
└─$ sudo systemctl stop NetworkManager.service
[sudo] password for kali:
┌──(kali㉿kali)-[~]
└─$ sudo systemctl stop wpa_supplicant.service
┌──(kali㉿kali)-[~]
└─$ sudo hcxdumptool -i wlan0 -o dumpfile.pcapng --active_beacon --enable_status=15
hcxdumptool: invalid option -- 'o'
hcxdumptool 6.3.1-60-gacb4270 (C) 2023 by ZeroBeat
usage: hcxdumptool -h for help
why i got this message
hcxdumptool: invalid option -- 'o'

hcxdumptool does not have this options "-o dumpfile.pcapng --active_beacon --enable_status=15"
All options can be listed by "-h" or "--help"
$ hcxdumptool -h
hcxdumptool 6.3.1-56-g89278de  (C) 2023 ZeroBeat
usage: hcxdumptool <options>
        first stop all services that take access to the interface, e.g.:
        $ sudo systemctl stop NetworkManager.service
        $ sudo systemctl stop wpa_supplicant.service
        then run hcxdumptool
        press ctrl+c to terminate
        press GPIO button to terminate
        hardware modification is necessary, read more:
        https://github.com/ZerBea/hcxdumptool/tree/master/docs
        stop all services (e.g.: wpa_supplicant.service, NetworkManager.service) that take access to the interface
        do not set monitor mode by third party tools (iwconfig, iw, airmon-ng)
        do not use logical (NETLINK) interfaces (monx, wlanxmon, prismx, ...) created by airmon-ng and iw
        do not use virtual machines or emulators
        do not run other tools that take access to the interface in parallel (except: tshark, wireshark, tcpdump)
        do not use tools to change MAC (like macchanger)
        do not merge (pcapng) dump files, because this destroys assigned hash values!

short options:
-i <INTERFACE> : name of INTERFACE to be used
                  default: first suitable INTERFACE
                  warning: hcxdumptool changes the virtual MAC address of the INTERFACE
-w <outfile>   : write packets to a pcapng-format file named <outfile>
                  default outfile name: yyyyddmmhhmmss-interfacename.pcapng
                  get more information: https://pcapng.com/
-c <digit>     : set channel (1a,2a,36b...)
                  default: 1a,6a,11a
                  important notice: channel numbers are not unique
                  it is mandatory to add band information to the channel number (e.g. 12a)
                   band a: NL80211_BAND_2GHZ
                   band b: NL80211_BAND_5GHZ
                   band c: NL80211_BAND_6GHZ
                   band d: NL80211_BAND_60GHZ
                   band e: NL80211_BAND_S1GHZ (902 MHz)
                  to disable frequency management, set this option to a single frequency/channel
-f <digit>     : set frequency (2412,2417,5180,...)
-F             : use available frequencies from INTERFACE
-t <second>    : minimum stay time (will increase on new stations and/or authentications)
                  default 1 seconds
-m <INTERFACE> : set monitor mode and terminate
-p             : do not set monitor mode: active (do not ACK incoming frames addressed to the device MAC)
                 default monitor mode: active (ACK all incoming frames addressed to the device MAC)
-L             : show INTERFACE list
-l             : show INTERFACE list (tabulator separated and greppable)
-I <INTERFACE> : show detailed information about INTERFACE
-h             : show this help
-v             : show version

long options:
--bpf=<file>                   : input kernel space Berkeley Packet Filter (BPF) code
                                  steps to create a BPF (it only has to be done once):
                                  $ hcxdumptool -m <interface>
                                  create BPF to protect MACs
                                  $ tcpdump -i <INTERFACE> not wlan addr2 11:22:33:44:55:66 -ddd > protect.bpf
                                  recommended to protect own devices
                                  create BPF to attack a MAC
                                  $ tcpdump -i <INTERFACE> wlan addr1 11:22:33:44:55:66 or wlan addr2 11:22:33:44:55:66 or wlan addr3 11:22:33:44:55:66 -ddd > attack.bpf
                                  it is strongly recommended to allow all PROBEREQUEST frames (wlan_type mgt && wlan_subtype probe-req)
                                  $ tcpdump -i <interface> wlan addr1 11:22:33:44:55:66 or wlan addr2 11:22:33:44:55:66 or wlan addr3 11:22:33:44:55:66 or wlan addr3 ff:ff:ff:ff:ff:ff -ddd > attack.bpf
                                  see man pcap-filter for a list of all filter options
                                  add BPF code:
                                  $ hcxdumptool -i <INTERFACE> --bpf=attack.bpf ...
--disable_beacon               : do not transmit BEACON frames
--disable_deauthentication     : do not transmit DEAUTHENTICATION/DISASSOCIATION frames
--disable_proberequest         : do not transmit PROBEREQUEST frames
--disable_association          : do not AUTHENTICATE/ASSOCIATE
--disable_reassociation        : do not REASSOCIATE a CLIENT
--beacontx=<digit>             : transmit BEACON of first n entries of ESSID list
                                  default: 10
--proberesponsetx=<digit>      : transmit PROBERESPONSEs of first n entries of ESSID list
                                 default: 10
--essidlist=<file>             : initialize ESSID list with these ESSIDs
--errormax=<digit>             : set maximum allowed ERRORs
                                  default: 100 ERRORs
--watchdogmax=<seconds>        : set maximum TIMEOUT when no packets received
                                  default: 600 seconds
--attemptclientmax=<digit>     : set maximum of attempts to request an EAPOL M2
                                  default: 10 attempts
                                  to disable CLIENT attacks set 0
--attemptapmax=<digit>         : set maximum of received BEACONs to request a PMKID or to get a 4-way handshake
                                  default: stop after 4 received BEACONs
                                  attemptapmax=0 include this options:
                                   disable_deauthentication: do not transmit DEAUTHENTICATION/DISASSOCIATION frames
                                   disable_proberequest    : do not transmit PROBEREQUEST frames
                                   disable_association     : do not AUTHENTICATE/ASSOCIATE
                                   disable_reassociation   : do not REASSOCIATE a CLIENT
--tot=<digit>                  : enable timeout timer in minutes
--exitoneapol=<type>           : exit on first EAPOL occurrence:
                                  bitmask:
                                   1 = PMKID
                                   2 = EAPOL M2
                                   4 = EAPOL M3
                                  target BPF filter is recommended
--onsigterm=<action>           : action when the program has been terminated (poweroff, reboot)
                                  poweroff: power off system
                                  reboot:   reboot system
--ongpiobutton=<action>        : action when the program has been terminated (poweroff, reboot)
                                  poweroff: power off system
                                  reboot:   reboot system
--ontot=<action>               : action when the program has been terminated (poweroff, reboot)
                                  poweroff: power off system
                                  reboot:   reboot system
--onwatchdog=<action>          : action when the program has been terminated (poweroff, reboot)
                                  poweroff: power off system
                                  reboot:   reboot system
--onerror=<action>             : action when the program has been terminated (poweroff, reboot)
                                  poweroff: power off system
                                  reboot:   reboot system
--gpio_button=<digit>          : Raspberry Pi GPIO pin number of button (2...27)
                                  push GPIO button (> 10 seconds) to terminate program
                                  default: 0 (GPIO not in use)
--gpio_statusled=<digit>       : Raspberry Pi GPIO number of status LED (2...27)
                                  default: 0 (GPIO not in use)
--nmea_dev=<NMEA device>       : open NMEA device (/dev/ttyACM0, /dev/tty/USB0, ...)
                                  baudrate = BD9600
--gpsd                         : use gpsd to get position
                                  gpsd will be switched to NMEA0183 mode
--nmea_out=<outfile>           : write GPS information to a nmea-format file named <outfile>
                                  default outfile name: yyyymmddhhmmss.nmea
                                  output: NMEA 0183 standard messages:
                                          $GPRMC: Position, velocity, time and date
                                          $GPGGA: Position, orthometric height, fix related data, time
                                          $GPWPL: Position and MAC AP
                                          $GPTXT: ESSID in HEX ASCII
                                  use gpsbabel to convert to other formats:
                                   gpsbabel -w -t -i nmea -f in_file.nmea -o gpx -F out_file.gpx
                                   gpsbabel -w -t -i nmea -f in_file.nmea -o kml -F out_file.kml
                                  get more information: https://en.wikipedia.org/wiki/NMEA_0183
--nmea_pcapng                  : write GPS information to pcapng dump file
--rcascan=<character>          : do (R)adio (C)hannel (A)ssignment scan
                                  default = passive scan
                                  a = active scan
                                  p = passive scan
--rds=<digit>                  : sort real time display
                                  default: sort by time (last seen on top)
                                  1 = sort by status (last PMKID/EAPOL on top)
--help                         : show this help
--version                      : show version

Legend
real time display:
 R = + AP display:     AP is in TX range or under attack
 S = + AP display:     AUTHENTICATION KEY MANAGEMENT PSK
 P = + AP display:     got PMKID hashcat / JtR can work on
 1 = + AP display:     got EAPOL M1 (CHALLENGE)
 3 = + AP display:     got EAPOL M1M2M3 (AUTHORIZATION) hashcat / JtR can work on
 E = + CLIENT display: got EAP-START MESSAGE
 2 = + CLIENT display: got EAPOL M1M2 (ROGUE CHALLENGE) hashcat / JtR can work on
Notice:
This is a penetration testing tool!
It is made to detect vulnerabilities in your NETWORK mercilessly!
To store entire traffic, run <tshark -i <interface> -w allframes.pcapng> in parallel

The simplest command to run hcxdumptool is:
$ sudo hcxdumptool -F --rds1
For more information read help menu, changelog (why options has been changed) and README.md
Closed, because this is not a bug.


Fix incorrect net interface zone for UdpChannelNode on Windows

@Apollon77  I did some refactoring but found out that it's not that much "from the very beginning". The refactored code (might fix some other unnoticed bugs) actually has little to do with this fix, and the direct fix might be just removing UdpChannelNode#netInterface (not necessary to remove now after this fix, but you know).
What do you guys think? Should I keep it after all? And does the refactoring still relevant? (The previous getMembershipMulticastInterfaces() might be buggy as it didn't filter out netInterface if provided.)

Need to check this on a big screen with a fit brain tomorrow ;-) too late for today.


Add label to indicate archived meetings

Codecov Report

Merging #152 (e1f484a) into master (07c0837) will decrease coverage by 0.12%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master     #152      +/-   ##
============================================
- Coverage     53.18%   53.06%   -0.13%
  Complexity      525      525
============================================
  Files           113      113
  Lines          2181     2186       +5
  Branches        257      258       +1
============================================
  Hits           1160     1160
- Misses          943      948       +5
  Partials         78       78

Impacted Files
Coverage Δ

...n/java/seedu/address/commons/core/GuiSettings.java
69.23% <ø> (ø)

src/main/java/seedu/address/ui/MeetingCard.java
0.00% <0.00%> (ø)

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 07c0837...e1f484a. Read the comment docs.


is there any bag downloadable to test the loop closure function?

Great job! Tixiao, any bag to test your loop closure function?
Thanks,
Deliang

Besides the bag provided in the package, I would suggest to use the KITTI dataset for testing.

Thanks, I will download kitti dataset.


[FLINK-23202][rpc] Fail rpc requests for unreachable recipients eagerly

This PR adds support for failing RPC result futures eagerly if the recipient turns out to be unreachable (e.g. terminated or remote ActorSystem is unreachable). This allows to react to failure situations earlier.
The PR contains the following main commits:
74dc9a1: Introduce marker interface to filter out Flink related RPC messages
The marker interface rpc.messages.Message identifies all Flink related RPC messages. This can
be used to filter for these messages and to trigger specific actions.
da79d62: Fail rpc requests for unreachable recipients eagerly
This commit adds the DeadLettersActor that monitor Akka's dead letter mailbox. Whenever a
Flink Message is received if sends a failure to the sender to notify the sender about the
unreachability of the recipient. That way it is possible to eagerly fail the result futures,
and not having to wait on the rpc timeout.
fe6bdb0: Fail with AkkaRecipientUnreachableException if local actor has terminated
This commit replaces the AskTimeoutException with an AkkaRecipientUnreachableException if the local actor
has already terminated. This works by looking at the exception message. This ensures that we respond with
the right exception if the local actor is unreachable.

Thanks for the review @zentol. I have addressed your comments and hardened the failing test cases.
The problem of the ResourceManagerTaskExecutorTest.testDelayedRegisterTaskExecutor was that I changed how the TimeoutException message is generated in the AkkaInvocationHandler#resolveTimeoutException which missed the class name of the RPC. I've changed this by adding the declaring class name to the RpcInvocation message and their toString method. I think this is a good improvement because it makes it clearer which class one is calling a RPC on.
The problem of the TaskManagerProcessFailureBatchRecoveryITCase#AbstractTaskManagerProcessFailureRecoveryTest.testTaskManagerProcessFailure is actually quite interesting. The test checks that a job gets recovered if a TM dies. The problem was that it was build on some very specific Flink behaviour to realize this. The test assumed that a recovery takes at least as long as the akka.ask.timeout because cancelling the tasks on the failed TM won't complete until this timeout expired. Moreover, it assumes that a TM will only be marked as dead if the hearbeat timeout expires. Therefore, by configuring the akka.ask.timeout to 100 s and setting the heartbeat.timeout to 10 s, it knew that there will only be 2 restart attempts because the second attempt will only be started after the heartbeat.timeout has been triggered.
With my change, this behaviour changes because the cancel call won't block until the akka.ask.timeout. Instead it completes (or rather fails) right away, because it sees that the remote endpoint is no longer reachable. Therefore (and because we have set the delay between restarts to 0), we will start right away with the next execution attempt. Since the dead TM has not been removed from the slot pool, we will reuse the slots for the second attempt and fail right away again when deploying the tasks. Since the TM will only be marked as dead after 10 s, we will deplete our restart attempts and then fail the job.
The solution to fixing this problem is to set the number of restart attempts to Integer.MAX_VALUE and to configure a delay between restarts of 1 s so that we don't have a busy loop. With FLINK-23209, this will improve considerably, because then it will only take the heartbeat.interval to detect the dead TM.

However, this also creates a question: Do we want to backport this improvement to the release-1.12. and release-1.13 branch? The PR changes slightly the behaviour of Flink in the sense that akka.ask.timeout can no longer be used to delay the restart attempts. Hence, when backporting this feature we might break some setups in which users implicitly relied on this behaviour.

akka.ask.timeout can no longer be used to delay the restart attempts

I'm not too concerned about this; we've had proper APIs to control restart delays for a long time.

Do we want to backport this improvement to the release-1.12. and release-1.13 branch?

Have we fully grasped the implications of this change yet?
In the case of a truly unreachable TM, these changes (along with FLINK-23209) are a clear improvement, but what about cases of intermittent networking issues?
Can the tiniest networking issue cause a TM to be considered unreachable and cause all tasks to be re-deployed? The heatbeat interval+timeout safeguarded against such issues because in practice multiple heartbeats had to fail.

It is true that with #16357, intermittent networking issues will lead to more disconnections and consequently more re-deployments of tasks. Maybe this is something we want to make configurable (e.g. also having a threshold but weighing the importance of this signal a bit higher than when the last heartbeat was received). The problem with intermittent networking issues is always that you don't know how long they last.
We probably should have this discussion on the respective #16357 PR.

Thanks for reviewing this PR @zentol. Merging this PR now.


Import MaskedArray from numpy

The sklearn import has broken

I'm on 0.18 (.0?) .  This seems to be latest on conda-forge?
mrocklin@carbon:~$ anaconda search scikit-learn | grep conda-forge
Using Anaconda Cloud api site https://api.anaconda.org
conda-forge/scikit-learn  |     0.18 | conda           | linux-64,
osx-64
Perhaps try-except between sklearn and numpy?
On Thu, Mar 9, 2017 at 5:06 PM, Jim Crist<EMAIL_ADDRESS>wrote:

What version of scikit-learn are you on? This requires 0.18.1, as there
were some bugfixes needed. If you look at the code
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/fixes.py#L363-L378
this should be there since then.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask-learn/pull/31#issuecomment-285498934, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszGSfV5dUbsEdchpTWsSDAru9ti-Pks5rkHf4gaJpZM4MYrAA
.

The fix in scikit-learn is needed to be able to pickle the masked arrays, but that's it, so a try/catch block would probably be fine. You're correct, 0.18.0 is the latest on conda-forge, but not the latest release. Not sure why conda-forge isn't up to date yet.

This was fixed in #37, it now works with scikit-learn 0.18.0+. Closing.


Create jsii-transpile tool

Goal: given a jsii-enabled package (e.g: the npm tgz for the package), install the package & dependencies into a working directory, compile & transliterate all code examples therein into select target languages, then produce a transliterated .jsii assembly file as a result.
How: jsii-rosetta provides the functionality to perform the transliteration, however it does not bother with the dependency management (it is intended to run at build time, not against packaged libraries), and produces a rosetta tablet file instead of a transliterated jsii assembly document.

The jsii-transpile tool would consume a .jsii assembly file, and leverage jsii-rosetta APIs to create one <lang>.jsii file per configured target language, with all APIs renamed to the correct language representation, and sample code trans-literated to the correct language where possible.

Implemented a jsii-rosetta transliterate tool instead. This doesn't do exactly the same job (it only does the transliteration, and the dependency resolution, etc... is left to the user, who's more likely to know exactly how to make this happen).


[analysis_server] workspace/didChangeWorkspaceFolders: Only absolute normalized paths are supported

Dart SDK version: 2.17.5 (stable) (Tue Jun 21 11:05:10 2022 +0200) on "windows_x64"
I am trying to integrate Dart Analysis Server with Eclipse utilizing the Eclipse LSP4E project.
When opening a Dart file I am getting the following exception from the Dart LS:
java.util.concurrent.CompletionException: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: File is not being analyzed
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:332)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:347)
	at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:708)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
	at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:209)
	at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:193)
	at org.eclipse.lsp4e.LanguageServerWrapper.lambda$3(LanguageServerWrapper.java:276)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:194)
	at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:94)
	at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:113)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: File is not being analyzed
	... 11 more

with root cause:
[Error] An error occurred while handling workspace/didChangeWorkspaceFolders notification: Invalid argument(s): Only absolute normalized paths are supported: D:\dev\wks\dart-testproject\
#0      AnalysisContextCollectionImpl._throwIfNotAbsoluteNormalizedPath (package:analyzer/src/dart/analysis/analysis_context_collection.dart:124:7)
#1      AnalysisContextCollectionImpl._throwIfAnyNotAbsoluteNormalizedPath (package:analyzer/src/dart/analysis/analysis_context_collection.dart:115:7)
#2      new AnalysisContextCollectionImpl (package:analyzer/src/dart/analysis/analysis_context_collection.dart:51:5)
#3      ContextManagerImpl._createAnalysisContexts.performContextRebuildGuarded.performContextRebuild (package:analysis_server/src/context_manager.dart:449:40)
#4      ContextManagerImpl._createAnalysisContexts.performContextRebuildGuarded.performContextRebuild (package:analysis_server/src/context_manager.dart:444:41)
#5      ContextManagerImpl._createAnalysisContexts.performContextRebuildGuarded (package:analysis_server/src/context_manager.dart:562:17)
<asynchronous suspension>
#6      ContextManagerImpl.setRoots (package:analysis_server/src/context_manager.dart:280:5)
<asynchronous suspension>
#7      LspAnalysisServer._refreshAnalysisRoots (package:analysis_server/src/lsp/lsp_analysis_server.dart:758:5)
<asynchronous suspension>
#8      LspAnalysisServer.updateWorkspaceFolders (package:analysis_server/src/lsp/lsp_analysis_server.dart:691:5)
<asynchronous suspension>
#9      WorkspaceFoldersHandler.handle (package:analysis_server/src/lsp/handlers/handler_change_workspace_folders.dart:40:5)
<asynchronous suspension>
#10     LspAnalysisServer.handleMessage.<anonymous closure> (package:analysis_server/src/lsp/lsp_analysis_server.dart:352:26)
<asynchronous suspension>

The corresponding URI sent to the analysis server as part of this notification is file:///D:/dev/wks/dart-testproject/
I think this issue is similar to https://github.com/dart-lang/sdk/issues/48234 where the same exception occured during textDocument/didOpen notifications which was fixed by https://github.com/dart-lang/sdk/commit/7a4c3c1c46b9d066b2a8051d349b91caf7d49c1b along with this comment:
// Normalise all potential workspace folder paths as these may contain
// trailing slashes (the LSP spec does not specific if folders
// should/should not have them) and the analysis roots must be normalized.

@DanTup

@sebthom thanks for the investigation! You were exactly right, that fix was only applying to workspace folders in the original initialize request. I've moved the normalisation to apply to all changes to workspace folders (during initialize or didChangeWorkspaceFolders):
https://dart-review.googlesource.com/c/sdk/+/250041/

@sebthom I'm not involved in releases so can't say for certain, but my understanding is that the "patch" versions are used for hotfixes (which this won't make the bar for), so I would expect it to be in a 2.18 rather than a 2.17.x.
However if you just want a version for testing, you could get a dev build from https://dart.dev/get-dart/archive#dev-channel
Based on the tags at https://github.com/dart-lang/sdk/tags, v2.18.0-235.0.dev was tagged 5 hours ago so should include the fix. I wouldn't recommend using a dev build for production work, but it may be useful for your testing of the LSP integration.

@DanTup thank you!!


adds Functor & VerifiedFunctor

VerifiedFunctor requires proofs that map conforms to the Functor laws
adds Functor and VerifiedFunctor instances for

Maybe
List
Either(A)
Pair(A)

want to add more instances soon :)

@johnchandlerburnham @gabriel-barrett I wonder if we can/should implement "VerifiedFunctor" based on Functor itself to avoid code duplication?


Crash report - 2019-10-17

Crash report - 2019-10-17
Hi,

Daemon crashed and asked that I report here.
I set up the node and synced.
Then requested funding from the faucet.
Received txid.
Waited ~5 blocks but no funds shown received with coda client get-balance -address $CODA_PK
Went to sleep.
Daemon crashed sometime during the next ~5 hours.

I can be contacted on Discord if you need anything else.
CrisF#3405
Crash Report attached
coda_crash_report_2019-10-17_17-49-32.606241.tar.gz

Hi @Cris-F. This crash looks like it was due to some network error: when the Kademlia helper was restarted, it failed to connect to any of its peers, leading to this crash. Either the local network connection went down, or all of your peers simultaneously died.
We shouldn't crash in this situation: we should wait and listen for incoming connections and retry old connections once the network is back. This should be better with the next testnet release and the new libp2p-based discovery code.


Correction for raw affiliation ISNI:<PHONE_NUMBER>368884 Western University

Correction needed for raw affiliation ISNI:<PHONE_NUMBER>368884 Western University
raw_affiliation_name: ISNI:<PHONE_NUMBER>368884 Western University
new_rors: 02grkyz14
previous_rors: 05cgtjz78
works_examples: W4380450547;W4378676223;W4384073710;W4390817886;W4389510289;W4393186607;W4390827460
contact:<PHONE_NUMBER>bedc296a97b1115b2f0539:24929d1561851a2c @ uwo.ca

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


Memory leak when performing sync to Google clould storage with client-side encryption

What is the problem you are having with rclone?
On Linux, when rclone performs sync to google cloud storage with client-side encryption, "top" shows that the memory usage for rclone keeps going up. Eventaully rclone encounters "fatal error: out of memory" and quits. rclone memory profiling confirms that problem, and points to "encoding/json.(*decodeState).literalStore" being the primary suspect.
What is your rclone version (output from rclone version)
rclone v1.47.0-067-g9c6f3ae8-beta

os/arch: linux/amd64
go version: go1.12.5

Which OS you are using and how many bits (eg Windows 7, 64 bit)
CentOS 6.6, with Linux 2.6.32-504.3.3.el6.x86_64
with 16GB RAM
Which cloud storage system are you using? (eg Google Drive)
Google cloud storage, with client-side encryption
The command you were trying to run (eg rclone copy /tmp remote:tmp)
rclone --transfers=2 --cache-chunk-no-memory sync /xxxx gcs-sa-enc:/xxxx --rc
Configuration file rclone.conf:
[gcs-sa]
type = google cloud storage
project_number = xxxx
service_account_file = xxxx
storage_class = COLDLINE
object_acl = private
bucket_acl = private
client_id = xxxx

[gcs-sa-enc]
type = crypt
remote = gcs-sa:xxxx/xxxx
filename_encryption = standard
directory_name_encryption = true
password = xxxx
password2 = xxxx

A log from the command with the -vv flag (eg output from rclone -vv copy /tmp remote:tmp)
$ go tool pprof -text http://localhost:5572/debug/pprof/heap
Run above profiling command periodically, with following outputs

Time: May 13, 2019 at 11:21pm (PDT)
Showing nodes accounting for 549.92MB, 98.15% of 560.31MB total
Dropped 64 nodes (cum <= 2.80MB)
      flat  flat%   sum%        cum   cum%
  446.69MB 79.72% 79.72%   446.69MB 79.72%  encoding/json.(*decodeState).literalStore
   51.51MB  9.19% 88.92%    65.51MB 11.69%  github.com/ncw/rclone/backend/googlecloudstorage.(*Fs).newObjectWithInfo
      24MB  4.28% 93.20%       24MB  4.28%  github.com/ncw/rclone/vendor/google.golang.org/api/gensupport.NewMediaBuffer
      14MB  2.50% 95.70%       14MB  2.50%  encoding/hex.EncodeToString
    6.94MB  1.24% 96.94%    72.44MB 12.93%  github.com/ncw/rclone/backend/googlecloudstorage.(*Fs).listDir.func1
       4MB  0.71% 97.65%        4MB  0.71%  strings.(*Builder).grow
    2.28MB  0.41% 98.06%     3.28MB  0.59%  github.com/ncw/rclone/fs/sync.(*syncCopyMove).DstOnly
    0.50MB 0.089% 98.15%     4.48MB   0.8%  github.com/ncw/rclone/fs/march.(*March).processJob
         0     0% 98.15%   448.73MB 80.09%  encoding/json.(*Decoder).Decode

Time: May 13, 2019 at 11:28pm (PDT)
Showing nodes accounting for 996.43MB, 98.54% of 1011.23MB total
Dropped 78 nodes (cum <= 5.06MB)
      flat  flat%   sum%        cum   cum%
  817.85MB 80.88% 80.88%   817.85MB 80.88%  encoding/json.(*decodeState).literalStore
   90.51MB  8.95% 89.83%   118.51MB 11.72%  github.com/ncw/rclone/backend/googlecloudstorage.(*Fs).newObjectWithInfo
      32MB  3.16% 92.99%       32MB  3.16%  github.com/ncw/rclone/vendor/google.golang.org/api/gensupport.NewMediaBuffer
      28MB  2.77% 95.76%       28MB  2.77%  encoding/hex.EncodeToString
   13.55MB  1.34% 97.10%   132.07MB 13.06%  github.com/ncw/rclone/backend/googlecloudstorage.(*Fs).listDir.func1
    9.50MB  0.94% 98.04%     9.50MB  0.94%  strings.(*Builder).grow
    4.52MB  0.45% 98.49%    10.02MB  0.99%  github.com/ncw/rclone/fs/sync.(*syncCopyMove).DstOnly
    0.50MB  0.05% 98.54%    10.52MB  1.04%  github.com/ncw/rclone/fs/march.(*March).processJob
         0     0% 98.54%   821.58MB 81.25%  encoding/json.(*Decoder).Decode

	Time: May 14, 2019 at 12:07am (PDT)
Showing nodes accounting for 3253.22MB, 98.90% of 3289.37MB total
Dropped 109 nodes (cum <= 16.45MB)
      flat  flat%   sum%        cum   cum%
 2610.13MB 79.35% 79.35%  2610.13MB 79.35%  encoding/json.(*decodeState).literalStore
  299.53MB  9.11% 88.46%   375.53MB 11.42%  github.com/ncw/rclone/backend/googlecloudstorage.(*Fs).newObjectWithInfo
   91.50MB  2.78% 91.24%    91.50MB  2.78%  github.com/ncw/rclone/backend/crypt.(*Fs).newObject
      76MB  2.31% 93.55%       76MB  2.31%  encoding/hex.EncodeToString
   51.74MB  1.57% 95.12%   427.28MB 12.99%  github.com/ncw/rclone/backend/googlecloudstorage.(*Fs).listDir.func1
      30MB  0.91% 96.03%       30MB  0.91%  github.com/ncw/rclone/vendor/github.com/rfjakob/eme.tabulateL
   27.76MB  0.84% 96.88%    27.76MB  0.84%  github.com/ncw/rclone/lib/pool.New.func1
      27MB  0.82% 97.70%       27MB  0.82%  strings.(*Builder).grow
      18MB  0.55% 98.25%       48MB  1.46%  github.com/ncw/rclone/vendor/github.com/rfjakob/eme.Transform
   13.55MB  0.41% 98.66%    20.55MB  0.62%  github.com/ncw/rclone/fs/sync.(*syncCopyMove).DstOnly
    4.50MB  0.14% 98.79%       73MB  2.22%  github.com/ncw/rclone/backend/crypt.(*cipher).decryptSegment
    2.50MB 0.076% 98.87%    20.50MB  0.62%  github.com/ncw/rclone/backend/crypt.decodeFileName
    1.01MB 0.031% 98.90%    21.56MB  0.66%  github.com/ncw/rclone/fs/march.(*March).processJob
         0     0% 98.90%  2610.66MB 79.37%  encoding/json.(*Decoder).Decode

Eventually rclone ran out of memory and crashed.

Excellent debugging - thank you :-)
These two lines

2610.13MB 79.35% 79.35% 2610.13MB 79.35% encoding/json.(*decodeState).literalStore
299.53MB 9.11% 88.46% 375.53MB 11.42% github.com/ncw/rclone/backend/googlecloudstorage.(*Fs).newObjectWithInfo

Are indicative that the memory usage is caused by lots of objects created by the gcs backend. So if there is a leak of anything it is objects from gcs.
This could be normal though if you have a directory with a very large number of objects in?
Can you tell me a bit about the sync?  How many files and what sizes are they?

Thank you for your quick response!
Yes the local directory indeed has many files: totally in the order of 500K files, 30K sub-directories, and 1TB data. Most are small files.
If there is no memory leak, but large number of files causes excessive memory usages in gcs backend, this would be a design that needs to be improved. What are the reasons all the objects need to be kept in memory at the same time?

Yes the local directory indeed has many files: totally in the order of 500K files, 30K sub-directories, and 1TB data. Most are small files.

It is number of files in a single directory that is the problem case.  Lots of files in general isn't a problem unless they are all in one directory.
You can find the top number of files in a directory in a directory hierarchy like this
du --inodes -S /path/to/dir | sort -rh | head

If there is no memory leak

I'm not convinced there is or isn't a memory leak yet ;-)

but large number of files causes excessive memory usages in gcs backend, this would be a design that needs to be improved. What are the reasons all the objects need to be kept in memory at the same time?

If you have 100k files in one directory (say) then rclone will read that directory in its entireity into memory so it can compare it with the local version.
It would be possible to read all files in a directory starting with A then B etc for gcs and sync those but rclone doesn't do that (and it would be difficult to support on non bucket based remotes).

"du --inodes" shows the largest directory has about 10K files.
The symptom looks like memory leak to me. The profiling tool shows that encoding/json.(*decodeState).literalStore steadily takes more and more memory, until rclone eventually crashes.

Memory leaks in the C sense of forgetting to free memory aren't possible in Go programs because it uses a garbage collector.  However what is quite common is goroutine leaks which leak memory, so can you post the result of curl http://localhost:5572/debug/pprof/goroutine?debug=1 - that will show if goroutines are building up.
Can you do the graphical output go tool pprof -web http://localhost:5572/debug/pprof/heap and post the image?  That will show us the chain of memory allocations. I suspect that is going to be important!

Enclosed please 3 debug files after rclone has been running for a bout 1 hour: (1) screen capture of top showing rclone resource usage; (2) text file with output of the curl command; and (3) .gz file with output of the "go tool pprof -web" command.

goroutine.004.txt
pprof.rclone.alloc_objects.alloc_space.inuse_objects.inuse_space.005.pb.gz

Thank you for that - very useful.
From that I see that there are 7 directory listings in progress (which sounds right for default --checkers of 8).  There are 886 directories pending to be listed which is a lot, but these pending directory lists don't take up much memory (and they don't show in the profile) even though they do use go routines (which take 4-8K each so only 7MB).
The memory use is nearly all created by the directory listing routines github.com/ncw/rclone/fs/march.(*March).processJob.func2 and in particular the JSON unmarshalling of the objects returned by GCS.
Looking carefully at the heap, there is 76.5MB generated by hex.EncodeToString.  These are all 32 byte strings so that gives us a way of estimating how many objects (which represent files) are in memory.  That comes up with 2.4 Million which is many times more objects than your 500k figure above which is puzzling.
Can you do rclone size /xxxx to see how many objects rclone thinks you have?
It would be helpful if I knew how your files were arranged.
Can you do rclone lsf -R gcs-sa:xxxx/xxxx > listing.txt and attach that to the issue?  That will be encrypted file names from your remote so shouldn't leak any confidential data.  If you are uncomfortable attaching that then you could email them to me<EMAIL_ADDRESS>- put a link to the issue in the email.
One thing which would be worth trying is seeing whether this is the go's garbage collector falling behind.
So can you try setting GOGC to a lower value, say export GOGC=20 to make the garbage collector work harder.  I don't know whether this will make a difference but it might!

Thank you for adding this issue as a bug, and sorry for the delay in the response, as the tests took a lot of time.
"rclone size /xxxx" showed total objects about 405K, and total size about 880GB
"export GOGC=20" indeed helped a lot. "rclone sync" was able to run to completion. "top" showed memory usage capped around 6.3GB VIRT / 3.5GB RES.
The output of "rclone lsf -R gcs-sa:xxxx/xxxx" is huge. Let me know if you still need it for debugging.

Thank you for adding this issue as a bug, and sorry for the delay in the response, as the tests took a lot of time.

No worries

"rclone size /xxxx" showed total objects about 405K, and total size about 880GB

Interesting... That is less than the 2.4M we see in memory.  So I wonder if objects are being copied rather than referred to somewhere and generating a lot of garbage.

"export GOGC=20" indeed helped a lot. "rclone sync" was able to run to completion. "top" showed memory usage capped around 6.3GB VIRT / 3.5GB RES.

  That is still far too much memory though about 8.5k per object.  I'd expect about 1/10th of that

The output of "rclone lsf -R gcs-sa:xxxx/xxxx" is huge. Let me know if you still need it for debugging.

If you could gzip it and send it or attach it that would be really helpful.  I can try re-creating the hierarchy and see if I can replicate the problem.

Thanks for the listing.
I have analyzed it - it is a big file!
There are 5,414,582 files in the listing.  However there seem to be 2,717,205 files in this directory gvbjrkg04ljd8tc5dp1qojs88s/jn3st2jljdisd10d1o3bu342f0/ok962nhve4afsv1qr5uo4rvp9o/re6gna1bg9tq3touf8d9oimf7o/dk6chbr17a39b3g1d14btc76ug/h67vieuf8ha29ughgh73gk59d0/78k1i9p4nrbmi7uctjb7ukj41g/o1acleo51me26d0fhnrk1cms3s/ejd155a9ao4q2o1a9f4jlmg9ds/v7t1ohd79u8fmgaqrebaqlqbmg/
(If you want to discover what directory that is use rclone cryptdecode).
Rclone sync works on a directory by directory basis, so at some point rclone will have to load all 2.7M objects into memory in order to sync it.
This agrees approximately with your memory dump above which had ~2.4M objects in it. Given that there are likely 2.7M gcs objects and 2.7M local objects in memory, to sync that one directory, that probably explains the 7G memory usage.
I should probably change rclone to warn if a large directory is synced.

"rclone size /xxxx" showed total objects about 405K, and total size about 880GB

I don't understand why there are 5.4M files in the bucket but you only have 405K on your local machine?

Thank you for the very interesting findings. I'd like to find out what's going on.
When I "rclone cryptdecode encryptedremote: gvbjrkg04ljd8tc5dp1qojs88s" as you suggested, it showed "Failed to cryptdecode: didn't find section in config file". Except for https://rclone.org/commands/rclone_cryptdecode/, I did not find other info on how to config for and use cryptdecode.
I've run "rclone sync" many times, and it crashed every single time. Could the failed executions be the cause of those extra items in the bucket? Guess I should know more when I got cryptdecode working property.

FYI - just figured out how to use "rclone cryptdecode". Will update when I have findings.

I've run "rclone sync" many times, and it crashed every single time. Could the failed executions be the cause of those extra items in the bucket? Guess I should know more when I got cryptdecode working property.

I guess it is possible if you have lots of temporary files written to one directory which get deleted quickly.  Because rclone has never got to the delete phase of the sync there could be lots of files there.

FYI - just figured out how to use "rclone cryptdecode". Will update when I have findings.

Great!

After many tries, I finally was able to delete all the objects in
gvbjrkg04ljd8tc5dp1qojs88s/jn3st2jljdisd10d1o3bu342f0/ok962nhve4afsv1qr5uo4rvp9o/re6gna1bg9tq3touf8d9oimf7o/dk6chbr17a39b3g1d14btc76ug/h67vieuf8ha29ughgh73gk59d0/78k1i9p4nrbmi7uctjb7ukj41g/o1acleo51me26d0fhnrk1cms3s/ejd155a9ao4q2o1a9f4jlmg9ds/v7t1ohd79u8fmgaqrebaqlqbmg/
After that, "rclone sync" was able to run to completion without being out of memory. But with "-vv", the last 4 lines of debug output are as below. Apparently, "rclone sync" skip the delete phase, just as you mentioned.
ERROR : Encrypted drive 'XXXX:/XXXX': not deleting files as there were IO errors
ERROR : Encrypted drive 'XXXX:/XXXX': not deleting directories as there were IO errors
ERROR : Attempt 3/3 failed with 253 errors and: googleapi: Error 400: Invalid value for UnsignedLong: -42000, invalid
Failed to sync with 253 errors: last error was: googleapi: Error 400: Invalid value for UnsignedLong: -42000, invalid
Looks like all the 253 ERROR lines are in format "ERROR : : googleapi: Error 400: Invalid value for UnsignedLong: -XXXX, invalid"
This error message is cryptic. What does it mean, and how can the errors be fixed?

Ah, this came up on the forum: https://forum.rclone.org/t/invalid-value-for-unsignedlong-file-missing-date-modified/3466
It is rclone attempting to set a date which is before the earliest date that gcs supports I think.
I think the epoch for gcs must be 1970-01-01 and you have files with that time, but I think the timezone is pushing them over the edge somehow...
What are the modified dates on those files?
Can you do a stat on one of them and post the result?

Those problem files indeed have date/time that is not right. Here is one of them:
stat test.sh
File: 'test.sh'
Size: 196       	Blocks: 25         IO Block: 512    regular file
Device: 17h/23d	Inode: 9424357     Links: 1
Access: (0644/-rw-r--r--)
Context: system_u:object_r:ecryptfs_t:s0
Access: 2019-06-11 23:45:01.268512438 -0700
Modify: 1969-12-31 16:01:48.000000000 -0800
Change: 2018-09-10 17:56:43.586140210 -0700
One question is whether it's better to treat this type of issues as error that prevents rclone to delete files, or to treat it with a warning and allow rclone to delete.
It would also be helpful if the googleapi error message is more human-readable.

I had a look through the code and it turns out this is really easy to fix! Rclone  was attempting to set the "updated" time of the GCS object which is read only, so just removing that one line of code makes it work for me.
Can you try this?
https://beta.rclone.org/v1.47.0-121-g4d195d5a-beta/ (uploaded in 15-30 mins)
I've merged this to master now which means it will be in the latest beta in 15-30 mins and released in v1.48

I added also a FAQ entry about memory use
Rclone is using too much memory or appears to have a memory leak
Rclone is written in Go which uses a garbage collector.  The default
settings for the garbage collector mean that it runs when the heap
size has doubled.
However it is possible to tune the garbage collector to use less
memory by setting GOGC to a lower
value, say export GOGC=20.  This will make the garbage collector
work harder, reducing memory size at the expense of CPU usage.
The most common cause of rclone using lots of memory is a single
directory with thousands or millions of files in.  Rclone has to load
this entirely into memory as rclone objects.  Each Rclone object takes
0.5k-1k of memory.

I got a chance to try this beta version:
rclone v1.47.0-123-g939b19c3-beta

os/arch: linux/amd64
go version: go1.12.6

Finally, "rclone sync" went through the delete phase. Though still reported some errors:
It reported 5 missing files in remote repository, with something like:
2019/06/13 17:00:53 ERROR : XXXX: Couldn't delete: googleapi: Error 404: No such object: gcs-coldline/XXXX, notFound
Then the last 3 ERROR lines as below:
2019/06/14 06:59:11 ERROR : Encrypted drive 'XXXX:/XXXX': not deleting directories as there were IO errors
2019/06/14 06:59:11 ERROR : Attempt 1/3 failed with 6 errors and: failed to delete 5 files
2019/06/14 07:56:28 ERROR : Attempt 2/3 succeeded
Wonder how rclone detect missing files in remote repository (instead of new files in local directory). Does the last ERROR line indicate that there is no more error?

It reported 5 missing files in remote repository, with something like:
2019/06/13 17:00:53 ERROR : XXXX: Couldn't delete: googleapi: Error 404: No such object: gcs-coldline/XXXX, notFound

Could something else have deleted these files?
Maybe another instance of rclone?

Wonder how rclone detect missing files in remote repository (instead of new files in local directory).

Me too!

Does the last ERROR line indicate that there is no more error?

Yes. A slightly confusing log message, but it needs to be at ERROR level so you definitely see it.
Rclone will exit with a 0 exit code also.

Thank you ncw for your help to root-cause this issue and get it fixed!


how to delete svgpanzoom object

when I use window.zoomTiger = svgPanZoom(mySVG, ---
and at the end of the task I need drop the svgPanZoom in order to delete <g id="viewport..." and <g id="svg-pan-zoom-zoom-out" and so on.
I can't find the way from pugin. Can u help me provide the function?  (This function can drop all <g id="viewport..." and <g id="svg-pan-zoom-zoom-out" and so on. and don't update other native SVg content)

You can destroy svgPanZoom instance by using destroy method.
If you want to remove the SVG element or some of its inner elements than this library is not for that. You can use stackoverflow for such types of questions.


Extra layout patch removes drawer button existence check

In our app drawer button shouldn't be created with componentHandler, but it creates extra copy now
Please remove this from your patch and rebuild extra files

Hi @dimik,
Thanks for reporting the issue. Is it happening because you're creating the drawer manually?


Locality LB Distribute ignored by Envoy

For the load_balancing_weight to be used, we must set
      "common_lb_config": {
       "locality_weighted_lb_config": {}
      },

In the cluster. This does not happen properly in the code, so the weights are ignored.

Fixed in 1.1.1


A few questions about the project

Good evening! I have some questions about the project:

First of all, have you ever encountered the 429 error called "TooManyRequests"? Since these are new channels (at least so it seems to me looking at the ones you inserted in Linktree), you too, like me, should have a very low limit. As a result, Amazon may limit requests. Have you dealt with this before?

Would it be possible to have the part of code that deals with image customization? I'm using a Scraper and would like to be able to do something similar.

Thanks in advance!

Hi @Alex87a,

The problem 429 error called "TooManyRequests" often occurs if you have a new channel. It can happen for various reasons. Here you can find an answer I had given some time ago on stackoverflow.
In short, if your APIs are new as it seems to me you must first make a sale through your affiliate link for the APIs to be unlocked. The unlock will last for 30 days from the last sale through your link. So if you make a sale today and tomorrow you get access to the APIs, then you're good for 30 days. If in the next 30 days you don't make any sales through your link, then they will be blocked until you make a new sale. If instead you have already made a sale through your affiliate link and more than 24-48 hours have passed and you can view the products through the amazon scratchpad but not with the bot, then there may be a problem with the parameter settings.

For the image customization part, you can find it here. Here it takes the dimensions of the image and performs the necessary operations to apply it to the background image which you can find here. If you want a different background image, just change the file name to backg-2.jpg or backg-3.jpg with your preferred one. If instead you want to modify the position of the elements in the image, you need to change the values in image_generator.py. Be careful that I use Pillow==9.5.0 because newer versions have changes that do not make the code work correctly.


Could use a registerHandler function

Goals
Right now the onEvent() function is just a glue function with lots of if statements or a large switch statement.  We could use a registerHandler() function that would work like so:
class SomeStateProvider extends StateProvider {
  SomeStateProvider () {
    registerHandler<TapLoginButton>(_loginHandler);
    return;
  }

  void _loginHandler(TapLoginButton event) {
    // TODO: implement
    return;
  }
}

This could be offered in addition to the just specifying things in the onEvent function.  But the registerHandler should encourage cleaner code (ie not having any code in the onEvent function aside from handlers).

How should this interplay with the onEvent?  Handlers could be called twice if both were accidentally implemented.

onEvent will no longer be necessary to override.  It will just have to be the documentation that encourages the use of either onEvent OR register handler / emit.

#19 merged into main to implement this.


Sidebar with static / unmoved header

When the context of the sidebar is other than 'body' sidebar should be absolutely positioned to context rather than fixed positioning.

I'm pretty sure it needs to stay position: fixed but context needs transform: translate3d(0, 0, 0); to make a new fixed context.

will provide fiddle soon

See my comment here https://github.com/Semantic-Org/Semantic-UI/issues/1567#issuecomment-68802389


The training parameters of using stacked hourglasses as backbone

Hello, thank you for your excellent code to help my research a lot.
I saw that 30 and 300 epochs were used respectively to train HG in the paper.
Could you tell me what the training parameters(lr, weight_decay, and Lr_decay_epoch) were set to at 30 epochs？

Just same as 300 epochs, the only difference is lr decay, my suggestion is decay the lr at 25-th, and 30-th epoch and train with 35 epochs.

Thank you very much for your timely reply. I have tried many experiments on 35 epochs. With the same parameters, a larger batch size will lead to an increase in sAP, which may indicate that the sAP of the network may increase with the increase of the number of epochs. I will try the experiment again on my machine.

In addition, if it is convenient, could you please tell me which epoch I can get the best training effect on when I use 300 epochs and corresponding parameters to train HourglassNet? This may help me debug the network better. Thank you very much.

The most peak value of sAP appears in the last 20 epochs of the total 300 epochs.


Frames averager can output additional uncertainty estimates

I'm assuming Frames averager propagates uncertainties...
However, in addition, it can output not just the mean but also the standard deviation, or (🍻) the standard error on the mean. Those actual uncertainties can be used to replace or be compared with the theoretical uncertainties at a later stage.

You're correct, if average_all_frames is passed an array of numcertain.uncertain values then the resultant frame will have the correct attributed uncertainties.
Am I correct in understanding that in addition to outputting the averaged values you would like to output the standard deviation / variance of the input frames? This would make for a trivial addition which I am happy to do, but I am unsure as to how you intend to use these downstream, could you possibly elaborate on this a bit further?

Your understanding is correct. We initially only start with (Poisson) counting statistics-based uncertainty estimates, and propagate these. Poisson statistics are the smallest possible uncertainty estimate. However, there can be other sources of uncertainty that bring the actual uncertainty up.
These actual uncertainties can occasionally be determined, for example by comparing multiple ostensibly identical frames. we then get additional estimates for the uncertainties, for example by looking at the SEM or STD.
So we end up with multiple uncertainty arrays. These can be used later on, either for:

estimating a new "user-facing" uncertainty array which is closer to the actual practical uncertainties, by combining the multiple uncertainty arrays in a clever way. I usually estimate this new array as the maximum of the available uncertainties, and to be no less than 1% of the intensity (as this is realistically the smallest effect magnitude of our extensive corrections). Though this 1% is rather arbitrary, it has held up well for subsequent data analysis further down the line.
comparing uncertainties. If we have segments of the detector where the practical uncertainty is consistently larger than the Poisson uncertainty, we have an unknown additional source of noise in there, and some instrumental troubleshooting to do.

so as indicated in #123 , we would need to be able to add a list of uncertainties to each dataset, rather than trying to encapsulate all uncertainties in a single array.

Blocked by https://github.com/DiamondLightSource/numcertain/issues/77


Refactoring tests block

splitting test block into test list and test info templates, so it's a bit more easy to read the code
fixing the prod issue with test name not displaying (I was cropping the name by :, but some names may not have it, so created a tiny function to handle this https://github.com/delta-reporter/delta-frontend/pull/4/files#diff-9415313a4c6bae600f6d8292544ac8abR58)

🤞


Can't create service, getting "Internal Server Error"

I'm trying to create a service through the ServiceManager with following code:
$containerSpec = new ContainerSpec();
$containerSpec->setImage('nginx:alpine');

$taskSpec = new TaskSpec();
$taskSpec->setContainerSpec($containerSpec);

$serviceSpec = new ServiceSpec();
$serviceSpecMode = new ServiceSpecMode();
$serviceSpecMode->setGlobal(new GlobalService());
$serviceSpec->setMode($serviceSpecMode);

$result = $this->client->getServiceManager()->create($serviceSpec, []);

But I'm getting ServerErrorException and in syslog I see:

msg="Error creating service : rpc error: code = 3 desc = ContainerSpec: image reference must be provided"
msg="Handler for POST /services/create returned error: rpc error: code = 3 desc = ContainerSpec: image reference must be provided"

What's wrong with the image reference? Should it be done in a different way?

Sorry, my fault. I missed setTaskTemplate() method. Now it works fine. Sorry for the inconvenience again.


"x.toLowerCase is not a function" error for some queries

In the MolQL explorer, the Jmol query substructure = 1 gives the error message

TypeError: x.toLowerCase is not a function. (In 'x.toLowerCase()', 'x.toLowerCase' is undefined)

fixed, substructure = 1 works now, tahnks for reporting!


created helper function check_config_params

created check_config_params() which is run within slushy_init()
if required parameters (currently set to c("rspm_url", "date", "pkgs", "pkg_deps_ok")) are absent then the function is stopped and a message appears to notify the user that one or more parameters are missing from the config file

example:

addressing issue #36


Controlled vocabulary as option in annotation preferences

The current tag suggestions interfere with the document-specific list that users may want to upload. An option in annotation preferences should allow users to choose, for each document, between general suggestions and tailored lists

After our meeting, I wondered whether there even is a use case for mixing tag systems (i.e. have both the uploaded tags and  the smart suggestions). If not, a much quicker fix would be to disable the smart suggestions as soon as a custom vocabulary is set.

I think that would work. If someone uploads a list, I assume they don't really want to see other suggestions.

Ok, I'll implement it like this for now - we can always add an extra setting in the "Annotation Preferences" later.

The quick solution (API suggestions automatically off, as soon as the document has a custom vocab configured) is now implemented!


Discriminator in OpenApi schema not recognized correctly

Description
Given this OpenApi schema yaml
components:
  schemas:
    FrontofficePageBlock:
      oneOf:
      - $ref: '#/components/schemas/FrontofficePageBlockLinkWithIconBlockList'
      - $ref: '#/components/schemas/FrontofficePageBlockCourseListingBlock'
      discriminator:
        propertyName: type
        mapping:
          link_with_icon_list: '#/components/schemas/FrontofficePageBlockLinkWithIconBlockList'
          course_listing: '#/components/schemas/FrontofficePageBlockCourseListingBlock'
    FrontofficePageBlockCourseListingBlock:
      allOf:
      - $ref: '#/components/schemas/FrontofficePageBlockShared'
      - $ref: '#/components/schemas/CourseListingBlock'
    FrontofficePageBlockLinkWithIconBlockList:
      allOf:
      - $ref: '#/components/schemas/FrontofficePageBlockShared'
      - $ref: '#/components/schemas/LinkWithIconBlockList'
    FrontofficePageBlockShared:
      type: object
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/FrontofficePageBlockSharedTypeEnum'
      required:
      - id
      - type
    FrontofficePageBlockSharedTypeEnum:
      enum:
      - link_with_icon_list
      - course_listing
      type: string

I would expect the generated types to look like this
export type FrontofficePageBlock =
	| ({ type: 'course_listing' } & FrontofficePageBlockCourseListingBlock)
	| ({ type: 'link_with_icon_list' } & FrontofficePageBlockLinkWithIconBlockList)

but this is what we are getting
export type FrontofficePageBlock = FrontofficePageBlockLinkWithIconBlockList | FrontofficePageBlockCourseListingBlock ;

export type FrontofficePageBlockCourseListingBlock = FrontofficePageBlockShared & CourseListingBlock;
export type FrontofficePageBlockLinkWithIconBlockList = FrontofficePageBlockShared & LinkWithIconBlockList;

export type FrontofficePageBlockShared = {
    id: string;
    type: FrontofficePageBlockSharedTypeEnum;
};

export enum FrontofficePageBlockSharedTypeEnum {
    LINK_WITH_ICON_LIST = 'link_with_icon_list',
    COURSE_LISTING = 'course_listing',
}

At first it seems like types are correct but when trying to narrow the block type inside a switch statement by field "type" it is impossible since each block is not strictly connected to its "type" field.
An example:

switch (block.type) {
    case FrontofficePageBlockSharedTypeEnum.COURSE_LISTING:
        // typescript doesn't recognize this as FrontofficePageBlockCourseListingBlock but as FrontofficePageBlock
        ...
        break
    case FrontofficePageBlockSharedTypeEnum.LINK_WITH_ICON_LIST:
        // typescript doesn't recognize this as FrontofficePageBlockLinkWithIconBlockList but as FrontofficePageBlock
        ...
        break
}

It seems like the generator is ignoring the discriminator field from open api schema.
Reproducible example or configuration
https://stackblitz.com/edit/hey-api-client-fetch-example-emxls6?file=src%2FApp.tsx
OpenAPI specification (optional)
openapi: 3.0.3
info:
  title: Bug API
  version: 1.0.0
  description: API endpoints for bug
components:
  schemas:
    CourseListingBlock:
      type: object
      properties:
        foo:
          type: string
        id:
          type: string
      required:
      - id
      - foo
    LinkWithIconBlockList:
      type: object
      properties:
        bar:
          type: string
        id:
          type: string
      required:
      - id
      - bar
    FrontofficePageBlock:
      oneOf:
      - $ref: '#/components/schemas/FrontofficePageBlockLinkWithIconBlockList'
      - $ref: '#/components/schemas/FrontofficePageBlockCourseListingBlock'
      discriminator:
        propertyName: type
        mapping:
          link_with_icon_list: '#/components/schemas/FrontofficePageBlockLinkWithIconBlockList'
          course_listing: '#/components/schemas/FrontofficePageBlockCourseListingBlock'
    FrontofficePageBlockCourseListingBlock:
      allOf:
      - $ref: '#/components/schemas/FrontofficePageBlockShared'
      - $ref: '#/components/schemas/CourseListingBlock'
    FrontofficePageBlockLinkWithIconBlockList:
      allOf:
      - $ref: '#/components/schemas/FrontofficePageBlockShared'
      - $ref: '#/components/schemas/LinkWithIconBlockList'
    FrontofficePageBlockShared:
      type: object
      properties:
        id:
          type: string
        type:
          $ref: '#/components/schemas/FrontofficePageBlockSharedTypeEnum'
      required:
      - id
      - type
    FrontofficePageBlockSharedTypeEnum:
      enum:
      - link_with_icon_list
      - course_listing
      type: string

System information (optional)
No response

@markosandalj I think that sounds right, discriminators aren't supported right now. Will need to add

Added to the Parser release, thanks for the patience everyone!

This will be fixed in the next release of experimental parser 🎉 Let me know if you still run into cases where it's not handled properly!