Callbacks passed to mutate are not called when the component unmounts

Describe the bug
Hello,
I have encountered an issue where callbacks passed to the mutate function are not being executed.
Here's a simplified example to illustrate the problem. The full code can be found here:
const Login = () => {
  // Global state for the example.
  const {setIsLogged, setBgColor} = useContext(Context);

  const {mutate} = useMutation({
      mutationFn: async () => await sleep(),
      onSuccess: () => {
        setIsLogged(true); // This causes the Login component to unmount
      }
    });

  const onPress = () => {
    mutate({onSuccess: () => setBgColor("#0FF")}); // This onSuccess callback is never called
  }

  return <Button title={"Login"} onPress={onPress} />
}

In this example, when the Login button is pressed, a mutation is triggered. The onSuccess callback in useMutation sets isLogged to true, which causes the Login component to unmount. However, there is another onSuccess callback defined inside the mutate function call in the onPress handler, which is supposed to change the bgColor. This callback is never called.
It seems like the callback inside mutate is not being executed because it is scheduled to run after the component has unmounted due to the state change triggered by the onSuccess callback in useMutation. However, it is a strange comportment : the callback should be in the closure of the mutate function, therefore, be executed (on success) no matter what.
Your minimal, reproducible example
https://snack.expo.dev/@antoinethib/react-query-mutation-success
Steps to reproduce

Click on the Login button
Wait for 1 second
A logout button is display. However, the backgroundColor should also change.

Expected behavior

Click on the Login button
Wait for 1 second
A logout button is display and the backgroundColor is changing.

How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform

IOS, Android
"@tanstack/react-query": "^4.28.0"
"react": "18.2.0"
"react-native": "0.71.2"

Tanstack Query adapter
react-query
TanStack Query version
4.28.0
TypeScript version
4.5.2
Additional context
No response

This behaviour is on purpose, and its documented here:

You might find that you want to trigger additional callbacks beyond the ones defined on useMutation when calling mutate. This can be used to trigger component-specific side effects. To do that, you can provide any of the same callback options to the mutate function after your mutation variable. Supported options include: onSuccess, onError and onSettled. Please keep in mind that those additional callbacks won't run if your component unmounts before the mutation finishes.

As the docs say, the callbacks on mutate are component specific, which means they won't run if the component has been unmounted in the meantime. The ones on useMutation always run. I'm also showing some examples where this split can be helpful in my blog:
https://tkdodo.eu/blog/mastering-mutations-in-react-query#some-callbacks-might-not-fire
In your example, if bgColor would be local state, this would be ideal because you wouldn't want to set bgColor of a component that doesn't exist anymore. Since your bgColor is global state, you'd need to put it into the callback of useMutation itself:
  const {mutate} = useMutation({
      mutationFn: async () => await sleep(),
      onSuccess: () => {
        setIsLogged(true)
        setBgColor("#0FF")
      }
    });

this is super confusing!


Panic on logins list

Hey, when running goldwarden logins list, I get a panic at the bottom you will se the error.
Versions:

goldwarden: 0.2.10-1 from the aur
Vaultwarden: 2024.1.2

The vault is unlocked and readable since I can use the ssh integration:
{
  "locked": false ,
  "loginEntries": 1288 ,
  "noteEntries": 47 ,
  "lastSynced":	"2024-02-05 11:09:03 +0100 CET",
  "websocketConnected": true ,
  "pinSet": true ,
  "loggedIn": true
}

Error:
panic: unexpected end of JSON input

goroutine 1 [running]:
github.com/quexten/goldwarden/client.reader({0x62bb569259b8, 0xc000060140})
	github.com/quexten/goldwarden/client/unixsocketclient.go:36 +0xe5
github.com/quexten/goldwarden/client.UnixSocketClient.SendToAgent({0x0?}, {0x62bb568abde0, 0x62bb56c4ac60})
	github.com/quexten/goldwarden/client/unixsocketclient.go:62 +0x1d3
github.com/quexten/goldwarden/cmd.ListLogins({0x62bb56925298?, 0xc0000ba2a0?})
	github.com/quexten/goldwarden/cmd/logins.go:100 +0x33
github.com/quexten/goldwarden/cmd.glob..func12(0xc0000d1200?, {0x62bb5677d452?, 0x4?, 0x62bb5677d34e?})
	github.com/quexten/goldwarden/cmd/logins.go:69 +0x38
github.com/spf13/cobra.(*Command).execute(0x62bb56bdfa40, {0x62bb56c4ac60, 0x0, 0x0})
	github.com/spf13/cobra@v1.8.0/command.go:987 +0xaa3
github.com/spf13/cobra.(*Command).ExecuteC(0x62bb56bdfd20)
	github.com/spf13/cobra@v1.8.0/command.go:1115 +0x3ff
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/cobra@v1.8.0/command.go:1039
github.com/quexten/goldwarden/cmd.Execute({0x0, 0x0, {0x0, 0x0}, 0x0, {0xc00002aae0, 0x2d}, 0x0, 0x0, {0x0, ...}, ...})
	github.com/quexten/goldwarden/cmd/root.go:35 +0x1ee
main.main()
	github.com/quexten/goldwarden/main.go:83 +0x938

Hm, in this case the error message doesn't help much because the client also crashes due to malformed input. The actual error is probably logged in the daemons logs, do you happen to still have those? (journalctl --user -u goldwarden)

Yes but I do not think they are very helpful.
Feb 09 21:57:07 archlinux goldwarden[9943]: [INF] [21:57] [Goldwarden > Systemauth] >>> Checking permission for goldwarden with session type com.quexten.goldwarden.accessvault
Feb 09 21:57:07 archlinux goldwarden[9943]: [INF] [21:57] [Goldwarden > Systemauth] >>> Permission granted from cached session
Feb 09 21:57:07 archlinux goldwarden[9943]: [INF] [21:57] [Goldwarden > Pinentry] >>> Asking for approval |Approve List Credentials|cdrc on kitty>fish>goldwarden is trying access all credentials|
Feb 09 21:57:08 archlinux goldwarden[9943]: [INF] [21:57] [Goldwarden > Pinentry] >>> Got approval from user

Might be fixed on latest master. The buffer size for the result was limited to 1MiB. I increased it to 4MiB for now. I guess long term this should be dynamically allocated.

When you have time, feel free to try on v0.2.12


Tableau Data Preview Error Fixes

Summary
Tableau Data Preview Error Fixes
Description
[1] Tableau Data Preview was giving an error that COUNT was not found
[2] After the COUNT was found issue was resolved (by adding it to dialect file) it gave an error with the query that was being executed. Fix for that was added by adding SUM() support
[3] Alexey also noted that AVG was reported as unsupported in Tableau, so I added it to the dialect file as well.
Related Issue
https://bitquill.atlassian.net/browse/AN-894
Additional Reviewers
@birschick-bq
@lyndonb-bq
@xiazcy
@simonz-bq
@alexey-temnikov
@kylepbit

@kylepbit

I don't see any mention of SUM here, but I do in the PR description?

The sum issue was actually just an aggregate literal issue that is fixed in code here:
https://github.com/aws/amazon-neptune-jdbc-driver/pull/58/files#diff-fdad9775fe9a63de32f52cdf4b1419d9fb5a8052c4944d7f88f69ff0504cba08R86
I will update the description because it is misleading.


feat: Add header file generation for OT3StateManager Messages

Overview
Adds header file generation for OT3StateManager messages
Changelog

Pulled general functions from generate_header.py and put the in header_generation_utils.py
Created generate_state_manager_headers.py
Added command to Makefile to generate headers and put them in include/common/simulation
Added generate_state_manager_headers.py script to linting and formatting

Review Requests
None
Risk
Low, as long as this doesn't break the CAN header generation. I looked at the generated file and it looks the same to me.

Do we need the py.typed file?

Do we need the py.typed file?

Yes. I get the following when I run make lint without it
poetry run python -m mypy ot3_state_manager tests/ generate_state_manager_headers.py
generate_state_manager_headers.py:8: error: Skipping analyzing "header_generation_utils.header_generation_utils": module is installed, but missing library stubs or py.typed marker  [import]
generate_state_manager_headers.py:8: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 15 source files)

Do we need the py.typed file?

Yes. I get the following when I run make lint without it
poetry run python -m mypy ot3_state_manager tests/ generate_state_manager_headers.py
generate_state_manager_headers.py:8: error: Skipping analyzing "header_generation_utils.header_generation_utils": module is installed, but missing library stubs or py.typed marker  [import]
generate_state_manager_headers.py:8: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 15 source files)

Shouldn't you be able to add a toml file to satisfy seth's request: the way to fix it is to put that file in an actual python package, which i think is a pretty good idea anyway.

Do we need the py.typed file?

Yes. I get the following when I run make lint without it
poetry run python -m mypy ot3_state_manager tests/ generate_state_manager_headers.py
generate_state_manager_headers.py:8: error: Skipping analyzing "header_generation_utils.header_generation_utils": module is installed, but missing library stubs or py.typed marker  [import]
generate_state_manager_headers.py:8: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 15 source files)

Shouldn't you be able to add a toml file to satisfy seth's request: the way to fix it is to put that file in an actual python package, which i think is a pretty good idea anyway.

I think I fixed it in this PR

OT3StateManager Messages Header File Generation Pull Request adds the dependency of the monorepo directory being a sibling to the ot3-firmware directory.  This is because I am using the OT3Axis enum from the monorepo to generate axis designations in the header files. I will also soon be pulling Pipette Models from the monorepo as well.
I have addressed this dependency in almost all Github Actions in this commit.
Where the issue lies is the run_emulation.yaml Github Action which confirms that emulation can be spun up with the current state of ot3-firmware.
Originally, all emulation containers required only 1 source repo (opentrons, ot3-firmware, or opentrons-modules) to function. Now, in order to be built, all hardware simulators from ot3-firmware require that the monorepo be a sibiling to ot3-firmware.
Because of this change run_emulation.yaml is now failing. In order to get it working, opentrons-emulation requires some relatively large changes.


kosmos shell: hide _ and __ completions by default

Resolves: #232.
Description
Hide _ and __ completions by default in our custom implementation and ptpython/gedi too.
Checklists
Before asking for approval

[ ] Make sure the changes are covered by tests.
[ ] All the CI tasks are green.
[ ] Ensure the branch is up to date with its base branch.
[ ] Corresponding changes to the documentation were made.

It's now on development_types.


The hex value for 46 is incorrect

The hex value for 46 is incorrectly documented as being 0xb8. The correct value is 2E.

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@LanaChin  PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

Thank you, Manuela and Lana.


chore: remove legacy ip-masq-agent from VHD

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
AKS hasn't used upstream ip-masq-agent since k8s v1.19, when we switched to our fork ip-masq-agent-v2.
Which issue(s) this PR fixes:
Fixes #
Requirements:

[x] uses conventional commit messages
[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2243

Relevant Lines:
2839

💛  - Coveralls


Fix issue : KYLIN-3631

Issue : https://issues.apache.org/jira/browse/KYLIN-3631
How to fix :

Find all the Arrays.sort and replace with Arrays.parallelSort and add comments.
Run UT & integration tests to validate the fix.

Can one of the admins verify this patch?

Pull Request Test Coverage Report for Build 3858

1 of 2 (50.0%)  changed or added relevant lines in 2 files are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.001%) to 25.917%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

