Determine future of dithering (i.e. replace Paint.enableDithering)

EDIT as of 2023-08-08. Here is @matanlurey's proposal: https://github.com/flutter/flutter/issues/112498#issuecomment-1670528820.

This flag was added in https://github.com/flutter/flutter/issues/44134, however from a quick investigation we can find no usages of this in google3.  If this isn't being used, we should deprecate and remove it.
@ds84182  do you know what happened to the usage of dithering? Did this solve the problem it was designed to solve or did this get lost somehow. Or am I looking wrong?

See also: https://github.com/flutter/flutter/issues/109740

Unfortunately we found that dithering did not work as intended with overlapping translucent gradients.
Additionally we also ran into issues with screenshot tests with dithering enabled. It ended up not being worthwhile to enable because all of our goldens would need to be updated. It's also worth noting that it was originally a per-Paint opt-in, which would've been easier for us to integrate as only our gradients need dithering.
I've separately investigated smoothing out our gradients using blue noise in a shader, which turns out to be a lot more effective than Skia's dithering, even when blending translucent gradients together.

I use the enableDithering flag even in my apps, because otherwise color banding occurs, for example between two shades of gray.
The gradient used in the screenshot:

Container(
  height: 200,
  decoration: BoxDecoration(
    gradient: !disableGradient
        ? LinearGradient(
            colors: [
              Color(0xff262626),
              Color(0xff0f0f0f),
            ],
            begin: Alignment.bottomLeft,
            end: Alignment.topRight,
            stops: [0.0, 0.4],
          )
        : null,
    borderRadius: BorderRadius.only(
      bottomLeft: Radius.circular(20),
    ),
  ),
);

To illustrate the problem here are two screenshots:
On an iPhone X with enableDithering = false strong color banding is visible on the device it looks stronger than on the screenshot.

On an iPhone X with enableDithering = true no color banding is visible (on the screenshot you can see it easily though).

I would like this flag to remain, but maybe my use case is too rare?
@jonahwilliams

I would like this flag to remain, but maybe my use case is too rare?

I've personally run into this problem when working with a designer on another product.  It isn't acceptable for Flutter developers to have to go back to their designers and tell them to rework the look because Flutter can't cleanly render their design.  Popularity shouldn't dictate API.  Let's keep it.

Alternatively, we could remove the flag and automatically do dithering.  That's probably better since many users won't be savvy enough to know to look for it.  The problem with that is the aforementioned golden image tests.  We'd have to make sure it was deterministic so that that it doesn't fiddle with those.
I'm not sure why Skia's implementation is non deterministic.

Update: Engine team has consensus we'd like to remove the global/static Paint.enableDithering.
I've assigned this issue to myself to propose/recommend a path forward (with a realistic migration timeline for users).

I've investigated a bit, and here is what I think we should do:
Proposal

[ ] Add an instance property as bool ui.Paint.dither (engine)
Document that not every paint operation uses dithering, and there is no guarantee that every backend implements
dithering identically. It might be nice also to document a motivating example (why to use dithering), and alternatives (i.e.
custom shaders). If true, it supersedes the (static) variable Paint.enableDithering.

[ ] Add similar properties as bool painting.{Linear|Radial|Sweep}Gradient (framework)
If set, it plumbs through to dart:ui (instead of being a global) during the paint operations.

[ ] Deprecate ui.Paint.enableDithering (engine)
Updating the documentation, and announcing a short (?) deprecation period

[ ] Remove, as a breaking change, ui.Paint.enableDithering (engine).

Alternatives
These can sometimes be mixed-and-matched with the proposal above, and are not mutually exclusive.

Add dithering to specific UI objects, like Gradient.linear, instead of a Paint.dither flag.
If we don't expect dithering to apply to all/most paint operations, it feels strange to tie to the Paint object.

Provide an "easier" way to set dithering across a widget tree, i.e. as an InheritedWidget
This would be an easier migration path off Paint.enableDithering, but would have performance ramifications.

Enable dithering by default, and instead have the ability to disable dithering.
This would be a larger breaking change, and it's not clear that it would be well received.

Use some sort of heuristic, at least in Impeller, on providing dithering automatically
In this case, it becomes bool? dither, and if null uses heuristics. Interestingly enough, Paint.enableDithering
claims we do this (I'm guessing because Skia might?) by stating:

If false, the default value, dithering will be enabled when the input color depth is higher than the output color depth. For example, drawing an RGB8 image onto an RGB565 canvas.

I'm open to this, but would need some help figuring out a good approach (if done poorly it's another big breaking change).

Feel free to suggest different alternatives and/or problems :)

fwiw when I made the change the dither flag was original on ui.Paint and I had planned to add a dither property to the gradient classes on the framework side. But there was some pushback for that implementation.

I would rather not add any more properties to ui.Paint if we can avoid it. There are several issues with the Paint API design:

Like you point out, its not obvious which properties apply to which drawing commands. dithering or no dithering is really a property of the gradient, which could be set in the gradient constructor.
Because of the whole dart/engine split, every single bit of data in the paint object needs to be copied into an engine DlPaint or ImpellerPaint object - so adding more properties only used by some drawing commands increases the cost of all commands. In some edge cases (e.g. drawing 500 rectangles), the cost of copying paint data can be the most expensive operation performed.

While I'm in favor of the dithered gradient, I think the we should consider making this the default behavior and not supporting configuration of the value.

I'm supportive. I think there is a reasonable question around "but what about images", but I can't find any strong motivating examples.

Do you mean images w.r.t golden testing?

Alternatives

Add dithering to specific UI objects, like Gradient.linear, instead of a Paint.dither flag.
If we don't expect dithering to apply to all/most paint operations, it feels strange to tie to the Paint object.

This seems like an interesting approach. It requires considering what other operations might obey a dithering flag. However, surely a developer would want to fine-tune any such dithering implementation, no? A simple flag on a Gradient creates more lerping issues, as exist with transform and tileMode.
I have solved both lerping issues and added dithering, also with true lerping, through a custom ShaderGradient implementation. What I discovered was that adding dithering was essentially one step away from allowing "texturing" support for Gradients. That is, instead of a hash/rand function, I use a blue noise sampler and allow the user to swap out the sampler and control its scale and strength. Now the dithering is more than only functional, it is also tuneable to taste/art direction.
All said, I do not know how dithering is implemented in Flutter. I have read the Gradient shader programs and see no reference to it, so I'm sure it is some other deeper interaction... but I do know that bools do not lerp well haha

This seems like an interesting approach. It requires considering what other operations might obey a dithering flag.

We're not going to support dithering on any other commands besides the gradients.

Dithering does apply to all drawing commands in the software renderer. Especially useful when your framebuffer has lower precision than RGB8.

Eh, for desktop and mobile sure. But for custom embedders without a GPU it's useful.

To be clear, "we" here = "supported platforms": https://docs.flutter.dev/reference/supported-platforms.

@jonahwilliams:

Do you mean images w.r.t golden testing?

Yes, edited.

While I'm in favor of the dithered gradient, I think the we should consider making this the default behavior and not supporting configuration of the value.

I'm supportive. My only reason for proposing gradient-specific flags is that we can divorce ourselves from having to make sure dithering always is the right choice for every gradient, and I think (?) it solves the problem you've outlined with adding data to the Paint object.

@matanlurey

To be clear, "we" here = "supported platforms": https://docs.flutter.dev/reference/supported-platforms.

It is a supported platform, as the most common target for custom embedders is Linux.
If the embedder API is not a "supported platform", maybe it should not be depended on or exposed.
If the software renderer is not part of the "supported platforms", then the existing software fallback (when OGL, Angle, etc. fail to initialize) should be removed.
@jonahwilliams

Because of the whole dart/engine split, every single bit of data in the paint object needs to be copied into an engine DlPaint or ImpellerPaint object - so adding more properties only used by some drawing commands increases the cost of all commands. In some edge cases (e.g. drawing 500 rectangles), the cost of copying paint data can be the most expensive operation performed.

The dither property on ui.Paint already exists today, but its private. I would rather see it merged with the data offset for isAntiAlias, turning it into a bitflag. This cost is marginal compared to the expensive individual draw calls that occur for drawing 500 individual rects.

@matanlurey for golden testing I'm inclined to not care at all if its difficult to create scubas, given that their absue has caused us nothing but problems. That said, the Skia software backend has a deterministic rendering flag we enable - so we could always force disable dithering if that is enabled.  Or we could only enable dithering by default in Impeller. Since there is no facility for golden testing with flutter_tester with Impeller we don't need to wory about for now.

