Share your config

Here's mine: https://codeberg.org/benjaminhollon/.dotfiles/src/branch/main/.config/mouseless/config.yaml
Pretty complex, I know, but I'm using it to recreate a QMK config I have. :)

update my config switching to pop shell
# the keyboard devices it reads from, if no devices are specified, it reads from all
devices:
# - "/dev/input/by-id/SOME_KEYBOARD_REPLACE_ME-event-kbd"

# startCommand: "setxkbmap de"

baseMouseSpeed: 750.0
baseScrollSpeed: 20.0

mouseAccelerationTime: 200.0
mouseAccelerationCurve: 2.0

startMouseSpeed: 0.0

mouseDecelerationTime: 300.0
mouseDecelerationCurve: 3.0

layers:
  - name: initial
    bindings:
      a: tap-hold a ; toggle-layer mouse ; 200
      space: tap-hold space ; toggle-layer thuan_fly_keys ; 200
      s: tap-hold s ; toggle-layer popshell ; 200

      # capslock kinda useless for me, so i map it to esc for vim
      capslock: esc

      # key `|\` at the bottom on msi laptop keyboard, why? they put the key in this position
      102nd: leftctrl

      #####################
      # External keyboard #
      #####################

      # key menu
      compose: leftctrl
      f1: mute
      f2: volumedown
      f3: volumeup
      # mic mute, `KEY_MICMUTE` ~ micmute doesn't work, debug show key press is `f20`
      f5: f20
      f8: leftctrl+leftshift+v

  - name: mouse
    passThrough: false
    bindings:
      a: layer initial
      i: layer mouse
      r: reload-config
      l: move  1  0
      h: move -1  0
      j: move  0  1
      k: move  0 -1
      p: scroll up
      semicolon: scroll down
      leftalt: speed 4.0
      space: speed 0.3
      f: button left
      d: button middle
      s: button right

  - name: thuan_fly_keys
    passThrough: true
    bindings:
      # function key kinda far, lazy to reach out
      k1: f1
      k2: f2
      k3: f3
      k4: f4
      k5: f5
      k6: f6
      k7: f7
      k8: f8
      k9: f9
      k0: f10
      minus: f11
      equal: f12

      # pop shell
      a: leftmeta+k1
      s: leftmeta+k2
      d: leftmeta+k3
      f: leftmeta+k4
      g: leftmeta+k5
      q: leftmeta+k6
      w: leftmeta+k7
      e: leftmeta+k8
      r: leftmeta+k9
      t: leftmeta+k0

      # editing text

      k: up
      h: left
      j: down
      l: right
      i: home
      o: end

      # Gnome

      # resize windows
      c: rightalt+f8

      # pano clipboard extension
      v: leftmeta+leftshift+v

      # switch windows to monitor left
      comma: leftmeta+leftshift+left

      # switch windows to monitor right
      dot: leftmeta+leftshift+right

      # popshell toggle maximize
      m: leftmeta+m

      # close window
      x: leftalt+f4

      # browser

      # next tab aka `ctrl + tab`
      p: leftctrl+pagedown

      # previous tab aka `ctrl + shift + tab`
      u: leftctrl+pageup

      # go back
      leftbrace: leftalt+left

      # go forward
      rightbrace: leftalt+right

  - name: popshell
    passThrough: false
    bindings:
      enter: leftmeta+enter
      h: leftmeta+h
      j: leftmeta+j
      k: leftmeta+k
      l: leftmeta+l
      u: leftmeta+leftshift+pageup
      p: leftmeta+leftshift+pagedown
      o: leftmeta+o
      i: leftmeta+s
      semicolon: leftmeta+g

I'm a simple person who likes simple things. Like, I like when I can control the mouse with one hand, so this is my wsad-suggestion. the right/left mouse button on shift and tab makes sense when I have to drag and drop stuff. I rarely have to, but I'd rather be able to than not. Besides, I rarely use shift and tab when moving the mouse. I have been using this config for about 5  hours and it feels rather natural. Even the easy integration with my browser is a pretty amazing. mouseless is easy to set up and easy to use <3
# the default speed for mouse movement and scrolling
baseMouseSpeed: 750.0
baseScrollSpeed: 20.0

# the time it takes to accelerate to baseMouseSpeed (in ms), 0 to reach top speed immediately
mouseAccelerationTime: 200.0

# the shape of the acceleration curve, 1.0 is linear, higher values have more time at low speeds
mouseAccelerationCurve: 2.0

# speed of the mouse when it starts moving
startMouseSpeed: 0.0

# same for deceleration
mouseDecelerationTime: 300.0
mouseDecelerationCurve: 3.0

layers:
- name: initial
  bindings:
    leftalt: toggle-layer mouse

- name: mouse
  passThrough: false
  bindings:
    g: reload-config
    leftshift: button left
    capslock: button middle
    tab: button right
    d: move  1  0
    a: move -1  0
    s: move  0  1
    w: move  0 -1
    r: scroll up
    f: scroll down

# Qutebrowser
    q: leftshift+h
    e: leftshift+l
    2: leftshift+k
    3: d
    4: u
    5: leftshift+j

Ooh nice qutebrowser integration; I may steal that.

Ooh nice qutebrowser integration; I may steal that.

It works really well :) Do note that I've opened an issue with the numbers being +1. So, 4 is actually 5 in the config.

Pretty sure you're supposed to use k2, k3, k4, k5, etc? That's what's in the example config and what I use in mine.

 I totally missed that.

home row mods: https://precondition.github.io/home-row-mods
#32
# the keyboard devices it reads from, if no devices are specified, it reads from all
devices:
# - "/dev/input/by-id/SOME_KEYBOARD_REPLACE_ME-event-kbd"

# startCommand: "setxkbmap de"

baseMouseSpeed: 750.0
baseScrollSpeed: 20.0

mouseAccelerationTime: 200.0
mouseAccelerationCurve: 2.0

startMouseSpeed: 0.0

mouseDecelerationTime: 300.0
mouseDecelerationCurve: 3.0

layers:
  - name: initial
    bindings:
      space: tap-hold space ; toggle-layer thuan_fly_keys ; 185
      q: tap-hold q ; toggle-layer mouse ; 185
      a: tap-hold-next-release a ; leftmeta ; 185
      s: tap-hold-next-release s ; leftalt ; 185
      d: tap-hold-next-release d ; leftshift ; 185
      f: tap-hold-next-release f ; leftctrl ; 185
      j: tap-hold-next-release j ; rightctrl ; 185
      k: tap-hold-next-release k ; rightshift ; 185
      l: tap-hold-next-release l ; rightalt ; 185
      semicolon: tap-hold-next-release semicolon ; rightmeta ; 185

      # capslock kinda useless for me, so i map it to esc for vim
      capslock: esc

      # key `|\` at the bottom on msi laptop keyboard, why? they put the key in this position
      102nd: leftctrl

      #####################
      # External keyboard #
      #####################

      # key menu
      compose: leftctrl
      f1: mute
      f2: volumedown
      f3: volumeup
      # mic mute, `KEY_MICMUTE` ~ micmute doesn't work, debug show key press is `f20`
      f5: f20
      f8: leftctrl+leftshift+v

  - name: mouse
    passThrough: false
    bindings:
      a: layer initial
      i: layer mouse
      l: move  1  0
      h: move -1  0
      j: move  0  1
      k: move  0 -1
      p: scroll up
      semicolon: scroll down
      leftalt: speed 4.0
      space: speed 0.3
      r: button left
      e: button middle
      w: button right

  - name: thuan_fly_keys
    passThrough: true
    bindings:
      z: reload-config

      # function key kinda far, lazy to reach out
      k1: f1
      k2: f2
      k3: f3
      k4: f4
      k5: f5
      k6: f6
      k7: f7
      k8: f8
      k9: f9
      k0: f10
      minus: f11
      equal: f12

      # gnome favorite app on dash
      a: leftmeta+k1
      s: leftmeta+k2
      d: leftmeta+k3
      f: leftmeta+k4
      g: leftmeta+k5
      q: leftmeta+k6
      w: leftmeta+k7
      e: leftmeta+k8
      r: leftmeta+k9

      # editing text

      k: up
      h: left
      j: down
      l: right
      i: home
      o: end

      # Gnome

      # resize windows
      c: rightalt+f8

      # pano clipboard extension
      v: leftmeta+leftshift+v

      # switch windows to monitor left
      comma: leftmeta+leftshift+left

      # switch windows to monitor right
      dot: leftmeta+leftshift+right

      # popshell toggle maximize
      m: leftalt+f10

      # close window
      x: leftalt+f4

      # browser

      # next tab aka `ctrl + tab`
      p: leftctrl+pagedown

      # previous tab aka `ctrl + shift + tab`
      u: leftctrl+pageup

      # go back
      leftbrace: leftalt+left

      # go forward
      rightbrace: leftalt+right

mouseless + shinglify (tiling/floating hybrid) + xfce.
So my configuration is quite simple, used for mouse control only, as all other tasks are already managed externally:
# the keyboard devices it reads from, if no devices are specified, it reads from all
devices:
# - "/dev/input/by-id/SOME_KEYBOARD_REPLACE_ME-event-kbd"

# this is executed when mouseless starts, e.g. useful for setting the keyboard layout
# startCommand: "setxkbmap de"

# the default speed for mouse movement and scrolling
baseMouseSpeed: 1750.0  # default 750.0
baseScrollSpeed: 30.0

# the time it takes to accelerate to baseMouseSpeed (in ms), 0 to reach top speed immediately
mouseAccelerationTime: 10.0  # default 200.0
# the shape of the acceleration curve, 1.0 is linear, higher values have more time at low speeds
mouseAccelerationCurve: 2.0  # default 2.0
# speed of the mouse when it starts moving
startMouseSpeed: 0.0
# same for deceleration
mouseDecelerationTime: 300.0
mouseDecelerationCurve: 3.0

# the rest of the config defines the layers with their bindings
layers:
- name: initial
  # when true, keys that are not mapped keep their original meaning
  passThrough: true
  bindings:
    # layers for window manager excluded
    leftmeta: tap-hold-next leftmeta ; toggle-layer movewin ; 100  # window manage
    leftctrl: tap-hold-next leftctrl ; toggle-layer movework1 ; 100  # workplace manage
    leftalt: tap-hold-next leftalt ; toggle-layer movework2 ; 100  # workplace manage
    # movement
    up: move  0 -1
    right: move  1  0
    down: move  0  1
    left: move -1  0
    # speed
    f4: speed 4.0
    f5: speed 0.3
    f6: speed 0.1
    # scroll
    rightshift: scroll up
    kp0: scroll down
    # buttons
    a: button left
    102nd: button middle
    z: button right