core-metadata/src/main/java/org/apache/kylin/metadata/model/Segments.java
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

core-metadata/src/main/java/org/apache/kylin/source/datagen/ColumnGenerator.java
1
81.08%

core-cube/src/main/java/org/apache/kylin/cube/inmemcubing/MemDiskStore.java
3
78.42%

Totals

Change from base Build 3853:
0.001%

Covered Lines:
17648

Relevant Lines:
68093

💛  - Coveralls

Codecov Report

Merging #350 into master will decrease coverage by <.01%.
The diff coverage is 50%.

@@             Coverage Diff              @@
##             master     #350      +/-   ##
============================================
- Coverage     23.62%   23.61%   -0.01%
+ Complexity     4823     4822       -1
============================================
  Files          1133     1133
  Lines         68093    68093
  Branches       9657     9657
============================================
- Hits          16087    16081       -6
- Misses        50445    50449       +4
- Partials       1561     1563       +2

Impacted Files
Coverage Δ
Complexity Δ

...java/org/apache/kylin/metadata/model/Segments.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...ava/org/apache/kylin/metadata/model/TableDesc.java
47.77% <100%> (ø)
27 <0> (ø)
:arrow_down:

...g/apache/kylin/source/datagen/ColumnGenerator.java
70.94% <0%> (-1.36%)
8% <0%> (ø)

...rg/apache/kylin/cube/inmemcubing/MemDiskStore.java
70.21% <0%> (-0.92%)
7% <0%> (ø)

...a/org/apache/kylin/dict/Number2BytesConverter.java
81.74% <0%> (-0.8%)
17% <0%> (-1%)

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 6344986...c47dd9f. Read the comment docs.


Fix #3883 by special casing scalar dynamic_slice and dynamic_update_slice

I think the failing test (in tests/generated_fun_test.py) is unrelated to this pr, since that file doesn't appear to touch dynamic_slice or dynamic_update_slice.

https://github.com/google/jax/pull/3885 should fix the flaky test.

Good idea!
Though it seems a little weird to always act as an identity on scalars, and not ever raise an error regardless of what start_indices and slice_sizes look like. My understanding of the analogous NumPy case is that it'd still raise an error if too many indices are given for the rank of the operand, as in errors np.zeros(())[2:2].
How about we check that the lengths of start_indices and slice_sizes are both zero, return operand if they are, and error otherwise?

How about we check that the lengths of start_indices and slice_sizes are both zero, return operand if they are, and error otherwise?

I think _dynamic_slice_indices (called just above the lines inserted by this PR) already does that check.
https://github.com/google/jax/blob/7506a3e5f0137f48415def878bea71c5977dfbd0/jax/lax/lax.py#L5732-L5735

Well, it checks the length of start_indices, although doesn't check the length of slice_sizes. I could add that?

I'm actually not sure about this strategy in general. It might be reasonable for a user to expect that calling lax.dynamic_slice would result in the primitive being called, even in trivial cases. I might try a bit harder to fix the batching rule that is actually causing this issue rather than trying to avoid it.


ModuleNotFoundError: No module named 'AE'

I directly tried to reproduce the 3rd case study. However, I encountered some error:
> conda activate ss
>  cd /home/sys/SUPERSONIC

>  python SuperSonic/policy_search/supersonic_main.py --env BanditCSREnv-v0  --datapath "tasks/CSR/DATA" --mode policy --total_steps 10 2>/dev/null

> python SuperSonic/policy_search/supersonic_main.py --env BanditCSREnv-v0  --datapath "tasks/CSR/DATA" --mode config --iterations 10 --task CSR 2>/dev/null

> python SuperSonic/policy_search/supersonic_main.py --env BanditCSREnv-v0  --datapath "tasks/CSR/DATA" --mode deploy --training_iterations 50 --task CSR 2>/dev/null
...
== Status ==
Memory usage on this node: 4.0/62.0 GiB
Using FIFO scheduling algorithm.
Resources requested: 0/50 CPUs, 0/1 GPUs, 0.0/36.13 GiB heap, 0.0/12.45 GiB objects
Result logdir: /home/sys/SUPERSONIC/SuperSonic/logs/model_save/SAC
Number of trials: 1 (1 TERMINATED)
+------------------------+------------+-------+--------+------------------+------+----------+
| Trial name             | status     | loc   |   iter |   total time (s) |   ts |   reward |
|------------------------+------------+-------+--------+------------------+------+----------|
| SAC_csr_rl_b5add_00000 | TERMINATED |       |     50 |          61.4566 | 9650 |        0 |
+------------------------+------------+-------+--------+------------------+------+----------+
-------------------------------

optimization finished, ready to use our script to evaluate performance
-------------------------------

start executing, usually takes 3 mins

> python tasks/CSR/run.py

Traceback (most recent call last):
  File "tasks/CSR/run.py", line 1, in <module>
    from AE.utils.Calculate import CalculateCSRDemo
ModuleNotFoundError: No module named 'AE'

Hi, I'm sorry I missed the issue these days...
If you concentrate on the third case study, just try to use the code in the branch code_size_reduction.

Hi, same question for me. I'm trying to reproduce 4th case study with provided docker in the master branch. But there is no "AE". Besides, may I confirm which part you are replacing with RL in Stoke? Because I only find "run_synth.py" in the code, it looks like that "opt" part is still using the original Stoke.
Thanks!


[Feature Request] Dll reference dependencies changed handling.

Do you want to request a feature or report a bug?
Feature : Dll reference dependencies changed handling

What is the current behavior?
When we referencing a Dll bundle for a  entry, the deps which has already included into this Dll will not be added into the entry anywhere. It‘s cool about code/bundle splitting.
But if anyone of the deps has been changed, nothing will happen. This means we should find out the changes, then figure out whether we need rebuild the Dll manually before we build the entry.

If this is a feature request, what is motivation or use case for changing the behavior?
When some deps has changed, maybe it will more friendly if we can throw some hint/warning, or even support fallback to add into the entry (enabled by DllReferencePlugin options will elegantly).
Assuming we can add hash/md5 of deps source into Dll's manifest.json, and check this when it be referenced in compilation, this feature can be implemented.
Please mention other relevant information such as the browser version, Node.js version, webpack version and Operating System.
No more env required. Just a suggesttion :)

Modules that are part of the DLL are not read in the main compilation.

Oh, I realized that there are performance consumptions if touch Dll's source files again.
How about just give a option to enable the warning? Save hash in Dll manifest.json, check hash in DllReferencePlugin after the Compiler done, if warning enabled.


Add new source [Mangaplaza]

Source name
Manga Plaza
Source link
mangaplaza.com
Source language
English
Other details
18+/NSFW: yes
Japanese mangas
Acknowledgements

[X] I have checked that the extension does not already exist by searching the extension listing and verified it does not appear there.
[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a meaningful title with the source name.
[X] I will fill out all of the requested information in this form.

Add a :+1: reaction to issues you find important.

SpeedBinb


Improved htmlAttributes and meta types.

This expands a few of the abstract types with<EMAIL_ADDRESS>abstract] records. It’s a quick-and-dirty change, so doesn’t thoroughly account for every type or field yet, but it was necessary to use with my own project.
I also changed the renderStatic method just to avoid getting warnings about it.

Thanks!

2.1.0 is out :)


WebHost: add API for custom connection handlers

WebHost.addWebSocketRoute
This is a feature needed by the WebProjector. Added an API to WebHost to allow the registration of custom WebSocket connection handlers at different routes, e.g.:
webHost.addWebSocketRoute("/my/custom/endpoint", myCustomConnectionHandler);

The first parameter is the route, and can be a string or a RegExp. Second parameter is the connection handler.
WebHost.addAdapter
Building on the above capability, it was trivial to add support for servicing multiple MREs from a single WebHost, so I went ahead and added that:
const functionalTestAdapter = new MultipeerAdapter();
const helloWorldAdapter = new MultipeerAdapter();
functionalTestAdapter.onConnection((context, params) => new FunctionalTestApp(context, params));
helloWorldAdapter.onConnection((context, params) => new HelloWorldApp(context, params));
webHost.addAdapter("/functional-tests", functionalTestAdapter);
webHost.addAdapter("/hello-world", helloWorldAdapter);

All changes are backward compatible with existing code.

It's cool that multiplexing apps is possible now, but I still doubt whether it's desirable from a performance perspective.

Depends a lot on the apps involved, but could be a nice money saver for hobbyists.

In reply to: 539228896 [](ancestors = 539228896)

I suppose that's true, it depends on how their host structures it. On Azure you only pay for the app service plan, which can host multiple apps.

In reply to: 539241977 [](ancestors = 539241977,539228896)


Implementation details of CLIP guidance

I have some questions about CLIP guidance option.
If I put both image and text prompts, CLIP guidance is applied.

At make-it-3d, CLIP loss is measured between the denoised output of novel view rendering and reference image.
However, in your code you measured between the original novel view rendering and reference image.
Is it for the convenience of implementation?

At make-it-3d, CLIP loss is measured only between images. Is this an empirical choice?

  def train_step(self, clip_z, pred_rgb, grad_scale=10, **kwargs):

      image_z = self.clip_model.encode_image(self.aug(pred_rgb))
      image_z = image_z / image_z.norm(dim=-1, keepdim=True) # normalize features

      loss = 0
      if 'image' in clip_z:
          loss = loss - (image_z * clip_z['image']).sum(-1).mean()

      if 'text' in clip_z:
          loss = loss - (image_z * clip_z['text']).sum(-1).mean()

      loss = loss * grad_scale

      return loss

@ug-kim Hi,

As the denoising step is no_grad, the gradient propagated from the denoised images should be the same as the original image (only the scale is different), so I just use the original images to save computation.
In their released code they do clip loss with both images and text, so I follow their implementation.

That being said, The results of text + image input still need some tuning, so these choices may be changed later.


Makes order by macroable

Hi there, in order to compatible with API standard, I create my own repository class to be injected with vuex-orm model on constructor. I faced an issue with sort by related according to this reply

Unfortunately, it is not possible to order by relation fields at this time. You'll have to execute your own sort comparator on the query result.
That being said, I mocked up a comparator that should fit the bill:
const sortable = (fields) => (a, b) => {
  let i = 0, result = 0

  while (i < fields.length && result === 0) {
    const { field } = fields[i]
    const direction = fields[i].direction === 'desc' ? -1 : 1

    const valA = (typeof field === 'function' ? field(a) : a[field]).toString()
    const valB = (typeof field === 'function' ? field(b) : b[field]).toString()

    result = direction * (valA < valB ? -1 : valA > valB ? 1 : 0)
    i++
  }

  return result
}

Essentially, you pass the comparator into Array.prototype.sort with a list argument consisting of the field name and optionally a sort direction (defaults to ascending when omitted) like so:
array.sort(
  sortable([
    { field: 'name' },
    { field: 'age', direction: 'desc' }
  ])
)

Additionally, you can substitute a field name with a closure to return a field, or a nested field in your case, like so:
const products = Product.query().with('category').get()