Updated proposal with @jonahwilliams (I'll leave the previous comment for posterity):

Flip ui.Paint.enableDithering to default to true (previously false).
We aren't considering this a breaking change, as it's changing pixels and not code from compiling.

Mark ui.Paint.enableDithering @Deprecated with a note it will be removed after Impeller ships on Android.

Then (much later), remove ui.Paint.enableDithering.

I'll send out a PR to get started with 1 and 2 shortly.

Enabled by default SGTM, thank you. I really appreciate it. Another thing to note: It'll be useful for RGBA8 framebuffers too when Flutter gets floating point color support.

Only potential caveat is that this may do bad things for scuba, so we may need to compile in a branch where we force this off in the flutter_tester binary.

Thanks! I'll coordinate with the internal team on what might be the best way to roll this in.

I sure am glad the Gradients are getting a small amount of much-needed attention here. Of course published packages can always accomplish the "extra goals" better anyway.
For example, using a generated ramp texture (with no buffers available and forgoing arrays) with much higher than 256x1 resolution can all but eliminate banding, too, if you're willing to have a more expensive Gradient—which I am.

Update: This is still a WIP.
In https://github.com/flutter/engine/pull/44730 and https://github.com/flutter/engine/pull/44912, I modified the Skia backend to only respect dithering of gradients (which is what the Impeller backend will do), but otherwise made no other changes.
Next step will be flipping the default (https://github.com/flutter/engine/pull/44705), which is itself pending google-internal verification.

After a short baking period I'll finalize cleaning this up.


Bluetooth: Mesh: no space to store ccc cfg

Describe the bug
I will occasionally see the "no space to store ccc cfg" issue. The output to the console looks like this:

When the "no space to store ccc cfg" issue does show up, the node becomes useless. It cannot open bearer anymore. Once I turn the node off then back on, however, the node acts normally again.
To Reproduce
Quite difficult to reproduce but if I have 2 nodes and I play with the nrf provisioning app and unprovision and provision the nodes randomly and wait 10 minutes then repeat the process, I notice that the issue will show itself eventually.
Expected behavior
A clear and concise description of what you expected to happen.
Impact
To me this is a show stopper because it results in the node becoming useless and I think it messes with the entire mesh network.
Logs and console output
My prj.conf file:
J-Link Log Viewer
#CONFIG_UART_CONSOLE=n
#CONFIG_HAS_SEGGER_RTT=y
#CONFIG_USE_SEGGER_RTT=y
#CONFIG_RTT_CONSOLE=y
#CONFIG_LOG_BACKEND_RTT=y
#CONFIG_LOG_STRDUP_BUF_COUNT=20
#CONFIG_LOG_STRDUP_MAX_STRING=80
#CONFIG_MAIN_STACK_SIZE=512
#CONFIG_BT_RX_STACK_SIZE=2048
#CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
#CONFIG_BT=y
#CONFIG_BT_OBSERVER=y
#CONFIG_BT_BROADCASTER=y
#CONFIG_BT_DEBUG_LOG=n
#CONFIG_BT_MESH_GATT_PROXY=y
#CONFIG_BT_PERIPHERAL=y
#CONFIG_BT_MESH_PB_GATT=y
#CONFIG_BT_MESH_PB_ADV=y
#CONFIG_BT_DEVICE_NAME="LIGHT"
#CONFIG_BT_MESH=y
#CONFIG_BT_MESH_APP_KEY_COUNT=1
#CONFIG_BT_SETTINGS=y
#CONFIG_FLASH=y
#CONFIG_FLASH_PAGE_LAYOUT=y
#CONFIG_FLASH_MAP=y
#CONFIG_FCB=y
#CONFIG_SETTINGS=y
#CONFIG_SETTINGS_FCB=y
#CONFIG_BT_DEBUG_LOG=y
#CONFIG_BT_MESH_DEBUG=y
#CONFIG_BT_MESH_DEBUG_ACCESS=y
#CONFIG_BT_MESH_DEBUG_MODEL=y
#CONFIG_BT_MESH_DEBUG_TRANS=y
#CONFIG_BT_MESH_DEBUG_NET=y
#CONFIG_BT_MESH_DEBUG_CRYPTO=n
PWM START
#CONFIG_PRINTK=y
CONFIG_PWM=y
#CONFIG_PWM_LOG_LEVEL_DBG=y
PWM END
#CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
#BT_CTLR=BT_CTLR_TX_PWR_PLUS_8
from prj.conf of mesh
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
CONFIG_BT_SETTINGS=y
CONFIG_FLASH=y
CONFIG_FLASH_MAP=y
CONFIG_NVS=y
CONFIG_SETTINGS=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_CTLR_DUP_FILTER_LEN=0
CONFIG_BT_CTLR_LE_ENC=n
CONFIG_BT_DATA_LEN_UPDATE=n
CONFIG_BT_PHY_UPDATE=n
CONFIG_BT_CTLR_CHAN_SEL_2=n
CONFIG_BT_CTLR_MIN_USED_CHAN=n
CONFIG_BT_CTLR_PRIVACY=n
CONFIG_BT_PERIPHERAL=y
CONFIG_BT=y
CONFIG_BT_TINYCRYPT_ECC=y
CONFIG_BT_L2CAP_RX_MTU=69
CONFIG_BT_L2CAP_TX_MTU=69
CONFIG_BT_L2CAP_TX_BUF_COUNT=5
CONFIG_BT_MESH=y
CONFIG_BT_MESH_MODEL_EXTENSIONS=y
CONFIG_BT_MESH_RELAY=y
CONFIG_BT_MESH_FRIEND=y
CONFIG_BT_MESH_PB_GATT=y
CONFIG_BT_MESH_PB_ADV=y
CONFIG_BT_MESH_GATT_PROXY=y
#CONFIG_BT_MESH_LOW_POWER=y
#CONFIG_BT_MESH_LPN_SCAN_LATENCY=30
#CONFIG_BT_MESH_LPN_RECV_DELAY=40
#CONFIG_BT_MESH_LPN_POLL_TIMEOUT=300
CONFIG_BT_MESH_SUBNET_COUNT=2
CONFIG_BT_MESH_APP_KEY_COUNT=2
CONFIG_BT_MESH_MODEL_GROUP_COUNT=2
CONFIG_BT_MESH_LABEL_COUNT=3
CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_MESH_DEBUG=y
#CONFIG_BT_MESH_DEBUG_PROV=y
CONFIG_BT_MESH_DEBUG_PROXY=y
#CONFIG_BT_MESH_DEBUG_BEACON=y
#CONFIG_BT_MESH_DEBUG_NET=y
#CONFIG_BT_MESH_DEBUG_TRANS=y
#CONFIG_BT_MESH_DEBUG_SETTINGS=y
#CONFIG_BT_MESH_DEBUG_LOW_POWER=y
#CONFIG_BT_MESH_DEBUG_FRIEND=y
#CONFIG_BT_MESH_DEBUG_MODEL=y
#CONFIG_BT_MESH_DEBUG_ACCESS=y
#CONFIG_BT_MESH_DEBUG_CRYPTO=y
#CONFIG_BT_MESH_DEBUG_ADV=y
UART STUFF FOR SENSOR
CONFIG_UART_CONSOLE=n
CONFIG_USE_SEGGER_RTT=y
CONFIG_RTT_CONSOLE=y
CONFIG_LOG_BACKEND_SWO=n
CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_RING_BUFFER=y
#CONFIG_BT_MAX_PAIRED=1
Environment (please complete the following information):
MacOS
Additional context
Some stuff I've noticed includes:
I reset node 1 and try to provision the sensor node and it gets stuck at trying to get composition data and my logs for node 2 tells me no space to store  ccc cfg. And literally node 2 is broken now so I need to turn off and back on and now I can get composition data. And now I can’t reset node 2 with my app. But if I reset the node 1 first then try to reset the node 2, I am able to reset.

I've been able to recreate the issue by flashing samples/bluetooth/mesh project onto nrf52832 chip (west build nrf52dk_nrf52832). I uncommented BT_MESH_DEBUG_PROV=y and BT_MESH_DEBUG_PROXY=y from prj.conf.
I then go on the nRF mesh app on iOS and do the following:

Provision then reset then provision a few times. (Not sure if this step is necessary)
Keep in provisioned state for 15 minutes.
Reset the node then try to provision again. You should now see the “no space to store ccc cfg” message printed to the console and your node will now become unusable.

It's also printing "bt_mesh_proxy.gatt_proxy_advertise: Connectable advertising deferred (max connections)
Maybe the will mean something to your team

@johnsmithecon Thank you for the updated way to reproduce this scenario.
The 15 minutes was a good indicator that the privacy configuration of the phone was part of the problem. I was able to reproduce this faster by power-cycling my phone in order to trigger a new RPA.
The problem is that the GATT provisioner service is unregistered while the peer is still disconnected.
Then the CCC configuration of the peer will not be cleared on disconnect anymore.
After resetting the node the service will be added, and the CCC will be "restored", even though the peer is disconnected.
Once a connection is made with a new RPA then there are no space to store a new CCC cfg.


Typo:  "image" should be "images" in for loop.  Error occurs otherwise.

It looks like after this for loop was run successfully, the 's' in 'images' somehow got cut off and committed this way.

Oops there are conflicts now, could you please take a look? Otherwise I can do it tomorrow, no problem!

Crap, I don't have write access to do the "Resolve conflicts".  But it's literally just changing 'Image' to 'Images' in a for loop. so whatever is outside of that change can overwrite whatever else was introduced by me...

Cool, no problem, I'll try to fix it.


Fix some debuggers not correctly showing exception stacks

From:

To:

Discovered this mostly by accident, but it seems like having the crashed thread exit before the debugger does its thing causes the stack trace to not display correctly.
Scenarios I've tested:

Throw in DrawableHitObject.load() single/multi-threaded.
Throw in DrawableHitObject.Update() single/multi-threaded.
Throw in DrawableHitObject.load() with TestSceneOsuPlayer.TestConstructor.

This doesn't launch your debugger but that seems to just be a function of how nunit works since it runs all test code within exception-safe blocks.

Weird, I've tested the three scenarios described above on lazer master without this PR checked out and all cases seemingly gave me stacks even without this change applied...

Me too. Perhaps this is only a problem with using a local o!f checkout...

I'll close this issue for now then, and revisit if any weird exception cases come up again.


Always mark the file is unsaved after clicking Command + s to save the file.

VSCode Version: Code - Insiders 1.4.0-insider (e3758d2cdaae78082a08a45ae28ea1bed5f47e8c, 2016-08-01T14:05:40.554Z)
OS Version: Darwin x64 15.6.0

Steps to Reproduce:

Change some file in the editor.
Click command+s to save the editor.
The file is always marked as unsaved.
When I close this file, the dialog popped up that needing to save the file again.

I am very sorry to hear you are having issues with VS Code. I wonder if this issue is being caused by an installed extension. Can you try to run VS Code without extensions? From the command line, execute: code --disable-extensions and try your steps again to see if it reproduces. If you see it is an issue with the extension, please file it against the extension repository itself.

Yes. With the  --disable-extensions, I can not reproduce this issue. Could you please tell me which extension is the one which leading this issue:

@jrieken @alexandrudima can you help him?

I would blame one of the formatter extensions (js-css-htm-formatter)


Use Parent_Child instead of Parent[Child] for generated intermediate type

In the OpenAPI specification, it states that these are the only valid characters for a component name:
A..Z a..z 0..9 . _ -

From https://swagger.io/docs/specification/components/.
As such, Poem doesn't generate conformant component names right now. This PR changes the generation from Parent[Child] to Parent_Child. I feel this is the best option, - and . are generally special characters in some languages and that would make the client generation less predictable.
We should bump the minor version for this one since it's a breaking change.

Thanks! 🙂


Add target use cases and maybe user personas.

Suggested Improvement
The design would benefit from remaining anchored on why it matters to people.

We'll use the discussion at Zeboot to inform this.


Expose random seed through CLI

Desired behavior

It should be possible to pass a custom seed to the random number generator from the CLI. For example:
gz sim --seed 123 my_pseudo_random_world.sdf
Alternatives considered

Don't use the CLI and instead instantiate the simulator through a custom C++ program. This way, the seed can be passed to ServerConfig::SetSeed:
https://github.com/ignitionrobotics/ign-gazebo/blob/49fb65fc2a079303bfe47f0a92983179363e0f04/include/ignition/gazebo/ServerConfig.hh#L307-L309
Implementation suggestion

Add a --seed option to cmdgazebo.rb.in
Pass it as an argument on runServer
Call ServerConfig::SetSeed

Additional context

It looks like we supported the --seed option on Blueprint, see https://github.com/ignitionrobotics/ign-gazebo/commit/fe9cbdfc6f09cd72450842768af0d74344fda379. But we missed it when migrating from server_main.cc to ign.cc in https://github.com/ignitionrobotics/ign-gazebo/commit/7dbc19e6ab3d5789819cd3855cd5445e78b70d80.

Addressed here : https://github.com/gazebosim/gz-sim/pull/1618


notify doesn't work

I'm trying to use the notification endpoint with notify=True but notifications never happen. I was wondering if it was a bug or something simple I'm missing.
Here's my call:
room.notification('my message', notify=True, color=color)

Tracing down the code here's my data  in hypchat/__init__.py(70)post()
'{"color": "green", "message": "my message", "notify": true, "message_format": "html"}'

It's valid json, I can json.loads on it and get True for notify.

What's the server response you get?

I'm going to assume that this issue is resolved.  Please feel free to comment again if this needs to be opened back up.

Sorry, I never found the time to trace deeper. If I have the time I'll do some tracing myself, and perhaps submit a pull request.


python3Packages.bx-py-utils: disable a broken test on darwin

Description of changes
ZHF: #230712
https://hydra.nixos.org/build/220928189
The dependency, jaraco-abode has already broken.
https://hydra.nixos.org/build/220927131

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

@ofborg build python3Packages.bx-py-utils python3Packages.bx-py-utils.passthru.tests

Result of nixpkgs-review pr 234730 run on aarch64-darwin 1

2 packages failed to build:

python310Packages.jaraco-abode
python310Packages.jaraco-abode.dist

4 packages built:

python310Packages.bx-py-utils
python310Packages.bx-py-utils.dist
python311Packages.bx-py-utils
python311Packages.bx-py-utils.dist

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

Result of nixpkgs-review pr 234730 run on aarch64-darwin 1

2 packages failed to build:

python310Packages.jaraco-abode
python310Packages.jaraco-abode.dist

4 packages built:

python310Packages.bx-py-utils
python310Packages.bx-py-utils.dist
python311Packages.bx-py-utils
python311Packages.bx-py-utils.dist

Result of nixpkgs-review pr 234730 run on x86_64-darwin 1

2 packages failed to build:

python310Packages.jaraco-abode
python310Packages.jaraco-abode.dist

4 packages built:

python310Packages.bx-py-utils
python310Packages.bx-py-utils.dist
python311Packages.bx-py-utils
python311Packages.bx-py-utils.dist


disable_warnings disables all robot info, warn, debug messages

Hi,
When I create a session like
Create Session	somename    https://${IP}:${PORT}	auth=${auth}	disable_warnings=1
it kills globally all robot info, warn, debug messages.
Only Error level is show.
I tried to suppress this with it and it work but with the above side effect:
unexpected error: C:\Python27\lib\site-packages\urllib3\connectionpool.py:852: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings   InsecureRequestWarning) C:\Python27\lib\site-packages\urllib3\connectionpool.py:852: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings   InsecureRequestWarning)
After some digging I figured out only this is what I need for that
requests.packages.urllib3.disable_warnings()
But this is only active if disable_warnings is True and verify is False.
I'm not sure what other kinds of warnings should be disabled by this ... override?
            logging.basicConfig() # you need to initialize logging, otherwise you will not see anything from requests             logging.getLogger().setLevel(logging.ERROR)             requests_log = logging.getLogger("requests")             requests_log.setLevel(logging.ERROR)