# another layer for window management
- name: movewin
  passThrough: true
  bindings:
    # _ is the wildcard key, which matches any key that is not mapped
    _: leftmeta+_

# another layer for window management
- name: movework1
  passThrough: true
  bindings:
    _: leftctrl+_

# another layer for window management
- name: movework2
  passThrough: true
  bindings:
    _: leftalt+_

My mouseless config is here. The layout is affected by my 34 keys layout on the keyboard called Moonlander.
I am executing the mouseless in my Sway window manager config file for autostarting like this.
# Run always mouseless when reloading the sway config file.
exec_always pkill mouseless; ~/.go/bin/mouseless


Bulk Access Control Script REST implementation

References

More details about the whole proposal and wireframe can be found there https://wiki.lyrasis.org/display/DSPACE/Bulk+access+control+management+-+4Science+proposal
Fixes https://github.com/DSpace/DSpace/issues/2848
Related to DSpace/RestContract#223
Requires Frontend PR: https://github.com/DSpace/dspace-angular/pull/2247

Please note that this PR is built on top of https://github.com/DSpace/DSpace/pull/8830
Description

A new endpoint has been introduced to expose the configuration available for use with the bulk access control features (list of available access conditions at item and bitstream level)
a BulkAccessControl Script available to admins of target item has been introduced to perform bulk changes over the access condition of the selected objects

Instructions for Reviewers
You can use the corresponding angular PR to be linked with to test the currect behavior of the script.
Take a look to the documentation available there https://wiki.lyrasis.org/display/DSPACE/Bulk+access+control+management+-+4Science+proposal
in short you have access to the new features

as a repository administrator from the left menu inside the access control section
as a local administrator from any objects (community, collection, item) that you administer via the administer page, a dedicated tab has been added

Checklist
This checklist provides a reminder of what we are going to look for when reviewing your PR. You need not complete this checklist prior to creating your PR (draft PRs are always welcome). If you are unsure about an item in the checklist, don't hesitate to ask. We're here to help!

[X] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon. Please note that the PR is smaller than what it looks as it is built on top of another PR and there are large ITs
[X] My PR passes Checkstyle validation based on the Code Style Guide.
[X] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
[X] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
[n/a] If my PR includes new libraries/dependencies (in any pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
[X] If my PR modifies REST API endpoints, I've opened a separate REST Contract PR related to this change.
[X] If my PR includes new configurations, I've provided basic technical documentation in the PR itself.
[X] If my PR fixes an issue ticket, I've linked them together.

@benbosman : I'm adding you as a reviewer of this major feature, but feel free to delegate it to someone else on your team.  I'd just appreciate it if Atmire can help with the review.

@eskander17 : I found one additional issue with more testing.  It appears this script never has any useful output when it succeeds (either from UI or commandline).  Here's a UI screenshot to show what I mean:

I'd expect it to output which objects were updated (since it's a bulk tool) and ideally list what updates were made.  Something similar to this sort of output:
Replacing Item {uuid} policy to access condition: "lease", end_date=2024-01-02
...
Adding Bitstream {uuid} policy with access condition: "administer"
...
Replacing Item {uuid} policies to inherit from owning Collection.

This information should be relatively easy to log and it'd be an extremely useful report of what changes were made in the system.

The test failures that was reported up to now were related to bugs solved in https://github.com/DSpace/DSpace/pull/8698 this PR has made visible the bug as we have forced H2 to store date in UTC that usually is not the timezone of the VM used by the CI.

@abollini : It appears this still has CI build failures, but now there's a compilation failure:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project dspace-api: Compilation failure
Error:  /home/runner/work/DSpace/DSpace/dspace-api/src/main/java/org/dspace/app/bulkaccesscontrol/BulkAccessControl.java:[280,63] error: validateResourcePolicy(Context,String,Date,Date) has private access in AccessConditionOption

@eskander17 and @abollini : This is looking better overall, but I still have some inline feedback and we have ITs that are still missing.
I've also found that I can no longer seem to run a bulk access change on all Bitstreams in a Collection or Community. This fails from both the UI and the commandline with this error:
org.dspace.content.Bundle.bitstreams, could not initialize proxy - no Session
	at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:614)
	at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:218)
	at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:591)
	at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:149)
	at org.hibernate.collection.internal.PersistentList.toArray(PersistentList.java:161)
	at java.base/java.util.ArrayList.<init>(ArrayList.java:179)
	at org.dspace.content.Bundle.getBitstreams(Bundle.java:140)
	at org.dspace.core.HibernateDBConnection.uncacheEntity(HibernateDBConnection.java:294)
	at org.dspace.core.HibernateDBConnection.uncacheEntity(HibernateDBConnection.java:287)
	at org.dspace.core.Context.uncacheEntity(Context.java:880)
	at org.dspace.app.bulkaccesscontrol.BulkAccessControl.updateItemsAndBitstreamsPolices(BulkAccessControl.java:309)
	at org.dspace.app.bulkaccesscontrol.BulkAccessControl.internalRun(BulkAccessControl.java:183)
	at org.dspace.scripts.DSpaceRunnable.run(DSpaceRunnable.java:104)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

To reproduce, you can attempt to change all Bitstreams to "administrator" access rights in a Community or Collection. Here's an example data.json to use from commandline:
{
  "bitstream": {
    "constraints": {
      "uuid": []
    },
    "mode": "replace",
    "accessConditions": [
      {
        "name": "administrator",
        "startDate": null,
        "endDate": null
      }
    ]
  }
}

Beyond that, other tests that I've performed are working. So, this is looking good overall, but some more issues to fix/cleanup.

@tdonohue Done

@eskander17 and @abollini : The merge conflicts with this PR were the result of merging #8830 a moment ago.  If the conflicts could be resolved quickly, it'd be helpful to reviewers.  Thanks!

@tdonohue merge conflict solved

@benbosman : Did you still want to give this a quick test?  I'd like to get this merged tomorrow (Thurs, June 15) if possible to begin final testing of the 7.6 release... I was waiting on your feedback as a secondary tester because this PR is rather large and could use more testers.   As @artlowel tested the frontend PR, that may be "good enough" though, assuming you agree.

As discussed in today's Dev Meeting, I will merge this tomorrow (Friday).  Leaving this open for one last day, in case @benbosman has a chance to review/test it.  After that, we'll assume the tests from myself, @artlowel (who tested the frontend) and the 4Science team are sufficient -- we feel they likely are, but more eyes are always welcome on large features.


Going to last page

Hello,
Can i know how I can go to the last page of the pagination with some code ?
In the version 0.9 it was quite easy but now that I updated I dont know how to do that.

You will have to go through the segments prop. Example:
  segments={{
    centerPage: [currentPage]
  }}

So in this case you would need to adjust that currentPage variable through your state management mechanism.
Would it help if I implemented this in the demo?

Oh yes I would appreciate this.

There's a little demo now. I hope that helps. :+1:

Thanks :+1:


Windows registry settings for enable "SBDR, FBSDP, PSDP" mitigations

Hi team,
I found this commit by @mamillmsft
My question is " How to enable OS support for Speculation control settings for SBDR/FBSDP/PSDP mitigations?". the reason I ask is we are using latest speculationcontrol module 1.0.17 to check the speculation control settings on "intel xeon platunum 8461v" platform, and we observed the hardware is vulnerable to 3 mitigations.
We have updated to latest 11B OS hotfix on Windows Server 2022 and ensure the OS support is present, but it is not enabled.
We also refer to  4072698, but can’t find any information to enable it in OS.
Please advice which registry setting that should be modify to turn it on or other document we can refer.
Here is a part of output :
Speculation control settings for SBDR [shared buffers data read]

Windows OS support for SBDR mitigation is present: True
Hardware is vulnerable to SBDR: True
Windows OS support for SBDR mitigation is enabled: False

Speculation control settings for FBSDP [fill buffer stale data propagator]

Windows OS support for FBSDP mitigation is present: True
Hardware is vulnerable to FBSDP: True
Windows OS support for FBSDP mitigation is enabled: False

Speculation control settings for PSDP [primary stale data propagator]

Windows OS support for PSDP mitigation is present: True
Hardware is vulnerable to PSDP: True
Windows OS support for PSDP mitigation is enabled: False

BTIHardwarePresent                  : True
BTIWindowsSupportPresent            : True
BTIWindowsSupportEnabled            : True
BTIDisabledBySystemPolicy           : False
BTIDisabledByNoHardwareSupport      : False
BTIKernelRetpolineEnabled           : False
BTIKernelImportOptimizationEnabled  : True
KVAShadowRequired                   : False
KVAShadowWindowsSupportPresent      : True
KVAShadowWindowsSupportEnabled      : False
KVAShadowPcidEnabled                : False
SSBDWindowsSupportPresent           : True
SSBDHardwareVulnerable              : True
SSBDHardwarePresent                 : True
SSBDWindowsSupportEnabledSystemWide : True
L1TFHardwareVulnerable              : False
L1TFWindowsSupportPresent           : True
L1TFWindowsSupportEnabled           : False
L1TFInvalidPteBit                   : 0
L1DFlushSupported                   : True
MDSWindowsSupportPresent            : True
MDSHardwareVulnerable               : False
MDSWindowsSupportEnabled            : False
FBClearWindowsSupportPresent        : True
SBDRSSDPHardwareVulnerable          : True
FBSDPHardwareVulnerable             : True
PSDPHardwareVulnerable              : True
FBClearWindowsSupportEnabled        : False

Hi @hank6315 I had same issue, and I resolved it by flashing BIOS with a new Intel Microcode.


The "download" command should fetch the new 1080x1080 resolution

Instagram started supporting a new 1080x1080 resolution back in June of 2015, but the corresponding URL has yet to be returned by the API, where the 640x640 is still the highest usable res. This can be reverse-engineered though, as I pointed out on Stack Overflow. Let's implement this enhancement for the "download" command, and fallback to 640x640 if 1080x1080 is not found.