products.sort(
  sortable([
    { field: (product) => product.category.name },
    { field: 'name' }
  ])
)

Do with it what you may! 👍
Originally posted by @cuebit in https://github.com/vuex-orm/vuex-orm/issues/677#issuecomment-682964948

This is custom order by implementation on my repository
import dependencies...

export class Repository {
  constructor(model) {
    this.model = model.$self()

    this.fieldsets = new Fieldsets()

    this.filtering = new Filtering()

    this.inclusion = new Inclusion()

    this.page = new Page()

    this.pagination = new Pagination()

    this.sorting = new Sorting()
  }

  get type() {
    return snakeToKebabCase(this.model.entity)
  }

  async new() {
    return await this.model.new()
  }

  async get() {
    const url = this.url()

    const config = {
      params: denormalizeQueryParams([
        this.fieldsets,
        this.filtering,
        this.inclusion,
        this.pagination,
        this.sorting
      ])
    }

    const request = await this.model.api().get(url, config)

    const meta = request.response.data.meta

    if (meta) {
      this.page.init(meta.page)
    }

    const query = this.model.query()

    this.eagerLoading(query)

    const result = query.get()

    this.sort(result)

    return result
  }

  sort(result) {
    if (this.sorting.sorts.size) {
      const compare = (sorts) => (a, b) => {
        let i = 0,
          result = 0

        while (i < sorts.length && result === 0) {
          const field = sorts[i].field

          const direction = sorts[i].direction === 'desc' ? -1 : 1

          const fieldA = _.get(a, field)

          const fieldB = _.get(b, field)

          result = direction * (fieldA < fieldB ? -1 : fieldA > fieldB ? 1 : 0)

          i++
        }

        return result
      }

      result.sort(compare(Array.from(this.sorting.sorts)))
    }
  }

  eagerLoading(query) {
    const includes = this.inclusion.includes

    const relationshipConstraints = this.model.relationshipConstraints

    if (relationshipConstraints) {
      includes.forEach((include) => {
        const relationshipConstraint = relationshipConstraints.find(
          ({ relationship }) => relationship === include
        )

        if (relationshipConstraint) {
          const { constraint } = relationshipConstraint

          query.with(include, constraint)
        } else {
          query.with(include)
        }
      })
    } else {
      query.with(includes)
    }
  }

  url(id = null) {
    if (id === null) {
      return this.type
    }

    return `${this.type}/${id}`
  }
}

Maybe I can register custom sort method or makes it macroable so it could be applied on model level instead of on repository level?

@yoelpc4 not sure what the question is here... Can you calrify?

@yoelpc4 not sure what the question is here... Can you clarify?

Current vuex ORM setup acccording to the docs
import _ from 'lodash'
import Vue from 'vue'
import Vuex from 'vuex'
import VuexORM from '@vuex-orm/core'
import User from '@/models/User'
import Post from '@/models/Post'

Vue.use(Vuex)

// Create a new instance of Database.
const database = new VuexORM.Database()

// Register Models to Database.
database.register(User)
database.register(Post)

// Create Vuex Store and register database through Vuex ORM.
const store = new Vuex.Store({
  plugins: [VuexORM.install(database)]
})

export default store

If we must provide ability to order by related model, we have to register a custom sorting logic for orderBy method.
Maybe for extendability & reusability purpose, we can register a macros on initial setup like this.
import Vue from 'vue'
import Vuex from 'vuex'
import VuexORM from '@vuex-orm/core'
import User from '@/models/User'
import Post from '@/models/Post'

Vue.use(Vuex)

// Create a new instance of Database.
const database = new VuexORM.Database()

// Register Models to Database.
database.register(User)
database.register(Post)

const macros = {
  /* model macro registration here */
  model: {},
  /* data macro registration here */
  data: {
    /* example orderBy sortParams
    const sortParams = [
      ['country.name', 'desc'],
      ['city.name', 'asc']
    ]
    */
    orderBy: (sortParams) => {
      const compare = (sortParams) => (a, b) => {
        let i = 0,
          result = 0

        while (i < sortParams.length && result === 0) {
          const field = sortParams[i][0]

          const direction = sortParams[i][1] === 'desc' ? -1 : 1

          const fieldA = _.get(a, field)

          const fieldB = _.get(b, field)

          result = direction * (fieldA < fieldB ? -1 : fieldA > fieldB ? 1 : 0)

          i++
        }

        return result
      }

      return compare(sortParams)
    }
  }
}

const store = new Vuex.Store({
  plugins: [VuexORM.install(database, macros)]
})

export default store

This feature request is  heavily inspired by laravel service provider concept from this gist.
I don't know if this is possible to be implemented in the near future, regarding to current vuex orm timeline and milestone.
But IMO this macroable ability will provides much value for vuex-orm itself.


[DOC] forecasting tutorial: advanced pipeline construction

As @aiwalter suggested in discussion in PR #972, it would be great to have a sub-section showcasing advanced pipelining functionality in sktime.
Citing @aiwalter:
"I would like to see also a more sophisticated tuning part including MultiplexForecaster, TransformedTargetForecaster or the new ForecastingPipeline, some transformers, OptionalPassthrough, TabularToSeriesAdaptor. Maybe this can be a separate page/Notebook on the website then."
The "obvious" person to write this is perhaps @aiwalter who wrote much of this functionality, or @koralturkk - but I also think anyone should be able to do it with occasional guidance from the two.
Should probably be done after #972 is merged, would fit nicely as section 3.2.4 "advanced pipeline construction" or similar (after "complex composites and parameter inspection"). Could also be a separate notebook, as @aiwalter suggests; though I would find it nicely fitting in the 101 tutorial.

its in progress, but I have issues with pre-commit to and nbqa, nedd to get this fixed before I can push sth.

Martin Walter<EMAIL_ADDRESS>Mercedes-Benz AG on behalf of Daimler TSS GmbH.
https://github.com/Daimler/daimler-foss/blob/master/LEGAL_IMPRINT.md

done in #1047


[FATAL BUG REPORT] with torch.no_grad(): can not close the gradient of lora matrix

Thanks for your great great work. I found a serious bug recently.
After we define a model using Lora layers, we get a model with lora layers instead of nn.Linear.
But when we use with torch.no_grad():, I find the this operation can not close the gradient of lora.
Here is my demo code:
# define a backbone with lora layers
BACKBONE=lora_model()

with torch.no_grad():
    # print the gradient of the model
    for n,p in BACKBONE.named_parameters():
          if p.grad is not None:
              print(f"grad of {n}: {p.grad.norm()}")

I found that not all the layers closed the gradient.
Here is an output example.

This error is fatal because when we conduct eval during the training phase, the gradient will be influenced.
Hope you can fix it!!!

How can I close the gradient of these lora modules? Please help me!

Please, provide all the code in order to replicate the issue @bjzhb666

Here is an example of how to use it:
import torch
from torch import nn
import torchvision
from torchvision import datasets, models, transforms
from utils import print_trainable_params
import loralib as lora

#model_ft = models.resnet18(weights=models.ResNet18_Weights.IMAGENET1K_V1)
# torch.save(model_ft.state_dict(), 'resnet18.pth')

model_ft = models.resnet18(weights=None)
model_ft.load_state_dict(torch.load('resnet18.pth', weights_only=True), strict=False)
original_weights = model_ft.layer1[0].conv1.weight.clone()
original_linear_weights = model_ft.fc.weight.clone()

# Replace the first convolutional layer with a LoRA convolutional layer
lora_model  = models.resnet18(weights=None)
lora_model.layer1[0].conv1 = lora.Conv2d(64, 64, kernel_size=3, r=8, stride=(1,1), padding=(1,1), bias=False)
lora_model.fc = lora.Linear(512, 1000, r=8, bias=True)
lora_model.load_state_dict(torch.load('resnet18.pth', weights_only=True), strict=False)

lora_layer_weights = lora_model.layer1[0].conv1.conv.weight.clone()
lora_linear_weights = lora_model.fc.weight.clone()
lora.mark_only_lora_as_trainable(lora_model)

# Check if the weights are equal
assert torch.allclose(original_linear_weights, lora_linear_weights), "Linear Weights are not equal"
assert torch.allclose(original_weights, lora_layer_weights), "Conv Weights are not equal"

print(lora_model.layer1[0].conv1.lora_A.shape)
print(lora_model.layer1[0].conv1.lora_B.shape)

print_trainable_params(lora_model)

with torch.no_grad():
    for n, p in lora_model.named_parameters():
        if p.grad is not None:
            print(f"grad of {n}: {p.grad.norm()}")

I am using a Transformer model, let me find an example. Please wait me for a while.

Sorry for posting this issue. I find the gradient does not change as you mentioned.
But when we use model.eval(), since we add LORA's weight to the original model, this will affect the numerical precision of the decimal number, which will affect our results.

Sorry for bothering you, it not a bug. Many thanks to your reply


Erebus 2.7B model missing

as shown on the installation guide, i tried to select the erebus 2.7b model in google colab but there isn't anything like that between aid 2.7/ janeway 2.7b or anywhere, for that matter. i tried typing it in the box, but it still didn't work. i don't really understand these so any help would be appreciated.
d.txt

There is no need to choose a specific model at this time, you can choose any model from the list from the list:
https://colab.research.google.com/github/vrihatgan/TavernAI/blob/main/colab/colab.ipynb
Or use the light version where everything starts automatically:
https://colab.research.google.com/github/TavernAI/TavernAI/blob/main/colab/GPU.ipynb


Fix the flaky Netty Connection Tests

The reason for the test failure is that: after shutting down the server, we cannot start the server immediately.
Refactor the tests, remove duplicate code, useless tests and add more checks.
Addressed all java style issues.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@1e627d0). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1265   +/-   ##
=========================================
  Coverage          ?   67.29%
=========================================
  Files             ?      774
  Lines             ?    37605
  Branches          ?     4929
=========================================
  Hits              ?    25305
  Misses            ?    10635
  Partials          ?     1665

Impacted Files
Coverage Δ

...m/linkedin/pinot/transport/pool/AsyncPoolImpl.java
84.17% <ø> (ø)

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 1e627d0...dfed522. Read the comment docs.


Channels not working

Add-on name:  Jiotv

Kodi version: Kodi 19.3
Operating system : android

Zee and sony channels are not working. They show loading for a few second and doesn't open.
They show loading symbol on top right of screen. Also the loading of channels at beginning also takes a very long time .  While channels from colors are still working other don't.
This is the logfile
https://paste.kodi.tv/wanowiraxi

this issue is fixed. update to version v2.2.2

Great job man , thanks.
On Mon, 13 Dec 2021, 22:38 abhi, @.***> wrote:

Closed #237 https://github.com/botallen/repository.botallen/issues/237.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/botallen/repository.botallen/issues/237#event-5758408070,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANBVPMBPUO6QA3UBE5N5JGDUQYSBXANCNFSM5J6TU56A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Add custom header cause request method change from GET to OPTIONS

Hi,
I'm dealing with this trouble.
With this call everything works
SkinSvc.one(skinId).customGET('events', params).then(success, error);
With this one with custom header a OPTIONS Http request is send to my API instead of GET request.
SkinSvc.one(skinId).customGET('events', params, {'Cache-Control':'no-cache'}).then(success, error);