But the Help, for me,  is miss leading
       disable_warnings Disable requests warning useful when you have large number of testcases

@StefanIGit Thanks for looking into this, could you please submit a pull request with proposed changes?

The thing is I'm not sure if the that is/was the idea behind the "disable_warnings" option.
My expectation for an option like this in a robot library is, disable warnings of that library only (including all imported libraries like here urllib I think)
Here's the pull request https://github.com/bulkan/robotframework-requests/pull/183
I have not enough experience  with requests / REST APIs so I cannot tell if this is a bad way, but if works for the default verify=False which seems to me like "I do not care about the cert, go away" so this warning should not be displayed.

For the "kill all robot logger settings" thing, I did some research and this is what I came up with.
It adds the logging library to a class but does not dictate the way of logging.
Basically it adds by default a /dev/null logger and if the user of a script wants logging she/he can
configure the logging library and be happy.
and it shows how to silence a logger, useful for paramiko :)
`### LoggingInClastTest.py ###
import logging
class myclass():
'''
Awesome example how to use logging is a library
'''
def __init__(self):
    '''
    So the init here it will be execute when a new instance is created like
    thing = myclass()
    '''
    # give Logger a nice name so you know where the logoutput comes from in logfile and mayby disable it, like paramiko
    #self.logger = logging.getLogger(__name__) # use name on file
    # or set manually
    self.logger = logging.getLogger('NameOfmyClass')

    # If you have more that one file in your package e.g. testApi.sshShell.py
    # then you could name your logger this way, so all loggers are grouped so you can
    # config / set log level for the complete package with one line see # make logger "NameOfmyClass" silent
    # self.logger = logging.getLogger('NameOfmyClass.sub name'+__name__)

    # add "log to  /dev/null" if the main program does not use logging
    self.logger.addHandler(logging.NullHandler())
    # this is how the logger is used in the class
    self.logger.info('Ole ole it looks almost working :D')

def dostuff(self):
    '''
    a function of the class it can / should be called by the main script...
    '''
    self._insideJob()
    self.logger.error('This should nerver happen... Mariia did something')
    self.logger.debug('What the F... is goning on here?')
    self.logger.critical('oO we will all DIE!!!!!11!1 no more candy')

def _insideJob(self):
    '''
    this function should not be called from outside of the class

    '''
    self.logger.warn('This can happen but.... who cares :)')

someScript.py ### using the LoggingInClastTest lib
Using the class without logging
import LoggingInClastTest
print 'Start no logging'
thing = LoggingInClastTest.myclass()
thing.dostuff()
print 'End no logging'
Using the class with logging
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(name)-20s %(levelname)-8s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
logging.info('Start with logging')
newthing = LoggingInClastTest.myclass()
newthing.dostuff()
make logger "NameOfmyClass" silent
this makes all logger starting with "NameOfmyClass.XXXXX" silent
logging.getLogger("NameOfmyClass").setLevel(logging.CRITICAL)
logging.info('Start with only crit class logging')
`

Hmm but I'm not sure how to apply it to this lib, it uses a lot of logging ways.
I did not yet fully understand the python logging library and the robot logger.
RequestsKeywords.py line 94, I know where this comes from
       self.builtin.log('Creating session: %s' % alias, 'DEBUG')
line 183 from robot.api import logger
        logger.info('Creating Session using : alias=%s, url=%s, headers=%s, \
                    cookies=%s, auth=%s, timeout=%s, proxies=%s, verify=%s, \
                    debug=%s ' % (alias, url, headers, cookies, auth, timeout,
                                  proxies, verify, debug))

line 115... the part I do not understand, I can just remove the 2 logging lines and disable_warnings=True
works as expected, it disables the self signed cert warnings but I still get warn and debug from my custom libs.
But why?
        if disable_warnings:
            #logging.basicConfig() # you need to initialize logging, otherwise you will not see anything from requests
            #logging.getLogger().setLevel(logging.ERROR)
            requests_log = logging.getLogger("requests")
            requests_log.setLevel(logging.ERROR)
            requests_log.propagate = True

Closed as there wasn't any further updates


tunnel service repeatedly prompts for keychain access

Testing #183700

Download Insiders zip from https://code.visualstudio.com/insiders and move it to /Applications
Ensure the following,

code-insiders tunnel status
no tunnel process is currently running

Run code-insiders tunnel service install and see the following prompt popup repeatedly when just clicking Allow

"Always Allow" is the way to go here. The CLI will need repeated keychain access to check for, read, and store access/refresh tokens over time.

What about creating a custom keychain configured for the tunnel service to avoid repeated prompts ? If the service process owns the keychain it should be able to perform operations in it once it has proven the initial identity to the user


Error - Could not run aider on existing git repo

Using the latest version of aider and the script
cd /correct/path/to/existing/git/repo
export OPENAI_API_KEY=sk_correct_api_key
aider --model gpt-4-0125-preview

I get the following error. I can confirm that the network is fine and that there are credits for the API_KEY.
Does aider tries to send any information about the git repo first time that is run - Could this error happen because the git repo is large?

Thanks for trying aider and filing this issue.
It looks like there is a problem connecting to a server involved with the tiktoken library. Either your local network environment is preventing the connection or the server was down.

That error message appears to have nothing to do with the repo size. It an an HTTP connection error. The attempt to make an HTTP connection is not succeeding within the allotted time.

OK, thank you I'll try tomorrow and double check that there are no network related obstacles. Thank you for aider, I watched couple of videos on it and I'm eager to try it.
PS - recently I worked with another python/openai related library which was also displaying similar network errors http 404 but actually the root cause was totally unrelated just that the root error was wrapped/displayed as network related error. I saw the root error only after I used curl to call the same end point API.

Hello again,
This morning it is still failing with the same error message as the days before.
From the same command line interface from where aider is not working I did a successful curl request to the https://api.openai.com/v1/chat/completions api so I don't think there is a network error.
In the context of aider what is the role of the tiktoken library executed at the time of
aider --model gpt-4-0125-preview ?
do you know what would be the equivalent request url command which aider/tiktoken is executing and which I can use curl to test in the same way I tested https://api.openai.com/v1/chat/completions ?

I did couple of more investigations and found this
Could that be the reason? Did you see this before?

I'm going to close this issue for now, but feel free to add a comment here and I will re-open or file a new issue any time.


Conduct interviews with ESG companies

It's time to conduct interviews with ESG Companies! This card can stay in progress until this sprint's interviews are completed.
Acceptance criteria:

[x] Obtain User Engagement Consent Form
[x] Conduct interviews

Thank you so much @jaimiebutton !


Nodes remain in Active state for sometime before going to Provisioning state when a cluster is deployed

What kind of request is this (question/bug/enhancement/feature request): bug
Steps to reproduce (least amount of steps as possible):

on 2.5.3
Deploy a cluster - 3 etcd/control and 2 worker or 1 worker and 3 etcd/control
All the nodes remain in active state for a minute or two(varies, does NOT happen always) and then the nodes go into Provisioning state. Few nodes still remain in Active state - issue logged - https://github.com/rancher/rancher/issues/30346

Note:
This does not happen always
Other details that may be helpful:
Does not happen in 2.4.8
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): 2.5.3
Installation option (single install/HA): HA

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): node driver DO
Kubernetes version (use kubectl version):

1.19(any)

closing this as this is same as https://github.com/rancher/rancher/issues/30346