Since we are now caching calls to the API (see #6), let's inject that high resolution back in the JSON object, as if it had been returned by the API itself.
e.g. this:
  "images": {
    "low_resolution": {
      "url": "https://scontent.cdninstagram.com/hphotos-xta1/t51.2885-15/e35/p320x320/12135290_440954722755865_550982219_n.jpg",
      "width": 320,
      "height": 400
    },
    "thumbnail": {
      "url": "https://scontent.cdninstagram.com/hphotos-xta1/t51.2885-15/s150x150/e35/c0.135.1080.1080/12135290_440954722755865_550982219_n.jpg",
      "width": 150,
      "height": 150
    },
    "standard_resolution": {
      "url": "https://scontent.cdninstagram.com/hphotos-xta1/t51.2885-15/sh0.08/e35/p640x640/12135290_440954722755865_550982219_n.jpg",
      "width": 640,
      "height": 800
    }
  },

becomes:
  "images": {
    "low_resolution": {
      "url": "https://scontent.cdninstagram.com/hphotos-xta1/t51.2885-15/e35/p320x320/12135290_440954722755865_550982219_n.jpg",
      "width": 320,
      "height": 400
    },
    "thumbnail": {
      "url": "https://scontent.cdninstagram.com/hphotos-xta1/t51.2885-15/s150x150/e35/c0.135.1080.1080/12135290_440954722755865_550982219_n.jpg",
      "width": 150,
      "height": 150
    },
    "standard_resolution": {
      "url": "https://scontent.cdninstagram.com/hphotos-xta1/t51.2885-15/sh0.08/e35/p640x640/12135290_440954722755865_550982219_n.jpg",
      "width": 640,
      "height": 800
    },
    "high_resolution": {
      "url": "https://scontent-lga3-1.cdninstagram.com/hphotos-xta1/t51.2885-15/e35/12135290_440954722755865_550982219_n.jpg",
      "width": 1080,
      "height": 1350
    }
  },


I want to move the tool boxes to the right.

I'm a very beginner can some one help me, how can i move tool box to the right side.

You have to drag it from part of the tool box that isn't the tool buttons or the tool options area.
Click on any part of the tool box shown in green here, and drag all the way to the right side. You can also move it up and down.

Thanks for that! But you replied very late.


[Feature] Option to change Combo Picker window size

Could you please add an option to change the Combo Picker window size?
It seems locked at 442 x 319 pixels and some long combo names aren't fully displayed.
If the window could be resized by dragging the corners it would solve most of my issues.
A preference to change the window and the font sizes would be great.
Thank you very much.

Hi. Thanks for the suggestion.
As the window is borderless, it requires a bit of work on my side, but I will make the combo picker window resizable in the next release. The size changes will be saved in order to preserve it when the application is restarted (position will not, as the picker window always appears centered over the currently active window).

It should be fixed. Here are test builds. Let me know if it fixes the problem for you.

Beeftext-9.0-Installer.zip
Beeftext-9.0-PortableEdition.zip


[$1000] Console error when selecting a user to assign a task to

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open a chat
Go to "Assign Task" section
Enter the task title and click on the "Next" button
Then click on "Confirm task"
Click on "To" and select a user

Expected Result:
A console error should not appear
Actual Result:
Console error when selecting a user to assign a task to
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.19-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/23f3f8f0-c117-423d-a9db-5f4c4be4d0cf

Expensify/Expensify Issue URL:
Issue reported by: @ayazhussain79
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1684958586982989
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01ca7b76593b61b50d
Upwork Job ID:<PHONE_NUMBER>379948544
Last Price Increase: 2023-06-06

Proposal
Please re-state the problem that we are trying to solve in this issue.
Console error shows after selecting assignee on task assignee selector page
What is the root cause of that problem?
This came from lack knowledge of lifecycle in functional component.
In TaskAssigneeSelectorModal, there's search_render measurement.
Timer should start on component mount and should end only on OptionsSelector onLayout callback or component unmount.
In current logic, there are more cases of start/end timer: whenever props or search value are changed because of [updateOptions] dependency.
https://github.com/Expensify/App/blob/d70b7462cd698a50aa121310f69b815e9f7cc9fa/src/pages/tasks/TaskAssigneeSelectorModal.js#L110-L114
So finally these are call orders in Timing.js:

end
start
end
start
getEnvironment promise return
getEnvironment promise return (error happens here because key is removed by this line)
start
end
getEnvironment promise return

We can find out and fix similar issues across the app. (i.e. TaskShareDestinationSelectorModal)
What changes do you think we should make in order to solve the problem?
call Timing.start only on component mount, Timing.end only on component unmount or OptionsSelector onLayout callback.
To do this, define new useEffect hook with empty array dependency:
    useEffect(() => {
        Timing.start(CONST.TIMING.SEARCH_RENDER);
        Performance.markStart(CONST.TIMING.SEARCH_RENDER);

        return () => {
            Timing.end(CONST.TIMING.SEARCH_RENDER);
            Performance.markEnd(CONST.TIMING.SEARCH_RENDER);
        };
    }, []);

What alternative solutions did you explore? (Optional)
Early return if key doesn't exist here

Reproduced

Proposal
Please re-state the problem that we are trying to solve in this issue.
Console error when we select an assignee.
What is the root cause of that problem?
The error comes from Timing.end where we are trying to access timestampData[eventName].
https://github.com/Expensify/App/blob/3ce8e8212c8c9dcc4a7767a1c256555624ad6202/src/libs/actions/Timing.js#L31-L36
Notice that we already have a guard to check if timestampData[eventName] exist or not. However, we access it inside the promise, which means something must have deleted it before the promise resolve. We can easily move the check inside the promise, but that doesn't really solve the root cause, but rather just "hiding" the issue. The only way timestampData[eventName] is deleted through Timing.end, so we can guess that there are one calls to Timing.end that already delete the data while the other call's promise just completed.
We have multiple calls of Timing because we call it inside the useEffect cleanup function which will be called every time the dependency array changes or the component unmount.
https://github.com/Expensify/App/blob/3ce8e8212c8c9dcc4a7767a1c256555624ad6202/src/pages/tasks/TaskAssigneeSelectorModal.js#L104C22-L114
Notice the dependency array is updateOptions which is a function wrapped with useCallback that have a dependency array of props and searchValue. This means, every props changes, we will call Timing.end.
What changes do you think we should make in order to solve the problem?

As the timing measure is to measure how long the search options to render, I don't think it makes sense to call Timing.end in a useEffect cleanup function. We want to measure how long the search to render, not how long the component unmounts or how long any props change. So,

Remove Timing and Performance end from useEffect cleanup function.
Move Timing and Performance start to a new useEffect with empty dependency array (on mount).

The above changes are enough to solve this issue, but I see another thing that we can improve, read more below:

 read more
After applying my changes above, you will notice that we call `updateOptions` in `useEffect` and `onChangeText`. This means, we are calling `updateOptions` twice every time we type something. Also, calling `updateOptions` in `onChangeText` is wrong because we need to wait for the state changes before calling `updateOptions` (like a `setState` callback). What we need to do instead is replace `updateOptions` to a plain `useEffect` that will run every time the props.reports, personalDetails, betas, or searchValue are changed.
This will improve the code and prevent unnecessary search logic on every props changes.
Let me know if we agree to do this.

As TaskAssigneeSelectorModal and TaskShareDestinationSelectorModal has a same Timing (and search) logic, we can apply the suggestion on both pages.

Since this already is External and has proposals, I put the below on hold pending this issue since it appears to be a dupe

https://github.com/Expensify/App/issues/19462#

Hey @greg-schroeder - I'm ooo this week so assigning a BZ buddy. Current status: we have a couple of proposals for @eVoloshchak to review. Don't expect you'll need to do much here before I get back next week but appreciate you keeping an eye on it.

I gotchu @bfitzexpensify! Proposals are linked below:

https://github.com/Expensify/App/issues/19772#issuecomment-1567504829
https://github.com/Expensify/App/issues/19772#issuecomment-1567795676

cc @eVoloshchak

I think we should proceed with @situchan's proposal. This is a simple and straightforward fix, we indeed just calling a cleanup function multiple times, while should only be calling once
🎀👀🎀 C+ reviewed!
cc: @arosiclair

Proposal
Please re-state the problem that we are trying to solve in this issue.
For a given task, the following console error appears when a user is selected and attempted to be assigned to:
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'startTime')
What is the root cause of that problem?
The root cause of the problem is that the check for the timestampData value for a key eventName during end performance timing is done before the promise to fetch the Environment returns
The code reference is here
What changes do you think we should make in order to solve the problem?
To fix the issue, the check for valid value of timestamp for the given eventName must be performed when the promise returns:
function end(eventName, secondaryName = '') {
    Environment.getEnvironment().then((envName) => {
        if (!timestampData[eventName]) {
            return;
        }

What alternative solutions did you explore? (Optional)

@eVoloshchak @arosiclair Please also have a look at this proposal too.

@arosiclair friendly bump on this one!

@rojiphil your solution is my alternative solution which is workaround. It's not acceptable since it doesn't fix the root cause.

@rojiphil your solution is my alternative solution which is workaround. It's not acceptable since it doesn't fix the root cause.

@situchan, IMHO,
a) My solution is not an alternative solution of yours as it is not in your proposed changes. But I do agree that it was an alternative that you tried and decided not to pursue and propose. I think, it was a workaround for you and, so, you did not propose.
b) I do not think that my proposed changes is a workaround. To me, it does not make any sense to check if timestampData[eventName] is valid before a promise function returns and, later, use it heavily after the promise returns. That is faulty. So, to me, that is the root cause of this issue.
Further, in this issue, I do not think that the performance timing feature itself has a bug that mandates us to change the way it is currently implemented. In fact, that may introduce bugs.
Anyways, I leave it to the discretion of C+ contributors to decide.

@rojiphil FYI: if you check other issues, there's chance of alternative solution to be accepted. Why do you think alternative solution cannot be one of proposed changes?
Btw, in this GH, the main root cause is on TaskAssigneeSelectorModal.js so the fix should also come from there.

Please also have a look at https://github.com/Expensify/App/issues/19772#issuecomment-1579268242 too.

@rojiphil, I think that's the same approach @situchan has proposed here
While this would fix the issue, I think it's better if we remove the wrong call to a function instead of returning early if timestamp is valid

I think @bernhardoj is actually closest to the mark here though doesn't seem completely correct. Effects only run after the component has rendered so we shouldn't start the timer in the effect. For example, @situchan's proposal is measuring how long the component is mounted not how long it takes to render. Also we have another call to end the timer onLayout here which I'm not sure is better/worse/same as stopping the timer using an effect.
@bernhardoj can you update your proposal to start the timer at the beginning of the render (top of the function) and do some testing to see if stopping the timer using onLayout or useEffect is better?

Stop timer on onLayout is required to measure until page is fully loaded.
And also need to stop timer in unmount. There might be case of page closed before onLayout is called on slow devices with high-traffic account.

@situchan's proposal is measuring how long the component is mounted not how long it takes to render

This is already logic happening on main. This issue is just about console error so can be out of scope.
The original PR author added it in component mount because there's no method available in functional component equivalent to constructor in class component.
If we need to fix measure logic as well, we can use useRef to call start timer at the top of function only once.

I even found out the case of starting timer in componentDidmount for class component:
https://github.com/Expensify/App/blob/fda1a9a8560c8b10de2739fd3475d1988c564a96/src/pages/home/sidebar/SidebarScreen/BaseSidebarScreen.js#L20-L30
So if we need to fix measure logic, should be fixed on all pages across the app. I think this can be definitely separate issue.

Replying to @arosiclair,
Updated. Stopping the timing at onLayout will result in longer time, which I think is better
useEffect: ~100
onLayoutL ~300
I agree with @situchan that it's currently inconsistent on how we measure it. So, I don't know whether we should handle all of them in a separate issue or we can just handle this one here. I'll leave it to @arosiclair

The timer in the BaseSidebarScreen is a bit different as it's measuring time across a couple different navigation components. I'm not sure anything is flawed with that so we can leave it as is for now. Lets just focus on TaskAssigneeSelectorModal and TaskShareDestinationSelectorModal .
Atm it seems the root cause of this issue is that we're timing the render incorrectly, so fixing that is certainly in scope. With that said, it sounds like onLayout occurs after mount so maybe this timer is supposed to be measuring layout time not render time?
@cdanwards you authored this in https://github.com/Expensify/App/pull/17992. Can you help clarify what we're trying to time in TaskAssigneeSelectorModal and TaskShareDestinationSelectorModal ? Atm it looks like we're incorrectly timing the render. Does that sound right?

I believe that measurement can be completely removed from TaskAssigneeSelectorModal and TaskShareDestinationSelectorModal.
I think the author just cloned SearchPage component and forgot to remove timing part or at least to rename measurement name:
https://github.com/Expensify/App/blob/d91fe14613a9d2f2224296350c8a1d5aee6b3174/src/pages/tasks/TaskAssigneeSelectorModal.js#L109
SEARCH_RENDER is for Search page. No reason for it being on task pages.
And on Search page, measurement starts in constructor, ends in onLayout.
As there's no method in function component equivalent to constructor in class component, author just put it in useEffect(() => {}, [])

hey @cdanwards, just making sure you saw https://github.com/Expensify/App/issues/19772#issuecomment-1584894483

Pinged Dan in slack

You are correct, @situchan. I was given the SearchPage as a template for this Modal. I wasn't aware that the CONST.TIMING.SEARCH_RENDER and the Timing were specific to the SearchPage.

Proposal
Updated

Looks good let's push those changes

@arosiclair @eVoloshchak I suggest to hold this issue a bit as we cannot test assign task flow without fixing https://github.com/Expensify/App/issues/20807. So I cannot add screenshots.
The PR to fix that issue is being actively reviewed. I keep watching that and will post here after merged.
Btw, here's draft PR for code review: https://github.com/Expensify/App/pull/20840

Thanks. That PR is merged but now not able to login (https://expensify.slack.com/archives/C01GTK53T8Q/p1686889937230319) so it's another blocker for testing.

@eVoloshchak PR is ready

Just noting here that I'm going to consider this eligible for the 3-day merging bonus, since it missed by just a few hours and was a little hamstrung with testing because of the log-in issues.

Offers sent out @ayazhussain79 @situchan @eVoloshchak

@bfitzexpensify, could you hold my payment till tomorrow, please?
I'll try to request the payment using NewDot instead of Upwork, need some additional setting up to do

Sure!

Not overdue, waiting for the first payment via NewDot to clear, after that will request a payment for this

This has been paid out🎉

Awesome! Let's close this out.


Fix json.hpp compilation issue with other typedefs with same name (Issue #1642)

While in our case, only the string case was affected, to be safe and allow the library to work with other unforeseen cases, all of the cases have been wrapped with parentheses.
Thank you @DyXEL and @edo9300
Fixes #1642

Pull request checklist
Read the Contribution Guidelines for detailed information.

[x]  Changes are described in the pull request, or an existing issue is referenced.
[x]  The test suite compiles and runs without error.
[x]  Code coverage is 100%. Test cases can be added by editing the test suite.
[x]  The source code is amalgamated; that is, after making changes to the sources in the include/nlohmann directory, run make amalgamate to create the single-header file single_include/nlohmann/json.hpp. The whole process is described here.

Coverage remained the same at 100.0% when pulling f4fca2d59ab9d02f5b602ef70f9955ec63b3cc6d on kevinlul:develop into 4fc98e0b34fb152497f0cd160e58c2f943b19b1e on nlohmann:develop.

Do you mean adding a test case to tests/ for this behaviour?

Yes. Best to unit-regression.cpp if this is possible.

@kevinlul Let me know if you need help on the test case.

It seems like boolean is already a definition somewhere under VS2015, including Windows headers?

Indeed - the error only occurs in the configuration where we include windows.h to detect exactly these kind of issues... I think it would be best not to mention boolean in the regression test.

Thanks!

🔖 Release item
This issue/PR will be part of the next release of the library. This template helps preparing the release notes.
Type

[ ] ✨ New Feature
[x] 🐛 Bug Fix
[ ] ⚡ Improvement
[ ] 🔨 Further Change
[ ] 🔥 Deprecated function

Description

Fixed an issue where typedefs with certain names yielded a compilation error #1642.


Documentation --> Display Strings

Under " A couple of things to note about display strings" you talks about "field specifiers." I don't know what a field specifier is. If you want people like me to be able to use ethslurp, you are going to have to include more educational material (like explaining what a field specifier is.

The audience will understand this.


Add location-based usage statistics and analytics

This was a part of the early installation process that I skipped back in April or May. Now that it seems like interest in this project has grown, I should probably implement any and all standard trim bells-and-whistles.
That includes the location-based IP usage statistics but also Google Analytics, Solr statistics, etc.
Bonus points for some sort of D3.js or other visualization rendering of these statistics.

We found out today, by using a non-CHOP device connected to a non-CHOP network (my iPhone), that the way GA collects information about users is by downloading a Javascript script that executes and sends information to GA from the client side, as in, the device/browser. Our CHOP devices on CHOP networks are somehow blocked from ever downloading that script to begin with.
We need to look into Solr stats, as I mentioned above. Unfortunately, this is another instance where it appears as though this feature is more robust in previous version of DSpace (6.x and below), but we can still at least retrieve page views, downloads, and manually-initiated workflow events.


Starting a service with sudo does allow it to run on user login

👋 Thanks for all of the amazing work on this project!
I'm using this service definition and running it as root using:
sudo brew service start hyper-focus

When I run this command I get the following output:
Warning: hyper-focus must be run as non-root to start at user login!

However, when the computer restarts, the process does run as root automatically! This is actually exactly what I want. It looks like when run as sudo homebrew creates a /Library/LaunchDaemons/homebrew.mxcl.hyper-focus.plist which starts the process at login, as root, automatically.
Should this message be removed? I can submit a PR for it, but I imagine it's there for good reason.

If you run it as root it runs on device startup. Without root it runs on user login. The difference is negligible unless you have a multi-user device.

@SMillerDev Ah, makes sense. Maybe adjusting the error message to indicate it will run on device startup is a good idea? Could I submit a PR for that?

I'll happily review a PR to clarify the wording


Better parsing of event duration

should pass more cases:

[x] should check on nullity of start date after parsing
[x] today > yesterday // end time should be greater than start time
[x] today 4pm < yesterday // should be invalid
[x] should give feedback to event duration after parsing
[x] default duration 1 hr
[x] improve on the test cases where it can fail as time progressed

With the use of tokeniser, the number 3 no longer relevant.
However, due to NLP, the behaviour of time passing is rather random. But will not continue improving it for this release.


twentyforseven should be "twentyforseven" not "twenty_for_seven"

In fact, an "u" is missing: it's twentyfourseven  (24-7)
I see that the fix is correct :smile:


Update to use the c3ChartsDefaults from Patternfly

Updated bower.son to pull from #master, this needs to be updated on
release (as usual but just making in clear).

LGTM


updated net version and it's deps

Update net version to fix eve

Codecov Report

Merging #518 (be89887) into release-1.8 (189d9a5) will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           release-1.8     #518   +/-   ##
============================================
  Coverage        66.23%   66.23%
============================================
  Files               38       38
  Lines             2079     2079
============================================
  Hits              1377     1377
  Misses             657      657
  Partials            45       45

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


custom class inheritance/constructor bug

There are multiple combinations of _init defined in inheriting & inherited classes that work/don't work and I tried documenting them in the attached project.
Open States/State.gd and States/Idle.gd and the attached script to DBG node and play with commenting/uncommenting the relevant parts
godot-dbg.zip

This is not really a bug. If you inherit the class, you need to define _init again and send the needed arguments to the parent class. That is:
# State.gd
var entity
func _init(e = null):
	entity = e

# Idle.gd
extends "State.gd"
func _init(e = null).(e):
	pass

# DBG
const Idle = preload("res://States/Idle.gd")
func _ready():
	var s = Idle.new(1)

See #3387 and #2193.

That makes a lot of sense, it needs to be better explained in the docs, cause the only entry about _init and inheritance (that I saw at least) is
func _init(args).(parent_args):
    pass

And it isn't clear that args can be sent through parent_args. In fact I though that parent_args can be only literals in this context.
I'm gonna keep this issue open for the docs.


feat: specifiy the single source of truth

Refs https://github.com/asyncapi/spec/issues/780

My editor automatically cleared some redundant whitespaces in the document that could be stripped. If it's a problem I can modify the PR and only provide the change in adding a sentence about single source of truth.

@char0n I don't think we should go with adding the notice with the link to the spec in all pages as you are doing here. Instead, I would say we add it only on each spec document: https://github.com/asyncapi/website/tree/master/pages/docs/specifications, as I suggested in https://github.com/asyncapi/spec/issues/780#issuecomment-1118587106

I think it should only go into the original markdown in spec repo, to clearly clarify that JSON Schema is not source of truth, just markdown itself
Here we just display it 1:1 in a nice HTML way. Not much different if compared to GitHub where in the end you also do not read markdown source but rendered HTML

I think it should only go into the original markdown in spec repo, to clearly clarify that JSON Schema is not source of truth, just markdown itself Here we just display it 1:1 in a nice HTML way. Not much different if compared to GitHub where in the end you also do not read markdown source but rendered HTML

+1 to this. There is only one thing to consider: released documents won't benefit from that statement, meaning we won't see such clarification until next version. However, we can edit published versions on the website as well (as mentioned in https://github.com/asyncapi/website/pull/743#issuecomment-1120852613). Just an idea.

it will be updated, example -> https://github.com/asyncapi/website/pull/589
we do update latest spec if there are editorial changes in spec with docs: prefix

it will be updated, example -> #589 we do update latest spec if there are editorial changes in spec with docs: prefix

But it's just only the latest spec, isn't? (correct me if I'm wrong). We should update all of them IMHO.

well, we never "backport" editorial changes to old specs, only improve latest

well, we never "backport" editorial changes to old specs, only improve latest

Fair enough 👍

closing this one, as I wrote, we do not do editorial changes in old spec versions,
if we think is needed, it should be discussed in spec dir and anyway, change should never be necessary in the website as it is a presentation layer, changes should go to spec only and be pushed out from there to website


The user can briefly create a task without assigning someone.

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Log into an account that has tasks enabled (tasks are in beta, so this'll probably in DEV).
Open a chat from the LHN (create one if it doesn't exist).
Click on the '+' sign in the composer and choose 'Assign task'.
Enter a title and optional description and then click 'Next' (ignore the premature error if it's still showing by the time this issue is on GH - I've already raised it in Slack).
Click on the green button at the bottom that says 'Confirm task' without changing anything.

Expected Result:
A task is not created and a warning is shown explaining why.
Actual Result:
A task is created briefly with a value of 0 shown inside the 'To' field. The task then disappears and is replaced by an infinite loading skeleton.
If you refresh the page after the infinite loading skeleton, you'll get a page that says, "Hmm... it's not here. You don't have access to this chat."
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.31-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/afa65353-89fb-48f7-b45f-d72c757b4a72
https://github.com/Expensify/App/assets/43996225/9df628f6-26e9-4fbe-b53a-41d69a8db1b8
Expensify/Expensify Issue URL:
Issue reported by: @Victor-Nyagudi
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1687085875676199
View all open jobs on GitHub

Closing since this is a dupe of this https://github.com/Expensify/App/issues/21361


Move Filtering and Pagination Logic to a common place

Currently pagination link building logic and filtering logic is in web-app component level [1]. We need to move this to a common place. E.g. identity-commons
[1] https://github.com/wso2/identity-api-user/blob/master/components/org.wso2.carbon.identity.api.user.application/org.wso2.carbon.identity.rest.api.user.application.v1/src/main/java/org/wso2/carbon/identity/rest/api/user/application/v1/core/ApplicationService.java#L142

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Doesn't work with Xcode 14.3

Please fill out as much known and relevant information as possible.
Version Information:

SF Proj iOS Version: 5.1.2
SF Proj iOS Source: CocoaPods
CocoaPods Version: 1.12.0
Xcode Version: 14.3
Device or Emulator: Device
iOS Version: 16.3.1
Other Relevant Libraries:

Expected Results:

What did you expect to happen?
Run HelloWorld app which includes sf-proj-ios (5.1.2) CocoaPods.

Observed Results:

What happened instead?
File not found: /Applications/Xcode.app/Contents/ Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/ arc/libarclite_iphoneos.a
How often does this occur? 100%.

Output:

Any logs, errors, or output messages?
File not found: /Applications/Xcode.app/Contents/ Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/ arc/libarclite_iphoneos.a

Steps to Reproduce:

Install Xcode 14.3.
Create HelloWorldApp.
Install sf-proj-ios CocoaPods.
Run.

Relevant Code:
// Code to reproduce the problem?

Test Files:

Links to any files needed for testing?

Additional Information:

Any additional configuration, data, or information that might help with the issue?

When I click Pods -> TARGETS -> proj4-ios -> Minimum Deployments iOS
iOS version is set to 8.0 by default when I install 'proj-ios' in a HelloWorld app.
After changing it to 11.0 or 12.0 manually the app runs fine. Can you guys change it so that 'proj4-ios' is set to 11.0 by default to support Xcode 14.3? Thanks.

It has been couple weeks, will you be able to change 'proj4-ios' to be set as 11.0 instead of 8.0 please? Thanks.

@bosborn It has been a month. Would you guys be able to change 'proj4-ios' minimum deployments target to 11.0 instead of 8.0 because Xcode 13.0 (Latest version) doesn't support minimum deployment target below 11.0.
When I install proj4-ios on app, I can just change min deployment from settings so it's fine. But for creating CocoaPods library, I cannot do that so it's a problem.

Released a proj4-ios <IP_ADDRESS> version with ios 11.0 platform declared in the podspec.
Used by new release proj-ios 1.0.5 and sf-proj-ios 5.1.3.

Thanks much!


Migration from rustc_serialize to serde

Related to issue #36.
My editors have triggered rustfmt for each edited file, should I remove formatting?

This is great, thank you!
(As you say, it would have been easier to review without the rustfmt diffs, it doesn't matter too much in this instance.)

@babariviere this is now on crates.io as version v0.5.0.

Nice thanks.


Change data transfer from PG to http api.

I have exposed the restful service at 6888 (mapped to the host_ip:6888).
API Endpoints
GET /api/crates: Retrieve information about all crates.
GET /api/crates/{name}: Retrieve details about a specific crate.

It's about #67.


Sysprep Unsupported Scenarios

Can we add a document here for unsupported scenarios to run sysprep:
https://support.microsoft.com/en-us/help/828287/unsupported-sysprep-scenarios

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

ID: 7d299c34-ffe1-b930-bace-f43c8d8217ca
Version Independent ID: b9eab64c-51a9-ad18-705c-15e553e0b2fe
Content: Create a managed image in Azure
Content Source: articles/virtual-machines/windows/capture-image-resource.md
Service: virtual-machines-windows
GitHub Login: @cynthn
Microsoft Alias: cynthn

Thanks for the feedback! We are currently investigating and will update you shortly.

@sandeepraichura Thank you for the feedback! There is already a link to the overview, and that is where the unsupported scenarios are documented now. But, just-in-case, I link directly to the subheading  for the unsupported scenarios as well. Changes should appear in the document tomorrow.
#please-close


Prevent typingctx arg from the signature in the docs

Fixes #444
Before:

After:

Failure doesn't seem to be related to this PR.


Feedback

Hello there Joel, I'm starting this Issue so we can all give you feedback on your project!

Please, don't forget to add the "alt" attribute to all media you have on your page, also filling it with descriptive words.
Also don't forget that the correct indentation for a css file is done with two spaces, "not tab spacing".

I Think the code is coming along very well. The only thing I might suggest is not using inline styling, like on line 103 of your index.html file:

You're viewing YouTube in English (US). You can change this preference below

It's good practice to use classes and style the element from your css stylesheet. Keep up the good work. 👍🏼


Different Fact types in one FactMap

Hello again.
Is it possible to include multiple object types in one FactMap, after setting the FactType in the ruleBuilder? Example:
I'm first building the rule with a FactType of Deduction.class:
 private RuleBuilder<Deduction,Boolean> getDeductionRuleBuilder(){     return RuleBuilder.create().withFactType(Deduction.class).withResultType(Boolean.class);   }
When I setup my FactMap, I have a Deduction and String object I want to pass in:
  private NameValueReferableMap getFactMap(Deduction deduction, String state) {     NameValueReferableMap facts = new FactMap<>();     facts.setValue("deduction", deduction);     facts.setValue("state", state);     return facts;   }
Here's an example rule I have defined:
    addRule(getDeductionRuleBuilder()       .when(facts -> facts.getOne().getType().equals(SOME_EQUALITY_CHECK))       .then((factMap, booleanResult) -> {         System.out.println(factMap.getStrVal("state"));         booleanResult.setValue(Constants.SOME_OTHER_CHECK.contains(factMap.getStrVal("state")));       }).stop().build());
So, when I execute the Rule, obviously the Deduction fact is retained, however the String object seems to get cut out of the factmap, and it returns false because it can't evaluate the "state" Fact.  I realize I could easily create a container object to hold the Deduction and String object.  However, I wanted to make sure there was no other way to create a FactMap of various object types to be used in a RuleBook.

It is possible.
Instead of
RuleBuilder.create().withFactType(Deduction.class).withResultType(Boolean.class);

you can do this
 RuleBuilder.create().withResultType(Boolean.class);

Using your example, the return type of getDeductionRuleBuilder would then be RuleBuilder<Object, Boolean>.
Adding the rule would then look like this
addRule(getDeductionRuleBuilder() .when(facts -> facts.getValue("deduction").getType().equals(SOME_EQUALITY_CHECK)) .then((factMap, booleanResult) -> { System.out.println(factMap.getStrVal("state")); booleanResult.setValue(Constants.SOME_OTHER_CHECK.contains(factMap.getStrVal("state"))); }).stop().build());

The issue you were running into is when you restrict a rule to a specific fact type, only facts of that type are available to the rule. If you want the rule to have all the facts given to the rulebook available, then don't specify a fact type. That's actually an intentional thing that allows you to think of rules in terms of a specific type of fact. Of course, sometimes you may want a rule to access multiple fact types. And in that case, just don't specify a fact type for the rule.


Switch from JSHint to ESlint

ESlint is a newer pluggable linter that does both the job of JSHint and JSCS (the JSCS team has actually joined the ESLint team)
This PR is both a translation of the existing JSHint rules and a set of fixes based on issues found. It is structured so that if there is a rule you want changed it should be easy for me to rollback the commit and update the .eslintrc
Let me know if you have any questions or want any rule changes

Your robot appears to be broken when I go to gerrit it says Agreement already submitted.

@brett19 can you look into what might be wrong with cb-sdk-robot?

@corbinu Usually this means that your email address used for the commit author doesn't match what you have registered in Gerrit.  If you want to take a look and fix that, that would be awesome.
Thanks, Brett

@brett19 I am sorry but I don't have an openID or a launchpadID and yes my email with github is different from from my git commit ID but we use Gitlab internally and don't want to mess up my work commits there either by changing it. I will see if there is something I can do, but this is not an easy process.

@corbinu you should be able to add your email address at http://review.couchbase.org/#/settings/contact after logging in.  It's also accessible from clicking on your name in the upper right, settings -> contact information.

@ingenthr Thanks done!

Recreated https://github.com/couchbase/couchnode/pull/62


Memory leak

What problem does this feature solve?
On the screen you can see the output of the Vue-component in the method destroyed. After destroy, the Vue-component continues to store a lot of data that remains in memory. This causes a memory leak.

These screens show the amount of data that is stored in memory when the routing changes (I use vue-router - v.3.0.1). The number of Vue-components is constantly growing.
Page 1

Page 2

Page 3

After that the memory usage goes up to 1Gb.
What does the proposed API look like?
Why is this happening?

reports


I've encounter following issues while I try to run elk on my mac

Problem description

Extra information

Stack configuration

Docker setup
<!-- Replace this comment with the full output of the `docker version` command. -->

<!-- Replace this comment with the full output of the `docker-compose version` command. -->

Docker logs
<!-- Replace this comment with the full output of the `docker-compose logs` command. -->

Empty issue, closing.


pull request for e2e test at 01/07/2017 23:56:09

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Added a few things

Added:

mobile toolbar icons for commands
ignore case for queries (helps on mobile which auto capitalizes)
allows for date format picker with a few options: YYYY-MM-DD, MM-DD-YYYY, and DD-MM-YYYY.
Added two new options to SettingsPlugin: toggle for allowing format changes (this is just for safety), and dropdown to pick one of the three.
Updated README to explain consequences of changing date format

Thank you for your contribution @KjellConnelly !
Would you mind splitting out the “mobile toolbar icons” and the “ignore case for queries” changes into their own PRs? That would help a lot and we could merge the simple changes quicker.
Please delete package-lock.json and make sure to only use yarn, not npm.
Also, please be patient with the PRs. My time is very limited, but I won’t forget about them!

Hi Martin!
Ok here's what I've done:

[x] Deleted package-lock.json and switch to using yarn
[x] added package-lock.json to .gitignore
[x] updated tests/Task.test.ts to test for all supported date formats (3 currently). Also remove duplicate code and made it easier to create new tests should you want to. All tests pass with yarn run test
[x] Ran yarn run lint and refactored until no warnings.

Unfortunately, I didn't make separate pull requests for those other two features. However, both features are in the first two commits for this pull request, and are extremely quick to review:

ignore case for queries: 1 line in src/Query.ts
mobile toolbar icons: 2 lines in src/Commands/index.ts

Alright, I just added some new info in README.md that describes how to use Daily-notes templates, and how Periodic Notes Plugin or Calendar Plugin can both be used to support the {{date+14d:YYYY-MM-DD}} syntax.

Thank you @KjellConnelly, but since this PR includes a lot of different additions, it now conflicts with #296. I will manually apply some of the changes from this PR and close it to have the discussion on custom date formats in #296.

I added the changes to commit 35494cde82bb38c902b9eb4d30dee161e18a1ef0 and added you as co-author. Thank you so much for your effort!


Path is off on latest build?

dofile used to execute files in the /mods/ folder, but it seems it doesn't any more?
I have to do e.g. dofile("bin/x64/plugins/cyber_engine_tweaks/mods/scope.lua")

i have a similar problem too, but maybe worse, it just doesn't load me the lua files, i tried to put them both in scripts and mods, but nothing, it tells me failed to execute dofile, runtime error, and that there is no such path .... yet I did everything to the letter as it says in the guide

i have a similar problem too, but maybe worse, it just doesn't load me the lua files, i tried to put them both in scripts and mods, but nothing, it tells me failed to execute dofile, runtime error, and that there is no such path .... yet I did everything to the letter as it says in the guide

I wonder if it's in relation to this other request?
https://github.com/yamashi/CyberEngineTweaks/issues/381

I wonder if it's in relation to this other request?
https://github.com/yamashi/CyberEngineTweaks/issues/381

Something has broken the pathing in v1.8.4
If you launch the game with admin privilege (If you use Vortex to launch your game), the starting path will be dofile("./plugins/cyber_engine_tweaks/mods/scope.lua")
If you launch the game normally, the starting path will be dofile("./bin/x64/plugins/cyber_engine_tweaks/mods/scope.lua")
To check your starting path you can type os.execute("start explorer .\\") in console.

Something has broken the pathing in v1.8.4
If you launch the game with admin privilege (If you use Vortex to launch your game), the starting path will be dofile("./plugins/cyber_engine_tweaks/mods/scope.lua")
If you launch the game normally, the starting path will be dofile("./bin/x64/plugins/cyber_engine_tweaks/mods/scope.lua")
To check your starting path you can type os.execute("start explorer .\\") in console.


Need a --version command

When typing one of:

dm version
dm --version
the display of the version info for both dm local binary and current remote should be displayed

We did this


Compiler error in unit tests on std::initializer_list

In variant_sequential_view_test.cpp, line 238, there's a unit test for std::initializer_list. With gcc 9.3, compiling this test fails on lines 451 and 440 of variant_data_policy.h, with "error: ‘new’ of initializer_list does not extend the lifetime of the underlying array [-Werror=init-list-lifetime]". It's a warning treated as an error. Given what the test is doing, I'm not sure this is the end of the world. I can't think of a situation where I'd be assigning an initializer_list that way. The warning is right, it's trying to new an initializer_list when according to cppreference "The underlying array is not guaranteed to exist after the lifetime of the original initializer list object has ended."
Possibly this should really be treated as a warning in this particular case.

I'm going to close this, because the "add github actions workflow & disable gcc9 warnings" commit fixed it.


Make WTForms a optional dependency

Codecov Report
Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (bb137c4) 82.78% compared to head (fe04973) 81.60%.

Files
Patch %
Lines

flask_ckeditor/__init__.py
50.00%
2 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #71      +/-   ##
==========================================
- Coverage   82.78%   81.60%   -1.19%
==========================================
  Files           3        3
  Lines         122      125       +3
==========================================
+ Hits          101      102       +1
- Misses         21       23       +2

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


Add way to check SIM card balance

From @nzola

(1) It is difficult to know from the Lokole device when the data credit is finished.
(2) When one buys data credit for the SIM inside the Lokole, one has to use USSD code on the phone to activate the data. Otherwise it would not work.

This could be done via gammu (code example).
Implementation notes:

To the admin page settings.html, add an element that displays the current SIM card balance and a form that enables the admin to submit a SIM card top-up code.
To actions.py add two new commands that back the elements in the settings page: one to check SIM card balance and one to top up the SIM card.
To views.py, add the glue to connect the admin page with the actions.

Suggested approach:
a) Insert a pay-as-you-go SIM card into a USB modem like Huawei MS2131i-8 and install gammu.
b) Manually experiment on the CLI with gammu commands to retrieve the SIM card balance and top up the balance.
c) Add code to actions.py that wraps the gammu CLI commands as described in 2) above. The code for StartInternetConnection can be used as a reference of an existing action that calls out to CLI commands.
d) Run a Python interpreter and experiment with the actions to ensure that the wrapping code works.
e) If the new action takes more than 1 second to run we'll have to run it outside of the http request/response cycle, so wrap it in tasks.py.
f) Follow steps 1) and 3) above to wire the action into the Lokole admin page.