The OPTIONS request is a part of CORS (Cross Origin Resource Scripting). Your server should be checking the request and returning the correct headers for a given request (Access-Control-Allow-Credentials,  Access-Control-Allow-Headers, Access-Control-Allow-Methods, Access-Control-Allow-Origin, etc…) More detailed info can be found on the MDN page for CORS

Thank you, i solved adding this headers to option request
'Access-Control-Allow-Headers', 'Cache-Control'
'Access-Control-Allow-Methods', 'GET'

Perfect :+1:

Thanks! 👍


Restructure contactinfo validator

Further comments in 629d921

Olle, thanks for the detailed review. I changed the spelling of userUUID and increased the branch coverage for the uniquenessvalidator. Having dedicated classes for phone number and mail will go into the next iteration as I will work on phone number formatting soon. ;)


Refine new PR description template

The binaries affected:

[x] All
[ ] openstack-cloud-controller-manager(OCCM)
[ ] cinder-csi-plugin
[ ] k8s-keystone-auth
[ ] client-keystone-auth
[ ] octavia-ingress-controller
[ ] manila-csi-plugin
[ ] manila-provisioner
[ ] magnum-auto-healer
[ ] barbican-kms-plugin

What this PR does / why we need it:
Refine new PR description template to be more user-friendly.
Removed the contributor guide because it's unlikely the people don't know how to contribute in this step.
Which issue this PR fixes:
fixes #
Special notes for reviewers:

Release note:

NONE

/cc @ramineni @chrigl

/lgtm

/approve


cart.requestCompleted event firing inconsistently.

Wondering if this is a known bug or not and if there are any tips to troubleshooting.

@bsehl Can you provide some more detail on the issue you're seeing, potentially with steps to reproduce on a demo site?


[WIP]Reland ''prevent pageView scrolling when calling ensureVisible''

The original #67988 was reverted by #68036
This PR tries to reland it and figure out what cause the failures. CC @dnfield
Fixes #67981

What's the difference between this and last time?

What's the difference between this and last time?

Does the new gallery devicelab task pass with this change locally?

Does the new gallery devicelab task pass with this change locally?

@dnfield Hi
I think this is not ready for reland before figure out the root cause of new gallery task failed.
Do you know what the repository of the new gallery task?

@dnfield Hi
I think this is not ready for reland before figure out the root cause of new gallery task failed.
Do you know what the repository of the new gallery task?

with an android devicew attached:
cd dev/devicelab
dart bin/run.dart -t new_gallery__transition_perf

or iphone:
cd dev/devicelab
dart bin/run.dart -t new_gallery_ios__transition_perf

with an android devicew attached:
cd dev/devicelab
dart bin/run.dart -t new_gallery__transition_perf

or iphone:
cd dev/devicelab
dart bin/run.dart -t new_gallery_ios__transition_perf

@dnfield Hi,
Update the investigation results.
The new gallery device lab task uses Scrollable.ensureVisible to scroll the page, so it seems that we cannot make this change and keep the related issue open.
Do you think we need to add a test case to prevent someone from trying to modify it like this in the future?

@dnfield Hi,
Update the investigation results.
The new gallery device lab task uses Scrollable.ensureVisible to scroll the page, so it seems that we cannot make this change and keep the related issue open.
Do you think we need to add a test case to prevent someone from trying to modify it like this in the future?

We have to decide whether this is good behavior or not.
I can see two options:

We decide that scrollables shouldn't work this way and follow https://flutter.dev/docs/resources/compatibility to make a breaking change (including updating the new gallery to use a different API).
We decide that scrollables are fine to work this way, and add a test case to cover it in this repo, as well as updating the documentation to clarify this on ensureVisible.

I don't have a strong opinion in either direction.

We have to decide whether this is good behavior or not.
I can see two options:

We decide that scrollables shouldn't work this way and follow https://flutter.dev/docs/resources/compatibility to make a breaking change (including updating the new gallery to use a different API).
We decide that scrollables are fine to work this way, and add a test case to cover it in this repo, as well as updating the documentation to clarify this on ensureVisible.

I don't have a strong opinion in either direction.

Do we have any news on this? Calling ensureVisible() within a PageView or a TabBarView still makes the pages jump in Flutter 2.5.3.


Nftcanyon v2

Hey @elreco I'm going to close this PR as you committed some secrets that will need to be changed.
If you need assistance, feel free to reach out to us on telegram/intercom/discord.

Sorry, miss click :(


Fix bug with inserting links and undoing things.

Fixes #98.
Generally reproducing the problem was much less complex than described in the issue, you just needed to click 'Insert link' and then undo, and repeat this at least once.
The problem inside the code was tricky, we creat two variables like so:
var startPoint = cm.getCursor("start");
var endPoint = cm.getCursor("end");

But as getCursor returns an object  they just points to objects stored probably somewhere in the CodeMirror!
Then we have:
startPoint.ch += start.length;

Which increments the cursor position which surely isn't stored in the history of the editor so calling undo doesn't moves this back (as in the case of setSelection or setCursor CodeMirror functions).
Here's the demo.

Thanks, that one was annoying.


add advanced-r tutorial details

[x] Update index.html
[x] Add details to tutorial_PM1.html
[x] Add hero image and opengraph tags for social media previews
[x] Create workshop website (https://workshop.nectric.com.au/advr-wombat24/)
[x] Rework title (help wanted)

Tutorial title
I think 'Advancing your R skills' could be misconstrued as a basic-intermediate workshop about improving R skills.
Whereas what I'm giving is intermediate-advanced, loosely based on some topics in Hadley's Advanced R book (more details described on the website).
Perhaps 'Advanced R for Analysts'?
I'm trying to keep the workshop a bit fun and light, focusing on 'advanced tips and tricks for R users' instead of 'advanced R for programmers' - hence using 'analysts' in the title.
More suggestions are welcomed

I like "advanced tips and tricks for R users"

Or "advanced R tips and tricks for analysts"

happy for you to approve your pull requests, btw

I think I like "Advanced R tips and tricks" - I'll play around with it some more :+1:

I've went with "Advanced R Tips and Tricks", please update the humanitix event if possible. Thanks!


Rebase uhdm-plugin to upstream/master

This PR is to run CI. Later this branch will be pushed to uhdm-plugin.

Some test not related to uhdm-plugin is failing when yosys with uhdm-plugin related changes is used.
As uhdm-plugin doesn't have tests yet in this repository, I'll push this branch to uhdm-plugin to do not stale other changes to plugin itself.
I'll check what is causing this test to fail, fix it and enable tests again as soon as possible.


Reduce, now unnecessary, asynchronicity in the BasePreferences constructor

Originally the default preferences were defined in a JSON-file checked into the repository, which was loaded using SystemJS in development mode.
Over the years a number of changes have been made to this code, most notably:

The preferences JSON-file is now generated automatically, during building, from the AppOptions abstraction.
All SystemJS usage has been removed from the development viewer.

Hence the default preferences are now available synchronously even in the development viewer, and it's thus no longer necessary to defer to the microtask queue (since getDefaultPreferences is async) just to get the default preferences.
While the effect of these changes is quite small, it does reduces the time it takes for the preferences to be fully initialized. Given the amount of asynchronous code during viewer initialization, every bit of time that we can save should thus help.
Smaller/simpler diff with https://github.com/mozilla/pdf.js/pull/12630/files?w=1

/botio-linux preview

Nice simplification!


Use CaseGroup/CaseName to refer to hydsim cases

CaseGroup/CaseName is established syntax used in various UIs, Optimal Gateway, and Automation Framework. As discussed in https://github.com/Volue/energy-sim/issues/742#issuecomment-1811942095.
There's an argument for more user friendly error handling here, but I think this is API compatible with a future improvement, and I want to get this API break done ASAP. For now you'll get a ValueError if the split doesn't split.
Closes https://github.com/Volue-Public/energy-mesh-python/issues/398.

FYI @voluetore, this is an API break for simulations.

Tests will be added in another PR? Is there a separate issue for tests?

See https://github.com/Volue/energy-test-framework/issues/276 and https://github.com/Volue/energy-test-framework/pull/277 courtesy of @voluetore. As discussed I'll create an internal issue for future discussion.


Fix typo.

Title says it all.

Thanks :) merged as https://github.com/mapbox/geobuf/commit/f0d7f217bbb1dbc002fac3995fa077710a2b180a


fix: Raspberry Pi Pico hashrate

With following commit, the hash rate of Raspberry Pi Pico increased from 5KH/s to 18KH/s.
https://github.com/revoxhere/duino-coin/commit/0bdc7e3f6781b9206bc8bb46fac8e3881924f325

I opened pr in the wrong place


Move process monitoring out of BPFtrace

This moves the process monitoring logic out of bpftrace itself and
instead provide a simple interface bpftrace can use.
If pidfds are supported by the system they're used, else it falls back
to polling. Detection is done at runtime.
The way the 'pid to trace' and 'child pid' are accessed through the
bpftrace class is still a bit messy and confusing. But that's for later.

On April 18, 2020 4:16:09 PM GMT+02:00, bas smit<EMAIL_ADDRESS>wrote:

@fbs commented on this pull request.

+{

setup(parse_pid(pid));
+}

+ProcMon::ProcMon(pid_t pid)
+{

setup(pid);
+}

+void ProcMon::setup(pid_t pid)
+{

pid_ = pid;

int pidfd = pidfd_open(pid, 0);
// Fall back to polling if pidfds or anon inodes are not supported
if (pidfd < 0 && errno != ENOSYS && errno != ENODEV)

Ah thanks. Is nodev something that can happen or is that a docs issue?
I based my code on
http://man7.org/linux/man-pages/man2/pidfd_open.2.html

Hm, I think the manpage is wrong on this one, i.e. it shouldn't happen.
Sigh, hopefully I'll find time to update it or just report to Michael that it's not up to date.


force IPv4

I'm running into the issue where none of the IPv4 addresses are being listened to by the majority of processes.  So I added these two lines:
RUN echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.d/ipv6.conf
RUN echo 'net.ipv6.conf.eth0.disable_ipv6 = 1' >> /etc/sysctl.d/ipv6.conf

as this page seemed to indicate it might work:
https://www.freeipa.org/page/Deployment_Recommendations#Active_Directory_Integration
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 <IP_ADDRESS>:88              <IP_ADDRESS>:*               LISTEN      -
tcp        0      0 <IP_ADDRESS>:953           <IP_ADDRESS>:*               LISTEN      -
tcp        0      0 <IP_ADDRESS>:749             <IP_ADDRESS>:*               LISTEN      -
tcp        0      0 <IP_ADDRESS>:464             <IP_ADDRESS>:*               LISTEN      -
tcp        0      0 <IP_ADDRESS>:53           <IP_ADDRESS>:*               LISTEN      -
tcp        0      0 <IP_ADDRESS>:53            <IP_ADDRESS>:*               LISTEN      -
tcp6       0      0 :::88                   :::*                    LISTEN      -
tcp6       0      0 ::1:953                 :::*                    LISTEN      -
tcp6       0      0 :::443                  :::*                    LISTEN      -
tcp6       0      0 :::8443                 :::*                    LISTEN      -
tcp6       0      0 :::636                  :::*                    LISTEN      -
tcp6       0      0 <IP_ADDRESS>:8005          :::*                    LISTEN      -
tcp6       0      0 :::389                  :::*                    LISTEN      -
tcp6       0      0 <IP_ADDRESS>:8009          :::*                    LISTEN      -
tcp6       0      0 :::749                  :::*                    LISTEN      -
tcp6       0      0 :::80                   :::*                    LISTEN      -
tcp6       0      0 :::8080                 :::*                    LISTEN      -
tcp6       0      0 :::464                  :::*                    LISTEN      -
tcp6       0      0 :::53                   :::*                    LISTEN      -

but sysctl is probably not running, in that fashion at least, inside the container.  Any ideas on how I can get it to listen on IPv4 as well?

ok, this is fine the container will eventually listen to port 80 IPv4, even with the netstat above, in my case the host VM did not have enough entropy (it was in the single digits after the FreeIPA install, should be over a 1000).  I had to start an instance of haveged to fill the entropy pool before it would start answering.  To reiterate, you should not need to force IPv4 for the daemons to answer on IPv4, make sure your entropy pool is high enough for SSL to function and everything should start working.


Add support for nvm

I work with many different apps on different node versions, and having to manually enter the path to the correct node version before running the tests is a bit annoying. It would be completely awesome if you could add support for nvm.
The problem is to discover
a) Which node version to use
b) Where nvm is located
I propose to solve problem a by using .nvmrc files that are already an established convention for tools that rely on nvm. (nvm use will use a .nvmrc file, and so will travis ci if you don't specify the version). Problem b could be solved by adding a new configuration option to point at the nvm directory.
I love this plugin, and it's exactly the kind of integration I'm looking for, I just cannot make it work without nvm support :)

