[Chip] Add color prop to chip component

Closes #12370

add a ChipPlayground

add color primary and secondary

@itelo Great job!

Sweet!

@itelo You have missed the colorPrimary and colorSecondary class for TS https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Chip/Chip.d.ts#L16-L31

@IvanCoronado Do you want to submit a pull request to add them?

@oliviertassinari Done https://github.com/mui-org/material-ui/pull/12625 👍

How would you remove the color in js, because its not found when you search hasAttribute


Security: Upgrade lodash

Per a Github security alert, this upgrades lodash to the latest version.

:tada: This PR is included in version 2.4.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Allow levels to be printed as string

Adding a default level to string so there is no need to write one when implementing a custom formatter.

Thanks but I prefer log.go to be logger-independent (a logger could use 2-chars prefixes for example).


Usage of ls -ll

It is great to be able to extract MD5 checksums with "ls -ll". I After uploading files, I use "ls -ll" to compare the gdrive checksums with local hashes dumped with "md5deep -l".
Comparing the checksums from the uploaded files with the list generated by md5deep is a non-trivial exercise for me. I use sed, cut, grep and some regexp magic to present a usable list from "ls -ll" output, that can be compared to the "md5deep" output.
Is there an easier way to achieve this?

I don't have any great ideas about what skicka could to do make this easier--the filename and md5 values are right there ready to be extracted. Do you have any ideas?
One thing that might help a bit is to also use the '-r' argument to ls, which makes it automatically recurse down into directories from the base directory you give it.


POTENTIAL DUPLICATE of 2645: Programs - SABC Program Code Validation

User Story
As an institution user I may need to have multiple programs with the same SABC program code. This could be due to changes in programs across program years.
Current Behaviour
When adding a new program, I am blocked from creating a new program with the same SABC program code as an existing program.

Expected Behaviour
Program validation with SABC Program Code being the same should not result in the new program being blocked IF the other program is in a "deactivated" state.
Acceptance Criteria

[ ] Update program validation criteria. Remove requirement for unique SABC Program Codes.
[ ] Update Bulk Upload to NOT match any offerings to programs with the same SABC program code and the "deactivated" state.

@HRAGANBC @Joshua-Lakusta Please review before we move to Lather. Seems straight forward and I've spoken with IPDT/Policy about this.

Reviewed and agree based on our decommission of programs with the ZZDONOTUSE that we have to allow the repeated use of SABC codes.

@CarlyCotton - I think Devs will have a problem with this. The SABC program code is the singular validation used to link the Bulk Upload file with a particular program. I.e. the Bulk Upload file is a bunch of distinct offerings, and the Institutions need to input an SABC program code next to each offering to 'assign' it to a particular program.
If we allow multiple SABC program codes, then Bulk Upload offerings will get automatically assigned to multiple programs. Is that acceptable to Institutions? If they're fine, I'm fine.
Devs might have other concerns though

Removing as no longer necessary with #2645/2930


add playground notifications in case of graceperiod contracts

maybe every 15mins show a notification to the user that they have contracts in graceperiod (allow the user to snooze the during the session if they want)

Verified, Devnet 73edbcd.
Notification is added and if user has a grace period contracts, he will be notified once logged in and every 15 minute.


Correct project version

Since we already use pulsar client 2.10. change the version to <IP_ADDRESS>

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Clarification re critical errors

"Errors that are not resolved must include an explanation and justification for the error."
The above sentence makes it unclear whether an app may be submitted if it contains critical errors.
Does this mean that if an extension contains a critical error (eg usage of ASSERTERROR) that it may be submitted to App source if the usage can be justified or does this only apply to "important errors"?

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

ID: e6b8f96f-eb61-aa86-ed4f-4544e9808aef
Version Independent ID: fabff680-eeb9-26b4-5253-04713e0e1c74
Content: Rules and Guidelines for AL Code - Business Central
Content Source: dev-itpro/compliance/apptest-overview.md
Service: dynamics365-business-central
GitHub Login: @SusanneWindfeldPedersen
Microsoft Alias: rweigel

It applies for both important and critical errors. You must have valid justification when you submit your app for App Source. There is a field in the Cloud Partner Portal (where you upload your app for submission), that allows you to upload a justification document explaining why you need any errors

Thank you for the clarification.


Fixes #30 - Integrated with Travis CI

This fixes issue #30

@harshanas ideally this pull request should contains only the changes related to the travis ci integration since this is not dependant on  documentation changes.


Changing Attempts Timing/Delay

Curious about the way double-take is grabbing snapshots/latest files from the API. A few things I do want to mention:
When trying to grab latest files and grabbing snapshots from MQTT, double-take does this in parallel. What happens is that frigate will use a snapshot that might be older than the match found from the latest.jpg processing thread. Meaning if there are a multiple cameras, and double-take is used for presence detection, I could potentially be matched from the snapshot thread in a place I am no longer in. I decided to turn off the MQTT snapshot process for this reason.
The other thing I noticed is the attempts value, I notice that when grabbing latest images from frigate, that it does so in a sequential way without delay/timings. From the logs double-take makes 20 attempts in 1-2 seconds and doesn't find a match. But in the frigate event, my face might not show up until 3-4 seconds after the event starts, missing my face.
This has to do with FPS as I am using 5 FPS on the camera, if the attempts try to grab 20 frames in 1-2 seconds it will be analyzing the same images over and over.
Wondering if we can add a delay between attempts for this reason.
I also noticed is that switching to a slower model actually helps this as the delays between attempts is greater.

Hey there, thanks for checking out the project and the detailed issue. Let me try to explain some of it as well and make sure we are on the same page. The processing of the Frigate images / MQTT image is a little confusing and the MQTT one is done separately then the event driven one.
Frigate publishes a message to frigate/events:
Double Take then begins to process this event using images from Frigate's API. These images are /api/${camera}/latest.jpg and /api/events/${id}/snapshot.jpg. The snapshot image in the double-take:latest is set to 0 currently due to a bug on the Frigate API side. If you're running Frigate 0.9.0 then you should be fine to increase this. The big difference with the snapshot image here is that it's based off the event ID. This is different than the MQTT image described below.
These two images are processed in parallel with the configured detectors. You're right there is no delay between processing events, but the time to process an image should add delay between each loop. The default amount of retries is 10 per image. Each loop should pull in the current frame from those two images and then pass it for detection.
Are you getting any errors in the 20 attempts in 1-2 seconds? The detector you're using is responding fast enough to process 20 images? I see that the slower model helps with the delays, so your machine must process them quicker than mine which is why I haven't seen the quicker API requests. I can add in a delay to help with this though.
Frigate publishes a message to frigate/+/person/snapshot:
Frigate publishes a JPEG encoded image to this topic when certain conditions are met on the Frigate side. There is no context around this image other than the camera name and JPEG frame. Double Take uses this image to process it through a single recognition loop. It's only processed one time unless Frigate publishes a new image to that topic.
You're right, if you try to use this image for presence detection then you could have reports you are in a room after you left it because Frigate published the best snapshot when the event was done.
I run into this issue right now as well with my setup, but I'm not sure the best way to overcome it. I orginally didn't process the frigate/+/person/snapshot because the snapshot.jpg image was better since it's tied to the ongoing Frigate event. I only added support for the MQTT image when I discovered Frigate had a bug with the snapshot.jpg image, but now that it's fixed in 0.9.0, maybe I just make the processing of the MQTT image a config setting on the Double Take side.
Sorry for the long response, let me know if this makes sense.

Processing Attempts
Having a tunable delay would probably be helpful for most people and the easiest to implement. I might just compile your code with my delay hardcoded to test it out. Basically I need to put a delay that will take into account the average processing time of my detector (in my case 100-150ms) + the time a new frame might be recorded (5fps would be every 200ms).
A better way probably to calculate the delay depending on the fps of the source. So say double-take finds that a detection is 100ms and it knows that a frame will only come every 200ms, it would delay by 100ms dynamically.
The best way to solve this is to put a face detection model co-compiled with the object detection model that frigate uses, to have a new object detection event (Face detection vs Person detection). I might do this with a custom model.
MQTT Snapshots
I ended up just turning off MQTT snapshots from the Frigate side. So having a way to turn this off in Double-take would be helpful.

I pushed a couple updates to the beta build to help address these issues. Let me know what you think.
frigate:
  url: https://frigate-url.com
  attempts:
    mqtt: false # false: do not process mqtt snapshot topic images | true by default
    delay: .25 # add a delay expressed in seconds between each detection loop

I installed this in the morning and have been testing it in the morning. I set it to 100ms delay + increasing the attempts to 40 tries (I know probably taxing my system). I see that my detection is around 4-5 frames per second for 9-10 seconds which pretty much covers all/most frames in the event.
Thanks for the change.

What about making a Feature-Request to Frigate to send .jpg-image with every /MQTT/event/ ?
(Also for some other reasons:
This way one could benefit from the event-context (also for other purposes) and get images over single channel without pulling them.)

Frigate already sends a "best" snapshot with the MQTT/event/.
The problem is Frigate triggers an event based on a "Person" object detection because their models only do object detection. It would be better if they implement a face detection model to have a Face event that could be sent to Double-Take.

Frigate already sends a "best" snapshot with the MQTT/event/.

but it seems the .jpg is missing in the mqtt/event payload...
https://github.com/blakeblackshear/frigate/issues/1560
fully agree:

The problem is Frigate triggers an event based on a "Person" object detection because their models only do object detection. It would be better if they implement a face detection model to have a Face event that could be sent to Double-Take.

or a way to feed custom models from motion-trigger?

New API event/endpoint: clips!
https://github.com/blakeblackshear/frigate/discussions/1502#discussioncomment-1281356

There is a new endpoint not yet in the http docs: /api/events/<event_id>/clip.mp4. This will use ffmpeg to dynamically create an mp4 in the tmp directory from the recording segments and then tell nginx to return that file as the result. It is shockingly fas

Closing since this is now included in the 1.0.0 release.


Blockly Search

Where are these blocks coming from?  Should we only Search over the categories that are shown in the Toolbox?

Also, not surfacing what I would expect... try "while", "absolute", "if"
And, should think of a better way to get out of Search mode - when you click out, should delete Search term and exit Search.

Search searches all our blocks in the worker. We haven't limited the blocks that show up there. We should do that.

It is also possible to surface text blocks by using them in JavaScript, then coming back to blocks.

Math + / - also not shown.

set / change variable also

There is a number of "built-in" blocks that won't show in search.

Should we surface these blocks? Maybe have a generic method that returns all the blocks, in a standard format like blockInfo?

As a rule of thumb, we should surface all blocks available in the toolbox - no more, no less. (maybe more later)...

This issue looks fixed.

Search relevance issue still exists.