@shaun https://github.com/gammu/python-gammu/blob/master/examples/service_numbers.py

@shaun https://github.com/gammu/python-gammu/blob/master/examples/service_numbers.py


Make range queries exclusive

The range queries are currently inclusive. We should change the end range to an exclusive one.

Closing this duplicate of #96


Minor: Clean up the code of MutableArrayData

Signed-off-by: remzi<EMAIL_ADDRESS>Which issue does this PR close?
None.
Rationale for this change
Make the code cleaner.
What changes are included in this PR?

use macro to avoid duplicate code.
use short circuit to calculate use_null
...

Are there any user-facing changes?
No.

Codecov Report

Merging #1763 (e3d25c6) into master (6e6a9e1) will increase coverage by 0.00%.
The diff coverage is 45.00%.

@@           Coverage Diff           @@
##           master    #1763   +/-   ##
=======================================
  Coverage   83.48%   83.48%
=======================================
  Files         196      196
  Lines       55923    55907   -16
=======================================
- Hits        46686    46676   -10
+ Misses       9237     9231    -6

Impacted Files
Coverage Δ

arrow/src/array/transform/mod.rs
87.41% <45.00%> (+0.56%)
:arrow_up:

arrow/src/datatypes/datatype.rs
65.42% <0.00%> (-0.38%)
:arrow_down:

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 6e6a9e1...e3d25c6. Read the comment docs.