Improve videochat accessibility

[x] Automatically transcribe chat messages
[x] Transcription respects mic muted property
[ ] Allow people to enable machine translation
[ ] Think about whether text-to-speech is valuable? (The usecase: someone who doesn't want to speak can have their stuff said in videochat, instead of other people having to read it. I'm not sure this is worth building, but validation/research is worthwhile)
[ ] Allow people to turn off transcription?
[ ] Add appropriate cognitive services subscriptions to the automatic deployment

This is awesome.
https://user-images.githubusercontent.com/821238/107131922-f4747780-68a8-11eb-83e5-f614867ba55f.mov
Pending pushing the rough version of this code until I build us a method of embedding client-side secrets in the build but not on GitHub, so I don't leak our cognitive services keys. Honestly might be easiest to build a "secret keys" server endpoint rather than a complicated build step.

I just made a dedicated cognitive services endpoint, since that's what we're doing with both ACS and Twilio video

In terms of letting people opt-out of captions: I don't think there's a valid privacy/consent reason to let people opt-out of generating captions.
There may be times we want consumers of captions to be able to turn off a given user's captions (if they're e.g. particularly noisy and useless). The easiest way to do this is to tie it to muting someone's audio, but I suspect there's value in separating those (e.g. someone has background noise that's difficult for you, so you want to mute it, but you still can/want to read their captions)

Some thoughts returning to this:

I don't think  we care about supporting text-to-speech. The a11y case is covered by screen readers, and I think "robo-read text messages in video chat" is probably noisy. The latter could be a valid test -- maybe I personally want to enable TTS on my client so I don't miss text chats
I don't think we want individual people to be able to disable their captions for others. You're in the space, deal with it.
Open design question: if Alice mutes Bob's audio, should Alice see transcribed text messages from Bob? My instinct is yes (and wanting to hide those falls under an actual user mute/block feature), but worth thinking about.


iosevka: 20.0.0 -> 21.0.0

Diff: https://github.com/be5invis/iosevka/compare/v20.0.0...v21.0.0
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Superseded by #222023


Unable to use ipcRenderer in EF + TS + React without nodeIntegration: true

Preflight Checklist

[x] I have read the contribution documentation for this project.
[x] I agree to follow the code of conduct that this project follows, as appropriate.
[x] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Issue Details

Electron Forge Version:

6.0.0-beta.54

Electron Version:

11.2.3

Operating System:

macOS 10.15.7

Expected Behavior
I am using Electron Forge with TypeScript and React. I attempted to import "electron" into my renderer.tsx file because
I want to have a functionality that allows a button click event to communicate with the main process.
// renderer.tsx
class Button extends React.Component
{
    constructor(props: unknown)
    {
        super(props);
        this.onClick = this.onClick.bind(this);
    }
    onClick(): void
    {
        Electron.ipcRenderer.send("button");
    }
    render(): JSX.Element
    {
        return (<button onClick={this.onClick}>run</button>);
    }
}

// index.ts
function button(): void
{
    console.log("Button clicked");
}
Electron.ipcMain.on("button", button);

// package.json
"mainConfig": "./webpack.main.config.js",
"renderer": {
    "config": "./webpack.renderer.config.js",
    "entryPoints": [
        {
            "html": "./app/index.html",
            "js": "./app/renderer.tsx",
            "name": "main_window"
        }
    ]
}

Actual Behavior
Electron starts the app, but the renderer process crashes due to failing to import Electron in the renderer.tsx file. The error given in the console is
Uncaught ReferenceError: require is not defined
    at Object.electron (external "electron":1)
    at __webpack_require__ (bootstrap:789)
    at fn (bootstrap:100)
    at Object.<anonymous> (renderer.tsx:5)
    at Object../app/renderer.tsx (renderer.tsx:38)
    at __webpack_require__ (bootstrap:789)
    at fn (bootstrap:100)
    at Object.0 (module.js:22)
    at __webpack_require__ (bootstrap:789)
    at bootstrap:856

This issue can be fixed by setting nodeIntegration: true when creating the window, however this is a security risk and is heavily discouraged.
To Reproduce
The repository here should be able to reproduce this issue.

If you wish to use ipcRenderer when nodeIntegration is `false, you'll need to use preload scripts.
FYI, this isn't a issue that's specific to Electron Forge. If you need more assistance, please use one of Electron's community forums.

@malept it would be good if you could point to a specific answer on the above question. I am facing the same issue.

This is not Electron Forge specific, however there will be a guide on using IPC in the official Electron docs, so look out for that!

The creator of the secure-electron-template explains this well in the template's doc here.
Then there's the documentation for using contentBridge in the official docs.

Using preload option provided by @electron-forge/plugin-webpack  could solve this problem
In package.json
"plugins": [
        [
          "@electron-forge/plugin-webpack",
          {
            "mainConfig": "./webpack.main.config.js",
            "renderer": {
              "config": "./webpack.renderer.config.js",
              "entryPoints": [
                {
                  "html": "./src/index.html",
                  "js": "./src/renderer.js",
                  "name": "main_window",
                  "preload": {
                    "js": "./src/preload.js"
                  }
                }
              ]
            }
          }
        ]
      ]

preload.js
const { ipcRenderer, contextBridge } = require("electron");

contextBridge.exposeInMainWorld("electron", {
  notificationApi: {
    sendNotification(message) {
      ipcRenderer.send("notify", message);
    },
  },
  batteryApi: {},
  fileApi: {},
});

Main.js
const createWindow = () => {
  // Create the browser window.
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: false,
      contextIsolation: true,
      worldSafeExecuteJavaScript: true,
      preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
    },
  });

  // and load the index.html of the app.
  mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY);

  // Open the DevTools.
  mainWindow.webContents.openDevTools();
};

ipcMain.on("notify", (_, message) => {
  new Notification({ title: "Notification", body: message }).show();
});
/

app.jsx
import * as React from "react";
import * as ReactDOM from "react-dom";

class App extends React.Component {
  componentDidMount() {
    electron.notificationApi.sendNotification("Finally!");
  }
  render() {
    return
contextBridge
;
  }
}

ReactDOM.render(<App />, document.body);

The above method works with the React+Webpack template.


MS Syntax fails to show latex and images when exported as PDF

The first one was created with the MS Doc Syntax, the latter was with ad-note
Would this be fixable? I have quite a bit of pages that need to be exported as pdfs so this is a huge personal issue.

Obsidian has implemented MSDoc-syntax callouts to the latest insider build as a core feature, so this syntax has been removed from Admonitions.


Change text color

It should be  [font 2 color] #9D9D9D

Please add your planning poker estimate with ZenHub @rachelhox


⚠ RPC server - Conflux has degraded performance

In a124a43, RPC server - Conflux ($CONFLUX_RPC_URL) experienced degraded performance:

HTTP code: 0
Response time: 0 ms

Resolved: RPC server - Conflux performance has improved in 6a2e315 after 6 minutes.


OrderedDictionary insert(at:)

OrderedSet provides an insert(at:) function to insert an element at a specific index. It would be really helpful to be able to this for OrderedDictionary too, inserting a new key/value at a specific index.
My use case for this is essentially to maintain a SortedDictionary, but until that's available I was hoping to be able to make do with an OrderedDictionary.

Sorry, just realised this is the updateValue family of functions.


[feature/v1-025] Added fetch Courses methods, global recreated pages style

This pull request includes:

Added Fetch courses list logical;
Create types for work with data;
Rewrote styles-bugs in CoursesList page, Course components, Image Componenet etc.;
Fill some new feature into styled files as like grid response, @media, new breakpoints;
Removed style props and imports/exports  in some components

UPD Resolved scroll problem and fix overflow hidden content bugs


Getting products with variation details in bulk?

Hi all,
Adding an integration for WooCommerce to our app, sellers are using our system to manage all their inventory.
I'm using the REST API as documented here: https://woocommerce.github.io/woocommerce-rest-api-docs/#list-all-products
We need to retrieve the list of products + variations (including details) for our sellers. I can get the products with minimal API calls by using the total_number to enumerate:
while current_position < total_products_count
  get("products", :per_page => 100, :offset => current_position).parsed_response
  current_position += 100
end

However the variations array for each product object is just showing the ID: "variations"=>[5993]
I tried using the include param for get products again to minimise calls:
get("products", :include => variation_ids, :per_page => 100, :offset => current_position).parsed_response

But variations are not retrieved with this endpoint so the results are empty.
To be clear, if id=5993 is a variation, then:
get("products/5993").parsed_response

works and retrieves the data, but
get("products", :include => [5993]).parsed_response

does not.
How can I get the full list of variations with details without pinging the server for each product? The only relevant call I can see is woocommerce.get("products/22/variations").parsed_response but that is impractical to cycle through hundreds if not thousands of products to get details for each variant separately.
Any options for this? We don't have access to modify anything on the server, we have to use the vanilla API.

Temporary solution for anyone else that comes across this issue: Use the legacy API and the following code:
# Ruby solution
gem "woocommerce_api"

# Init the object:
woocommerce = WooCommerce::API.new(
  site_url,
  woocommerce_key,
  woocommerce_secret,
  {
    version: "v3" # note, DO NOT pass in wc_api:true else you'll end up back at the current REST API.
  }
)

total_product_count = woocommerce.get("products/count").parsed_response["count"]
# Requesting 100 per page, so depending on the total_products, page through to get total product list
current_position = 0
current_page = 1
while current_position < total_product_count
  products = woocommerce.get("products?filter[limit]=100&page=#{current_page}").parsed_response["products"]
  current_position += 100
  current_page += 1
  # do whatever with the products, eg: add to a total_products array, etc.
end

I don't like mixing the two APIs, but this is a stop-gap solution until a better endpoint is released in the next version. This is still preferable to pinging the server hundreds or thousands of times to get all the variation details if you need to grab the full product listings.

Temporary solution for anyone else that comes across this issue: Use the legacy API and the following code:
# Ruby solution
gem "woocommerce_api"

# Init the object:
woocommerce = WooCommerce::API.new(
  site_url,
  woocommerce_key,
  woocommerce_secret,
  {
    version: "v3" # note, DO NOT pass in wc_api:true else you'll end up back at the current REST API.
  }
)

total_product_count = woocommerce.get("products/count").parsed_response["count"]
# Requesting 100 per page, so depending on the total_products, page through to get total product list
current_position = 0
current_page = 1
while current_position < total_product_count
  products = woocommerce.get("products?filter[limit]=100&page=#{current_page}").parsed_response["products"]
  current_position += 100
  current_page += 1
  # do whatever with the products, eg: add to a total_products array, etc.
end

I don't like mixing the two APIs, but this is a stop-gap solution until a better endpoint is released in the next version. This is still preferable to pinging the server hundreds or thousands of times to get all the variation details if you need to grab the full product listings.


malformed css file can cause a hang

incomplete unicode character can cause the parser to fail and spin.

fix in r4389

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 5 Dec 2014 at 6:43

Fixed in https://github.com/pagespeed/mod_pagespeed/commit/780c03cf3affae21f408cdfd304f5aeefe353c3c


Use memset_s in place of memset

A good practice
Especially important in ui_string.c where we are using memset for partially clearing the buffer.

Not supported in ledger SDK


Global upload limit

Hi.
At this right moment I have three (concurrent) uploads to GD, almost 5M each, so almost 15M in global, playing for being "awarded" with a ban.
I had already set up the parameter for individual uploading at 8M but it doent's apply when there's more than one.
I think it would be a useful tool having a global limit parameter.
TIA.

Not sure how it is supposed to work. You can set limits for individual transfers if needed. If you hit your remote daily limit you just continue next day. What would be in practical terms benefit of knowing how much data you transferred to specific remote?

Many! Another vote for up/down global/session statistics on a status bar ;-)

Not sure how it is supposed to work. You can set limits for individual transfers if needed. If you hit your remote daily limit you just continue next day. What would be in practical terms benefit of knowing how much data you transferred to specific remote?

Thinking again, I think my request can be accomplished with the schedule feature that it's in beta stage, if I'm not wrong.

Thanks to coronavirus I was away from laptop recently but now back. I have few more bugs to fix then will look into new features

Thanks to coronavirus I was away from laptop recently but now back. I have few more bugs to fix then will look into new features

Glad that you are safe!


Link to page

Pre-Flight checklist

[ ] Screenshots and design review for any changes that affect layout or styling

[ ] Desktop screenshots
[ ] Mobile width screenshots

[ ] Migrations

[ ] Migration is backwards-compatible with current production code

[ ] Testing

[ ] Code is tested
[ ] Changes have been manually tested

[ ] Settings

[ ] New settings are documented and present in app.json
[ ] New settings have reasonable development defaults, if applicable
[ ] Opened issue for DevOps regarding necessary configuration changes to deployed environments

What are the relevant tickets?
(Required)
What's this PR do?
(Required)
How should this be manually tested?
(Required)
Where should the reviewer start?
(Optional)
Any background context you want to provide?
(Optional)
Screenshots (if appropriate)
(Optional)
What GIF best describes this PR or how it makes you feel?
(Optional)

Codecov Report

Merging #915 (cde91f6) into master (9edba6a) will increase coverage by 3.30%.
The diff coverage is 95.83%.

@@            Coverage Diff             @@
##           master     #915      +/-   ##
==========================================
+ Coverage   91.63%   94.94%   +3.30%
==========================================
  Files         188       92      -96
  Lines        7015     2451    -4564
  Branches     1251      540     -711
==========================================
- Hits         6428     2327    -4101
+ Misses        511      124     -387
+ Partials       76        0      -76

Impacted Files
Coverage Δ

static/js/lib/ckeditor/plugins/ResourcePicker.ts
23.80% <ø> (ø)

static/js/lib/ckeditor/plugins/constants.ts
100.00% <ø> (ø)

static/js/query-configs/websites.ts
98.96% <ø> (ø)

static/js/components/widgets/MarkdownEditor.tsx
81.63% <83.33%> (+0.78%)
:arrow_up:

...tic/js/components/widgets/ResourcePickerDialog.tsx
100.00% <100.00%> (ø)

...ic/js/components/widgets/ResourcePickerListing.tsx
97.43% <100.00%> (+0.06%)
:arrow_up:

static/js/constants.ts
96.77% <100.00%> (+0.22%)
:arrow_up:

videos/tasks.py

videos/admin.py

websites/site_config_api.py

... and 93 more

Continue to review full report at Codecov.

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

@alicewriteswrongs or anyone: There was a note in the issue (#902):

Should the short code be a resource short code, or something else?

This PR is using the resource short codes. I don't have a great sense of the consequences of using resource short codes "or something else". But the resource short codes were working automatically.

 Chris Chudzicki

 Chris Chudzicki

@ChristopherChudzicki so yeah, for this we want to just use the resource_link shortcode, it is now slightly mis-named (should be more of a content_link or something like that) but I think it's ok to not worry too much about that 🙂

 Chris Chudzicki


Add displayName to RouteChangeAnnouncement

The displayName is used by React in debugging messages. Adding the display name satisfies the eslint rule react/display-name.

[...] you don’t need to set it explicitly because it’s inferred from the name of the function or class that defines the component.

https://reactjs.org/docs/react-component.html#displayname

We removed this from the template. Thanks though!


Steemconnect server error - Can't open steemconnect.com or user auth service for other apps.

This bug is seen today morning itself.
Expected: Able to log in via steemconnect.
Actual: Steemconnect login page sends application error.
How to reproduce : go to busy.org or any steemconnect based app and try to log in. You will be redirected to steemconnect which is followed by server error.

There was a downtime with the server, it should be working as usual by now, can you confirm everything is working fine for you @nirvanaitsolutions ?

I get a CORS fail for api.steemit.com


Https

When turning on https it also makes the providers m3u https which is not supported. Is there a way around this?

No, the whole point of HTTPS support is end to end encryption. Your provider MUST support it.

Was thinking to run on vps for http to service and https into home. I got around it by running a second instance for the time being. Thank you


UI - Cannot fetch groups/teams/organizations when configuring external Authentication

What kind of request is this (question/bug/enhancement/feature request): BUG
Steps to reproduce (least amount of steps as possible):

Brand new Rancher 2.3.3 cluster
Configure an external authentication service from Rancher UI (eg. github)
Once done, under Site Access, try to fetch groups/organizations

Result:
Groups cannot be fetch from the UI when using Rancher 2.3.3 onward.
Other details that may be helpful:
javascript error during the procedure:
TypeError: t.findTranslationByKey is not a function
TypeError: Cannot read property 'parentElement' of undefined

Useful
Info

Versions
Rancher v2.3.3 UI: v2.3.25

Same here, this is pretty annoying, anyone knows a workaround maybe with the api ?

On rancher:v2.3.3 - Reproduced the issue.
Steps:

Enable Github Auth on the UI.
Under Site Access Type in user/organization name in "Authorized Users and Organizations" Input field.
User is able to select the user/organization. NO error is seen on the UI/console.
But on clicking the dropdown arrow in the "Authorized Users and Organizations" Input field, Error is seen in the Console

Error:
component.js:142 Uncaught (in promise) TypeError: t.findTranslationByKey is not a function
    at n.<anonymous> (component.js:142)
    at n.a.get (metal.js:2984)
    at ie (metal.js:1592)
    at t.r.compute (glimmer.js:535)
    at t.value (glimmer.js:384)
    at e.value (runtime.js:552)
    at e.t.initialize (reference.js:454)
    at e.t.peek (reference.js:429)
    at Function.n.initialize (runtime.js:901)
    at Object.evaluate (runtime.js:873)

Available in latest-2.3. No master fix as the issue was not present in that branch.

Verified on 2.3-head with ui tag: latest-2.3
Steps:

Enable Github Auth on the UI.
Under Site Access Type in user/organization name in "Authorized Users and Organizations" Input field.
User is able to select the user/organization. NO error is seen on the UI/console.
On clicking the dropdown arrow in the "Authorized Users and Organizations" Input field, NO Error is seen in the Console

Thx, a workaround for the 2.3.3 with a proper api-key :
POST https://yourrancher/v3/projectroletemplatebinding
{"type":"projectRoleTemplateBinding","projectId":"your projectid","groupPrincipalId":"keycloak_group://your_group","roleTemplateId":"project-owner"}


Update layers/meta-balena digest to 203239c

This PR contains the following updates:

Package
Update
Change

layers/meta-balena
digest
2e4f0c9 -> 203239c

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Can one of the admins verify this patch?


Future Enhancement

Add option to show data  available by filtering via dates.

Also show date for which data is being shown in pages


Custom hover behaves badly near the bottom of the screen

Have a project with some kind of debugging and make sure the Breakpoints view is near the bottom of the screen
Hover over the pencil icon on the second-to-bottom list item. It works 👍
Hover over the bottom list icon. The tooltip seems to appear and disappear very quickly causing the mouse to flicker (the FPS on the gif doesn't capture it very well but you can see that it doesn't render correctly)

cc @benibenj , this might have always been a bug but is probably now more exposed given its a custom hover now.

I haven't made any changes to the computation of where the hover should be placed in relation to the target, so a bug that we have had for a while, but should definitely look into. After testing a bit it seems to me that this only happens for showPointer: true (target: 'element').


Misleading mean-field constraint comment in HGF demo

From what I can see, this HGF demo uses a mean-field factorization constraint:
@constraints function hgfconstraints()
    # Structured factorization constraints
    q(x_next, x_prev, z_next) = q(x_next)q(x_prev)q(z_next)
end

Additionally, this notebook could be enhanced by adding an offline version of HGF where we construct a complete graph and set priors on the parameters of the GCV node, which appears to be supported according to the ReactiveMP.jl (https://github.com/ReactiveBayes/ReactiveMP.jl/tree/main/src/rules/gcv)."

I see, it's not structured-mean field. I'll fix that. For the additional enhancement, basically you want to implement a regular inference with HGF, if I understand correctly.

For the first point, I would just change the naming to mean-field. As for the second bullet, yes, we just do a regular inference (smoothing) with additional priors on top of GCV node, aka kappa and omega.


Fix codegen for StructValueTuple when aliased

@TIHan, @cartermp,
and I were looking at an issue earlier where F# generates bad code when initializing a structtuple that has been aliased.
This code:
// Learn more about F# at http://fsharp.org
open System

type Node = ( struct (int* int))

[<EntryPoint>]
let main argv =
    let node = new Node(2,2)
    0 // return an integer exit code

Compiles fine, but when it runs it fails like with this message:
C:\Users\kevinr\source\repos\ConsoleApp10\ConsoleApp10>Program.exe

Unhandled Exception: System.TypeLoadException: Could not load type 'System.ValueTuple`2' from assembly 'Program, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' due to value type mismatch.
   at Program.main(String[] argv)

C:\Users\kevinr\source\repos\ConsoleApp10\ConsoleApp10>

The message is garbage because the referenced ValueTuple is in System.Runtime or mscorlib, depending on platform.
The issue is that here: https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/MethodCalls.fs#L615
Generates the call to the constructor with valu set to false.
The implementation of isStructTy here: https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/TastOps.fs#L1727
The update tries to get the tupleinfo, if tryDestAppTy can't find a tcref to check the structness.
It's late, I will add a regression test tomorrow.
@TIHan, @dsyme can you take a look and see if this is okay.

I'm curious with these two functions, isStructTy and isRefTy, can't the code be as simple as this:
let isStructTy g ty =
    isStructOrEnumTyconTy g ty ||
    isStructTupleTy g ty

let isRefTy g ty =
    not (isStructTy g ty)

Is there any reason why they can't be?  One should be the inverse of the other.

We should also test #5294 with this fix.

@cartermp it also fixes #5294

🎉

Good work guys, thanks

@dsyme … A one word fix, who can object to that :-)