Search is now much better; it wasn't correctly including built-in blocks and advanced categories. It also didn't search localized blocks. All of those were fixed in the last 1-2 months.


The workaround to set the GPIO pins for Linux Kernel version is >=  3.18 doesn't work.

The workaround for Linux Kernel version >=  3.18 proposed in /soletta/src/samples/flow/minnow-calamari/README doesn't set the GPIO pins properly.
Path to the fbp files: /soletta/src/samples/flow/minnow-calamari/
fpb files tested:

calamari-rgb-led.fbp
calamari-lever.fbp
calamari-led.fbp
calamari-buttons-rgb-led.fbp
calamari-7seg.fbp

Errors returned:

calamari-rgb-led.fbp:42:28 Couldn't resolve type name 'RGBLed'
calamari-lever.fbp:35:1 Couldn't resolve type name 'SegmentsLever'
calamari-led.fbp:36:1 Couldn't resolve type name 'LedLever'
calamari-buttons-rgb-led.fbp:38:1 Couldn't resolve type name 'Button1'
calamari-7seg.fbp:38:26 Couldn't resolve type name 'SevenSegments'

How did you launched the sol-fbp-runner?
did you exported SOL_FLOW_MODULE_RESOLVER_CONFFILE to be the sol-flow.json ?

yes I did it first with;
 export SOL_FLOW_MODULE_RESOLVER_CONFFILE=sol-flow-new.json

and after that by launch the fbp-runner:
  sol-fbp-runner <fbp file name>

I'v commited a fix for that a day or two ago, can you test again?

Test done. The patch have fixed the issue. Thank you.


skip slides using links

I need to go from one slide to another using a hyperlink.
I am in basic.html#3 and I want to go to basic.html#7, I added a hyperlink to a text with link './basic.html#7'. On clicking it the address in the address bar changes, but the slide doesn't change. Is there any way to achieve this?

Good idea :) Right now you'll need to inject your own JS and use the navigate function which is exposed to the client.
The front-end JS needs a big overhaul, though, so I'll be sure to include something like this.

Cool, thanks. Let me try adding the JS for navigate in my markdown and see if it works.

+1 for this feature.

@neotheicebird Were you able to do this? Do you have a code example of how you used the navigate function?


How to get the pixel color if a training ray it traverses multiple submodules?

This work is excellent. But I have a question, in the paper, you said each submodule can be trained separately, but what if a training ray corresponds to multiple submodules, do you merge the sample points in different modules?

at train time, we'll include the ray in the train set of all cells it traverses (since we don't know the 3D structure of the scene a priori). at inference time, we'll query the submodule of the cell each sampled point is within before compositing into a single pixel value


Add slack notification for github-plan-and-apply

A reference to the issue / Description of it
Issue identified by @sukeshreddyg that no slack notification is triggered if the first job fails, only the second job. This PR adds a Slack notification step to the first job.
How does this PR fix the problem?
see above
How has this been tested?
Please describe the tests that you ran and provide instructions to reproduce.
No
Deployment Plan / Instructions
Will this deployment impact the platform and / or services on it?
No
Checklist (check x in [ ] of list items)

[X] I have performed a self-review of my own code
[ ] All checks have passed
[ ] I have made corresponding changes to the documentation
[ ] Plan and discussed how it should be deployed to PROD (If needed)

Additional comments (if any)
{Please write here}

not required, fixed under PR https://github.com/ministryofjustice/modernisation-platform/pull/8612


add gravatar for unreg contributor and fix add unreg contrib fail

Purpose
Add gravatar for unregistered contributor and fix the problem that add unregistered contributor fail when you don't fill in the email filed. Closes [#OSF-4064][#OSF-4324].
Changes
before change:
unreg contrib gravatar:

after change:

@chennan47 CR1 complete :+1:
@sloria are these CI builds consistent with the ones you resolved earlier this morning / can we re-run them / is that even necessary?

Yes, this PR will need to be updated with develop for the TCI builds to pass.

Pass finished. No changes explicitly required; feature works for me in browser.


[JetBrains Toolbox Recent Projects] ...

Extension
https://www.raycast.com/gdsmith/jetbrains
Description
I have followed the install instructions ,but it doesn't work. In raycast, the extension doesn't show anything, and haven't any error message
idea version:2021.3.3
raycast version:1.55.2

Steps To Reproduce
no other steps, just follow the install instructions
Current Behaviour
No response
Expected Behaviour
No response

@jinbaizhe-util did you install IDEA via JetBrains Toolbox?
If you did:

What version of Toolbox you are using?
Can you give the output of:

find ~/Library/Application\ Support/JetBrains -type f -name .history.json

I also see that's an older version of IDEA, any chance you can upgrade? JetBrains makes updates to the format of the history file this extension uses over time.
If you didn't:
This extension was made for Toolbox based installations and doesn't work well with manual installations. You can try re-installing via Toolbox or we can try and figure something out. As a first step it would be very helpful if you can let me know if you have any .history.json files anywhere in your ~/Library directory somewhere.

I have the same symptoms.

Okay, it's not finding any history files other than for Toolbox itself. Did you install the IDE(s) via Toolbox? What version of Toolbox are you using? What version of the IDE(s)?

I installed intelij through toolbox.
toolbox version: JetBrains Toolbox <IP_ADDRESS>04, macOS 14.0
intellij version: 2023.2

There is no support for Toolbox 2.0 – it is not actually released yet.

JetBrains Toolbox <IP_ADDRESS>19 and macOS 14.0 version are the same.

Okay, but if you already installed Toolbox 2.0 then it will have re-arranged all your tools (as the notice clearly states) so I don't think re-installing the previous version is going to work. Perhaps if you uninstall and re-install the tools there? I also don't know if there are any breaking changes in MacOS 14.0.

For anyone willing to test it out, please try the following PR #7799 which adds support for Toolbox 2.0


Prefilled assert in "test-integers-can-get-really-big" (koans/type-checking.lsp) fails on x86 version of SBCL (Windows)