Enhancement npm publish "skip if already exists option"

Quick suggestion here. We're deploying packages automatically using the npm task in publish mode.
It's really great, the only thing that's missing would be an option to "skip publishing if the package with same name and version is already on the feed" thus avoiding error and failing the release.

Thanks for this suggestion! I've added it to our backlog, so I'm going to close the Github issue.

Thanks, will you update that issue once it's implemented?

Sure. Full disclosure: I don't think we'll be able to schedule it in the remainder of this calendar year.


fix(app): DQA for pipette detach flow [RAUT-420]

Overview
This PR fixes spacing and sizing issues found while doing DQA on the detach pipette workflow.
Closes RAUT-420
Test Plan
Manually tested on the ODD via devkit.
Changelog

Added ODD style round corners to LegacyModal when displayed on the ODD
Corrected general spacing and fonts used in the GenericWizardTile
Increased size of animation in the pipette workflows

Review requests
Verify the detach pipette screens meet the design specs.
Risk assessment
Low
https://github.com/Opentrons/opentrons/assets/2960/88fdf774-c640-4701-a678-e61ab104187a

Sarah just merged a PR https://github.com/Opentrons/opentrons/pull/12973 that i think might have addressed some of your changes already?


Send subsegments separately from segments when the serialized size is larger than the UDP packet size limit