hey @gustavnikolaj thanks for the feedback
I think this is a great idea
What do you think of this approach
Have a new option in settings * Use NVM
If this is selected we will execute the nvm which command which will return the path to the binary for the version specified in the .nvmrc file
we can then use that version of node to run the specs
if there if a nvmrc file but the user does not have the version installed, we can put the output into the atom console so that the user knows to install
if there is no nvmrc file we fallback to using the specified node path or global node

@nguyenchr Thanks for the quick reply!
I love your idea.
But I'm afraid that it still doesn't solve the problem b. Normally nvm is sourced in a .bashrc file, which is unlikely to be loaded into the environment where Atom is executing. nvm which is a function registered by the nvm.sh script that is sourced in .bashrc. So I think that we would still need the user to point us at their $NVM_DIR. We could of course try a few educated guesses about the path of it. I think the default installation process will put the files in ~/.nvm/ so that could be the default, which would work for most people :-)
I could be wrong though, but even though it's not perfect, the workaround suggested above seems OK to me.

yep that's a good point about the $NVM_DIR I'll have a play around and see if I can source that in any way
worst case scenario we can get the user to put there nvm path in the settings


Add documentation about querying Log Analytics workspace data export errors

I followed the instructions on the doc to setup continuous data export from Log Analytics workspaces to Storage Accounts but no data seems to be coming to the Storage Account. I am guessing I did something wrong and the export is actually failing, but I am unable to find a command to query for latest errors or statistics about data exports. Could that info be added on the doc page?

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

ID: b8ee0e7c-a24d-592e-d96e-dddb00d58388
Version Independent ID: 29de7226-981d-870e-16ef-0c9951a066da
Content: Log Analytics workspace data export in Azure Monitor (preview) - Azure Monitor
Content Source: articles/azure-monitor/platform/logs-data-export.md
Service: azure-monitor
Sub-service: logs
GitHub Login: @bwren
Microsoft Alias: bwren

It might actually be that the table I setup AzureDiagnostics is not supported. In any case, having docs on querying data export failures and stats would be helpful.

@mmaitre314 Thanks a lot for bringing this to our attention. I have assigned this issue to our document author @bwren to further review the feedback and update the document as needed. Thank you

This is still in preview, but we'll look at adding that by GA.
#please-close


Add speed comparison to whisper.cpp

It would be nice to know how this compare to the ggml-based whisper.cpp implemnetation.
https://github.com/ggerganov/whisper.cpp

This would indeed be a great comparison!


Possibility of a library API?

It's be really great to have a library that could be used for any application that wants to generically "open" files, or register itself as a default file handler. Since this would include a lot of the logic in handlr, would you have any interest in creating this API?

Rust libraries are generally expected to be cross platform where the API isn't tied to a specific OS. It looks like most of the APIs would be implemented similarly using the Windows registry

@Plecra Yeah that's a good idea and I'm definitely open to it, let me know if you have any specific ideas :)


Cannot edit/delete entries in iOS app

Original issue 214 created by hungrymedia on 2012-10-04T12:27:50.000Z:
What steps will reproduce the problem?
1.Open app
2.Tap Edit button
What is the expected output? What do you see instead?
I expect to be able to delete an entry. Nothing happens other than the Edit button darkening slightly while being tapped.
What version of the product are you using? On what operating system?
iPhone 5, iOS 6.0 (10A405)

This issue still exits on the current version, on the current iOS on an iPhone X.  I went in, should have had an authenticator through ubisoft but it wasn't active on my account through them, I tried to delete it, and it couldn't be deleted, it added a new version of it, and so it now has two different ones and I can't tell what is what.

I've never had this issue before on previous iPhones, and initially with my iPhone XS I didn't have the issue either as I remember deleting the old registrations carried over from my iPhone 8 migration, before re-setting them up. However now I want to replace one of the newly setup ones and I find that in Edit mode, the touch response anywhere on the box for each registration, is the same as for what the touch response should be for the reorder icon - the whole box dims slightly and you can reorder the one you have selected. This means that the bug is that the area for the re-order icon is actually taking over the whole box. Which means you can actually access the radio button to select for deletion.
I need to re-add the one I can't delete, so based on the comment above, I'll be left with two identical entries, whereby only one will actually work.
It seems like this problem dating back 6 years, is reoccurring on the new iPhones.
MFA is so important these days, I hope that someone reads and fixes this ASAP.

It is happening on iPhone 6s running iOS 12.1.

Confirming same issue on iPhone XR running iOS 12.1.
@awheewall :
I was able to delete accounts by turning to a landscape orientation and then trying to touch different areas in account area until the radio button showed a red checkmark. It was still difficult to pinpoint a specific area to touch so I just fat fingered it all over the larger area in landscape mode until the checkmark turned on. I can only tell you it is NOT on the radio button control as expected. Hope that helps!

@filament21 It's now where you tap it, you have to double tap.

@timuckun
Thanks, looks like I accidentally discovered that through frustrated tapping! That was not intuitive whatsoever, hopefully they'll include something in the UI to let the user know.

Hopefully this ticket and comments will help people out.

This works:
1- edit
2- go to the account you want to remove
3- backspace delete the email or name shown in the lower section
4- highlight circle on left
5- press delete on bottom

Found this on iPhone 6S, found going to edit and spamming the circle on the left the delete option comes up.

This works on iOS version current as of today:
1 - Edit
2 - Double tap the account you want to remove
3 - Circle at left of entry highlights in red
4 - Press 'Delete' button at bottom of screen


No module named 'redshift_connector'

After upgrading to the latest version of AWS Wrangler, my lambda functions are failing with the following error:
{
  "errorMessage": "Unable to import module 'app': No module named 'redshift_connector'",
  "errorType": "Runtime.ImportModuleError"
}

I'm using the Sam CLI to build and deploy. My Python dependencies are bundled in a lambda layer. I do not experience the error in version 1.10.1
Versions:
SAM CLI 1.4.0
Python 3.8.6
AWS Wrangler 2.0.1

redshift_connector is a new dependency. You need to add it in your build, or just use our pre-built lambda Layer (you need to get layer version 2.0.1).
Take a look in our guide: https://aws-data-wrangler.readthedocs.io/en/stable/install.html#aws-lambda-layer

Included it in my build, still getting the error. My requirements.txt file used in sam build --use-container with a 3.7 runtime:
requests
aws-lambda-powertools
pandas
awswrangler
redshift_connector

I am still getting this error consistently. I tried using python3.7 and python3.8 runtime.
{
  "errorMessage": "Unable to import module 'app': No module named 'redshift_connector'",
  "errorType": "Runtime.ImportModuleError"
}

My requirements.txt file is:
awswrangler==2.3.0
beautifulsoup4==4.9.3
boto3==1.16.60
botocore==1.19.60
certifi==2020.12.5
chardet==4.0.0
et-xmlfile==1.0.1
idna==2.10
jdcal==1.4.1
jmespath==0.10.0
lxml==4.6.2
numpy==1.19.5
openpyxl==3.0.6
pandas==1.2.0
pg8000==1.16.6
pyarrow==2.0.0
PyMySQL==1.0.2
python-dateutil==2.8.1
pytz==2020.5
redshift-connector==2.0.873
requests==2.25.1
s3transfer==0.3.4
scramp==1.2.0
six==1.15.0
soupsieve==2.1
urllib3==1.26.3