Pipe_Example notebook fails to run out of the box

When running RAIL/examples/core/Pipe_Example.ipynb, even from a completely fresh installation of RAIL, the cell that calls pipe.initialize(dict(flow=flow_file), dict(output_dir='.', log_dir='.', resume=False), None) throws:
ValueError:
Some required inputs to the pipeline could not be found,
(or possibly your pipeline is cyclic):

Stage flow_engine_test is missing input(s): model
Stage lsst_error_model_test is missing input(s): output_flow_engine_test
Stage col_remapper_test is missing input(s): output_lsst_error_model_test
Stage table_conv_test is missing input(s): output_col_remapper_test

Steps to reproduce:
conda create -n freshrail pip python=3.9
conda activate freshrail
conda install healpy
git clone https://github.com/LSSTDESC/RAIL.git
cd RAIL
pip install -e '.[all]'
conda install -n freshrail ipykernel --update-deps --force-reinstall

Note: I was still getting the hang of Python notebooks with Github in my last PR, and had accidentally left an extra comma in the JSON when removing metadata. So, line 314 is currently }, when it should be }. I'll tidy this in my next PR.
You can either manually remove the comma on line 314, or grab the version of the notebook that predates my edits and then find/replace the deprecated FlowEngine with FlowCreator (but make sure it’s a case sensitive search - we want to keep flowEngine as it is).
I was able to recreate the bug identically in both versions of the notebook.