Issue #, if available:
#26
Description of changes:
Send subsegments separately from segments when the serialized size is larger than the UDP packet size limit. This is similar to how the DefaultStreamingStrategy behaves.
Segments occasionally can be too large and contain hundreds subsegments, despite the behavior of the DefaultStreamingStrategy class, when running with multiple threads. It is suspected that race conditions can lead to subsegments building up and not getting pushed into xray daemon by the time the segment is ended.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #344 (9410406) into master (6f29232) will decrease coverage by 0.12%.
The diff coverage is 0.00%.

:exclamation: Current head 9410406 differs from pull request most recent head a435ea1. Consider uploading reports for the commit a435ea1 to get more accurate results

@@             Coverage Diff              @@
##             master     #344      +/-   ##
============================================
- Coverage     58.95%   58.82%   -0.13%
  Complexity     1207     1207
============================================
  Files           131      131
  Lines          5065     5076      +11
  Branches        592      594       +2
============================================
  Hits           2986     2986
- Misses         1806     1817      +11
  Partials        273      273

Impacted Files
Coverage Δ

...n/java/com/amazonaws/xray/emitters/UDPEmitter.java
23.40% <0.00%> (-7.16%)
:arrow_down:

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 6f29232...a435ea1. Read the comment docs.


Fix versioneer configuration.