With this requirements.txt file, my import command for redshift_connector works fine:
(venv) akokje@akokje-mymachine s3-csv-to-parquet % python3.7
Python 3.7.5 (default, Oct 22 2019, 10:35:10)
[Clang 10.0.1 (clang-1<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import redshift_connector
>>> exit()

I am still getting this error consistently. I tried using python3.7 and python3.8 runtime.
{
  "errorMessage": "Unable to import module 'app': No module named 'redshift_connector'",
  "errorType": "Runtime.ImportModuleError"
}

My requirements.txt file is:
awswrangler==2.3.0
beautifulsoup4==4.9.3
boto3==1.16.60
botocore==1.19.60
certifi==2020.12.5
chardet==4.0.0
et-xmlfile==1.0.1
idna==2.10
jdcal==1.4.1
jmespath==0.10.0
lxml==4.6.2
numpy==1.19.5
openpyxl==3.0.6
pandas==1.2.0
pg8000==1.16.6
pyarrow==2.0.0
PyMySQL==1.0.2
python-dateutil==2.8.1
pytz==2020.5
redshift-connector==2.0.873
requests==2.25.1
s3transfer==0.3.4
scramp==1.2.0
six==1.15.0
soupsieve==2.1
urllib3==1.26.3

With this requirements.txt file, my import command for redshift_connector works fine:
(venv) akokje@akokje-mymachine s3-csv-to-parquet % python3.7
Python 3.7.5 (default, Oct 22 2019, 10:35:10)
[Clang 10.0.1 (clang-1<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import redshift_connector
>>> exit()

Same here, with a configuration like the one of @amolkokje I'm getting the same error once lambda is deployed, and prevent me from executing it.

Same here, with a configuration like the one of @amolkokje I'm getting the same error once lambda is deployed, and prevent me from executing it.

@amolkokje @70nyIT @laithalsaadoon
AWS Data Wrangler has non-trivial dependencies to bundle and ship to AWS Lambda. We have compiled and big artifacts from libraries like Numpy, Pandas and PyArrow that must be optimized before bundled. So we don't recommend bundle these libraries within your Lambda code.
That's why the recommended and easier approach to use Wrangler on AWS Lambda is through our pre-built and optimized Lambda Layers. Take a look in our step-by-step. So you can keep using your current approach to bundle your other dependencies keeping Wrangler and friends in that dedicated layer.
If you really want to bundle the library by your own I recommend a look into the script we use to address that.
P.S. Besides AWS Data Wrangler, Lambda Layers are great. It can be versioned and shared among several distinct Lambdas Function keeping your Lambda bundles clean and light.
P.S.S. AWS recently released AWS Lambda support for container images. So it would also be a good approach. You just need to pip install awswrangler into your Dockerfile.

@amolkokje @70nyIT @laithalsaadoon
AWS Data Wrangler has non-trivial dependencies to bundle and ship to AWS Lambda. We have compiled and big artifacts from libraries like Numpy, Pandas and PyArrow that must be optimized before bundled. So we don't recommend bundle these libraries within your Lambda code.
That's why the recommended and easier approach to use Wrangler on AWS Lambda is through our pre-built and optimized Lambda Layers. Take a look in our step-by-step. So you can keep using your current approach to bundle your other dependencies keeping Wrangler and friends in that dedicated layer.
If you really want to bundle the library by your own I recommend a look into the script we use to address that.
P.S. Besides AWS Data Wrangler, Lambda Layers are great. It can be versioned and shared among several distinct Lambdas Function keeping your Lambda bundles clean and light.
P.S.S. AWS recently released AWS Lambda support for container images. So it would also be a good approach. You just need to pip install awswrangler into your Dockerfile.

Reopen for discussion 🙂

Reopen for discussion 🙂

Thanks @igorborgest for your message, that helps a lot and I think makes everything more clear into this discussion. I'm sure more users will get into this situation. I will give definitively a try with Lambda Layers ;)

Thanks @igorborgest for your message, that helps a lot and I think makes everything more clear into this discussion. I'm sure more users will get into this situation. I will give definitively a try with Lambda Layers ;)

Thanks @igorborgest! I was able to get it work with Lambda Layer.

Thanks @igorborgest! I was able to get it work with Lambda Layer.


will it work for multivariate time series prediction   both regression and classification

great code thanks
may you clarify :
will it work for multivariate time series prediction   both regression and classification
1
where all values are continues values
weight    height     age   target
1   56        160    34    1.2
2   77        170    54    3.5
3   87        167     43   0.7
4   55        198    72    0.5
5   88        176     32   2.3
2
or  even will it work for multivariate time series where values are mixture of continues  and categorical values
for example 2 dimensions have continues values and 3 dimensions are categorical values
color        weight     gender  height  age  target

1    black       56             m   160    34    yes
2    white       77             f   170    54    no
3    yellow      87             m   167    43    yes
4    white       55             m   198    72    no
5   white       88              f   176    32    yes

Hi @Sandy4321 thanks for the question. Traces doesn't have any regression or prediction — for that I'd recommend something like statsmodels or scikit-learn.


Added renderDayContents prop for custom day contents/day formatting

Following prop will allow you to pass in a function that receives the date and will return whatever the user specifies.
It will allow you to do the following:
<Datepicker renderDayContents={day => <div>{day}</div>} />

The reason I added this props is because we currently lack the possibility to customise the internals of the day component. It would be nice if we can pass in some extra stuff like components and other text for each day component.

So this functionality was never pulled in and there isn't any support for customizing the Day strings in the calendar header?

I think so yea, but it's been a long time since I last used this component, so I can't say for certain if this functionality was added in newer versions

Hi,
Is it planned to merge this PR soon ?
It would be very helpfull to fully customize this calendar !
Thank you

There are some merge conflicts we need to fix before merging.

Yep saw it, do you have any idea of a deliver date ?

Fixed the merge conflicts

Thanks, merged!

Similar to renderDayContents, is there a prop for customizing time for the time dropdown?

This prop is missing in the datepicker.md. Can someone add it?


brooklyn_museum rewritten

Fixes

Fixes #[issue number] by @[issue author]
Description

Technical details

Tests

Screenshots

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the master branch of the repository.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[ ] I added tests for the changes I made (if applicable).
[ ] I added or updated documentation (if applicable).
[ ] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Referring to the https://github.com/creativecommons/cccatalog/issues/348, I have rewritten brooklyn_museum.py using DelayedRequester and ImageStore and completely removed eltmods

@Nikitag0329IITkgp The brooklyn Museum API needed to be tested   before rewriting .

@Nikitag0329IITkgp Actualy I was planning to work on this , If you are not working could you mention it in the issue so that I can continue working on it.

@Nikitag0329IITkgp Actualy I was planning to work on this , If you are not working could you mention it in the issue so that I can continue working on it.

No problem. I will do that.

I have made the necessary changes and updated the file but I'm not able to know as to why some checks are failing since it's running locally. Can someone help me out?

@Nikitag0329IITkgp The checks is failing because the docker compose is not able to build the testing environment and is failing with
Service 'webserver' failed to build: The command '/bin/sh -c pip install --user -r requirements.txt' returned a non-zero code: 2

Not exactly sure why this occuring , I suggest you post it in slack so we can know if anyone else has faced this problem or why this is coming.

@Nikitag0329IITkgp Please try pushing an empty commit
git commit --allow-empty -m "Retrigger Testing Workflow"
git push

It seems like the automated testing failed because of some network hiccup, and not due to a problem in your code.

@Nikitag0329IITkgp Please try pushing an empty commit
git commit --allow-empty -m "Retrigger Testing Workflow"
git push

It seems like the automated testing failed because of some network hiccup, and not due to a problem in your code.
Okay, thank you.

Okay @mathemancer will do that.

@mathemancer can you review this once?

Is this ready for re-review?  If so, please request a review from me using the Github UI.

@mathemancer please re-review it. Thanks.

Since @kss682 has made a new pull request #355 for the same issue and since @Nikitag0329IITkgp has discontinued work on this as mentioned here can this pull request be closed?

@allen505 Thanks for raising the flag.  We'll let @kss682 do the implementation on this.


Filter array from multiple to single type

class Element {
    constructor() {}
}

class Image extends Element {
    constructor(public src: string) { super() }
}

const elements: Element[] = [new Element(), new Image('foo')]

const imageEls: Image[] = elements.filter(e => e instanceof Image)
imageEls

This results in:
main.ts(39,7): error TS2322: Type 'Element[]' is not assignable to type 'Image[]'.
  Type 'Element' is not assignable to type 'Image'.
    Property 'src' is missing in type 'Element'.

Is TypeScript able to infer that the filtered elements array now only contains Images?

Hey @OliverJAsh, check out #7657.


Typo fix

Thanks, I combined this with another typo fix in https://github.com/django/django/pull/9249.


Advent of code 15

--- Day 15: Warehouse Woes ---
You appear back inside your own mini submarine! Each Historian drives their mini submarine in a different direction; maybe the Chief has his own submarine down here somewhere as well?
You look up to see a vast school of lanternfish swimming past you. On closer inspection, they seem quite anxious, so you drive your mini submarine over to see if you can help.
Because lanternfish populations grow rapidly, they need a lot of food, and that food needs to be stored somewhere. That's why these lanternfish have built elaborate warehouse complexes operated by robots!
These lanternfish seem so anxious because they have lost control of the robot that operates one of their most important warehouses! It is currently running amok, pushing around boxes in the warehouse with no regard for lanternfish logistics or lanternfish inventory management strategies.
 However, if you could anticipate the robot's movements, maybe they could find a safe option.
The lanternfish already have a map of the warehouse and a list of movements the robot will attempt to make (your puzzle input). The problem is that the movements will sometimes fail as boxes are shifted around, making the actual movements of the robot difficult to predict.
For example:
##########
#..O..O.O#
#......O.#
#.OO..O.O#
<EMAIL_ADDRESS>#O#..O...#
#O..O..O.#
#.OO.O.OO#
#....O...#
##########
^<v^>v>^vv^v>v<>v^v<v<^vv<<<^><<><>>v<vvv<>^v^>^<<<><<v<<<v^vv^v>^
vvv<<^>^v^^><<>>><>^<<><^vv^^<>vvv<>><^^v>^>vv<>v<<<<v<^v>^<^^>>>^<v<v

<>vv>v^v^<>><>>>><^^>vv>v<^^^>>v^v^<^^>v^^>v^<^v>v<>>v^v^v^^<^^vv<
<<v<^>>^^^^>>>v^<>vvv^><v<<<>^^^vv^^>v<^^^^v<>^>vvvv><>>v^<<^^^^^
^><^><>>><>^^<<^^v>>><^^>v>>>^v><>^v><<<>v<vvvv>^<><<>^><
^>><>^v<><^vvv<^^<><v<<<<<><^v<<<><<<^^<v<^^^><^>>^<v^><<<^>>^v<v^v<v^
^>>^v>vv>^<<^v<>><<><<v<<>v<^vv<<<>^^v^>^^>>><<^v>>v^v><^^>>^<>vv^
<><^^>^^^<><vvvvv^v<v<<>^vv<<^><<><<><<<^^<<<^<<>><<><^^^>^^<>^>v<>
^^>vv<^v^v^<><v<^v>^^^>>>^^vvv^>vvv<>>>^<^>>>>>^<<^v>^vvv<>^<><
v^^>>><<^^<>>^v^<v^vv<>v^<<>^<^v^v><^<<<><<^<v<>vv>>v><v^<vv<>v^<<^
As the robot (@) attempts to move, if there are any boxes (O) in the way, the robot will also attempt to push those boxes. However, if this action would cause the robot or a box to move into a wall (#), nothing moves instead, including the robot. The initial positions of these are shown on the map at the top of the document the lanternfish gave you.

The rest of the document describes the moves (^ for up, v for down, < for left, > for right) that the robot will attempt to make, in order. (The moves form a single giant sequence; they are broken into multiple lines just to make copy-pasting easier. Newlines within the move sequence should be ignored.)
Here is a smaller example to get started:
########
#..O.O.#
<EMAIL_ADDRESS>#...O..#
#.#.O..#
#...O..#
#......#
########
<^^>>>vv>v<<
Were the robot to attempt the given sequence of moves, it would push around the boxes as follows:
Initial state:
########
#..O.O.#
<EMAIL_ADDRESS>#...O..#
#.#.O..#
#...O..#
#......#
########
Move <:
########
#..O.O.#
<EMAIL_ADDRESS>#...O..#
#.#.O..#
#...O..#
#......#
########
Move ^:
########
<EMAIL_ADDRESS>##..O..#
#...O..#
#.#.O..#
#...O..#
#......#
########
Move ^:
########
<EMAIL_ADDRESS>##..O..#
#...O..#
#.#.O..#
#...O..#
#......#
########
Move >:
########
<EMAIL_ADDRESS>##..O..#
#...O..#
#.#.O..#
#...O..#
#......#
########
Move >:
########
#...@OO#
##..O..#
#...O..#
#.#.O..#
#...O..#
#......#
########
Move >:
########
#...@OO#
##..O..#
#...O..#
#.#.O..#
#...O..#
#......#
########
Move v:
########
#....OO#
<EMAIL_ADDRESS>#...O..#
#.#.O..#
#...O..#
#...O..#
########
Move v:
########
#....OO#
<EMAIL_ADDRESS>#...O..#
#.#.O..#
#...O..#
#...O..#
########
Move <:
########
#....OO#
<EMAIL_ADDRESS>#...O..#
#.#.O..#
#...O..#
#...O..#
########
Move v:
########
#....OO#
##.....#
<EMAIL_ADDRESS>#.#.O..#
#...O..#
#...O..#
########
Move >:
########
#....OO#
##.....#
<EMAIL_ADDRESS>#.#.O..#
#...O..#
#...O..#
########
Move >:
########
#....OO#
##.....#
#....@O#
#.#.O..#
#...O..#
#...O..#
########
Move v:
########
#....OO#
##.....#
#.....O#
<EMAIL_ADDRESS>#...O..#
#...O..#
########
Move <:
########
#....OO#
##.....#
#.....O#
<EMAIL_ADDRESS>#...O..#
#...O..#
########
Move <:
########
#....OO#
##.....#
#.....O#
<EMAIL_ADDRESS>#...O..#
#...O..#
########
The larger example has many more moves; after the robot has finished those moves, the warehouse would look like this:
##########
#.O.O.OOO#
#........#
#OO......#
<EMAIL_ADDRESS>#O#.....O#
#O.....OO#
#O.....OO#
#OO....OO#
##########
The lanternfish use their own custom Goods Positioning System (GPS for short) to track the locations of the boxes. The GPS coordinate of a box is equal to 100 times its distance from the top edge of the map plus its distance from the left edge of the map. (This process does not stop at wall tiles; measure all the way to the edges of the map.)
So, the box shown below has a distance of 1 from the top edge of the map and 4 from the left edge of the map, resulting in a GPS coordinate of 100 * 1 + 4 = 104.
#######
#...O..
#......
The lanternfish would like to know the sum of all boxes' GPS coordinates after the robot finishes moving. In the larger example, the sum of all boxes' GPS coordinates is 10092. In the smaller example, the sum is 2028.
Predict the motion of the robot and boxes in the warehouse. After the robot is finished moving, what is the sum of all boxes' GPS coordinates?
The data is located in aoc15.txt
git-bob try to implement this.

That's not the right answer; your answer is too low. If you're stuck, make sure you're using the full input data
Again, the data is located in aoc15.txt
git-bob try again to implement this.


(SP: ) create alert for successful update user data on the EditProfile

[x] after clicking the Update button, the alert should appear

Example:

closed, because it merged into [enhancement/2022/update-btn-on-profiletab] branch


🐞 - Input Tag Component not injecting AbstractTuiValueTransformer neither from parent nor self

Reproduction url
https://codesandbox.io/p/devbox/xjycqf
Description
I've tried using InputTagComponent, which extends AbstractTuiMultipleControl (which extends AbstractTuiControl), despite providing a value transformer to the parent component, and then to the component itself through a directive, it doesn't seem to take into account the value transformer from DI.
I've tried manually setting the component's valueTransformer property, and it worked well enough.
I've no idea what this could be, as I've used value transformer on other components a load of times, either I messed up something and I'm plain stupid, or this isn't working as it should.
Taiga UI version
3.88.0
Browser Used
Chrome
OS Used
macOS

Got 'cha, thanks a lot!


Create sps30.yaml

Add support for the sps30 Particulate Matter Sensor.
Case design in Onshape:
https://cad.onshape.com/documents/dce3c544d8f0f6d4aaece8e1/w/af2f3ba1b635d2ccd180d7ec/e/585a27617f725e5ec6a041fe?configuration=List_B4cEdGNdSGp3oh%3DDefault&renderMode=2&uiState=659aad8aa559c65033e25688
Compared to the first pull request, I left out the sensors for 4um and set the update_interval to 60s.

Just to letting you know. I'll merge this soon :) Thank you for the work

@tomvancutsem Where did you solder it to? There would be some io pins availiable on the left of the ESP. It looks looks like you soldered them to the bottom somewhere. We should also add it to the documentation.


WIP: Port to xUnit.net 2

lol, I knew it would deadlock with all those Wait and Result calls.

Ah yes, xunit's deadlock detection feature :) https://github.com/xunit/xunit/issues/864

FYI just if it's too much work to fix the sync-over-async situation, you may be able to work around the issue via -maxthreads unlimited.


Implement the About Page

Description
Implement the About page specified in the Figma design file.

The About page is done and the Banner component has been updated, to make it so that the title, subtitle, and text become ReactNode's so that, when it is used, I have more control of the text.


Updated MANIFEST and add autover versioning

Updates the MANIFEST to include the license file and uses param both to add an id parameter to Comms and for versioning with autover.

@philippjfr I think this is ready to review/merge now. Once it is on master I'll update the tags.


getMetrics and getDimensions are failing due to changed "support" column values in AA API

getMetrics and getDimensions are failing if run with the "full" command. This also makes compareReportSuites fail and potentially other parts of the wrapper, so ideally this PR can be merged soon. I have updated the logic to make it less dependent on hard-coded values in the "support" columns. @pitchmuc

@pitchmuc thanks a ton for this quick merge!

the fix is not perfect:
The columns are not aligned

dataWarehouse is returning oberon & oberon dataWarehouse

I will try to fix that

new version live and not as sexy as yours but works as expected. 0.4.1-1


Annotations are missing in InfluxDB 2.0

Proposal:
Add the annotations feature back in InfluxDB 2.0
Current behavior:
Currently, in InfluxDB 2.0 it is not possible to make annotations on charts like we use to do in Chronograf 1.x
Desired behavior:
It would be great to have feature parity with Chronograf 1.x. Also, an HTTP API for annotations would be very useful.
Use case:
I summarize here our use cases for annotations:

Application monitoring

We monitor the impact of code changes on our science quality metrics, we annotate changes on the time series when we see a metric excursion, we usually add the ticket number and some description of what happened.
We use to say that "annotations are more important than the data".  For this use case, in particular, you can always repeat the test and reproduce the data, but the insight as to what happened, you can't necessarily remember it if the annotation is gone.

Engineering Facilities Database (EFD)

The EFD records data from our sensors at the Observatory. Annotations are useful to correlate features we observe in one chart with other charts across multiple dashboards. We control the telescope hardware from Jupyter notebooks, and currently, we can add annotations from the notebook.
Having a mechanism to turn "events" automatically into annotations would be very useful.

Observer log

This is a new use case. Astronomers working in the observatory need to log what they see in the form of comments. That's just another example of time series data, right? and if it goes to InfluxDB it would be easy to correlate with other data and display them as annotations in the UI.
For that, an HTTP API to create annotations would be better than our current method to add annotations programmatically. We would also like to associate the current user and organization in Chronograf with the annotations automatically.
Wish list
Below, we list the functionalities we would like to have. We came up with this "importance scale":
0 - we cannot use InfluxDB without this feature
1 - this feature would make InfluxDB even more useful
2 - it would be nice to have
3 - not really important
UI

Existing annotations functionality as in Chronograf 1.8 (0)
Add an optional field for "comments" in addition to the annotation "name" (1)
Color code annotations by tag (similar to "labels" in InfluxDB 2.0) (3)
Search annotations by name (1)
Per-user annotations. We feel that some users would like to make private annotations (2)
Local and global annotations. By default, annotations are local, i.e. visible in the current Chronograf organization if the annotation is set as global then it is visible across all Chronograf organizations. (2)
Display the name of the user that made the annotation, if the annotation is global display the name of the organization as well. (2)
Associate events with point annotations. Incoming events would be automatically added as annotations. That would require a UI to select the database, measurement and field key that has the annotation name. (2)
Allow HTML/Markdown content in the annotation name and comment (for clickable links) (1)
Display the annotation name for multiple annotations simultaneously (2)

HTTP API

Create and read annotations programmatically (1)
Update and remove annotations (2)
Filter annotations by tag (1)

Othe design considerations

Associate the current user and organization to the annotation, perhaps as default tags?
If comments (see above) are stored as fields the 64KB size limit seems enough
It should be easy to backup annotations

An example of how we use annotations in Chronograf 1.x. This dashboard shows functional tests of the telescope secondary mirror, this is happening this week in Chile :)

@desa nice to meet you virtually at the Town Hall today. To follow up on my question about annotations in 2.x I would like to point you to this issue where I describe our use case in more detail. Thank you!

We had a user session with @russorat @alexpaxton and @frossie yesterday where we discussed Annotations in 2.0. That was a really nice chat, thank you guys for organizing that. @frossie started by telling why Annotations are so important for us and how we use them. Then @russorat and @alexpaxton presented their initial porposal for adding annotations in 2.0. My take a way was that "annotations are promoted to time-series data" in 2.0.  In 1.x they were "special entities"  they were recorded in a special database (the _chronograf database) and followed a rigid schema.  There are clearly advantages in treating annotations as time-series data. First they can live in any bucket and instead of having a rigid schema, you can use the UI to query/transform annotations, and select the field that corresponds to the annotation "text". For each point in the result set you might construct a point annotation, but if you have a field that represents "duration" you might be able to construct annotation windows. This way one can use the existing InfluxDB HTTP API to write and query annotations. That makes total sense. We already see direct application for some of the use cases we have. For example, we have points that represent "events". Following the proposed design we could overlay those events on our time-series.  We also discussed the ability of adding annotations "manually"  when you see features in the data. That is particularly useful for us and is like we use annotations in 1.x now.

After realizing all that, perhaps a possible path for Annotations is to treat them as another visualization type in the UI! For example, in the Explore UI we already have the ability to overlay visualizations (the "+" button), we already have the place to write the query, and in the panel where we configure the visualization we could select the fields that represent the annotation text, the duration (for window annotations), have an option to display or hide the annotation text, select colors, etc. It feels very natural that way!

finished with #20180


Database manager doesn't work

Laravel: 6.6.0
Voyager: 1.3.0
PHP: 7.3.6
Made a clear install of Laravel and then Voyager;
Navigated to Tools/Database and got this

Please search before opening an issue.
Duplicate of #4586


Update README.md

Added Arch Linux Installer

We can only provide links to CI output of this repository. Please raise a PR with code changes only.


Struct Class instance output like a hash. It cofusing.

S = Struct.new(:x, :y)
S.new(100,200)
=>
{
    :x => 100,
    :y => 200
}

There is  no type information to know this is a Struct Object like default inspect.
Following is no use ap.
S = Struct.new(:x, :y)
S.new(100, 200)
=>
#<struct S x=100, y=200>

I can know this is a #<struct...> not a hash.

My workaround: I do some localized MonkeyPatching in my .irbrc because this only affects console printing in development for me. Looking at the implementation of Formatter#awesome_object, I used the following variation to redefine Formatter#awesome_struct:
if defined?(AwesomePrint)
  AwesomePrint::Formatter.class_eval do
    def awesome_struct(s)
      vars = s.members.map do |var|
        property = var.to_s[1..-1].to_sym # to_s because of some monkey patching done by Puppet.
        accessor = if s.respond_to?(:"#{property}=")
          s.respond_to?(property) ? :accessor : :writer
        else
          s.respond_to?(property) ? :reader : nil
        end
        if accessor
          [ "attr_#{accessor} :#{property}", var ]
        else
          [ var.to_s, var ]
        end
      end

      data = vars.sort.map do |declaration, var|
        key = left_aligned do
          align(declaration, declaration.size)
        end

        unless @options[:plain]
          if key =~ /(@\w+)/
            key.sub!($1, colorize($1, :variable))
          else
            key.sub!(/(attr_\w+)\s(\:\w+)/, "#{colorize('\\1', :keyword)} #{colorize('\\2', :method)}")
          end
        end
        indented do
          key << colorize(" = ", :hash) + @inspector.awesome(s.send(var))
        end
      end
      if @options[:multiline]
        "#<#{awesome_instance(s)}\n#{data.join(%Q/,\n/)}\n#{outdent}>"
      else
        "#<#{awesome_instance(s)} #{data.join(', ')}>"
      end
    end
  end
end

Cool, I have add this hack into my .irbrc, Thanks.

Hi, Thanks for update.
But I want to know, why not distinguish the Class and Struct?
following is two example code.
A = Class.new do
  def initialize(arg1)
    @arg1 = arg1
  end
end

B = Struct.new(:arg1)

Without awesome_print
(pry):0> A.new(100)
=> #<A:0x00000000e80918 @arg1=100>
(pry):0> B.new(100)
=> #<struct B arg1=100>

With awesome_print
(pry):0> A.new(100)
#<A:0x00000001e50988 @arg1=100>
(pry):0> B.new(100)
#<B:0x01e1e960
    arg1 = 100
>

Seem like still not clear enough to know B is a Struct instance.
In most case, I consider two object as same type object.
This is exactly what you want, Right ?

I think told user this is a struct object clearly, is a more fitable option?

@zw963 Thanks for reopening this, I had a look and I agree it's not yet clear.
@waldyr Cheers for taking this one. :)

@zw963 Sorry for interpreting wrong your request. I'll make those amends this weekend.

Using #250 I've obtained the following. Hope you enjoy it 😄
A = Class.new do
  def initialize(arg1)
    @arg1 = arg1
  end
end
=> A

B = Struct.new(:arg1)
=> B

ap A.new(100)
#<A:0x007fb6a382bf48 @arg1=100>

ap B.new(100)
#<Struct:B:0x7fb6a3820b48
    arg1 = 100
>

Hi, I have tried the new branch, i think it is fine for me.
Thanks very much.

I'm glad you liked it.
Thanks for using awesome print.
If you run into anymore issues do not hesitate on calling me or @gerrywastaken


make run-docker is buggy on linux

Running make run-docker twice on a linux box gives me this:
set -ex
docker run --rm -v /home/goutham/gocode/src/github.com/iron-io/functions:/go/src/github.com/iron-io/functions -w /go/src/github.com/iron-io/functions iron/go:dev go build -o functions-alpine
docker build -t iron/functions:latest .
Error checking context: 'no permission to read from '/home/goutham/gocode/src/github.com/iron-io/functions/data/bolt.db''.
make: *** [Makefile:14: build-docker] Error

I have to delete the data folder every time. Works well on the Mac though.

Will test it on Linux in a bit. Thanks for the catch :D

Hi @Gouthamve thanks for filing, I'm having trouble reproducing this issue (specifically as it pertains to being a bug in running in a linux environment) as outlined. It seems to be a simple permissions issue but it could be something sneaky with docker filesystem drivers or such. It seems like at a minimum whichever user you are running the command as (and maybe the docker user / group) needs to own the directory /home/goutham/gocode/src/github.com/iron-io/functions and its children, ala $ chown -R $user:$group ..  I think we need more info, perhaps if I post my info something will stick out as different from yours and will help you debug your system. If you could post some additional information about your directory you linked /home/goutham/gocode/src/github.com/iron-io/functions and your docker version we may be able to help further debug here. Here is my system info:
functions(master) ✗: uname -a
Linux debian 4.8.0-2-amd64 #1 SMP Debian 4.8.11-1 (2016-12-02) x86_64 GNU/Linux
functions(master) ✗: groups reed
reed : reed cdrom floppy sudo audio dip video plugdev netdev bluetooth docker
functions(master) ✗: ls -alh
total 37M
drwxr-xr-x 12 reed reed 4.0K Dec 28 18:36 .
drwxr-xr-x 20 reed reed 4.0K Dec  4 22:02 ..
drwxr-xr-x  7 reed reed 4.0K Dec 28 18:34 api
-rw-r--r--  1 reed reed  626 Dec 28 18:34 build.ps1
-rw-r--r--  1 reed reed 1.3K Dec 28 18:34 circle.yml
drwxr-xr-x  2 reed reed 4.0K Dec 28 18:34 clients
-rw-r--r--  1 reed reed 1.3K Dec 28 18:34 CONTRIBUTING.md
drwxr-xr-x  2 reed reed 4.0K Oct 20 12:12 data
-rw-r--r--  1 reed reed  811 Dec 28 18:34 doc.go
-rw-r--r--  1 reed reed   87 Dec 28 18:34 Dockerfile
drwxr-xr-x  9 reed reed 4.0K Dec 28 18:34 docs
drwxr-xr-x 16 reed reed 4.0K Dec 28 18:34 examples
drwxr-xr-x  3 reed reed 4.0K Dec 28 18:34 fn
drwxr-xr-x  5 reed reed 4.0K Dec 28 18:34 fnctl
-rwxr-xr-x  1 reed reed  17M Sep 30 12:01 functions
-rwxr-xr-x  1 root root  20M Dec 28 18:36 functions-alpine
drwxr-xr-x  8 reed reed 4.0K Dec 28 18:47 .git
-rw-r--r--  1 reed reed  209 Oct 18 09:50 .gitignore
-rw-r--r--  1 reed reed 8.9K Dec 28 18:34 glide.lock
-rw-r--r--  1 reed reed  972 Dec 28 18:34 glide.yaml
-rw-r--r--  1 reed reed  12K Dec 28 18:34 LICENSE
-rw-r--r--  1 reed reed 2.6K Dec 28 18:34 main.go
-rw-r--r--  1 reed reed 1.1K Dec 28 18:34 Makefile
-rw-r--r--  1 reed reed 9.7K Dec 28 18:34 README.md
-rwxr-xr-x  1 reed reed  846 Dec 28 18:34 release.sh
-rw-r--r--  1 reed reed  270 Dec 28 18:34 THIRD_PARTY
drwxr-xr-x  3 reed reed 4.0K Dec 28 18:34 triggers
drwxr-xr-x  5 reed reed 4.0K Dec 28 18:35 vendor
functions(master) ✗: docker info
Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 280
Server Version: 1.12.5
Storage Driver: devicemapper
 Pool Name: docker-8:1-662746-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: ext4
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 8.153 GB
 Data Space Total: 107.4 GB
 Data Space Available: 2.631 GB
 Metadata Space Used: 13.48 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.134 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.137 (2016-11-30)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge overlay null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.8.0-2-amd64
Operating System: Debian GNU/Linux stretch/sid
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.957 GiB
Name: debian
ID: 3XYF:K5X3:NOD2:25IM:3WYV:QKFS:DLQ4:5LLC:36E5:ZNPJ:3J4P:EWPB
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: rdallman
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
 <IP_ADDRESS>/8

Yep, I am still able to reproduce after a fresh clone.
Here is my system info:
➜  functions git:(master) uname -a
Linux beast 4.8.13-1-ARCH #1 SMP PREEMPT Fri Dec 9 07:24:34 CET 2016 x86_64 GNU/Linux
➜  functions git:(master) groups goutham
wheel docker goutham
➜  functions git:(master) ls -alh
total 20M
drwxr-xr-x 11 goutham goutham 4.0K Dec 29 09:52 .
drwxr-xr-x  3 goutham goutham 4.0K Dec 29 09:49 ..
drwxr-xr-x  7 goutham goutham 4.0K Dec 29 09:50 api
-rw-r--r--  1 goutham goutham  626 Dec 29 09:50 build.ps1
-rw-r--r--  1 goutham goutham 1.3K Dec 29 09:50 circle.yml
drwxr-xr-x  2 goutham goutham 4.0K Dec 29 09:50 clients
-rw-r--r--  1 goutham goutham 1.3K Dec 29 09:50 CONTRIBUTING.md
drwxr-xr-x  2 root    root    4.0K Dec 29 09:52 data
-rw-r--r--  1 goutham goutham  811 Dec 29 09:50 doc.go
-rw-r--r--  1 goutham goutham   87 Dec 29 09:50 Dockerfile
drwxr-xr-x  9 goutham goutham 4.0K Dec 29 09:50 docs
drwxr-xr-x 16 goutham goutham 4.0K Dec 29 09:50 examples
drwxr-xr-x  3 goutham goutham 4.0K Dec 29 09:50 fn
-rwxr-xr-x  1 root    root     20M Dec 29 09:52 functions-alpine
drwxr-xr-x  8 goutham goutham 4.0K Dec 29 09:54 .git
-rw-r--r--  1 goutham goutham  209 Dec 29 09:50 .gitignore
-rw-r--r--  1 goutham goutham 8.9K Dec 29 09:50 glide.lock
-rw-r--r--  1 goutham goutham  972 Dec 29 09:50 glide.yaml
-rw-r--r--  1 goutham goutham  12K Dec 29 09:50 LICENSE
-rw-r--r--  1 goutham goutham 2.6K Dec 29 09:50 main.go
-rw-r--r--  1 goutham goutham 1.1K Dec 29 09:50 Makefile
-rw-r--r--  1 goutham goutham 9.7K Dec 29 09:50 README.md
-rwxr-xr-x  1 goutham goutham  846 Dec 29 09:50 release.sh
-rw-r--r--  1 goutham goutham  270 Dec 29 09:50 THIRD_PARTY
drwxr-xr-x  3 goutham goutham 4.0K Dec 29 09:50 triggers
drwxr-xr-x  5 goutham goutham 4.0K Dec 29 09:51 vendor
➜  functions git:(master) docker info
Containers: 5
 Running: 3
 Paused: 0
 Stopped: 2
Images: 13
Server Version: 1.12.3
Storage Driver: overlay2
 Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null bridge host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.8.13-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 23.31 GiB
Name: beast
ID: 6OCP:VJ5C:L2T4:AGMZ:N7KP:75TF:7FUM:JTN7:EIKR:J4KV:6RHA:VMTW
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
 <IP_ADDRESS>/8

Hi @Gouthamve I have good news, I'm able to reproduce this with a fresh copy (and ☕ ). Since I was unable to reproduce it with a prior version of the functions docker image (d'oh) it seems like this is just a simple regression then. Going to look over the code, I expect it's something in initialization that has since changed.

I believe this is because files made inside docker have the wrong permissions, we probably have to run a chmod on the bolt file that is created. I had to do this for everything created inside docker in another project as you can see here: https://github.com/treeder/dj/search?utf8=✓&q=chmod

hmm, thanks for the link. it's a little strange that it worked with an older version of the docker image. think it's fixed now, some details in #471