This is just an issue of pzflow renaming the option flow= to model=, making that change in the two applicable cells gets the notebook back to running.  I just pushed a change because I needed to test pushing something after regenerating a GitHub token on my laptop, so I'll go ahead and make a PR with this trivial change.


Notify slack if a daily jenkins job fails.

Jenkins is now configured to be able to notify slack. This adjusts
the job config of the daily jobs to send a notification to

I figured out how to test this as if it were master on my own instance, so
you can see on http://<IP_ADDRESS>:8080/job/ClusterHQ-flocker/job/master/job/_run_acceptance_on_Rackspace_CentOS_7_with_Cinder/configure (same creds
as main instance) that it has a "slack notification" post-build action,
and slack config near the top.
I also triggered a build failure to see the notification in #engineering.

:heavy_check_mark:  thanks.


Feat/wish lists

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Thanks for the PR.

https://github.com/vuestorefront-community/prestashop/issues/22


Cleaning up and readying for patch release

Changes:

Cleaning up some stuff relating to my repository information.
Updating instructions for manual setup.
Reducing Dockerfile layers.

Tested against 0.97.2.


[Lightbox] Add border radius to avatars

Stacked on #6135

Self-explanatory.
On the web, I had to screw with the layout a bit so that it doesn't blow up the avi full screen cause that was also quite strange. Normal pictures display like before.
Test Plan
https://github.com/user-attachments/assets/d0f2a985-d173-4aee-b7bc-2d843a93825f
https://github.com/user-attachments/assets/36e7d85c-3960-40e9-8a62-22cc5b963783
https://github.com/user-attachments/assets/fc7981ff-2f7a-42ac-83fa-81219c9e13c1

Actually, I'm not sure I agree with this change
Many will use avatars by artists, which often place watermarks in the corner
As a result, many will not explicitly mention artists in their bios - even when they should, being honest - because they know there is a watermark
The information is not lost as you can expand the image to see potential watermarks, which may be hidden with this change, even more so if they are crammed into a corner

Thanks for raising the concern! My arguments for this change are:

Consistency with expectations from other social products
Consistency within our own UI
Enabling a further level of polish (animation)
The full picture is still available
This wasn't an intentional decision in the first place

Expanding on these:

Most other social products I know of with a "click to expand" interaction expands circle avatars into circles. This means that making this change would at least not violate user expectations — and at best would fix something that does. (One notable exception to that is Facebook. However, Facebook expands avatars into full original photos — they're high quality, not cropped to square, have a description, their own "likes"/"comments"/etc. In other words, they're actual posts. This is not what we're dealing with here, although something like this might be nice to add?)
From the in-product consistency perspective, the current behavior also feels inconsistent — avatars are represented as circles everywhere else in the user interface. Even when you choose it, it appears cropped to a circle. I associate my online presence with my circular avatar (like on other social products) and I found the default expansion a bit intrusive.
We can't (easily and performantly) animate from a circle to a square. It kinda sucks to not having the animation here. Again, other social products, especially on mobile, do have an animation for expanding. It's a pretty standard UX.
This isn't removing the ability to view the full picture for someone who's motivated, "Save Image" still works.
If we had not made this omission in the first place, it would not be a topic of conversation — so it feels unfortunate to consider it now as a blocker. It was not something intended to be relied on — just an unpolished screen.

I do agree that the part about attribution is interesting. I think having some native way to tag a creator would be a better way to address that. As you noted, people do that in the bio, but maybe it could be a part of this screen in the future. However, I don't think solving this should be a blocker for landing this change.
Let's give this a try?


remove two semicolons (-Wextra-semi ritual purification)

I read the comment about "ritual purification" in nb_attr.h, but couldn't resist.
(I don't plan more such PRs)

It's ok ;)


Close/skip backpressure behavior switch

It should be possible to enable the former close-on-backpressure behavior when pub/subbing
Probably add us_socket_deferred_close() as a way to close down the reading side thus causing error-close next iteration (?)

Sending and publishing should never immediately call close handler as that often leads to complex recursion/reentry bugs.

This makes a lot of sense to add. Some users would surely require an in-order stream where too much backpressure simply leads to a close rather than skip. Skipping is only valid for application protocols that do not deal with history where previous messages are important. Therefore this feature is important to add.

maxBackpressure = number
backpressureMitigation = CLOSE | SKIP
Shutting down the read side of the socket seems to work the same on BSD sockets and WinSock so using that feature sounds perfect here.

I'm currently testing my backpressure handling by adding a DROP-rule to the firewall.
I noticed i can send several MB's before i get a back-pressure build up. Is this normal? Where is the data stored? Is that size configurable? I would have expected to only be able to send maybe a few KB's before i got backpressure.
Edwin

Yes that's normal, the data is stored in kernel space. You can configure pretty much everything in this regard.

This is added as option bool closeOnBackpressureLimit

This is added as option bool closeOnBackpressureLimit


Use ci- version of test-go and verify

See https://github.com/kubernetes/test-infra/pull/1076

This change is

LGTM per @apelisse

Yes


set/get 默认值支持 promise

get 的默认值应该支持 Promise，否则下面语法糖没法实现。
如：
app.cache.get('foo', () => {
  return Promise.resolve('bar');
});

大多数数据都是异步的，因此，实现获取异步数据再存储返回。

Codecov Report

Merging #4 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master     #4   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           4      4
  Lines          40     40
=====================================
  Hits           40     40

Impacted Files
Coverage Δ

lib/store.js
100% <100%> (ø)
: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 9daa024...d461a01. Read the comment docs.


Backport https://github.com/plusjade/jekyll-bootstrap/pull/293

What is this PR for?
Fix other version changes after jekyll Bump
What type of PR is it?
Bug Fix
Todos

[X] - Fix theme name missing for assets
[x] - Links produced by page_list don't have the .html extension anymore (giving 404)

Looks awesome to me! Thank you @corneadoug for quick fix


Prepare for removal of CAPA v1beta1 API types

See https://github.com/kubernetes-sigs/cluster-api-provider-aws/pull/4757
### Tasks
- [ ] https://github.com/giantswarm/roadmap/issues/3344
- [ ] Does conversion from v1beta1 to v1beta2 remain in CAPA v2.4.0? If not, we'd have to bump all objects.
- [ ] Is exp/api also affected (machine pools, etc.)?

Some operators reference v1beta1. Here's a short overview, but we should use GitHub search instead of my cloned repos:
$ ag -l --go '"sigs.k8s.io/cluster-api-provider-aws/api/v1beta1' | cut -d / -f 1 | sort | uniq
aws-resolver-rules-operator
aws-vpc-operator
capa-iam-operator
opsctl

2.5.x is running on all MCs.


Unable to create a Firewall Policy Network Rule with Destination FQDNs via cli 'az network firewall policy rule-collection-group collection rule add --target-fqdns`

Adding an FQDN using the '--target-fqdns' in a network rule via command az network firewall policy rule-collection-group collection rule add returns an error:  "Firewall Policy Network Rule testFQDN must have one of destinationAddresses, destinationIpGroups or destinationFqdns specified"
az network firewall policy rule-collection-group collection rule add -g $globalRg --collection-name $RuleColName --name "testFQDN" --policy-name $azfwPolicyName --rcg-name $rcgName --rule-type "NetworkRule" --source-ip-groups $sourceIpGroup --destination-ports $destports --ip-protocols $protocols --target-fqdns "www.microsoft.com"
Extended Error details:
Command group 'network firewall policy rule-collection-group collection rule' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus Operation failed with status: 'Bad Request'. Details: 400 Client Error: Bad Request for url: https://management.azure.com/subscriptions/subscriptionID/resourceGroups/resourcegroup/providers/Microsoft.Network/firewallPolicies/fwpolicyname/ruleCollectionGroups/rcgName?api-version=2020-07-01{   "Message": "The request is invalid.",   "ModelState": {     "resource": [       "{\"Status\":\"Failed\",\"Error\":{\"Code\":\"FirewallPolicyRuleDestinationAddressesOrIpgroupsOrFqdnsMustBeSpecified\",\"Message\":\"Firewall Policy Network Rule testFQDN must have one of destinationAddresses, destinationIpGroups or destinationFqdns specified.\",\"Target\":null}}"     ]   } }
I cannot find any other command to pass the destination fqdns to this network rule.

network


Missing hyperlink

Looks like a hyperlink expected for the word "Example" in the section "Issues and considerations" sentence "In that case, consider using a retry and, or time out mechanism to recognize that operation as a failure. For an example, see the Example section."

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

ID: f568e9ac-4d16-5076-4863-5e007112b3db
Version Independent ID: 9180ec47-aaf4-d811-d89d-437dd85fa878
Content: Choreography pattern - Azure Architecture Center
Content Source: docs/patterns/choreography.yml
Service: architecture-center
Sub-service: design-pattern
GitHub Login: @PageWriter-MSFT
Microsoft Alias: prwilk

@Manjunath-Bhavi Thanks for reaching out to us and reporting this issue. The above PR has been filed and it is currently under review.

Just verified, fix is live, thank you @ckittel


Not all Journal attributes available

When viewing a Journal on the Microsoft Academic website (e.g. https://academic.microsoft.com/journal/176903982 ), we have some attributes not avaialble through the API:

About
Website Links
Related Journals
Related Topics

These are not included in the documentation.

Thanks costinBol.  You should be able to find these detailed information can be found in Microsoft Academic Graph, which is the raw content for Project Academic Knowledge API and Microsoft Academic Knowledge Exploration Service


Help with fitdecode

Hello,
I am trying to use your fitdecode Python module to read a list of FIT files from my Garmin vivosmart 4. I am completely lost on how to use it. I run the code proposed in your help:
import fitdecode
with fitdecode.FitReader("38539156602.fit") as fit:
for frame in fit:
pass

and it runs without errors, but the resulting “frame” object does not have any of the information I am searching (heart rate, etc..). Please, could you give me some hints or examples on how to have access to the different fields inside the file? When I decode the file with the java example inside the SDK, all the values are exported to a CSV file, but I would prefer to do that conversion inside Python and then process the fields to create my own plots. Any help or examples you can provide me as a starting point are very welcome.
I wanted to give fitdecode a try because it is newer that fitparse, but to be fair, I got fitparse to return some meaningful information very easily with a couple of commands:
from fitparse import FitFile
fitfile = FitFile("38539156602.fit")
print (fitfile.messages[23].fields[1].name,':', fitfile.messages[23].fields[1].value, fitfile.messages[23].fields[1].units)

which returns:
heart_rate : 55 bpm
There is a list of messages under FitFile.messages with all the .fit file contents. Now it is just a matter of programming, sorting and plotting the data that I want. I could not find that list in fitdecode under any of the objects.
Kind regards.

fitdecode: feature-wise, fitdecode is mostly a superset of fitparse, so yes, you do get access to all the data contained in the FIT file by using fitdecode. That includes data that I was missing with fitparse like the ones from the hr message, as well as the FIT header, CRC, ...
FIT: bear in mind FIT is a rather over-engineered format. Anything you might find obscure or complex in either library may actually find its roots in how FIT has been designed. This is why I can only encourage you to learn more about it if you really want to read your FIT files yourself, since the data you are seeking may not be located at the same place depending on the FIT activity recording device, and the FIT version.
Having said that if you do feel more comfortable with fitparse and if it suits your needs, using - or trying to use - fitdecode just because it is "newer" may not be the right factor of choice for you?
Also, I do not have any example ready for you unfortunately since FIT is a quite broad format with many uses, but as described in fitdecode's documentation, fitdecode.FitReader yields objects that can be of different types. fitdecode.FitDataMessage is the one that is of interest to you. The documentation exposes the fields member that points you to the data you want, but you would better use the has_field, get_field, get_fields, get_value and get_values methods in order to access them.
If you need to print the content of your FIT to know where to find the desired data, use the fittxt utility script provided with fitdecode, which can be helpful.
import fitdecode

# fitparse-style (you will get non-FitDataMessage frames as well)
messages = tuple(fitdecode.FitReader(src_file))

# or, more efficiently, easier on memory, and Pythonic
with fitdecode.FitReader(src_file) as fit:
    for frame in fit:
        if isinstance(frame, fitdecode.FitDataMessage):
            print(frame.name)
            # frame.get_field()
            # print(frame.fields[0].name)

Thanks a lot, polyvertex. That gives me a baseline to start investigating. This is going to require some time and effort, I think!
Best regards.


some simple questions...

i finally managed to setup and stream..
thank you for the great piece of software..
I tried to setup something like this, 3-4 times the last month, without success..
but with this i was streaming almost instantly..
and two questions:

when the player starts is muted. is there a remedy with this ?
the button for full screen is grayed.. why ?

Hey @PAOK1926,
Glad you like the Docker image.

when the player starts is muted. is there a remedy with this ?
The example player I use has mute enabled by default. Since this is based on the player configuration, you can disable it if you need to by removing the muted attribute.

https://github.com/alfg/docker-nginx-rtmp/blob/master/static/player.html#L32

the button for full screen is grayed.. why ?
I tried running the example again, but I don't see the full screen option grayed out. I am able to fullscreen.

Closing. Feel free to respond if you have any other questions. Thanks!


Fix #75

Do you want each connection to look like it is coming from the same process or did we want to fake this up along the same lines as what we are doing for client-side remote ports?

From the same process is ok - at least for now. It's quite hard to assert in tests when values are randomly generated. For the PID, I don't consider it random since we can know in advance what it will be. So we are able to get also the PID to verify that the topology we have is the expected one.
The only thing that should be generated is the client port number, as it is now, and it is a value that we cannot event know in advance.

As long as you guys are ok with it being the same for all connections, that works for me.


Modifications to customize CaptureActivity

I've added methods in the class intentintegrator to be able to customize color, title and also provide the ability to developers to add a toolbar to mantain design in case of be working with a lollipop app. The developer can also add items to the menu that will be returned to the calling activity in order to handle them properly. In addition, the theme of the capture activity can be changed to match the one used in the host app. There is a particular case in which the dev will need to change also the status bar color, this is handled in the same method using API functions only available in lollipop OS.

Do you have a sample of how this would be used?

Hi! I’m currently working on an app that is using this change i’ve submitted. I can share some code and some screenshots of how it looks like right now, which is under development.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_food);
_newFood = new Food();
if (savedInstanceState == null) {
/*getSupportFragmentManager().beginTransaction()
.replace(R.id.add_food_container, ScanBarcodeFragment.newInstance(), ScanBarcodeFragment.FRAGMENT_TAG)
.addToBackStack(null)
.commit();*/
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setCaptureLayout(R.layout.fragment_scan_barcode);
integrator.setToolbar(R.id.add_food_toolbar);
integrator.setTheme(R.style.AppTheme);
integrator.setToolbarMenu(R.menu.menu_card_detail);
integrator.setTitle("Escanear");
integrator.initiateScan();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_add_food, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
You can see above that the way of calling is almost the same as is currently explained in your library’s readme.
Below I’ve added a screenshot of how it looks with the settings applied above.
If you need anything else please let me know, I think this is a good collaboration to the library since it allows more functionality to apps using Material.
Cheers!
Joaquín Alejo Gatti
Development Manager
Email<EMAIL_ADDRESS>Skype.  gattijoaquin
Twitter.  @joaquinalegatti
lateralview.co
On Sat, Mar 28, 2015 at 9:29 AM, Ralf Kistner<EMAIL_ADDRESS>wrote:

Do you have a sample of how this would be used?
Reply to this email directly or view it on GitHub:
https://github.com/journeyapps/zxing-android-embedded/pull/31#issuecomment-87218658

Being able to customize the theme and titlebar definitely seems useful to be, and I appreciate the pull reuqest. However, I do not want to make AppCompat a required dependency just yet.
Over the last year I've received a few requests (and pull requests) adding more options to customize the UI and behaviour of the scanner. However, just adding more options does not feel sustainable to me. I'm experimenting with a rewrite now, where most the logic is contained in individual View components, instead of an Activity. This would creating a custom Activity, with much more control over the behaviour of the scanner and interface.
Once this is done, I'll look into adding an optional ActionBarActivity, with the functionality you have here.

Hi Ralph,
I understand your concern but I’ve seen that AppCompat is already included as part of your project, I haven’t added any imports to the library. Please check it out and maybe you can add this, I believe it’s not harmful at all and it will be really helpful to both users and your library to become more popular to Android L users.
Regards!
Joaquín Alejo Gatti
Development Manager
Email<EMAIL_ADDRESS>Skype.  gattijoaquin
Twitter.  @joaquinalegatti
lateralview.co
On Tue, Mar 31, 2015 at 10:23 AM, Ralf Kistner<EMAIL_ADDRESS>wrote:

Being able to customize the theme and titlebar definitely seems useful to be, and I appreciate the pull reuqest. However, I do not want to make AppCompat a required dependency just yet.
Over the last year I've received a few requests (and pull requests) adding more options to customize the UI and behaviour of the scanner. However, just adding more options does not feel sustainable to me. I'm experimenting with a rewrite now, where most the logic is contained in individual View components, instead of an Activity. This would creating a custom Activity, with much more control over the behaviour of the scanner and interface.
Once this is done, I'll look into adding an optional ActionBarActivity, with the functionality you have here.
Reply to this email directly or view it on GitHub:
https://github.com/journeyapps/zxing-android-embedded/pull/31#issuecomment-88082632

Currently the only external dependencies are com.android.support:support-v4 and com.google.zxing:core.
I will make sure that this is functionality is available with the rewrite.


Fix #1043 - Phone Number Parsing Error

Pull Request Details
Description
This pull request addresses issue #1043, which involves a parse exception occurring when users input phone numbers with a country code.

Validation Enhancement: Updated the phone number validation logic to correctly handle and parse phone numbers that include a country code.

Regex Update: Added the regex pattern to accept and properly format phone numbers with country codes.

Type of PR

[] Bug fix

Files Modified

User.js: Updated the phoneNumber field in stringToggleSchema to handle phone numbers with country codes.
userUpdateController.js: Added phone number regex and validation logic to ensure proper formatting and handling of country codes.

Summary by CodeRabbit

New Features

Improved phone number validation when updating user profiles to ensure accuracy and compliance with standard formats.

@pranshugupta54 LGTM ⚡


generated URL is incorrect

I passed a params[:controller] [:action] . Screenshot: http://take.ms/7qbkS
Generated URL is incorrect: Screenshot: http://take.ms/Ql6IC

Could you post your code that calls paginate?

code looks like below
= paginate answers, param_name: "oq_page", params: { controller: "groups", action: "index"}

The params option overrides the original params if provided. Try removing them.
I believe kaminari is working properly. Please ask on StackOverflow If you have questions on how to use kaminari.

I doubt that. as you can see, i want to use Groups#index but the generated URL is incorrect. It's using Lesson#view. It's very clear in my screenshots. Anyways, thanks for replying, will put some nasty jquery codes to change the URL manually


ak.flatten axis=None fails on typetracer array

Version of Awkward Array
1.8.0
Description and code to reproduce
Minimal reproducer:
(I stepped through ak._v2.flatten until line line 101 from the traceback and all(isinstance(x, np.ndarray) for x in out) is evaluating to False since the elements of the out tuple in this case are instances of TypeTracerArray.)
In [1]: import awkward._v2 as ak

In [2]: x = [[1, 2, 3], [2]]

In [3]: ak.Array(x)
Out[3]: <Array [[1, 2, 3], [2]] type='2 * var * int64'>

In [4]: x = ak.Array(x)

In [5]: x.layout.typetracer
Out[5]:
<ListOffsetArray len='2'>
    <offsets><Index dtype='int64' len='3'>[?? ... ??]</Index></offsets>
    <content><NumpyArray dtype='int64' len='4'>[?? ... ??]</NumpyArray></content>
</ListOffsetArray>

In [6]: xtt = ak.Array(x.layout.typetracer)

In [7]: ak.flatten(xtt)
Out[7]: <Array-typetracer type='?? * int64'>

In [8]: ak.flatten(xtt, axis=None)
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Input In [8], in <cell line: 1>()
----> 1 ak.flatten(xtt, axis=None)

File ~/.pyenv/versions/3.10.2/envs/dask-awkward/lib/python3.10/site-packages/awkward/_v2/operations/structure/ak_flatten.py:101, in flatten(array, axis, highlevel, behavior)
     99 if axis is None:
    100     out = layout.completely_flatten(function_name="ak.flatten")
--> 101     assert isinstance(out, tuple) and all(isinstance(x, np.ndarray) for x in out)
    103     out = ak._v2.contents.NumpyArray(nplike.concatenate(out))
    105 elif axis == 0 or layout.axis_wrap_if_negative(axis) == 0:

AssertionError:

In [9]: ak.flatten(x, axis=None)
Out[9]: <Array [1, 2, 3, 2] type='4 * int64'>

assert isinstance(out, tuple) and all(isinstance(x, np.ndarray) for x in out)

The output of completely_flatten is a tuple of nplike.ndarray, not np.ndarray unless nplike is ak.nplike.Numpy.instance().
#1340 fixes it.


Fix typo in the magic line within the 03 - Preprocessing notebook

Hi @amueller , during reviewing of the material of this course i found one typo. The typo is within the %matplotlib inlinemagic line inside the 03 - Preprocessing notebook.
This PR fixes the issue.
Cheers, Daniel

thanks! not a typo but a change in the magic syntax since the notebook was written ;)


myjenkins: Do not install plugin "ghprb"

Fix https://github.com/gmacario/easy-jenkins/issues/258
Signed-off-by: Gianpaolo Macario<EMAIL_ADDRESS>

Locally tested on dell-davi using

Ubuntu 18.04 LTS
Docker version 18.05.0-ce, build f150324
docker-compose version 1.21.2, build a133471
https://github.com/gmacario/my-jenkins-pipelines/commit/517bb40930e596415c3a2774e63e9759a6a0ecfc

All the pipelines in my-jenkins-pipelines completed successfully.
LGTM, merging


How to display the index of the bar in bar chart while hovering over a bar.

I want to display the index of the bar over which I have hovered. Display the index in the tooltip. I need the index to acquire other data from some arrays and then dislplay a combined result in tooltip.
Please suggest how to do it.

Please ask questions on StackOverflow: https://stackoverflow.com/questions/tagged/chart.js

@NeerajNegi it should be relatively easy using the chartjs-plugin-datalabels (example)

I use a HTML tooltip and needed something like this:
for (let i = 0; i < tooltipModel.dataPoints.length; i++) {
    let chartPointIndex = tooltipModel.dataPoints[i].index;
    let chartDatasetIndex = tooltipModel.dataPoints[i].datasetIndex;
}

If you got multiple datasets and a legend, you can always check if they're visable with something like:
if (this._chart.legend.legendItems[i].hidden === false && this._data.datasets[i].data[pointIndex] != null) {
//do something
}


Hospital beds capacity data

The flattening the curve approach is defining the concept of medical system capacity which, when exceeded, leads to substantial collapse of the curing capacity and in return skyrocketing of deaths.
It would be great to look for sources of data to provide information on capacity of the medical system, and since it's changing (regions are pushing for increasing it, to give more space for the flattened curve), it should be a data point per date.

An example of a project that uses the data point - https://projects.propublica.org/graphics/covid-hospitals

Another example: https://covidactnow.org/

This is something we are definitely interested in including. There are a few resources we've gathered that could be rolled in, one of which was via COVID Act Now.
https://docs.google.com/spreadsheets/d/16V1kIjTTBx0x67Mi1JyAwjuW5wneydwsATv_YiDTtGg/edit?usp=sharing
https://github.com/covid-projections/covid-data-model/blob/master/data/hospital_beds_by_county.csv

Also, maybe as a follow up - capacity of ICU and number of ventilators available.

This chart seems to have some data for hospital beds and ICU for USA and USA states. https://covid19.healthdata.org/projections

Santa Clara data - https://mobile.twitter.com/HealthySCC/status/1245892055227707398?s=19

santa claray hospital, ventilators, etc. data - https://www.sccgov.org/sites/phd/DiseaseInformation/novel-coronavirus/Pages/dashboard.aspx#hospital


set daily notification

i'm trying to fire a notification every day at 22:00pm which will display a quote but it doesn't seem to work for me
   `
   let notification = ABNotification(alertBody: "\(author):\n\(text)", identifier: "identifier")
   let identifier = notification.schedule(fireDate: 2200.date)
   notification.snoozeForDays(7)
   notification.soundName = UILocalNotificationDefaultSoundName

`

You are snoozing (rescheduling) the notification to be fired after 7 days from its original fire date. To daily repeat this notification, you have to set its repeatInterval to Repeats.Daily instead: notification.repeatInterval = Repeats.Daily.
If you are trying to schedule more than one notification, create a different identifier for each one to be able to retrieve them individually.
ABNScheduler assigns the default notification sound to the notification by default so you don't need to set it.
schedule(fireDate:) should be called after you have set all of the properties of the notification.
let notification = ABNotification(alertBody: "\(author):\n\(text)", identifier: "identifier")
notification.repeatInterval = Repeats.Daily
let identifier = notification.schedule(fireDate: 2200.date)

Call ABNScheduler.listScheduledNotifications() and watch the console where you will find the notification scheduled to be fired daily on 22:00 PM.

ah i see now ! thank you so much i really appreciate it :+1:


Removed circular call where the core library calls itself instead of the plugins

…using plugins directly.

@mjaguil @cayton Could you have a quick look at this PR?

Looking
From: Christian Pinto @.>
Date: Thursday, August 8, 2024 at 2:05 AM
To: OpenFabrics/sunfish_library_reference @.>
Cc: Aguilar, Michael James @.>, Mention @.>
Subject: [EXTERNAL] Re: [OpenFabrics/sunfish_library_reference] Removed circular call where the core library calls itself instead of the plugins (PR #32)
@mjaguilhttps://github.com/mjaguil @caytonhttps://github.com/cayton Could you have a quick look at this PR?
—
Reply to this email directly, view it on GitHubhttps://github.com/OpenFabrics/sunfish_library_reference/pull/32#issuecomment-2275202700, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEGDPAHXSOSIHGFIMPZQQMDZQMRCNAVCNFSM6AAAAABLQT7FHKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZVGIYDENZQGA.
You are receiving this because you were mentioned.Message ID: @.***>

Nevermind….  Stupid 2-factor, I’ll have to get to it, later today
I can’t have my cell phone with me
From: Christian Pinto @.>
Date: Thursday, August 8, 2024 at 2:05 AM
To: OpenFabrics/sunfish_library_reference @.>
Cc: Aguilar, Michael James @.>, Mention @.>
Subject: [EXTERNAL] Re: [OpenFabrics/sunfish_library_reference] Removed circular call where the core library calls itself instead of the plugins (PR #32)
@mjaguilhttps://github.com/mjaguil @caytonhttps://github.com/cayton Could you have a quick look at this PR?
—
Reply to this email directly, view it on GitHubhttps://github.com/OpenFabrics/sunfish_library_reference/pull/32#issuecomment-2275202700, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEGDPAHXSOSIHGFIMPZQQMDZQMRCNAVCNFSM6AAAAABLQT7FHKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZVGIYDENZQGA.
You are receiving this because you were mentioned.Message ID: @.***>

advances in the interface calls to use the back-end storage library

@mjaguil is the review approved? I can't really understand what this comment is about.


Update RxNuke

Hi @kean
In this PR, I am including the orEmpty() operator, but in a private extension. This operator is used in two observables which dismisses the errors and completes the sequence. Additionally I updated the comments for each public method.
Let me know your opinion. 😊

See https://github.com/kean/RxNuke/pull/9#issuecomment-399195448 please


Loopback mode implementation

While not an officially advertised feature in the PulseAudio API, all PulseAudio "sink"-s have a "monitor mode" where in any of the audio output devices there's a "loopback" input device which replicates all audio for said output. This allows us to effectively achieve recording any audio output as input within cubeb.
This commit is a continuation of said Draft shown in https://github.com/mozilla/cubeb/pull/691 but this time written in Rust. (yes it took me half a year but we're here) ps: rust is hard
As I'm quite inexperienced when it comes to Rust (especially so when it's demanding code like FFI) comments on the code or any improvements that may be done are greatly appreciated.
Thanks.

Tagging @ChunMinChang for initial review if he has some cycles. Thanks for the contribution, I'll run CI now.

I am on PTO right now. I can take a look next Monday.

Forced-pushed the "cargo fmt"-ed version as I was not aware of the tool.

Apologies if any of the mistakes in advance seem trivial.


Remove cgroup inactive_file.bytes metric

What does this PR do?
Closes #1408

Checklist

[x] This is an enhancement of existing features, or a new feature in existing plugins

[ ] I have updated CHANGELOG.asciidoc
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have made corresponding changes to the documentation

[ ] This is a bugfix

[ ] I have updated CHANGELOG.asciidoc
[ ] I have added tests that would fail without this fix

[ ] This is a new plugin

[ ] I have updated CHANGELOG.asciidoc
[ ] My code follows the style guidelines of this project
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I have updated supported-technologies.asciidoc
[ ] Added an API method or config option? Document in which version this will be introduced
[ ] Added an instrumentation plugin? Describe how you made sure that old, non-supported versions are not instrumented by accident.

[ ] This is something else

[ ] I have updated CHANGELOG.asciidoc

:green_heart: Build Succeeded

Expand to view the summary

Build stats

Build Cause: [Pull request #1422 opened]

Start Time: 2020-09-30T05:42:48.293+0000

Duration: 45 min 58 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
1562

Skipped
12

Total
1574