Update versioneer configuration like geopandas for which it does work in the context of package builds.
Ref: #1653

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 88.556%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2368

Relevant Lines:
2674

💛  - Coveralls

Thanks @sebastic !


when loading custom ply using the steps from tanks it doesn't get color

`python3
Python 3.6.9 (default, Oct  8 2020, 12:12:24)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

import numpy as np
import pptk
import plyfile
data = plyfile.PlyData.read('cloud.ply')['vertex']
xyz = np.c_[data['x'], data['y'], data['z']]
rgb = np.c_[data['red'], data['green'], data['blue']]
n = np.c_[data['nx'], data['ny'], data['nz']]
Traceback (most recent call last):
File "", line 1, in
File "/home/nvidia/.local/lib/python3.6/site-packages/plyfile.py", line 770, in getitem
return self.data[key]
File "/home/nvidia/.local/lib/python3.6/site-packages/numpy/core/memmap.py", line 331, in getitem
res = super(memmap, self).getitem(index)
ValueError: no field of name nx`

could you also extend on the installation issuees, please?
https://forums.developer.nvidia.com/t/building-pptk-on-xavier-how-to-get-through/160079


html/template: template.HTML being escaped (rather than included verbatim) sometimes

I've spotted a regression in html/template behavior in Go 1.9 Beta 2.
I investigated and was able to reduce it the following relatively minimal test case.
https://play.golang.org/p/BrsSxT5CQK
Output with go1.8.3:
Hello, gopher.

---

		Hello, gopher.

Output with go1.9beta2:
Hello, gopher.

---

		Hello, <strong>gopher</strong>.

I suspected this is caused by CL 37880, and I've confirmed that hunch. 9ffd9339da503b50571ec6806e5d6d2cf5d5912a is the first bad commit; its parent does not have the regression. /cc @stjj89 @rsc @mikesamuel @cespare
My understanding is that this is an unintended bug, because the commit message says:

html/template: panic if predefined escapers are found in pipelines during rewriting
Report an error if ...

But no panics/errors are reported. Only the output is different.
(Adding milestone Go1.9, please let me know if that's not correct.)

@stjj89

Thanks for reporting this. The problem is that {{renderHTML}} gets rewritten to {{renderHTML | _html_template_htmlescaper}} after template "hello" is autoescaped, but then gets further written rewritten to {{renderHTML | _html_template_htmlescaper | _html_template_htmlescaper}} after the main template is autoescaped, which leads to the overescaping.
9ffd933 removed some logic that would prevent this duplicate escaper from being inserted. I'm working on a fix right now.

Note that the reported issue only occurs because template "hello" is executed (and thus escaped) on its own, before being executed as a nested template in the main template. All is well if the main template is directly executed. I've added logic in https://golang.org/cl/47256 to account for these edge cases.


Storage: No module named google.protobuf/google.resumable_media

OS: Ubuntu 17.10
Python 3.6.0 :: Continuum Analytics, Inc
conda 4.5.4
conda list:
google-api-core           0.1.4
google-api-core           0.1.4                      py_0    conda-forge
google-auth               1.2.1                      py_0    conda-forge
google-auth               1.2.1
google-auth               1.5.0
google-cloud-core         0.28.1
google-cloud-core         0.28.1                     py_0    conda-forge
google-cloud-storage      1.6.0                      py_1    conda-forge
google-resumable-media    0.3.1
google-resumable-media    0.3.1                      py_0    conda-forge
googleapis-common-protos  1.5.3
googleapis-common-protos  1.5.3                    py36_0    conda-forge
I'm having an issue with trying to use gcloud storage in our docker environment (though some fellow devs have been having this issue locally as well lately). Here's an example of what's going on:
root@xxx:/# python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 12:22:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import google.protobuf
>>> import google.resumable_media
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'google.resumable_media'
>>>
[5]+  Stopped                 python

I'll also get another error concerning google.protobuf as well. Here's a partial traceback:
    from google.cloud import storage
  File "/opt/conda/lib/python3.6/site-packages/google/cloud/storage/__init__.py", line 37, in <module>
    from google.cloud.storage.batch import Batch
  File "/opt/conda/lib/python3.6/site-packages/google/cloud/storage/batch.py", line 29, in <module>
    from google.cloud import _helpers
  File "/opt/conda/lib/python3.6/site-packages/google/cloud/_helpers.py", line 33, in <module>
    from google.protobuf import duration_pb2
ModuleNotFoundError: No module named 'google.protobuf'

I install the gcloud libraries with conda (I've tried installing with pip as well, but same issue). Does anyone know what might be causing this issue? Thanks for the help.

Something about how you are installing the various packages is wrecking the google namespace setup.  I cannot reproduce in a fresh Python 3.6 virtualenv:
$ python3.6 -m virtualenv /tmp/gcp-5537
Using base prefix '/opt/Python-3.6.3'
New python executable in /tmp/gcp-5537/bin/python3.6
Also creating executable in /tmp/gcp-5537/bin/python
Installing setuptools, pip, wheel...done.
$ /tmp/gcp-5537/bin/pip install --upgrade setuptools pip wheel
Looking in links: file:///home/tseaver/.pip/wheels
Requirement already up-to-date: setuptools in /tmp/gcp-5537/lib/python3.6/site-packages (39.2.0)
Requirement already up-to-date: pip in /tmp/gcp-5537/lib/python3.6/site-packages (10.0.1)
Requirement already up-to-date: wheel in /tmp/gcp-5537/lib/python3.6/site-packages (0.31.1)
$ /tmp/gcp-5537/bin/pip install google-cloud-storage
Looking in links: file:///home/tseaver/.pip/wheels
Collecting google-cloud-storage
  Downloading https://files.pythonhosted.org/packages/d4/1a/8238dda1547b9b6156f4cfc7923558bb67d6c608a28d677d0dc070babd31/google_cloud_storage-1.10.0-py2.py3-none-any.whl (52kB)
...
Successfully installed cachetools-2.1.0 certifi-2018.4.16 chardet-3.0.4 google-api-core-1.2.1 google-auth-1.5.0 google-cloud-core-0.28.1 google-cloud-storage-1.10.0 google-resumable-media-0.3.1 googleapis-common-protos-1.5.3 idna-2.7 protobuf-3.6.0 pyasn1-0.4.3 pyasn1-modules-0.2.1 pytz-2018.4 requests-2.19.1 rsa-3.4.2 six-1.11.0 urllib3-1.23
$ /tmp/gcp-5537/bin/python
Python 3.6.3 (default, Oct  4 2017, 16:14:25)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import google.protobuf
>>> import google.resumable_media
>>>

Can you import the bare google package an report its path?

>>> import google
>>> google.__path__
['/opt/conda/lib/python3.6/site-packages/google']
>>>

It also seems like touch ./opt/conda/lib/python3.6/site-packages/google/__init__.py fixes the issue, but I'm still wondering if there's a better fix. I've had teammates who continue to run into issues even trying said fix.

Please see the Namespace packages recipe on conda-forge.

Please reopen if you can reproduce the issue in a fresh virtual environment (no conda, etc.).  E.g.:
$ python3.6 -m venv /tmp/gcp-5537
$ /tmp/gcp-5537/bin/pip install --upgrade setuptools pip wheel
$ /tmp/gcp-5537/bin/pip install google-cloud-bigquery
$ /tmp/gcp-5537/bin/python -c "import google.cloud.storage; import google.protobuf; import google.resumable_media"


Lutron button events firing twice for single-action buttons

Home Assistant release with the issue:
0.87.1
Last working Home Assistant release (if known):
n/a
Operating environment (Hass.io/Docker/Windows/etc.):
Docker
Component/platform:
Lutron (RadioRA2)
Description of problem:
The new button events improperly fire twice for single-action buttons.  Once when they are pushed, and once when they are released.  The pylutron library makes no promises about not sending a released event for single action buttons.
Additional information:
This behavior is specifically found using Pico remote keypads with Lutron RadioRA2.  Simulating those same buttons from the Lutron android app does not cause release events to fire.

@koreth FYI.
I believe the fix is to properly filter out release events for single action buttons.

Oh, interesting -- I don't have any of those keypads so didn't know about that behavior. If you have it available, can you attach the section of your repeater's XML that describes that keypad, so I can see how to differentiate it from other keypads in the code? Ideally there's some way to tell at initialization time whether or not I'm going to get press/release events.
Two approaches could work: Filter out the release events as suggested, or make the buttons fire the correct "pressed" and "released" events if the keypad gives us that information.
The fact that we don't get release information from the other keypad types is a flaw in Lutron's design, I think, since it means you can't build any automation triggers for "hold the button down for 1 second" kinds of actions. From that point of view, my slight inclination is to expose all the available information (i.e., fire separate pressed/released events whenever possible).
On the other hand, the inconsistency with virtual keypads in the Android app, and with other physical keypad types, would probably be annoying and confusing for users who don't want to dive into the details.
My initial version of the button events feature simulated a press/release pair for the single-action buttons (it just fired both events one after the other) which would have made this easier to model consistently. I wonder if that's the least-wrong approach: change it so you get both events from all keypad buttons, but some of the release events don't reflect how long the button was physically held down.

I've uploaded the XML for a Pico Remote here: https://pastebin.com/qXTgcBWz
You'll see how the XML is a lie, in that it tells you that you only get
press events for On, Off, and Favorite, however the console clearly records
release events and thus pylutron sends release events to callbacks.
On Wed, Feb 20, 2019 at 6:38 AM sgrimm-sg<EMAIL_ADDRESS>wrote:

Oh, interesting -- I don't have any of those keypads so didn't know about
that behavior. If you have it available, can you attach the section of your
repeater's XML that describes that keypad, so I can see how to
differentiate it from other keypads in the code? Ideally there's some way
to tell at initialization time whether or not I'm going to get
press/release events.
Two approaches could work: Filter out the release events as suggested, or
make the buttons fire the correct "pressed" and "released" events if the
keypad gives us that information.
The fact that we don't get release information from the other keypad types
is a flaw in Lutron's design, I think, since it means you can't build any
automation triggers for "hold the button down for 1 second" kinds of
actions. From that point of view, my slight inclination is to expose all
the available information (i.e., fire separate pressed/released events
whenever possible).
On the other hand, the inconsistency with virtual keypads in the Android
app, and with other physical keypad types, would probably be annoying and
confusing for users who don't want to dive into the details.
My initial version of the button events feature simulated a press/release
pair for the single-action buttons (it just fired both events one after the
other) which would have made this easier to model consistently. I wonder if
that's the least-wrong approach: change it so you get both events from all
keypad buttons, but some of the release events don't reflect how long the
button was physically held down.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/issues/21235#issuecomment-465602476,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKAI2pFEz76IjNW50vxt4m4_bbAjqaNWks5vPV3IgaJpZM4bEtmL
.


Add fix to symlinked packages

This pull request fixes https://github.com/rollup/rollup-plugin-node-resolve/issues/67.
Fix adds support for the symlinked packages which are used by Lerna and some other multi-package tools.
I'm not sure whether these lines can be improved. If yes, please give me some insight about the cases that this improvement doesn't solve.
I added pretty simple test which describes the problem very well.
The solved problem:
Package A requires B and C
Package B requires C
All packages are symlinked between each other.
Now references to files in package C differs between A and B which breaks e.g singletons, instanceof checks and equality checks.
Thanks!

I have no idea why the error is thrown by the CI in this PR.
1) rollup-plugin-node-resolve resolves symlinked packages:
     SyntaxError: Use of const in strict mode.
      at Function (native)
      at executeBundle (test/test.js:17:11)

https://github.com/rollup/rollup-plugin-node-resolve/pull/85#issuecomment-282745725

Thank you! Sorry for the delay, released as 2.1.0

Thank you too for the merge ;)