The assert (assert-true (typep<PHONE_NUMBER>123456789 'fixnum)) fails on the X86 binary download available from http://sbcl.org/platform-table.html since most-positive-fixnum is equal to 536870911 in that version of SBCL. That hardcoded value would be better off being below 536870911 as the prefilled asserts should not fail (this is the only failing prefilled assert that I encountered while completing the Koans on the X86 Windows version of SBCL). Also the boundary between the fixnum and bignum types is already heavily emphasized in the following asserts in the test.

Yes, I ran into the same problem. I'm using Linux X86 version of SBCL 1.2.7
Evaluating most-positive-fixnum  returns 16777215, so the prefilled assert
(assert-true (typep<PHONE_NUMBER>123456789 'fixnum)) fails.
In result, the hardcoded value should be even less than 536870911

This issue probably doesn't matter too much since 32-bit processors are not relevant (and are probably going to get less and less relevant in the future) so I am going to close it. Plus it's probably a good learning exercise to encounter an error in the test suite itself for those who are using the 32-bit version of the software anyways.


DBZ-1782 Allowing any JSR 223 implementation for filtering SMT

https://issues.redhat.com/browse/DBZ-1782
@jpechane, as discussed.

@jpechane, I've got one other question for you: currently, if the filter expression returns true, the record is dropped. I'm contemplating whether it should not be the other way around, i.e. keeping it, if the expression is true. I.e. true would represent the "positive" case which may be more intuitive. Any thoughts?

@Naros, your thoughts on this question welcomed, too :)

@gunnarmorling Probably agree, it is even the same for KStream. My thinking was that usually people want to remove the events not keep them which leads IMHO to more natural writing of the condition.

@jpechane, addressed the first comment and pushed a commit for inverting the filtering logic. The one on validation is still pending.

Reworked once more to remove obsolete method and format.

Hi @gunnarmorling, I would agree to follow precedence here too.
Looking at this a bit I do question if it would be even more clear if #eval javadoc didn't really imply any form of filtering but rather whether the predicate the script implies was a match or not.  It's really a decision made by Filter here whats to be done with the evaluation.

@Naros, can you make a suggestion for the JavaDoc comment you'd like to see?

@gunnarmorling Feel free to merge when you make an agreement on Javadoc

Rebased and applied. Thanks, all!


Proxy support?

Will there be any update with proxy support?

Not from me, but the project can be forked and improved of course.

Including Proxy Support is now a goal for the .NET 5 Edition of the Library

Including Proxy Support is now a goal for the .NET 5 Edition of the Library

Proxy Support is now implemented in the NET5-Branch.

Proxy Support is now implemented in the NET5-Branch.


feat: Add org id support and org store link

This PR addresses several things:

Adds org-store-link (Closes https://github.com/nvim-orgmode/orgmode/issues/475)
Adds "org id" module (https://orgmode.org/manual/Handling-Links.html#FOOT28)
Expose api for setting headline properties and ID on the headline manually

[!IMPORTANT]
Breaking change: Mapping for org-insert-link is changed from <prefix>il (<leader>oil) to <prefix>li (<leader>oli).

Could you comment on why the default mapping was changed away from <prefix>il?
I couldn't figure out what the original orgmode uses, but doesn't look to me like they use something similar to <prefix>li.
Obviously, the new mapping is not in line with all the other keymappings that insert something, so I'm sure you had a very good reason to change this!

I changed it to be in line with store link mapping, so to store link you do <prefix>ls as "link store" and then you do <prefix>li as "link insert". Now when I think about it, I could've probably used <prefix>sl as "store link" and leave the old mapping for insert, but I'm not sure why I went the other way.


feat: Update dependencies

Use ipld-core and serde-ipld-dagcbor with patched branches

I've just released new versions. It should now work with ipld-core v0.4.0 and serde_ipld_dagcbor v0.6.0 without any further changes.

@vmx Thanks a lot!
I'm glad to finally be able to use the new version.


Fix integration tests on MacOS

What does this PR do?
This PR improves the ability to run integration tests on MacOS.
To do so, we make the defaults traefik entryPoints listen on localhost:<port> instead of :<port> so that macos does not complain an unsigned application is trying to receive incoming connection.
Also fix all test fixture configs to use localhost:<port>.
Motivation
I'm trying to run integrations test on my dev machine to validate my work.
More

[ ] Added/updated tests
[ ] Added/updated documentation

Additional Notes

Hey @sylr, it was my understanding that the container based integration tests worked fine, while the host based tests did not.
Is this something that can be explored to decrease the scope of the tests that are affected by this PR?

Hi @dtomcej,
You are right, the fixtures/ changes might be useless. I'll rollback them.
Thanks.

Instead of https://github.com/containous/traefik/pull/6061/files#diff-8449e3d93a890b1153a65283a93cf08bR22 Where tests are disabled because the IP isn't routable,
How about modifying the tests so that the request doesn't come from the host, but from another container.
It would require creating a tools container, and then docker exec or such to run the commands from that container. That would allow the tests to run, but without running from the host.

Are you suggesting we move the ProxyProtocolSuite from host to container ?

The root cause, of the majority of the problem with our integration tests on MacOS, is the docker-compose version that we use. We know that since a long time.
This require to change the tooling we use to run those kind of tests. https://github.com/containous/traefik/issues/4678
Changing Traefik code only to run integration tests on MacOS is not a good approach and having conditional tests only for MacOS does not seem a good approach either.

Skipping the ProxyProtocolSuite allowed me to run the whole test integrations suite successfully on my machine (with the changes made to the Makefile that are in https://github.com/containous/traefik/pull/6064).

Related to my previous post, we will decline this PR.
Thanks anyway.


EmitVertex() should have no parameters

If you compile the following GS shader:
struct GSOUT
{
float3 Position : POSITION;
};
[maxvertexcount(2)]
void GSMain(line float3 i[2] : POSITION, inout LineStream stream)
{
GSOUT p;
p.Position = i[0];
stream.Append(p);
p.Position = i[1];
stream.Append(p);
}
It outputs:
#version 150
in vec3 xsc_vary_POSITION;
struct GSOUT
{
vec3 Position;
};
void main()
{
GSOUT p;
p.Position = xsc_vary_POSITION[0];
EmitVertex(p);
p.Position = xsc_vary_POSITION[1];
EmitVertex(p);
}
EmitVertex() has no input parameters so it should be translated without them.
I think the only way to handle this one is the not-so-nice way:
#version 150
in vec3 xsc_vary_POSITION;
struct GSOUT
{
vec3 Position;
};
void main()
{
GSOUT p;
p.Position = xsc_vary_POSITION[0];
gl_Position = p.Position;
EmitVertex();
p.Position = xsc_vary_POSITION[1];
gl_Position = p.Position;
EmitVertex();
}
The nice way would be...
in vec3 xsc_vary_POSITION;
void main()
{
gl_Position = xsc_vary_POSITION[0];
EmitVertex();
gl_Position = xsc_vary_POSITION[1];
EmitVertex();
}
...but that's very hard to do in the generic case. (Writing to GSOUT might be in a function and might not occur in this order)

I'm aware of this issue, and I think this will take a little more investigation.
Anway, I'll keep your issue open until it's done.
The output code should look something like this:
layout(lines) in;
layout(line_strip, max_vertices = 2) out;

in vec3 xsc_vary_POSITION[];
out vec3 xsc_vary_OTHERPOSITION;

void main()
{
    xsc_vary_OTHERPOSITION = xsc_vary_POSITION[0];
    EmitVertex();
    xsc_vary_OTHERPOSITION = xsc_vary_POSITION[1];
    EmitVertex();
}

There's another problem: the semantic "POSITION" is used twice: as input and output.
This is not a problem when only a vertex and fragment shader is used, since the vertex input members are named differently.
But for the geometry shader the naming convention for input and output semantics is equal.
Now if we change the output or input namings for geometry shaders (e.g. "xsc_geom_" prefix, instead of "xsc_vary_"), we also have to change this for the counterpart in the other shader stages.
But that will lead to new problems, since the shader stages are cross-compiled independently.
So you see, for geometry shader support there's a lot more to do ;-)
But I think this is something which should be just declared as an official "limitation",
i.e. the programmer should be aware of this limitation, and should never use the same semantic
as input and output in the same shader stage.

You just made me realize that in HLSL I can even reuse the entire structure:
struct VSOUT
{
float3 Position : POSITION;
};
[maxvertexcount(2)]
void GSMain(line VSOUT i[2], inout LineStream stream)
{
VSOUT p;
p.Position = i[0].Position;
stream.Append(p);
p.Position = i[1].Position;
stream.Append(p);
}
This compiles with fxc.
I don't mind if something like won't translate into GLSL - it has no practical use anyway.

The arguments from EmitVertex function calls are no removed by the GLSLConverter class.
There's more work to do for this inside the HLSLAnalyzer, when a non-struct object is passed as argument to the Append intrinsic for instance.
Example:
stream.Append((GSOUT)i[0].Position);
stream.Append((GSOUT)i[1].Position);

This currently translates to:
EmitVertex();
EmitVertex();

But that's another issue.


WIP: Add unix socket support?

Works on my machine borrowing most of the code from the tcp adapter. Has some implementation issues that I'll be putting as a list here:

peer and remote address is set to a filler value because there is a different SocketAddr type than required, not sure how I can convert between the two.
As seen in #171 , the path of the unix socket is currently hacked in via other options and the SocketAddr is completley ignored, considering using an Option here.
Throughput has no native UnixSocket test yet.

Tested in release, websocket is only slow in debug for some reason, here is an output from the same computer for reference:
Sending 1GB in chunks of 65507 bytes:

message-io Udp:  	Throughput: 9.24 GB/s
message-io Tcp:  	Throughput: 5.68 GB/s
message-io FramedTcp:  	Throughput: 4.49 GB/s
message-io Ws:  	Throughput: 1.85 GB/s
message-io UnixSocket:  	Throughput: 9.61 GB/s

native Udp: 		Throughput: 10.24 GB/s
native Tcp: 		Throughput: 6.08 GB/s
native FramedTcp: 	Throughput: 4.78 GB/s
native Ws: 		Throughput: 1.94 GB/s

Discovered implementation issue where messages sent after each other without a sleep are dropped.

Datagram support throughput (in debug).
For release:

I'm still finding it odd that the stream based transport slows down in release but that might just be variation while I'm testing this.

Due to unix datagram sockets not really having an IPv4 or IPv6 that fits in the SocketAddr struct, the implementation is partially broken for now.
I may see if I can change the types on a separate branch as an experiment.

Hi @javaarchive, Mmmm... interesting the throughput issue. At such speeds could be noise in the runs. Is it always faster in debug or sometimes?


Set up Docker

Initial Dockerfile and docker-compose yml file have been merged to master. Still working on getting mayavi to work.


Update vulnerable dependencies from npm audit report

Describe the bug

There are currently 19 vulnerabilities (1 critical, 8 high, 10 moderate) shown from running npm audit
There is overlap with GitHub Dependabot alerts, tracked in #137.
5 of 19 vulnerabilities can be fixed using npm audit fix, the remainder require investigation.

To Reproduce
Steps to reproduce the behavior:

Clone the repo and check out dev branch
Run npm audit
Review security vulnerabilities

Expected behavior
All vulnerabilities should be resolved.

As of Apr 16, there were 9 vulnerabilities from npm audit --production and 21 from general report.
These are addressed in PR #168. All from prod report are addressed. Remaining issues for devDependencies can be ignored (
see previous PR #33 and https://github.com/facebook/create-react-app/issues/11174)


[bug] Jupyterlab instances die 15 mins after the dask-cluster terminates

Describe the bug
A clear and concise description of what the problem is.
In the past week I have spun up many dask-clusters. And from what I can tell, each worker runs on their own node. However after the cluster has completed running (and no new clusters are subsequently launched), the users jupyterlab instance will get killed. This has happened many times while I was in the jupyterlab itself actively working on a notebook.
The amount of time between the cluster terminating and my jupyterlab instance dying is remarkably consistent at just about 15 minutes.
From k9s pods point-of-view, I see the dask-worker pods terminate and drop away but the aws-node and kube-proxy pods stick around for the 15 mins. At the 15 minute mark after the cluster terminated, these aws-node and kube-proxy pods associated with my jupyterlab instance will also die.
Although at this point I have little to go on, it feels like to me that there might be a process which cleans up "unused" pods/nodes and it believes my jupyterlab instance is such a pod/node.
For reference, we have two node groups, general and user_worker. This user_worker node group is used for both the jupyterlab instances and dask-workers (as a cost saving measure because AWS prevents us from full-scaling down all nodes in a node group, see issue 595).
Also our idle culler is set as follows in the jupyterhub.yaml:
cull:
  enabled: true
  timeout: 1800 # cull after 30min of inactivity
  every: 600

Your environment
Describe the environment in which you are experiencing the bug.

Include your conda version (use conda --version), k8s and any other relevant details.

I have spun up many dask-clusters.

Does it happen with any dask cluster as in cluster of any size?

I will try to narrow the number down to night but I've noticed when I request 20 or fewer workers, things usually seem fine. However whenever I request many workers, 50+, I can almost guarantee that my jupyterlab instance will get killed.

Log from scheduler:
│ distributed.core - ERROR - Exception while handling op heartbeat_worker                                                                                │
│ Traceback (most recent call last):                                                                                │
│   File "/home/conda/store/91de068ec9f7aa232681e9e91b95d44050f0b94fec0deb15da53ce08bc6d63ed-DT/lib/python3.8/site-packages/distributed/core.py", line 494, in handle_comm                                                                │
│     result = handler(comm, **msg)                                                                                │
│   File "/home/conda/store/91de068ec9f7aa232681e9e91b95d44050f0b94fec0deb15da53ce08bc6d63ed-DT/lib/python3.8/site-packages/distributed/scheduler.py", line 3887, in heartbeat_worker                                                     │
│     ws._executing = {                                                                                │
│   File "/home/conda/store/91de068ec9f7aa232681e9e91b95d44050f0b94fec0deb15da53ce08bc6d63ed-DT/lib/python3.8/site-packages/distributed/scheduler.py", line 3888, in <dictcomp>                                                           │
│     parent._tasks[key]: duration for key, duration in executing.items()                                                                                │
│ KeyError: 'concat_parts-0df3a85c-6b0f-4d82-a7d7-4e8730766abb'

From my work with @tylerpotts and @aktech, this issue was resolved by suspending the AZRebalance feature of the EC2 auto-scaling group, here AWS documentation here.


setting node_debug

Please provide us with the following information:

OS?

Windows 7, 8 or 10. Linux (which distribution). Mac OSX (Yosemite? El Capitan?)

Versions.

Please run ng --version. If there's nothing outputted, please run in a Terminal: node --version and paste the result here:

Repro steps.

Was this an app that wasn't created using the CLI? What change did you do on your code? etc.

The log given by the failure.

Normally this include a stack trace and some more information.

Mention any other details that might be useful.

Thanks! We'll be in touch soon.

Sorry, noob question.  I just want to set the NODE_DEBUG environment variable for node so that I can see where a possible require() circular dependency might be.  I'm getting an empty object back from require() in javascript on (I think?) browser side.  Using angular-cli: 1.0.0-beta.19-3, node: 6.5.0, linux x64

NODE_DEBUG would not help you with circular dependencies in the browser, because webpack itself does not take it into account when building the bundle that's served to your browser. It's only useful for server side debugging.
Please note that CommonJS allows circular dependencies. But it does not allow for good tree shaking. I suggest you change your requires to imports instead, and the circular dependency might show up at that point.

Thanks hansl, I will try that but since then I think my problems are with Webpack and I need to read up on that...


x/website: out of date docs in effective go

Hi, effective go still references having to do e.g.
req := req in a for loop:

The bug is that in a Go for loop, the loop variable is reused for each iteration, so the req variable is shared across all goroutines. That's not what we want. We need to make sure that req is unique for each goroutine. Here's one way to do that, passing the value of req as an argument to the closure in the goroutine:

This is no longer correct as of 1.21 (https://go.dev/blog/loopvar-preview)
What is the URL of the page with the issue?
https://go.dev/doc/effective_go
What is your user agent?
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0
Screenshot

What did you do?
Visit the page
What did you expect to see?
Up-to-date docs explaining how since go1.22 you don't need to do the loopvar trick.
What did you see instead?
Docs explaining that you need to do req := req in a for loop.

Related Issues and Documentation

Incorrect use of closures in Effective Go documentation #6502 (closed)
x/wiki: CommonMistakes mention loopvar change in section using-goroutines-on-loop-iterator-variables #65659 (closed)
doc: unclear why the example code might be buggy #25072 (closed)
x/website: wiki CommonMistakes should mention Go 1.22 about loop variables #68309 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)


Add spi and i2c to stm32f1 micromod v4 & v5

For the V4 and V5 we must use bit-bang spi because the pins are switched up. We do not have a driver for i2c, so we will need to use hal::soft::bit_bang_i2c for this as well.

resolved by #18


Update LAB[PL-200]_M04L01_Canvas.md

Module: 00
Lab/Demo: 00
Fixes # .
Changes proposed in this pull request:

Submitted by ParameshRamki on behalf of MOC Labs Review


copied text does not include sufficient/correct HTML entity escaping

Environment
Windows build number: 10.0.18362.356
Windows Terminal version (if applicable): 0.4.2382.0
Copy-on-select is enabled (I doubt it matters)

Steps to reproduce
Select some text in the terminal containing a < character. Right-click to copy it if needed.
For example:

Expected behavior
Text is copied to the clipboard as both plain text and valid HTML.
Actual behavior
Pasting into notepad pastes the full selected plain text.
Pasting into an HTML-capable app (in this case the mail client) shows that entity-escaping hasn't been done correctly:

Note this comment in PR #2038:

HTML text was unescaped, and it still is, becouse Word doesn't work with HTML entities, like <. But it seems to accept the invalid HTML with > from prompts. So if there is no text like <someTextThatNowBecomesATag>, it should work.

Indeed, I left it unescaped only because MS Word wouldn't handle that (its HTML support is quite retarded actually), which is quite common target for such copy.
However, when RTF copy is supported (#2487), then Word might prioritize it over HTML (though if someone explicitly selects HTML paste, then it still wouldn't work).
It might be worthwhile to introduce escapeHtml setting maybe?

Indeed, I left it unescaped only because MS Word wouldn't handle that (its HTML support is quite retarded actually), which is quite common target for such copy.

@mcpiroman how did you determine that Word couldn't handle it? Do you have a ref for that? I did some quick tests copying and pasting from mintty in HTML format, and whatever it emits for < > etc. appears to paste correctly into Word.

@0xabu I've played with it a quite a bit when writing mentioned PR few month ago and it simply didn't work (they were just literally displayed as I can remember). However I've just tried this once again and it worked. So it looks like they've updated Word to handle that.

I have a concern that this is not the right fix here. As mentioned by @DHowett-MSFT
(https://github.com/microsoft/terminal/pull/2777/files#r324902781)
I have been having issues with copy/paste from terminal but in this test above my copy worked.

Microsoft Windows NT 10.0.18362.0
Windows Terminal (Preview) Version: 0.4.2382.0

PS C:\> echo "<foo>"
 <foo>
PS C:\> echo "<bar"
 <bar

Not sure if this is related but when I put the above commands in a script and output I get this weird spacing issue:

output.log
Opening in Atom shows two unreadable characters. Notepad does not.
I have been having issues with coping JSON from Terminal and I plan on opening a separate issue for this. But for context on why I think its how I think Terminal handles symbols and characters.
When I copy JSON from Terminal to Atom/Notepad it strips the "Topics":[ completely out. Oddly enough, in Chrome when posting this it copied correctly, but still does not in Atom/Notepad.
{                                                                                "Topics": [
    {
      "TopicArn": "arn:aws:sns:"
    },
    {
      "TopicArn": "arn:aws:sns:"
    },

Your first thing looks like you’re using UTF-16; don’t do that :P
The second thing: if you scroll all the way to the right in Atom/Notepad, do you see Formats on the right edge?

This issue is only with HTML copy. You didn't say, but it sounds like you may have done the copy into an applciation (like a text editor) that pastes plain text.

@DHowett-MSFT, I did switch Atom from Auto to UTF-8 and that is when I get the odd spacing, UTF-16 LE displays properly. Thanks for the tip.
@0xabu I see how the issues differ I apologize for hijacking your issue.
Could the escaping characters be only limited to the HTML tags or expand to [ and {?


Simple implementation of IScrollAnchorProvider.

Note: this PR targets #4040, retarget to master before merging
What does the pull request do?
A minimal implementation of scroll anchoring which is intended to improve scrolling in the ItemsPresenter with items of differing heights/widths.
This functionality is defined in UWP but this PR doesn't attempt to implement all of UWP's features here, in particular:

No equivalent of UIElement.CanBeScrollAnchor: my thoughts here are that this functionality is too niche to deserve a property being added to every control
No equivalent of ScrollViewer.AnchorRequested: this can be added later when needed

Depends on #4040

Does this already fix scrollbar jumping around in ItemsRepeater when using non-uniform items heights in StackLayout ?

Does this already fix scrollbar jumping around in ItemsRepeater when using non-uniform items heights in StackLayout ?

It doesn't fix the scrollbar jumping around, but it does fix scrolling with e.g. the mousewheel causing the contents of the ItemsRepeater jumping around. I don't think there's any way to prevent the scrollbar jumping around without having extra information about the size of non-materialized items.

Closing this. Will reopen a new PR with this and #4040 combined as they're hard to separate.


I can't install it on manjaro linux

Expected Behavior
It should install
Current Behavior
It doesn't install
Possible Solution
Don't know. Just fix it.
Steps to Reproduce (for bugs)
npm install --save iohook with npm 6.0.0 and manjaro linux
Your Environment
npm 6.0.0
nodejs 10.0.0
manjaro linux newest version
Error:
[daniel@daniel-pc amazon-music-linux]$ npm install --save iohook
npm WARN rm not removing /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/.bin/electron-download as it wasn't installed by /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/electron-download
npm WARN rm not removing /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/.bin/uglifyjs as it wasn't installed by /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/uglify-js
npm WARN rm not removing /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/.bin/mkdirp as it wasn't installed by /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/mkdirp
npm WARN rm not removing /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/.bin/mime as it wasn't installed by /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/mime
npm WARN rm not removing /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/.bin/browserslist as it wasn't installed by /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/browserslist

><EMAIL_ADDRESS>install /home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/segfault-handler
> node-gyp rebuild

make: Verzeichnis „/home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/segfault-handler/build“ wird betreten
  CXX(target) Release/obj.target/segfault-handler/src/segfault-handler.o
../src/segfault-handler.cpp:8:10: schwerwiegender Fehler: v8-debug.h: Datei oder Verzeichnis nicht gefunden
 #include <v8-debug.h>
          ^~~~~~~~~~~~
Kompilierung beendet.
make: *** [segfault-handler.target.mk:97: Release/obj.target/segfault-handler/src/segfault-handler.o] Fehler 1
make: Verzeichnis „/home/daniel/Projects/JavaScript/amazon-music-linux/node_modules/segfault-handler/build“ wird verlassen
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack     at ChildProcess.emit (events.js:182:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:225:12)
gyp ERR!  Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/daniel/.npm/_logs/2018-05-14T16_59_24_971Z-debug.log

Hi there, thanks for your feedback. Currently iohook is not compatible with Node.js 10. (see https://github.com/ddopson/node-segfault-handler/pull/50). Could you test with Node 9 ?

I will try to install LTS version on Manjaro. Thanks for your answer.

Installed NVM, then installed Version 8.6.x of Node and it worked!


MM-8497 Set Do Not Disturb for a period of time

Documentation for: https://github.com/mattermost/mattermost-server/pull/16067
Updated:

User's Guide > Getting Started > Setting Your Status and Availability

Added new subsection called Pause All Notifications

Closing this PR in favour of https://github.com/mattermost/docs/pull/5255


fix ObjectDefinition in compiletime

ObjectDefinitions have string keys in the compiler.
The following code does not compile without thix fix:
let a = compiletime(new UnitDefinition('xxxx', 'hfoo"))

The reason is that's the compiler uses string keys, the stdlib uses int keys. It compiles into assigning in string to integer, which fails compilation at pJass stage. This PR fixes the issue.
(Note that it works even without this fix in @compiletime functions, because objects created in such functions are not being transmitted to runtime)

The code snippet contains syntax errors. Also remove the 8b1f7d1 commit please.
I'm not sure what this "fixes" ? if you want to supply "hfoo" as a string, just convert it to an int using "hfoo".fromRawCode().

Whoops, I have no idea how this commit has got here 🤣 . Gonna remove it a little bit later.
Yea, I see, there is a typo, there should be a closing ' instead of ".

Okay, rebase this branch and I can merge

???


@damassi => Inserts redux into auction2 page for switching between list and grid components

This PR adds a baby redux store to the /auction2 page in force.
Previously we'd re-render the artwork components on the filter.artworks.on('reset') handler-- now, that event calls the updateArtworks redux action.
The other available redux action is toggleListView, which alters whether the grid or list component is shown.

There is currently just one reducer that handles all of the actions. I could see breaking it out into separate ones as well.
Also there are no tests yet 😢  Wanted to chat with you or @craigspaeth about recommendations for testing this architecture, but also wanted to get this in before the force merger.

W00t! ❤  that we're heading into the ✨  future ✨  with this app.
I'll just poke my head in to mention that I'm a fan of Baobab which has less boilerplate and need for things like updeep (it's a "persistent" immutable.js map), at the cost of not providing architecture for "pure functions" or declarative data like Redux/Relay. Also just passing around plain ol' react state is a solid choice for most small/medium size React UIs.
That said I see the strong argument for Redux since we're using it in Prediction and it's way more popular. I also don't think we need to have one true way throughout Force, so 👍  to this—just putting in food for thought.

@craigspaeth - Regarding Baobab and other similar libraries: if there was time / inclination to create infrastructure around it I think it would be a really solid choice, but from the docs I think it could work against us in terms of convention and scale:

Baobab is not a library inspired by Flux, but it is a library that fits with the ideas of Flux. You want a centralized hub for all your application state. It being data retrieved from the server or UI state. Using Baobab this is one single object, called a tree. Your components are able to retrieve data cursors from this tree and whenever something happens to that cursor, the component will be notified. To change state of the Baobab tree it is encouraged to use an event hub. Your components trigger events like addTodo on the event hub, and some other part of your code is responsible for listening to that event and act upon it. This decouples your components from the rest of your business logic. The components will only depend on the Baobab tree and the event hub. The rest of your business logic is behind whatever listens to the events on your event hub.

What makes the React / Flux model so scaleable is that it forces you into a unidirectional flow through conventions, where situations that lack it can very quickly get messy -- for example, if using baobab in a loose fashion (without architecture in place to constrain certain conditions) then you end up with a situation very similar to Backbone in that you can call data.set() anywhere and the UI will update, and as things grow it becomes very difficult to see where the updates are coming from. By following the unidirectional flow through dispatch -> actions -> reducers -> state change,  it makes this very easy to reason about and scale. Also, being able to connect your components and grab state slices is a real dream -- no props generally need to pass, which makes for a very slender DOM tree.

Looks like you got a 💚 ! You're welcome to work on this more, but since it's under admin cover you should feel free to merge whenever before Sunday Sunday Merge Day.

Changes look good 👍


Add my second file

This is the another pull request Im creating

Hey , I hope this is going good and I've created a pull request successfully and gonna merge it


[Question] No syntax highlighting for base class in inheritance?

I am writing a colorscheme for my neovim and I can't find highlighting for inheritance as you can see here

Hi @MordechaiHadad, I think this is a limitation of the server's /highlight endpoint - I don't get any highlighting for a base class in that situation either.
However a couple of months ago, a new /v2/highlight endpoint was added to OmniSharp-roslyn. I am currently in the process of migrating over to it, in PR #588. In this version the base class is highlighted, in the same way as the new class.
The PR isn't quite ready yet, I need to come up with a new g:OmniSharp_highlight_types format and document it. Hopefully I'll be able to get back to it soon. You are most welcome to try out the PR, but please note that it is subject to change.

Oh that's good to know, thank you for your answer.

Hi @nickspoons I have updated omnisharp-vim because I saw you finally merged the PR
but I don't seem to find the new highlights added with the /v2/highlight endpoint.

@MordechaiHadad what is output when you put the cursor on e.g. Node2D in your example, and run :OmniSharpHighlightEcho?

@MordechaiHadad what is output when you put the cursor on e.g. Node2D in your example, and run :OmniSharpHighlightEcho?

weird it says no kind found for everything...

Hmm. I have noticed an OmniSharp-roslyn bug with the new endpoint which occurs occasionally, where particular buffers are not highlighted at all. Looking at the log, there is an error ocurring with a use of Enumerable.Single().
I started to write a PR today to replace it with First(), but I couldn't create a reliable minimal repro project. I'll have another play with it.
What type of project are you working on? Is it just the one file with no highlighting, or are no C# files highlighted?

Hmm. I have noticed an OmniSharp-roslyn bug with the new endpoint which occurs occasionally, where particular buffers are not highlighted at all. Looking at the log, there is an error ocurring with a use of Enumerable.Single().
I started to write a PR today to replace it with First(), but I couldn't create a reliable minimal repro project. I'll have another play with it.
What type of project are you working on? Is it just the one file with no highlighting, or are no C# files highlighted?
Everything in the solution(multiple files) is highlighted other than the new endpoint highlights.

Everything in the solution(multiple files) is highlighted other than the new endpoint highlights.

I don't understand what you mean. The recent PR has replaced all OmniSharp-vim highlighting which previously used the OmniSharp-roslyn /highlight endpoint, to now use the /v2/highlight endpoint.
You should be able to run :OmniSharpHighlightEcho on any non-whitespace character in the buffer and see an roslyn symbol type.

We are talking about OmniSharp-vim's semantic highlighting, right? Not the standard C# highlighting which ships with Vim?

We are talking about OmniSharp-vim's semantic highlighting, right? Not the standard C# highlighting which ships with Vim?

I believe so but i'm quite unsure with all honesty

OK. With that line, when you first open Vim to a .cs file, you should initially see basic Vim highlighting. Once the OmniSharp-roslyn server has finished loading, the semantic highlighting should come in over the top. Here's an example asciinema I made a few months ago - note the colours change at around the 8 second mark, when the server finishes loading:

Is this what you're seeing?

okay seems like im using vim's highlights... and nothing changes at all.
why?

Is OmniSharp-vim working at all? Are :OmniSharpGotoDefinition and :OmniSharpFindUsages working correctly?

What is your environment?

Is OmniSharp-vim working at all? Are :OmniSharpGotoDefinition and :OmniSharpFindUsages working correctly?

What is your environment?

not at all
define what you mean by enviroment

@MordechaiHadad the neovim bug has been fixed - if you get a nightly build then OmniSharp-vim can be used with neovim on Windows.

Wtf that was fast... Thanks @nickspoons

How can I set my own highlights for each Type?

How can I set my own custom color for each type(such as ClassName, MethodName)?

Wtf that was fast... Thanks @nickspoons

Just good timing on your part - #499 has been open since August last year.

How can I set my own custom color for each type(such as ClassName, MethodName)?
and I dont mean just Identifier or Keyword etc...

You can highlight roslyn symbols using the g:OmniSharp_highlight_groups dictionary, like this:
highlight MyCustomHighlight ctermfg=1 ctermbg=2 guifg=#000000 guibg=#ffffff
let g:OmniSharp_highlight_groups = {
\ 'MethodName': 'MyCustomHighlight',
\ 'XmlDocCommentName': 'Identifier',
\ 'XmlDocCommentText': 'NonText'
\}

If you mean that e.g. class C1 and class C2 get different colours, I'm afraid you can't do that with OmniSharp.

Wtf that was fast... Thanks @nickspoons

Just good timing on your part - #499 has been open since August last year.

How can I set my own custom color for each type(such as ClassName, MethodName)?
and I dont mean just Identifier or Keyword etc...

You can highlight roslyn symbols using the g:OmniSharp_highlight_groups dictionary, like this:
highlight MyCustomHighlight ctermfg=1 ctermbg=2 guifg=#000000 guibg=#ffffff
let g:OmniSharp_highlight_groups = {
\ 'MethodName': 'MyCustomHighlight',
\ 'XmlDocCommentName': 'Identifier',
\ 'XmlDocCommentText': 'NonText'
\}

If you mean that e.g. class C1 and class C2 get different colours, I'm afraid you can't do that with OmniSharp.

thank you nick for the past couple days!

No problem, happy to help


Change to callback parameters in 1.2 is backwards-incompatible

This is probably a very rare case, but the change in fc9635c is not compatible with the previous version and could result in failures.
The code below demonstrates:
require 'micromachine'

class CallbackBug
  def initialize
    @fsm = MicroMachine.new(:new).tap do |fsm|
      fsm.when(:first,  new: :first_stage)
      fsm.when(:second, first_stage: :second_stage)

      fsm.on(:first_stage, &method(:first_stage))
      fsm.on(:second_stage, &method(:second_stage))

      fsm.on(:any) do |event|
        puts "Event #{event} =><EMAIL_ADDRESS>      end
    end
  end

  def run
    @fsm.trigger!(:first)
    @fsm.trigger!(:second)
  end

  private

  def first_stage(event)
    p event
  end

  def second_stage
  end
end

CallbackBug.new.run

The output of this is:
:first
Event first => first_stage
ArgumentError: wrong number of arguments (1 for 0)
from (pry):28:in `second_stage'

Hey @halostatue, great to see you here! A quick question first, did you run into this problem? Or is it just the good eye of an old time rubyist? I'd like to know how urgent it is for you to get this fixed, because I usually take very long times to modify a library. If it broke something for you, I can consider reverting the breaking change in the meantime. Let me know, and thanks a lot for reporting this.

Just the mark 1 eyeball, with contact lens accessory. :)
This is not urgent, but I also have a fix ready for you with #27. (I was going to put this as a comment originally for that PR, but I decided that the bug is worth reporting independently of the change.)

Excellent! Great catch, thanks a lot for reporting the issue. I will check the pull request and I guess I'll continue the conversation there.

With the release of 2.0, this is not really relevant as the change in API can be expected.


Only Node v4 or greater [Buffer only]

Will actual when Node v0.12 will not be supported. 1 Jan 2017 AFAIR

This was released as v3.0.4, and should have been v4.0.0 instead.


Azure IoT solution accelerators are obsolete?

The link to the Azure IoT solution accelerators page is now pointing to IoT Central.
This way the tutorial is failing because the sample telemetry cannot be generated anymore.
Because IoT Central and Time Series Insights are not working together that easily, another way of creating sample device simulators must be added.
Please repair this tutorial with a working device simulation.

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

ID: 0af92ead-7eb6-327d-2e17-a5ad9e630e0a
Version Independent ID: d8537d64-26bf-8e4c-c6a7-b539c77777f1
Content: Tutorial: Set up a Gen2 environment - Azure Time Series Insights Gen2
Content Source: articles/time-series-insights/tutorial-set-up-environment.md
Service: time-series-insights
GitHub Login: @riserrad
Microsoft Alias: riserrad

Hello @sandervandevelde Thanks for your feedback, yes IoT Solution Accelerators are no longer available.
Our SME will review your feedback on the tutorial and get back soon.

Thanks @sandervandevelde for your feedback. Thanks @riserrad for taking ownership of the needed doc changes.
#please-close


[Info] NetGuard(paid app) using your FREE hosts file.

Just for the heads up; do you know that your HOSTS file was used in
github.com / M66B / NetGuard
which is a PAID APP?
http://netguard.me/hosts
Just for the info from @M66B.

Most of NetGuard features are completely free and NetGuard is also 100% open source. Ad blocking is a free feature. The use of the hosts file is properly attributed in the opening post of the XDA NetGuard thread. The only place where ad blocking is 'advertised' is on XDA, since ad blocking applications are not allowed in the Play store.
Moreover, the hosts file URL is configurable, so everybody can freely choose which hosts file to use. The configure hosts file URL is just a default for the convenience of the users.
If something needs to be changed, just let me know and I will take care of it.

Thanks @verycrypt.  @M66B no worries all-good, keep up the good fight!

@ghost
Note that https://github.com/StevenBlack/hosts/blob/master/license.txt explicitly grants permission to

and/or sell copies of the Software

So it does not matter whatever it is used in paid program.

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

is the only requirement.


ParameterState: Add IParameterStateUnsafe and SetValueAfterEventCallbackAsync

Description
Needed for: https://github.com/MudBlazor/MudBlazor/pull/9262
This helps with interception of input actions.
For example, consider a MudSwitch component that uses both Value and ValueChanged properties. Currently, when the SetValueAsync is executed the ParameterState sets the new value before firing the EventCallback. This sequence can lead to a situation where the UI immediately reflects the new value, but if the user then cancels the action (such as through a confirmation popup), the UI may flicker back and forth between states—potentially resulting in an undesired user experience.
How Has This Been Tested?
unit test
Type of Changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation (fix or improvement to the website or code docs)

Checklist

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

@henon @igotinfected I added a simple unit test that covers the entire logic.
Do we need a complex integration test using bUnit, like what was done in https://github.com/MudBlazor/MudBlazor/pull/9262?

ParameterStateAfterEventCallbackComp
ParameterStateImmediateComp
ParameterStateConsumerTest

I feel that ParameterState is already well-tested, and a simple swap of sequence EventCallback -> Update Value doesn't require a complex bUnit test. A straightforward unit test to check this is sufficient:
https://github.com/MudBlazor/MudBlazor/blob/d8f01dc08e3ffdc65b338316ff2be5f43c1d8d5d/src/MudBlazor.UnitTests/State/ParameterStateExtensionsTests.cs#L18

Would any tests fails if we made setting the value after the event callback the default for all?

Would any tests fails if we made setting the value after the event callback the default for all?

I will test tomorrow, I would expect everything to work same as before as the end result it the same and I don't think there are quirks that rely on sequence. But I guess it would make sense to test it manually as well just to be sure.

@igotinfected fyi: https://github.com/MudBlazor/MudBlazor/issues/9507#issuecomment-2253652117

Do we need a complex integration test using bUnit

I agree in that the behavior of the extension method is simple, and the value logic will be tested by/for the components that use it like for MudCheckbox and MudSwitch.

While the extension method fixes the UI flicker, it doesn't fix the user value and the component state value going out of sync for my PR.
If we have a checkbox with TriState enabled, when the user clicks on the checkbox, by default all it does is cycle through that order of change (true -> false -> null).
Since we first call the callback, then apply the original value, the consumer Value and the component valueState will become out of sync:
https://github.com/user-attachments/assets/cb6d5917-ff6c-4a1c-8451-aed21570746c
On the left is the behaviour as-is in this PR, on the right is the behaviour if we don't touch the parameter state value when an EventCallback is set (code snippet below), allowing Blazor (i.e. MudComponentBaseWithState) to update the parameter state value itself. This version also passes all the checkbox/switch tests I wrote in my PR, but the method name would no longer make sense. It's more like "set value via eventcallback if provided or fallback to just setting it manually" :') I'm half asleep so apologies if what I'm saying doesn't make sense
public static Task SetValueAfterEventCallbackAsync<T>(this ParameterState<T> parameterState, T value)
{
    var parameterStateUnsafe = parameterState.AsUnsafe();
    if (parameterStateUnsafe.Comparer.Equals(parameterState.Value, value))
    {
        return Task.CompletedTask;
    }
    var eventCallback = parameterStateUnsafe.ValueChanged;
    if (eventCallback.HasDelegate)
    {
        return eventCallback.InvokeAsync(value);
    }

    parameterStateUnsafe.Value = value;
    return Task.CompletedTask;
}

@igotinfected fyi: #9507 (comment)

I definitely think the current version might be beneficial to other components as-is like for MudChipSet -- in my checkbox PR once I started messing around with the parameter state a bunch of tests started failing (off the top of my head MudCollapse, MudDataGrid, MudExpansionPanel, ...), so if making this the default imnplementation doesn't make any tests fail it is probably safe.

firefox_Lobin622xl.mp4

How is this test called in the viewer? I only see the SwitchValueBindingTest and SwitchWithTwoWayBindingTest

How is this test called in the viewer? I only see the SwitchValueBindingTest and SwitchWithTwoWayBindingTest, at least the SwitchValueBindingTest is different from yours. Also I somehow get two dialogs at same time, it doesn't look like it was affected by my PR in your branch

Ah it's CheckBoxValueBindingTest, still doesn't cancel the fact I'm seeing this:

With or without the Use the newly added ReadValue/WriteValueAsync

@ScarletKuro Yeah it's an issue with MudDialogProvider, required for unit tests but causes double dialogs in the viewer. I added this if/parameter to only render it in unit tests:
@if (RenderDialogProvider)
{
    <MudDialogProvider />
}

I also changed the dialog wording to make it clear that Cancel -> False, Maybe -> null, OK -> True

While the extension method fixes the UI flicker, it doesn't fix the user value and the component state value going out of sync for my PR.

Yeah, the point is more that you will be able to write your own extension with this PR. Though the name should probably be different for your version since SetValueAfterEventCallbackAsync would be misleading.
Currently, @henon and I are discussing whether my version, SetValueAfterEventCallbackAsync, should be the default in the ParameterState. Additionally, I want @henon to review your PR (https://github.com/MudBlazor/MudBlazor/pull/9262) as well.
Honestly, I'm a bit confused about why my SetValueAfterEventCallbackAsync doesn't work in your case. My theory was that when you intercept the OneWayBoundValueWithCallback:
<MudCheckBox T="bool?"
	   TriState="@true"
	   Value="@OneWayBoundValueWithCallback"
	   ValueChanged="@OpenDialogAsync"
	   Label="With value and callback"/>

private async Task OpenDialogAsync(bool? _)
{
	var dialog = await DialogService.ShowAsync<CheckBoxValueBindingDialog>("Simple Dialog");
	var result = (await dialog.Result)?.Data as bool?;
	OneWayBoundValueWithCallback = result;
}

Blazor should re-render after the ValueChanged as expected, causing the parent (MudCheckBox) to re-render with the new value and syncing the _valueState.
To be honest, I'm having a hard time wrapping my head around the OnChange -> ApplyTriStateLogicAsync -> SetBoolValueAsync chain, it's the core of this logic. That's why I want @henon to take a look with a fresh perspective. Maybe your version won't be needed after all if @henon comes up with other way. I'm slightly concerned that your version could introduce other side effects. I think we had something similar in an early version of ParameterState, and there were some edge cases, but I don't remember the specifics anymore.

Yup I'll let you guys decide on how to proceed!

Blazor should re-render after the ValueChanged as expected, causing the parent (MudCheckBox) to re-render with the new value and syncing the _valueState.

IIRC it's something related to how the "previous" (parameter state), "current" (parameter state) and "incoming' (user) values interact or are compared when the OnParameterSet is triggered -- the state desync causes the user value to be dropped I believe. It goes something like this:

checkbox starts with true (UserValue: true, CurrentStateValue: true, PreviousStateValue: true)
user clicks
SetValue is triggered with false, updates CurrentStateValue (UserValue: true, CurrentStateValue: false, PreviousStateValue: true)
EventCallback is triggered, implementation sets user UserValue to true again (i.e. cancel update) (UserValue: true, CurrentStateValue: false, PreviousStateValue: true)
Blazor re-renders, runs OnParametersSet comparison, and since UserValue and PreviousStateValue are the same, doesn't update CurrentStateValue

public void OnParametersSet()
{
    var currentParameterValue = _getParameterValueFunc();
    if (!_comparer.Equals(_lastValue, currentParameterValue))
    {
        _value = currentParameterValue;
        _lastValue = currentParameterValue;
    }
}

Would any tests fails if we made setting the value after the event callback the default for all?

Only one test fails and it's SimpleMudHiddenTest:
<MudHidden Invert="@Invert" Breakpoint="@Breakpoint" HiddenChanged="@( x => HiddenChangedHistory.Add(x) )" >
    <MudText>MudHidden content</MudText>
</MudHidden>

@string.Join(",", HiddenChangedHistory)

@code {
	[Parameter]
	public bool Invert { get; set; }

	[Parameter]
	public Breakpoint Breakpoint { get; set; }

	public List<bool> HiddenChangedHistory { get; set; } = new();
}

It doesn't use two way binding or one way, just listening to HiddenChanged.
And for some reason when the _value = value; is after callback I'm seeing the HiddenChanged is fired twice resulting in "false, false" at start, when you lower the browser size is results in "false, false, true, true". When you return the sequence back then it fires as normal.

IIRC it's something related to how the "previous" (parameter state), "current" (parameter state) and "incoming' (user) values interact or are compared when the OnParameterSet is triggered

Yeah, it seems so, removing the if makes my SetValueAfterEventCallbackAsync to work correctly with your CheckBoxValueBindingTest, but this breaks most of the parameter states tests and causing infinity re-renders,  using:
if (!_comparer.Equals(Value, currentParameterValue))

or
public override async Task SetValueAsync(T value)
{
    // ...
     var tempValue = _value;
    _value = value;
    _lastValue = tempValue;
}

is also not an options.

Would any tests fails if we made setting the value after the event callback the default for all?

Only one test fails and it's SimpleMudHiddenTest:
<MudHidden Invert="@Invert" Breakpoint="@Breakpoint" HiddenChanged="@( x => HiddenChangedHistory.Add(x) )" >
    <MudText>MudHidden content</MudText>
</MudHidden>

@string.Join(",", HiddenChangedHistory)

@code {
	[Parameter]
	public bool Invert { get; set; }

	[Parameter]
	public Breakpoint Breakpoint { get; set; }

	public List<bool> HiddenChangedHistory { get; set; } = new();
}

It doesn't use two way binding or one way, just listening to HiddenChanged. And for some reason when the _value = value; is after callback I'm seeing the HiddenChanged is fired twice resulting in "false, false" at start, when you lower the browser size is results in "false, false, true, true". When you return the sequence back then it fires as normal.
I didn't find any other side visual side effects when inspecting other components that use ParameterState.

This seems to be caused by this line:
protected override async Task OnParametersSetAsync()
{
	await base.OnParametersSetAsync();
	await UpdateAsync(_currentBreakpoint);
}

removing await UpdateAsync(_currentBreakpoint); the HiddenChanged to be fired twice when resizing, but breaks situation when you update Invert you need to call UpdateAsync to recalculate everything, I guess this can be healed if we use something similar what @henon did to MudList:
https://github.com/MudBlazor/MudBlazor/blob/f3170833e41a52c3fcd3981bbf20402c42900d26/src/MudBlazor/Components/List/MudList.razor.cs#L15

Okay, so

I guess this can be resolved by using something similar to what @henon did for MudList:

Using this:
registerScope.RegisterParameter<bool>(nameof(Invert))
    .WithParameter(() => Invert)
    .WithChangeHandler(UpdateAsync);
registerScope.RegisterParameter<Breakpoint>(nameof(Breakpoint))
    .WithParameter(() => Breakpoint)
    .WithChangeHandler(UpdateAsync);
registerScope.RegisterParameter<Breakpoint>(nameof(CurrentBreakpointFromProvider))
    .WithParameter(() => CurrentBreakpointFromProvider)
    .WithChangeHandler(UpdateAsync);

Indeed fixes the problem with MudHidden when you flip EventCallback with value set.
Why it breaks:
The issue arises because the event now fires first and is awaited with await eventCallback.InvokeAsync(value);. When HiddenChanged is triggered, Blazor initiates a re-render as always. During this re-render, OnParametersSetAsync is called. Since our SetValueAsync is awaiting the eventCallback, the _value = value hasn't been set yet. Consequently, the next check if (!_comparer.Equals(Value, value)) fails.
The UpdateAsync method calls SetValueAsync, which in turn calls await eventCallback.InvokeAsync(value);. Only after all this is done, _value = value is reached. Initially, I assumed that the Dispatcher would wait for SetValueAsync to complete before triggering a re-render from HiddenChanged.
I will let @henon decide if the SetValueAfterEventCallbackAsync should be the default behavior. It does make sense in many scenarios when dealing with inputs, but a big, fat note should be added when you want to do state updates on OnParametersSet / OnParametersSetAsync.

I really want to understand SetValueAfterEventCallbackAsync but I don't get it yet.
    public static async Task SetValueAfterEventCallbackAsync<T>(this ParameterState<T> parameterState, T value)
    {
        var parameterStateUnsafe = parameterState.AsUnsafe();
        if (!parameterStateUnsafe.Comparer.Equals(parameterState.Value, value))
        {
            // Cache ValueChanged as behind it is a lambda.
            var eventCallback = parameterStateUnsafe.ValueChanged;
            if (eventCallback.HasDelegate)
            {
                await eventCallback.InvokeAsync(value);
            }

            parameterStateUnsafe.Value = value;
        }
    }

Basically it overrides the parameter's internal value after executing the event callback setting it back to the original value in case the event callback changed it, right? So far so simple.
But I don't understand how that fixes problems where users want to force the value in the ValueChanged handler to a different value than the internal one. I'd have expected this makes it impossible to do so because it overrides any changes by the event handler with the original value.

But I don't understand how that fixes problems where users want to force the value in the ValueChanged handler to a different value than the internal one

After debugging MudChipSet from the https://github.com/MudBlazor/MudBlazor/issues/950) and trying to find answers, it seems like I hurried and was sleepy yesterday. The problem just comes down to this:
protected override async Task OnParametersSetAsync()
{
    await base.OnParametersSetAsync();
    await UpdateAsync(_currentBreakpoint);
}

If StateHasChanged is removed from there, then with both SetValueAfterEventCallbackAsync or the original SetValueAsync, the Yield / Delay(1) is not required anymore in this snippet: https://try.mudblazor.com/snippet/QaQSkVGBUGFOcywc
So, forget the part that it helps to handle different values than the internal one. All it helps is to not update the state yet, therefore not updating the UI while you are still inside the EventCallback. That's it.
So the questions remain the same:

Should this be the default behavior of SetValueAsync considering what I discovered in my three comments: comment 1, comment 2, comment 3?
If it shouldn't be the default behavior, should this exist as an extension?

Sorry, updated post, had wrong issue linked and code in the first paragraph.

OK, I understand now. It just enforces consistency.
In this case it seems to me this is something we should do by default.


Old googleapis dependency specified in the doc

Expected Behavior
The API installed by npm is outdated, so in the doc it should be written something like:
npm install googleapis --save

Actual Behavior
The API installed is an old one, but the online documentation should always refer to the most updated one.
npm install googleapis@27 --save

Me too.  NPM googleapis is up to version 39.2
Wny are we using version 27?

The node client lib changes major versions very frequently and often has breaking changes in major versions. To put things in perspective, version 27 is only a year old and there have been 12 major releases for the client in the past year. That's a lot of updates to keep up to date with.
Unfortunately we just don't have the tools and processes in place right now to automatically update and test the dependencies for every sample. Something I'd like to have at some point, but we're just not there right now. And it's safer for us to pin the version for a sample to a known working version rather than risk the samples breaking when the client library is updated.
You're of course welcome to use a more recent version of the client in your own apps.

Maybe specify in the doc what you just said, because it might happen that
people follow the QuickStart guide ignoring that they are installing an
outdated version. It happened to me, and I was trying to use some features
from most updated version. I spent 1 hour before figuring out why these
features were not working
On Thu, 25 Apr 2019 at 19:51, Steve Bazyl<EMAIL_ADDRESS>wrote:

The node client lib changes major versions very frequently and often has
breaking changes in major versions. To put things in perspective, version
27 is only a year old and there have been 12 major releases for the client
in the past year. That's a lot of updates to keep up to date with.
Unfortunately we just don't have the tools and processes in place right
now to automatically update and test the dependencies for every sample.
Something I'd like to have at some point, but we're just not there right
now. And it's safer for us to pin the version for a sample to a known
working version rather than risk the samples breaking when the client
library is updated.
You're of course welcome to use a more recent version of the client in
your own apps.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/gsuitedevs/node-samples/issues/71#issuecomment-486794791,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABMMH5PQUU4RJJLYCQDYVDLPSH4RRANCNFSM4HHRTOOA
.

As I wade thru the details, I'm finding out there are other changes to the auth key / credential generation stuff that is problematic here.  Authentication values don't contain content that matches up to the google sheets api v4 samples.  Ref: https://stackoverflow.com/questions/55839566/unable-to-use-google-sheets-api-cant-generate-correct-credential-elements.
Apparently you have to 'fake it' . In order to use the call authorize(credentials, callback) for Google sheets API v4,  I ended up creating my own credentials.json file containing
{
    "project_id": "xxx-sheets-api",
    "client_email"<EMAIL_ADDRESS>    "client_id": "xxx.apps.googleusercontent.com",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/ccinema-google-sheets-api%40ccinema-sheets-api.iam.gserviceaccount.com",
    "client_secret": "xxx",
    "redirect_uris": [
        "urn:ietf:wg:oauth:2.0:oob",
        "http://localhost"
    ]
}

My guess is, once the Google credential generation stuff stabilizes, some content re-write will be required (beyond the dependency issue in this topic.)

Update:  I'm working on NodeJS server, with Append mode
const res = await sheets.spreadsheets.values.append({
               spreadsheetId: 'xxx',    // from the spreadsheet URL
               range: range,
               valueInputOption: "RAW",  // was 'USER_ENTERED'
               insertDataOption: "INSERT_ROWS",
               resource: {
                   values: [valueArray]
               },
           });

for reference, my "valueArray" is a simple array.  I'm updating one row at a time, but you do have to wrap the simple array with array brackets...
Note: when using GoogleAPI v27, I was getting

error (node:4868) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'data' of undefined

The app functions okay in that data is pushed to the Google sheet, but the error problematic.  If I delete the line         "googleapis": "27.0.0", from package.json (save the file), then $ npm install googleapis --save I can see version 39 getting installed.  Rerun the server, all fixed.  No more error message upon Google sheet append operation. (Note: I did NOT have the issue when I was simply reading data from the Google Sheet.
Apparently size does matter. :)


style: Polish message

/ok-to-test

/merge

@codecov What's wrong with you.

Thanks, but this is the configuration of the development environment, if you want to change the production environment, please change it in the configs repository.
@ekexium

Got it


Type hint

Type hint become more and more popular in Python code, it can increase readability and reduce the burden of the documentation. It is originally proposed in https://peps.python.org/pep-0484/. For a tutorial "realpython" provides a good one, https://realpython.com/python-type-checking/. I think we should follow this practice and add type hint to our functions and classes.

Fixed in #14


Add support for ProxyJump

Breaking out from #190.

I'd like to see this too.

I think ProxyJump is the most significant missing feature that is preventing me from adopting assh as a default replacement for ssh. I think a decent middle ground would be if assh config build would put ProxyJump configs into place when they are found in assh-config.yaml files, because then I could still manage my ssh configs via assh. As it is now, I would have to maintain vanilla ssh configs where ProxyJump is required along with assh configs, and be careful not to overwrite those configs when using assh.

since  year 2017. Any Update on This issue?

2021, anything new?

Soon 2022... this is the only reason why we dont use assh. We really would want to have this! Please stop us from using Jinja templates :(

@milkpirate
Not to defend author's position on this issue, but just curios - where does requirement  of ProxyJump come from? I'm not expert in OpenSSH implementation but I was always sure that ProxyJump <bastion> is just syntactic sugar for ProxyCommand="ssh -W %h:%p <bastion>"  and that's exactly what assh does, together with alias resolving, nested proxies etc.
So having in assh.yml:
my-host:
	ProxyJump: bastion

is pretty synonymous to
my-host:
	Gateways: [bastion]

I understand that we can avoid an additional invocation of assh  with ProxyJump , but how can this be a showstopper?

Yeah, we have a wild setup, especially this "alias resolving, nested proxies etc." is necessary...

But what ProxyJump gives you that assh can't do?


upd(pap): 0.13.4 > 0.14.1

Fixes #2729

Debian fails because its version of golang is too old, so it was disabled on debian, and because of this it returns a non-0 exit code so the CI reports it as failed.


[DO-NOT-MERGE] clean ups

Stacked PR, for review only.

FYI, there is no need to git-rebase this PR after merging the previous one.  However, I had to "change base" in the github interface from "pr/list" to "ntv_dev".

On Thu, Mar 08, 2018 at 12:30:05PM +0000, ftynse wrote:

ftynse commented on this pull request.
The comment in 1b533c749231c3ac363ee3ba0d13344c577d8399 says "will be needed for a more robust derivation <...>", but there is no follow-up patch in this series that relies on this change.

There is: 6d74978c8d4f11200c7f5031ef9fe9cfc83072d5 relies
on this change.
skimo

On Thu, Mar 08, 2018 at 12:20:32PM +0000, ftynse wrote:

ftynse commented on this pull request.
In message of 6d74978c8d4f11200c7f5031ef9fe9cfc83072d5,
typo "annotations of
arguments to functions pointers"

Thanks.
skimo

On Thu, Mar 08, 2018 at 12:27:44PM +0000, ftynse wrote:

ftynse commented on this pull request.

@@ -313,21 +322,42 @@ bool generator::first_arg_is_isl_ctx(FunctionDecl *fd)
return is_isl_ctx(param->getOriginalType());
}

-/* Does a callback of type "fn_type" take its arguments?
+/* Does the callback argument "param" take its argument at position "pos"?
*

The memory management annotations of arguments to function pointers

Does "arguments to function pointers" mean "arguments of function pointer type" ?

No, its the arguments of the function that the pointer points to.

loc = SM.getExpansionLoc(loc);

s = SM.getCharacterData(loc);
if (!s)

die("No character data");

s = strchr(s, '(');
if (!s)

die("Cannot find function pointer");

s = strchr(s + 1, '(');
if (!s)

die("Cannot find function pointer arguments");

while (pos-- > 0) {

s = strchr(s + 1, ',');

if (!s)

	die("Cannot find function pointer argument");

}
s = strchr(s + 1, '_');

If the argument of the callback is missing an annotation, this will likely find a part of the type instead.  For example,
in isl_stat isl_foo(void (*callback)(isl_map *m, void*)) it will start at _map *m.  While that would not compare to __isl_take, we should not just assume it's __isl_keep by default.

OK... I'll make it a bit more robust...
skimo


Remove yarn.lock from .gitignore

yarn.lock should be tracked. See: https://yarnpkg.com/lang/en/docs/yarn-lock/#toc-check-into-source-control

@njlr I added the lock file to ignore in another project for a reason and ported the ignore from there to here. It's a great catch, thanks for the PR.


Clarification related to the reference model EXE/PRIV enforcements

In the IOMMU specification,
3.2. Fault/Event-Queue (FQ)
If PV is 0, then PID and PRIV are 0.
This sentence can be interpreted as it implies the logic of PCIe PASID TLP prefix. When this TLP doesn't exist, fields inside of it, e.x., Privileged Mode Requested field shouldn't exist.
6.20 PASID TLP Prefix

However, the reference model enforces this implied PCIe logic inside of IOMMU implementation:
    // If a Translation Request has a PASID, the Untranslated Address Field is an address
    // within the process address space indicated by the PASID field.
    // If a Translation Request has a PASID with either the Privileged Mode Requested
    // or Execute Requested bit Set, these may be used in constructing the Translation
    // Completion Data Entry.  The PASID Extended Capability indicates whether a Function
    // supports and is enabled to send and receive TLPs with the PASID.
    is_exec = ( (is_read && req->exec_req &&
                (req->tr.at == ADDR_TYPE_UNTRANSLATED || req->pid_valid)) ) ? 1 : 0;
    priv = ( req->pid_valid && req->priv_req ) ? S_MODE : U_MODE;

One uses the reference model verifying the hardware implementation may falsely enforces this logic inside of the RISC-V IOMMU implementation.
Should this be clarified?

Could you please explain more about the clarification sought?

For example, adding words stating the following is an implication in the PCIe scenario:

If PV is 0, then PID and PRIV are 0.

And adds special condition in the reference model around the logic indicating it is only used for non-PCIe address translation.
if (req->tr.at != ADDR_TYPE_PCIE_ATS_TRANSLATION_REQUEST)

For example, adding words stating the following is an implication in the PCIe scenario:
If PV is 0, then PID and PRIV are 0.

When process_id (PID) is not valid (PV) it is 0. This is not PCIe related. The IOMMU requires the validity to be indicated at input to the IOMMU (section 1.3) and requires PRIV to be 0 when process_id is not valid. When process_id is not valid only the G-stage page tables apply. In G-stage PTEs, when checking the U bit, the current privilege mode is always taken to be U-mode . This follows from RISC-V Priv. architecture (section 17.5.1 of Priv. spec) and is unrelated to PCIe.

And adds special condition in the reference model around the logic indicating it is only used for non-PCIe address translation.

The quoted code indicates that the transaction is not a PCIe ATS translation request but that does not imply it is only used for non-PCIE address translation. There are 10 types of transactions in the architecture - see TTYP encodings - of these TTYP=8 is specifically designating PCIe ATS Translation Request but the other 9 may be used by any other protocol - including PCIe.

For non-PCIe ATS translation requests, for example, a generic DMA master with ARM SMMU TBU remapping configured should be able to control PID and PRIV when PV = 0. It can choose to wire PID/PRIV to 0 when PV is 0.
Unlike PCIe which is constrained by the PASID TLP Prefix, I wonder if there is any usage model that such DMA master can choose to let PID/PRIV as is when PV is 0, or wire PID to a default value other than 0, and PRIV to 1 when PV is 0?

For non-PCIe ATS translation requests, for example, a generic DMA master with ARM SMMU TBU remapping configured should be able to control PID and PRIV when PV = 0. It can choose to wire PID/PRIV to 0 when PV is 0.
Unlike PCIe which is constrained by the PASID TLP Prefix, I wonder if there is any usage model that such DMA master can choose to let PID/PRIV as is when PV is 0, or wire PID to a default value other than 0, and PRIV to 1 when PV is 0?

I wonder if there is any usage model that such DMA master can choose to let PID/PRIV as is when PV is 0, or wire PID to a default value other than 0, and PRIV to 1 when PV is 0?

Use of PID (process ID), PV (process ID valid) and PRIV (privileged request) does not necessarily need PCIe/PASID. If a DMA master wants to drive a process ID (PID) input then it must indicate that the PID is valid by setting PV (process ID valid) to 1. PRIV can be 1 or 0 only when PID is valid. When PID is not valid PRIV must be 0. Only when process based isolation is used i.e. process ID is valid - there is a concept of user vs. supervisor - through the use of U bit in the PTEs since such page tables are associated with processes identified by process ID (PID).

IMO, PRIV should be driven by the DMA master side, given the reasons below:

Both PV/PID/PRIV are output signals that need DMA master's driving;
There must be driving source of these signals in the DMA masters' design;
In case of PV=0, DMA master should also encounter an embarrassing situation that the source of PID/PRIV when PV=0 is 0.

Thus the above logic is implied in the DMA masters design, and might not be a part of IOMMU.
As such, the reference model may remove the following logic which is detected to report model comparison fault with some hardware implementation:
    // If a Translation Request has a PASID, the Untranslated Address Field is an address
    // within the process address space indicated by the PASID field.
    // If a Translation Request has a PASID with either the Privileged Mode Requested
    // or Execute Requested bit Set, these may be used in constructing the Translation
    // Completion Data Entry.  The PASID Extended Capability indicates whether a Function
    // supports and is enabled to send and receive TLPs with the PASID.
    is_exec = ( (is_read && req->exec_req &&
                (req->tr.at == ADDR_TYPE_UNTRANSLATED || req->pid_valid)) ) ? 1 : 0;
    priv = ( req->pid_valid && req->priv_req ) ? S_MODE : U_MODE;

At least, this shouldn't be forced in IOMMU, but should be implementation dependent.

This can be extract out into a function that the implementation can provide. Updated in PR #306

Thanks for the clarification.


Move out parsing into perception

Description
This PR moves the actual parsing (text -> logical form) or (text -> text reply ) to perception and disentangles
the grounding of parses to dialogue objects.
Changeset here: #456
Stage 2 summarized here: #337
Type of change
Please check the options that are relevant.

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] Proposes a change (non-breaking change that isn't necessarily a bug)
[x] Refactor
[ ] New feature (non-breaking change that adds a new functionality)
[ ] Breaking change (fix or feature that would break some existing functionality downstream)
[ ] This is a unit test
[ ] Documentation only change
[ ] Datasets Release
[ ] Models Release

Type of requested review

[ ] I want a thorough review of the implementation.
[ ] I want a high level review.
[x] I want a deep design review.

Before and After
This change enables us to get closer to the pseudo code here: https://gist.github.com/soumith/787a51d0ee6e01e910d0e2b8cd56b159
TL;DR:

We now get parse and or reply separately (disentangled from associating them with DialogueObjects as before) from the datasets and models.
init_perception initializes this perception mode
dialogue_manager.step() now takes in the parse / reply and takes care of associating them with respective DialogueObjects and pushing them to dialogue_stack (compared to taking text before).
Cleaning up of dialog folder and moving relevant model and dataset files to perception

Testing
Tested locally on devfair and on CI
Checklist:

[ ] I have performed manual end-to-end testing of the feature in my environment.
[x] I have added Docstrings and comments to the code.
[ ] I have made changes to existing documentation where needed.
[ ] I have added tests that show that the PR is functional.
[ ] New and existing unit tests pass locally with my changes.
[ ] I have added relevant collaborators to review the PR before merge.

Review guidelines:

For the first commit that's pretty big, please review the files :

agents/craftassist/craftassist_agent.py
agents/loco_mc_agent.py
agents/locobot/locobot_agent.py
droidlet/dialog/dialogue_manager.py
droidlet/dialog/parse_to_dialogue_object.py
droidlet/perception/semantic_parsing_model/droidlet_nsp_model_wrapper.py
droidlet/perception/semantic_parsing_model/load_and_check_datasets.py
The folder : droidlet/perception/semantic_parsing_model/. Nit : this has been cleaned up and refactored in later commits. But high level refactor is here, so ignore some empty files there.

Some open questions:

Should we set the reply / logical form in memory somewhere explicitly ? (the output of chat_parser.get_parse(chat)
Do we need to still use the get_last_m_chats from DialogueManager in DialogueObjectMapper. We were using this before since this class was taking in chat and getting, parse, pushing DialogueObjects, there doesn't seem to be a need anymore since the DialogueManager's step function already gets the chat and parse.
Remaining nit: move chat_parser in init_perception to perception modules


Add filter facets for type and org to policy example

These are being included by policy-publisher when it published
policy content items.
Related: https://github.com/alphagov/policy-publisher/pull/82

Closing this because it's breaking tests in finder-frontend, in a very annoying way.

If you rebase this against master, that should fix the collections-publisher test failure.


I cant run more than one test case in flask

Expected Behavior
I want to run my test case but it does not work if there are more than one case
If it's just one case ,everything is ok
class FlaskClientTestCase(unittest.TestCase):
def setUp(self):
self.app = create_app("testing")
self.app_context = self.app.app_context()
self.app_context.push()
db.create_all()
    self.client = self.app.test_client(use_cookies=True)

def tearDown(self):
    db.session.remove()
    db.drop_all()
    self.app_context.pop()

def test_one(self):
    print("first test")

def test_two(self):
    print("second test")

Paste a minimal example that causes the problem.

Actual Behavior
first test
Ran 2 tests in 4.127s
FAILED (errors=1)
Error
Traceback (most recent call last):
File "C:\Python35\lib\unittest\case.py", line 59, in testPartExecutor
yield
File "C:\Python35\lib\unittest\case.py", line 597, in run
self.setUp()
File "E:\pythonDump\ordermeals\tests\test_client.py", line 13, in setUp
self.app = create_app("testing")
File "E:\pythonDump\ordermeals\app_init_.py", line 30, in create_app
db.init_app(app)
AttributeError: module 'app.db' has no attribute 'init_app'
Process finished with exit code 1
Paste the full traceback if there was an exception.

Environment

Python version:3.5
Flask version:1.0.2
Werkzeug version:0.14.1

Please use Stack Overflow for questions about your own code. This tracker is for issues related to the project itself. Be sure to include a minimal, complete, and verifiable example.