use the FNV 128a from the standard library

It doesn't really make our code easier, but at least we can get rid of a dependency.

Codecov Report

Merging #1266 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1266      +/-   ##
==========================================
+ Coverage   90.92%   90.93%   +0.01%
==========================================
  Files         118      118
  Lines        8032     8038       +6
==========================================
+ Hits         7303     7309       +6
  Misses        483      483
  Partials      246      246

Impacted Files
Coverage Δ

internal/crypto/null_aead_fnv128a.go
95.12% <100%> (+0.84%)
:arrow_up:

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 00833c0...9836b0a. Read the comment docs.


How to generate raw volumetric files

I saw that you provide volumetric data of the objects as .raw files. Such data is then converted into .mat format, and then into .pickle format. I was wondering how you create such .raw file starting from x-ray views of an object. Is it something generated as output by TIGRE toolkit? Thank you.

Hi, thanks for your interest,
The raw files are real captured by CT scanner. They are available at https://klacansky.com/open-scivis-datasets/
If you find our repo useful, please help us star it, thanks :)

Hi, thanks for your interest,
The raw files are real captured by CT scanner. They are available at https://klacansky.com/open-scivis-datasets/
If you find our repo useful, please help us star it, thanks :)


I think i could use the "complete" event but how do i know which observer fired?

Observers accept a third argument, and object, that configures observer execution. The defer boolean option configures when the observer runs.

When false (default), the observer before the DOM is updated.
When true, the observer runs after the DOM updated.

So it would look like:
this.observe('path.to.observed.data', function(newValue, oldValue){
  // code to run
}, {
  defer: true
});

Thanks! Its working with defer: true


For True/False prompt: area to enter a statement/story/etc. And lever to set whether it is true or false

068a7586fa34ad76b27260fe995e46766aa955ee

42acc0833ea775c79add77ef5d48831a6c483169


Complete COLRv1 and bitmap color rendering with tiny-skia

Currently, we have an example of rendering with tiny-skia, but it does not support COLRv1 (because tiny-skia is missing certain gradient types) and it does not support bitmap color glyphs.

Some notes:

The bitmap glyphs are (were?) a limitation of skrifa not having good support for extracting the bitmaps
The COLRv1 was indeed because of tiny-skia missing gradient types. There was mention of these being implemented in some comments starting here, but if any work on that has been started then I don't think it is public

(@razrfalcon is gradient types in tiny-skia still something you're planning to look into at some point?)
Previously written up here

Yes, I do plan adding Sweep gradients eventually. But no timeline in mind.


Remove extraneous functions and calls from usafacts

Fixes #419.  Some legacy functions and calls were not removed from the USAFacts indicator.

I'm getting some test failures on test_pull.py, all of the form TypeError: Can only merge Series or DataFrame objects

I'm getting some test failures on test_pull.py, all of the form TypeError: Can only merge Series or DataFrame objects

I can't replicate this; did you just do git fetch sgsmob usafacts?

I'm getting some test failures on test_pull.py, all of the form TypeError: Can only merge Series or DataFrame objects

I can't replicate this; did you just do git fetch sgsmob usafacts?

Ok it was on my end, may have been on an old branch or something. lgtm


Is there anyway to ask for the players name?

Kni does not yet have this feature.
In fact, all variables in Kni today are integers. It is statically typed by virtue of having only one type. I have contemplated supporting other types including strings and enum types (integer aliases with nominal values).
To support strings, the first step would be to extend the type system. This would probably also extend to requiring variable declarations and adding a notion of lexical scope, as a prelude to having modules. This would all in all entail adding a linker phase, which is also needed for stories that span multiple files with independent lexical scopes.
There is also the matter of syntax. I expect that reading a string would look something like:
> variable

# or

variable>

The type of the variable would need to be declared somewhere, to distinguish integer and string storage, or inferred somehow.
! name Text
  buttons Count
  type Color enum red green blue
  color Color

Support for reading string input has landed on master.
What's your name?
> Name

Your name is {(Name)}.


[hack day] create documentation around debugging heat

There are a lot of new commands that are preferred with the introduction of the unified CLI (uCLI). It would be nice for some documentation to exist that shows the openstack equivalent of the typically documented heat client.

At the end of the day, this task is probably more about doing documentation around the TripleO upstream documentation, and making sure that all the commands listed in are using the uCLI methods, rather than the direct client methods (like heat, nova, neutron, etc)


Remove NfaWrapper

This PR removes NfaWrapper and moves its content to Nfa struct as discussed in meetings and in #53 and #55.
As of now, the following changes were introduced:

NfaWrapper is deleted.
Alphabet is now a member variable of Nfa struct, passed as a pointer to allow sharing alphabets.
Introduces basic key-value store for state dictionary and additional attributes the user might want to store together with the NFA.
State dictionary currently does not have any default implementation and will be implemented only when we have a need for it and know precisely how we need the state dictionary to behave.
Python binding has been reworked to reflect the above-mentioned changes. Particularly, how to work with the new alphabets.

This PR resolves #53 and #55 can be safely closed.
Additional work to be done in later PRs

Support multiple epsilon symbol specified by the user (see the TODO in this PR) by adding a member variable to the Alphabet. The user needs to be able to define:

that there are no epsilon symbols at all, not even the default epsilon symbol at all by setting the epsilon symbols to empty set,
multiple epsilon symbols without the default epsilon symbol by setting the epsilon symbols to required symbols excluding the default epsilon symbol,
multiple epsilon symbols, including the default epsilon symbol by setting the epsilon symbols to required symbols including the default epsilon symbol,

We can solve this with std::optional<EpsilonSymbols>, which is, however, C++17 class template. Alternatively, we can use pointers again with nullptr representing the no epsilon states option (not a big fan, to be honest) or try to reimplement the behaviour of std::optional in C++14 (see for example this suggestion).

Decide whether to implement some basic state dictionary for the prepared key-value store, when the need arises.

I have no problems with PR. However, have we agreed that if there is no alphabet provided by a user we are going to allocate a new alphabet? We wanted to do it this way to prevent forcing the user to know internals of Nfa. Moreover, I think we agreed that we want to make non sharing of alphabet a default option.

After numerous discussions about alphabets and their role in our library, there are more improvements coming for this PR. As of now, all the discussed changes are implemented and when we agree on the above discussed reverse_translate_symbol_with_default() placement, I will push the changes for review.

Will be DirectAlphabet/IntAlphabet used as default when a user does not provide any other introduced in this PR or in some other?

@Adda0 is this PR finished or are you gonna add here something?

The PR is not finished yet. I will push more changes here. Everything we have talked about yesterday and earlier regarding this PR is implemented, but I want to revise the changes before pushing here.

Will be DirectAlphabet/IntAlphabet used as default when a user does not provide any other introduced in this PR or in some other?

In this PR. It is one of the upcoming changes.

All the changes discussed in our meeting were implemented.
However, I have read a bit about default arguments for virtual methods which, even if possible, are highly error-prone, and it is generally recommended to not use them at all. I think we might want to return to this discussion for just a bit (not even on the meeting this time) to discuss whether we want to allow specifying the default symbol in virtual method reverse_translate_symbol(), or whether we might want to choose a different approach to solving this feature. For more info, see, for example, question about default parameters on SO.

@martinhruska and I have decided that due to the potential dangers of default arguments on virtual methods, we will not allow specifying default symbol for the translation of missing symbol. The added functionality will be reverted.

@martinhruska and I have decided that due to the potential dangers of default arguments on virtual methods, we will not allow specifying default symbol for the translation of missing symbol. The added functionality will be reverted.

Yes, I think you decided well. We could rethink whether to move this functionality to Python (there are no dangers there), but I dislike having different API between binding and library. So,
just for your consideration.

I agree that we can return to this feature in the future. As you say, I would rather not change behaviour between Python binding and C++ implementation, so for now, let us leave it on removing this feature entirely.

I think PR is done now therefore I'm going to merge it to devel.