SPI Slave AVMM interface not match AVMM interface protocol

SPI salve AVMM interface looks strange. The waitreq asserted twice. Need to get rid of one of them:

You are issuing multiple write sequences for each address, which is why there are multiple waitreq. The correct sequence shoud have the write terminate after once cycle of waitreq is low. Keeping it high initiates a second transaction. Please see the Avalon specification.
Here is a snippet:

and the text from the same section. As indicated, the transfer ends at point 7.

The write sequence of AVMM is not issued by testbench. It is issued by your SPI slave IP state machine. When waitrequest go low, spi slave IP should de-assert write and move on to next transaction. Because the write signal keep asserted, make AVMM slave believe there is another write. The logic handle this is from this file at line 424:

Here is the waveform associated with the state machine:

Bug confirmed and being worked on.

Bug has been fixed from 0.85 check in.


Odd orange bar in activty bar in high contrast mode

Testing #50578
Issue Type: Bug
Steps

In high contrast mode
Right click on an activity bar item
Dismiss the context menu without selecting anything

Bug
A strange orange bar remains next to the clicked item

VS Code version: Code - Insiders 1.24.0-insider (bfd155e6039f64d2795c6b514a029ebd01a33527, 2018-05-29T06:13:09.810Z)
OS version: Darwin x64 17.5.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz (8 x 2200)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledrasterization: enabledvideo_decode: enabledvideo_encode: enabledvpx_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
3, 4, 4

Memory (System)
16.00GB (0.15GB free)

Process Argv
/Applications/Visual Studio Code - Insiders.app/Contents/MacOS/Electron -psn_0_1692061

Screen Reader
no

VM
0%

Not a regression. Hence moving to next milestone.

It is expected as it mentions it is currently focussed element. When you open context menu and dismiss it, focus remains on the activity bar action.


R-CNN predictions change with different batch sizes

🐛 Bug
Even when using model.eval() I get different predictions when changing the batch size. I've found this issue when working on a project with Faster R-CNN and my own data, but I can replicate it in the tutorial "TorchVision Object Detection Finetuning Tutorial" (https://pytorch.org/tutorials/intermediate/torchvision_tutorial.html), which uses Mask R-CNN.
To Reproduce
Steps to replicate the issue:

Open collab version: https://colab.research.google.com/github/pytorch/vision/blob/temp-tutorial/tutorials/torchvision_finetuning_instance_segmentation.ipynb
Run all cells
Insert a new cell at the bottom with the code below and run it:

def get_device():
    if torch.cuda.is_available():
        return torch.device('cuda')
    else:
        return torch.device('cpu')

def predict(model, image_tensors):
    """
    Generate model's prediction (bounding boxes, scores and labels) for a batch
    of image tensors
    """
    model.eval()
    with torch.no_grad():
        predictions = model([x.to(get_device()) for x in image_tensors])
    return predictions

def generate_preds(model, batch_size):
  """
  Create dataloader for test dataset with configurable batch size.
  Generate predictions. Return a list of predictions per sample.
  """
  dataloader = torch.utils.data.DataLoader(
    dataset_test, batch_size=batch_size, shuffle=False, num_workers=2,
    collate_fn=utils.collate_fn)
  all_pred = []
  for batch in dataloader:
    image_tensors, targets = batch
    predictions = predict(model, image_tensors)
    all_pred += predictions
  return all_pred

# Generate two sets of predictions, only change is batch size
preds1 = generate_preds(model, 1)
preds8 = generate_preds(model, 8)
assert len(preds1) == len(preds8)

# Investigate first five samples:
for x in range(5):
  print(f"\nSample {x}:")
  print("-Boxes")
  print(preds1[x]["boxes"])
  print(preds8[x]["boxes"])
  print("-Scores")
  print(preds1[x]["scores"])
  print(preds8[x]["scores"])
  print("-Labels")
  print(preds1[x]["labels"])
  print(preds8[x]["labels"])

The code above generates two sets of predictions for the test set. The first one is generated with a batch size 1 and the second with a batch size 8. The output that I get when I run that cell:
Sample 0:
-Boxes
tensor([[ 61.2343,  37.6461, 197.8525, 325.6508],
        [276.4769,  23.9664, 290.8987,  73.1913]], device='cuda:0')
tensor([[ 59.1616,  36.3829, 201.7858, 331.4406],
        [276.4261,  23.7988, 290.8489,  72.8123],
        [ 81.2091,  37.6342, 192.8113, 217.8009]], device='cuda:0')
-Scores
tensor([0.9989, 0.5048], device='cuda:0')
tensor([0.9988, 0.6410, 0.1294], device='cuda:0')
-Labels
tensor([1, 1], device='cuda:0')
tensor([1, 1, 1], device='cuda:0')

Sample 1:
-Boxes
tensor([[ 90.7305,  60.1291, 232.4859, 341.7854],
        [245.7694,  56.3715, 305.2585, 349.5301],
        [243.0723,  16.5198, 360.2888, 351.5983]], device='cuda:0')
tensor([[ 91.1201,  59.8146, 233.0968, 342.2685],
        [245.7369,  56.6024, 305.2173, 349.3939],
        [241.1119,  32.6983, 362.4162, 346.0358]], device='cuda:0')
-Scores
tensor([0.9976, 0.9119, 0.1945], device='cuda:0')
tensor([0.9975, 0.9128, 0.1207], device='cuda:0')
-Labels
tensor([1, 1, 1], device='cuda:0')
tensor([1, 1, 1], device='cuda:0')

Sample 2:
-Boxes
tensor([[281.1774,  53.5141, 428.7436, 330.3915],
        [139.6456,  23.7953, 264.7703, 330.2114]], device='cuda:0')
tensor([[281.7463,  53.2942, 429.3290, 327.9640],
        [138.7147,  23.8612, 264.6823, 332.3202]], device='cuda:0')
-Scores
tensor([0.9969, 0.9947], device='cuda:0')
tensor([0.9968, 0.9945], device='cuda:0')
-Labels
tensor([1, 1], device='cuda:0')
tensor([1, 1], device='cuda:0')

Sample 3:
-Boxes
tensor([[175.3683,  34.3320, 289.3029, 306.8307],
        [ 76.7871,  15.4444, 187.0855, 299.1662],
        [  0.0000,  45.9045,  51.3796, 222.0583],
        [319.1224,  53.0593, 377.1693, 232.7251],
        [260.2587,  55.8976, 309.0191, 229.4261],
        [ 70.2029,  27.2173, 126.4584, 234.3767],
        [ 38.0638,  55.5370,  65.4132, 164.1965],
        [ 98.7189,  91.5356, 172.5915, 295.5404],
        [ 70.1933,  56.1804, 103.6161, 218.4743]], device='cuda:0')
tensor([[175.1848,  36.0377, 288.8358, 305.3505],
        [ 76.8171,  15.7485, 187.4645, 299.5779],
        [  0.0000,  45.9045,  51.3796, 222.0582],
        [319.1060,  53.0140, 377.3391, 232.7926],
        [260.2587,  55.8976, 309.0191, 229.4261],
        [ 70.2030,  27.2173, 126.4584, 234.3767],
        [ 38.0638,  55.5370,  65.4132, 164.1965],
        [ 70.1933,  56.1804, 103.6161, 218.4743]], device='cuda:0')
-Scores
tensor([0.9968, 0.9959, 0.9942, 0.9937, 0.9271, 0.8133, 0.4273, 0.1163, 0.0884],
       device='cuda:0')
tensor([0.9974, 0.9965, 0.9942, 0.9937, 0.9271, 0.8133, 0.4273, 0.0884],
       device='cuda:0')
-Labels
tensor([1, 1, 1, 1, 1, 1, 1, 1, 1], device='cuda:0')
tensor([1, 1, 1, 1, 1, 1, 1, 1], device='cuda:0')

Sample 4:
-Boxes
tensor([[318.0241,  60.4089, 450.3268, 348.4254],
        [167.0622,  27.6761, 242.5035, 316.6244],
        [221.8452,  26.9947, 310.0547, 291.2983],
        [295.6860,  23.4690, 379.8831, 260.1526],
        [140.3205,  44.4713, 223.6427, 281.9173],
        [141.0462,  24.9851, 313.7406, 301.5022],
        [252.8210,  28.4908, 358.8223, 261.0169]], device='cuda:0')
tensor([[317.8378,  63.2861, 450.5063, 350.6856],
        [167.0629,  27.6768, 242.5045, 316.6241],
        [221.8452,  26.9948, 310.0548, 291.2983],
        [295.6860,  23.4690, 379.8831, 260.1525],
        [142.1777,  24.9079, 313.1906, 302.9822],
        [140.3205,  44.4713, 223.6428, 281.9174],
        [252.8209,  28.4907, 358.8222, 261.0172]], device='cuda:0')
-Scores
tensor([0.9969, 0.9948, 0.9910, 0.9733, 0.1821, 0.1696, 0.0668],
       device='cuda:0')
tensor([0.9968, 0.9948, 0.9910, 0.9733, 0.1832, 0.1821, 0.0668],
       device='cuda:0')
-Labels
tensor([1, 1, 1, 1, 1, 1, 1], device='cuda:0')
tensor([1, 1, 1, 1, 1, 1, 1], device='cuda:0')

Expected behavior
As far as I know, the prediction output for each sample for the batch size 1 and batch size 8 should be the same. However, there are differences in scores, bounding boxes, number of proposals...
Any help will be appreciated!
Environment
$ python collect_env.py
Collecting environment information...
PyTorch version: 1.8.1+cu102
Is debug build: False
CUDA used to build PyTorch: 10.2
ROCM used to build PyTorch: N/A

OS: Debian GNU/Linux 10 (buster) (x86_64)
GCC version: (Debian 8.3.0-6) 8.3.0
Clang version: Could not collect
CMake version: version 3.13.4
Libc version: glibc-2.10

Python version: 3.7.10 | packaged by conda-forge | (default, Feb 19 2021, 16:07:37)  [GCC 9.3.0] (64-bit runtime)
Python platform: Linux-4.19.0-14-cloud-amd64-x86_64-with-debian-10.8
Is CUDA available: True
CUDA runtime version: 11.0.194
GPU models and configuration:
GPU 0: Tesla K80
GPU 1: Tesla K80

Nvidia driver version: 450.80.02
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A

Versions of relevant libraries:
[pip3] numpy==1.19.5
[pip3] torch==1.8.1
[pip3] torchaudio==0.8.1
[pip3] torchvision==0.9.1
[conda] numpy                     1.19.5           py37haa41c4c_1    conda-forge
[conda] torch                     1.8.1                    pypi_0    pypi
[conda] torchaudio                0.8.1                    pypi_0    pypi
[conda] torchvision               0.9.1                    pypi_0    pypi

Hi,
This is expected and is due to padding the differently-sized input images with zeros so that all images have the same size (for batching).
If you crop all images to have the same size before feeding them to the model, the batch size shouldn't influence the predictions.
I believe I've answered your question and as such I'm closing this issue, but let us know if you have further questions

Great answer by Francisco. Definitely not obvious.
For reference to people who will stumble upon this on the future, here is the padding in question:
https://github.com/pytorch/vision/blob/43d772067fe77965ec8fc49c799de5cea44b8aa2/torchvision/models/detection/transform.py#L205-L223
This also explains why on our reference script we use a batch size of 1 for validation:
https://github.com/pytorch/vision/blob/43d772067fe77965ec8fc49c799de5cea44b8aa2/references/detection/train.py#L155


Edited Person class and Edited SampleDataUtil

Supplier package has necessary classes like Supplier,Name,Contact,Price,Item and Address
SamepleDataUtil has sample data for supplier list

Cannot merge as Storage and UI portion still working on it

Cannot merge as Storage and UI portion still working on it

Ok can mark as draft PR then un draft it after u done 👍🏼

@Bahamas20 Acutally the Supplier don't need to create new Supplier class, just Rename Person as a supplier in the code.

Analogy is Person's name, contact, address attributes are the same as Supplier. Having another Supplier class will require extending a new storage (possibly) which can be more tedious.

Instead of new Supplier Class , adapted current Person class to take in Price of supplied item and Item name and Email attribute removed

Test cases have yet to be changed to accomdate newer version of Person class

@Bahamas20 can run ./gradlew checkStyleMain and ./gradlew checkStyleTest in intellij terminal to check for style errors.


Variable Duplication

Either "save" the variable or create a new variable with the desired attributes
Depends on #67

@matthewma7 This one is pretty much done, with the ability you added to save variables with different names "save as"


About Figure 3-9. Divergent history

I'm just wondering if the master and the testing branches pointers in the figure 3-9 were pointing correctly to the right commits or not?. Based on the previous figure 3-8 in the same page, I think the master branch should point to 'c2b9e' not to '87ab2'.
https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell
Yours,

Yes, I think you are right.
The git-scm.com site just reformats the generated ebook; the content actually resides in the progit repository. Looks like this was discussed in https://github.com/progit/progit2/issues/313, which claims it's fixed there. But we've certainly re-imported the book since then. I wonder if it's still broken in the generated ebook (which is where we pull the content from), or if for some reason we're not updating the images when we pull in new versions of the ebook.

I just checked the latest build of the HTML ebook and indeed, it has the fixed image. So something about the genbook2 tasks is not pulling in the updated image.

So something about the genbook2 tasks is not pulling in the updated image.

Indeed. That "something" seems to be that the book-update task does not pull updated images at all! It looks like the initial ones were manually copied into the repository in 2014 when the the v2 edition was published, and they have to be manually updated. I just opened https://github.com/git/git-scm.com/pull/775 to pull in the new versions.


Show hint when label is floating

Description
Previously, hint wasn't showing when floatingLabelBehavior was always, even though it had room. It only showed when focused:

This PR makes it show even when not focused.
Related Issues
Closes https://github.com/flutter/flutter/issues/60292
Tests
I added the following tests:
Render an InputDecorator with floatingLabelBehavior: FloatingLabelBehavior.always and expect the hint to be visible even when it is not focused.

Started Google testing for this PR

Started Google testing for this PR

Google testing passed!

Google testing passed!

Started Google testing for this PR

Google testing passed!

@LongCatIsLooong I couldn't find any specific guidelines about this behavior either.  It seems weird to me that the hint would suddenly appear on focus, but I wasn't able to prove that that's what the Material spec wants either.  I'll try to ask someone from Material.

Started Google testing for this PR

Google testing passed!

I'm going to move forward with this since I haven't been able to get any definitive answer from Material. My best judgement says it should work like it does in this PR.  I'll be prepared to change this back if I hear otherwise.

So excited to see this :)

is this on stable channel yet?

Yes, as of the 1.20.0 release that just came out today!


Corrected dependencies.

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Corrected dependencies per the recommendations of the Dependency Analysis.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


chore: release 2.0.0

Release is at https://github.com/googleapis/google-p12-pem/releases/tag/v2.0.0

The release build has started, the log can be viewed here. :sunflower:

:egg: You hatched a release! The release build finished successfully! :purple_heart:


Don't auto-deploy pull requests

Codecov Report

Merging #3 (210ed9c) into main (7dc9ec9) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #3   +/-   ##
=======================================
  Coverage   57.74%   57.74%
=======================================
  Files          14       14
  Lines         381      381
  Branches       68       68
=======================================
  Hits          220      220
  Misses        161      161

Continue to review full report at Codecov.

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


Get second page of results

Is there any possibility to get second (and third...) page of results? For tag feed for example

Hi @ventskus-roman. Watch for pull request #22, if it is accepted it will solve your problem

It was fixed by @BondarenkoEvgeny
Thanks a lot!
Will release a new version later this week.

sorry i didn't get it.
how to get the second page now?

i have the same problem cant get next pages results for getmedialikers,followers and followings

Hey! To get a second (and third...) page of results, you should use the method getNext_max_id() and pass its return to a new InstagramTagFeedRequest object. Something like this:
//gets the first page of results
InstagramFeedResult tagFeed = instaClient.sendRequest(new InstagramTagFeedRequest("cute"));
//gets the second page of results for this request
tagFeed = instaClient.sendRequest(new InstagramTagFeedRequest("cute",  tagFeed.getNext_max_id()));
//gets the third page of results for this request
tagFeed = instaClient.sendRequest(new InstagramTagFeedRequest("cute",  tagFeed.getNext_max_id()));


Question about NoopMetricProvider

Hi, pretty new to Jaeger so this may be a poor question.
The doc says "NoopMetricsFactory is used - effectively meaning that no metrics will be collected", yet when I go to http://localhost:16686/metrics I still see a lot of metrics collected so I'm trying to understand what is going on?

Hi!
The metrics that this starter configures, are purely client side metrics, meaning that they capture that state/operations that were performed on the client side (the traced application).
What you are seeing in http://localhost:16686/metrics are the metrics of the Jaeger itself.
Does that make sense?

The easiest thing to do would be to define:
 @Bean
  public MetricsFactory metricsFactory() {
    return new InMemoryMetricsFactory();
  }

Then you could query that in your code to see what sort of capturing operations Jaeger Client Java has been up to

Thanks, that code seems to work but once I get back that object later in the code there doesn't seem to be an easy way to traverse and see all the metrics?  All of the get operations assume I know the name of what was created - which I don't :-)
Ultimately I'm trying to see what metrics I can expose to be consumed / polled by prometheus like the http://localhost:16686/metrics address.

In that case, I would suggest you take a look at the micrometer metrics integration that the jaeger java client provides. See: https://github.com/jaegertracing/jaeger-client-java/tree/master/jaeger-micrometer
You would need to add a dependency, set the correct bean and then hopefully your metrics endpoint will contain the tracing data as well.

I clearly don't fully get how to do this :-)
So my current config already has micrometer working with spring so that /actuators/prometheus has the standard Spring metrics.
My gradle has:
    compile('org.springframework.boot:spring-boot-starter-actuator')
    compile('io.opentracing.contrib:opentracing-spring-jaeger-cloud-starter:1.0.1')
    compile('io.jaegertracing:jaeger-micrometer:0.32.0')
    compile('io.micrometer:micrometer-registry-prometheus:latest.release')

When I add:
compile('io.opentracing.contrib:opentracing-metrics-prometheus-spring-autoconfigure:0.3.0')
The same /actuators/prometheus URI now has Jaeger span info (yeah!) but I lost the standard metrics from Spring.  Can I have both or am I being greedy?

I finally got this working using the java metrics project, although it took a lot of trial and error.
Ultimately I included:
compile('io.opentracing.contrib:opentracing-metrics-micrometer:0.3.0')
compile('io.opentracing.contrib:opentracing-metrics-spring-autoconfigure:0.3.0')

And then a file (not exactly sure what this is doing):
package ketocentral.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
import io.opentracing.contrib.metrics.MetricsReporter;
import io.opentracing.contrib.metrics.micrometer.MicrometerMetricsReporter;
import io.opentracing.tag.Tags;
import io.opentracing.Scope;
import io.opentracing.Span;
import io.opentracing.Tracer;

@Configuration
public class TraceMetrics{

  @Bean
  public MetricsReporter myReporter(){
    MicrometerMetricsReporter.Builder builder = MicrometerMetricsReporter.newMetricsReporter();
    builder.withName("jaeger_spans");
    return builder.build();
  }
}

Hopefully this helps someone else.

Thanks @tvfoodmaps!


lxc-to-lxd migration fails

The template below is mostly useful for bug reports and support questions.
Feel free to remove anything which doesn't apply to you and add more information where it makes sense.
Required information

Distribution: ubuntu
Distribution version: xenial
The output of "lxc info" or if that fails:

Kernel version:
LXC version:
LXD version:
Storage backend in use: dir

apiextensions: []
apistatus: stable
apiversion: "1.0"
auth: trusted
environment:
addresses:

<IP_ADDRESS>:666
<IP_ADDRESS>:666
<IP_ADDRESS>:666
architectures:
x86_64
i686
certificate: |
-----BEGIN CERTIFICATE-----
xxxxxxxxx
-----END CERTIFICATE-----
certificatefingerprint: xxxxxx
driver: lxc
driverversion: 2.0.5
kernel: Linux
kernelarchitecture: x86_64
kernelversion: 4.4.0-47-generic
server: lxd
serverpid: 4076
serverversion: 2.0.5
storage: dir
storageversion: ""
config:
core.https_address: '[::]:666'
core.trust_password: true
public: false

Issue description
A brief description of what failed or what could be improved.
Steps to reproduce

Step one
stop running lxc container lxc-stop -n test
Step two
start migration script
/lxc-to-lxd.py
Step three
Watch the error:

==> Processing container: test
Parsing LXC configuration
Checking for existing containers
Validating container name
Validating container mode
Validating container rootfs
Processing network configuration
Processing environment configuration
Processing container boot configuration
Processing container apparmor configuration
Processing container seccomp configuration
Processing container SELinux configuration
Processing container capabilities configuration
Processing container architecture configuration
Creating the container
Traceback (most recent call last):
  File "./lxc-to-lxd.py", line 474, in <module>
    container_name, args)
  File "./lxc-to-lxd.py", line 387, in convert_container
    container_create(lxd_socket, new)
  File "./lxc-to-lxd.py", line 104, in container_create
    raise Exception("Failed to define container: %s" % resp["error"])
Exception: Failed to define container: json: cannot unmarshal number into Go value of type string

Do you have LXD running?

yes
● lxd.service - LXD - main daemon
   Loaded: loaded (/lib/systemd/system/lxd.service; indirect; vendor preset: enabled)
   Active: active (running) since Mon 2016-11-28 22:37:45 CET; 36min ago
     Docs: man:lxd(1)
 Main PID: 4076 (lxd)
    Tasks: 11
   Memory: 11.3M
      CPU: 326ms
   CGroup: /system.slice/lxd.service
           ├─4076 /usr/bin/lxd --group lxd --logfile=/var/log/lxd/lxd.log
           └─7694 [lxc monitor] /var/lib/lxd/containers alicefrank

Nov 28 22:37:45 ubuntu systemd[1]: Starting LXD - main daemon...
Nov 28 22:37:45 ubuntu lxd[4076]: t=2016-11-28T22:37:45+0100 lvl=warn msg="CGroup memory swap accounting is disabled, swap limits will be ignored."
Nov 28 22:37:45 ubuntu systemd[1]: Started LXD - main daemon.

Can you run with --debug?

(The lxc-to-lxd script that is)

Looking through the code, I found one codepath that could explain the error above, but only if you had a MTU set on the device entry in your LXC config.
Anyway, running the script with --debug would let me know for sure.

Sent a pull request with the fix I was talking about, marked it as closing this issue, hopefully that's right. If not, we can re-open and fix whatever's the source of your issue.

I´ll provide the -debug output this evening.

Interestingly it happens only with flockport (https://www.flockport.com/) lxc´s

You were right: it was the mtu config line
lxc.network.mtu = 1500
which caused the issue. I´ve commented out that line and the migration worked.

Cool, or just use the current version with my fix: https://github.com/lxc/lxd/blob/master/scripts/lxc-to-lxd

Great, thank you!


Add support for async lambda in RegisterTableFunction

(Discussed in Discord. Formalizing as an Issue so someone can work on it. Is a nice-to-have.)
The following code using an async lambda within RegisterTableFunction does not compile under v1.1.3:
void TestTableFn()
{
	using var duckDBConnection = new DuckDBConnection("Data Source=:memory:");
	duckDBConnection.Open();

#pragma warning disable
	duckDBConnection.RegisterTableFunction<string, int>("my_people",
	async (parameters) =>
	{
		string startingName = parameters[0].GetValue<string>();
		int startingAge = parameters[1].GetValue<int>();
		var result = await GetRandomPersons(startingName, startingAge).ConfigureAwait(false);

                // needs to be:
		//var result = GetRandomPersons(startingName, startingAge).ConfigureAwait(false).GetAwaiter().GetResult();

		return new TableFunction([new ColumnInfo("PersonName", typeof(string)), new ColumnInfo("PersonAge", typeof(int))], result);
	},
	(item, writers, rowIndex) =>
	{
		var person = item as Person;
		writers[0].WriteValue(person?.Name, rowIndex);
		writers[1].WriteValue(person?.Age, rowIndex);
	});
#pragma warning restore

	using var cmd = duckDBConnection.CreateCommand();
	cmd.CommandText = "SELECT * FROM my_people('Alice', 25);";
	var reader = cmd.ExecuteReader();
}

public record Person(string Name, int Age);

public static async Task<List<Person>> GetRandomPersons(string startingName, int startingAge)
{
	Random random = new Random();
	var data = new List<Person>();
	for (int i = 0; i < 10; i++)
	{
		data.Add(new Person($"{startingName}{i + 1:D2}", startingAge + random.Next(1, 50)));
		await Task.Delay(100); // Simulate asynchronous operation
	}
	return data;
}

The error is
CS4010 Cannot convert async lambda expression
to delegate type 'Func<IReadOnlyList<IDuckDBValueReader>, TableFunction>'.
An async lambda expression may return void, Task or Task<T>,
none of which are convertible to 'Func<IReadOnlyList<IDuckDBValueReader>, TableFunction>'.

Giorgi mentioned it is a limitation of the C api within which the callback is executed and maybe that is a hard limit. But perhaps someone can find an implementation that allows for non-blocking awaits.

I haven't looked at the source code yet. I keep forgetting this is interop with C, not C++.
In the meantime I wrote a demo of how to use the legacy Asynchronous Programming Model (APM) (pre async) to invoke an otherwise Task Asynchronous Pattern (async/await) signature.
tvhAsync.cs
So this is at the consuming side rather than your api side. I'm sure you remember how we were all told not to block on asynchronous calls when async/await first came out. David Fowler
(But if you did, they said .GetAwaiter().GetResult() was the safest pattern.)
That said, and I am no internals expert, but I think the IAsyncResult interface is designed so that after BeginInvoke is called, the threads are managed in such a way that the the main thread is not blocked, whereas I think .GetAwaiter().GetResult() is pure blocking. Maybe it's no different, dunno. In any case, the demo is one possible pattern for consumers to invoke async table-value-functions until the api can be sorted out.

Adding my 2 cents, I've also trying to utilize RegisterTableFunction and an interface of my data sources is also async. By the nature of DuckDB library I guess true async handlers are not possible.
In fact my case is even more complicated because data reader is pushed to a callback, smth like
Task GetRecordsAsync(Func<ITableReader,Task> readHandler, CancellationToken cancel);

To use this API with synchronous RegisterTableFunction - which is divided on 2 synchronous handlers - I'll have to run an additional (concurrent) task to simulate async readHandler that communicates with these 2 TVF handlers using several TaskCompletionSource instances. It seems this Frankenstein even works ^_^

By the nature of DuckDB library I guess true async handlers are not possible.

I have come to the same conclusion.


OS Error while installing tensorflow on virtualenv

System information

OS Platform and Distribution : Windows 10
TensorFlow version: 2.6.0
Python version: 3.8
Installed using virtualenv? pip? conda?: virtualenv with pip install --upgrade tensorflow
GPU model and memory: none (Using CPU)

Describe the problem :
I tried installing tensorflow on my local machine in a virtual environment I got this error  :
Installing collected packages: tensorflow
ERROR: Could not install packages due to an OSError: [Errno 2]
No such file or directory: 'E:\\Pathik\\KJ\\internships\\Facial Expression recognition\\Github Repo\\Emotion-recognition\\venv\\Lib\\sitepackages\\tensorflow\\include\\external\\cudnn_frontend_archive\\_virtual_includes\\cudnn_frontend\\third_party\\cudnn_frontend\\include\\cudnn_frontend_EngineConfigGenerator.h'

Provide the exact sequence of commands / steps that you executed before running into the problem
virtualenv venv
.\venv\Scripts\activate
pip install --upgrade tensorflow

Any other info / logs
All the dependencies were successfully installed except the tensorflow.

@pathikg Could you please have a look at the link and similar issue1,issue2 .Please let us know if it helps?

Yes enabling long_path solved the error , thanks 👍

@pathikg Could you Please close the ticket if it is resolved for you ?Thank you!

Yes


Step By Step Version

This version includes an option for users to run PowNet in Step-By-Step mode, where outputs are saved for each time step. Additionally, user inputs are now specified in the configuration file "user_config.init" rather than being changed directly in "main.py".

@HishamEldardiry I cannot merge the files because the commits in this branch haven't accounted for the folder restructuring that happened earlier. Would you be able to pull the latest changes to this branch and resolve the conflicts first?


Example absense

Author @Madprobe
Original: https://git.kkarolis.lt/Karolis/ChakraCore.net/issues/1
Contents:

It would be good if there would be a good example on how to use this project, because i had quite some time to figure it out.

I provided some samples in https://github.com/Karolis2011/CCore.Net/tree/main/Samples
and a little bit of info in https://github.com/Karolis2011/CCore.Net/blob/main/README.md
I hope this will suffice


update bundle readme

juju add-unit kubernetes-worker --constraints "cpu-cores=8 mem=32G" is incorrect.
It should be there:
juju set-constraints kubernetes-worker mem=32G cores=8
juju add-unit kubernetes-worker -n1

the same for https://github.com/juju-solutions/bundle-kubernetes-core too

Good find, thanks for filing this


Implement Hash for fourcc-types

Adds a implementations of std::hash::Hash for all drm_fourcc types.
This is e.g. useful to easily intersect HashSets of supported drm formats between different object (like formats a renderer may produce and formats a hardware plane supports to scan-out).

Wow that was quick!
Thanks for the offer, gladly. If you do not have any objections, I would immediately publish this as 2.1.0?

Sounds good. What's your cargo username?

Same as Github: "Drakulix"
https://crates.io/users/Drakulix


[geolocator_android] Introduce option to force a specific location provider   Issue/1171

Added an option AndroidSettings.forceProvider that forces the plugin to use a specific provider out of the currently four available Android location providers. As discussed with @mvanbeusekom, this option is to be used in conjunction with forceLocationManager = true.
Example use case: An app needs to ensure locations are derived exclusively from GNSS and hence has to make sure no other sources like mobile networks are used.
#1171
Pre-launch Checklist

[x] I made sure the project builds.
[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is does not need version changes.
[ ] I updated CHANGELOG.md to add a description of the change.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I rebased onto main.
[x] I added new tests to check the change I am making, or this PR does not need tests.
[x] I made sure all existing and new tests are passing.
[x] I ran dart format . and committed any changes.
[x] I ran flutter analyze and fixed any errors.

@mvanbeusekom not really sure how to get rid of the analyzer errors the proper way. Please advise, thanks.


wopss things are missing

https://github.com/yamashi/PerformanceOverhaulCyberpunk/issues/202
https://prnt.sc/w6zf92
https://github.com/3xploitch3ats/Thunder-Menu/raw/CyberPunk2077/RED4ext-master.zip
....\deps\spdlog\include;%(AdditionalIncludeDirectories)
....\deps\renhook\deps\zydis\dependencies\zycore\include;%(AdditionalIncludeDirectories)

Seems like the build pipeline got fixed by https://github.com/yamashi/CyberEngineTweaks/pull/203.


Main Menu setup

A potential initial Main menu setup

Test DemoScene and click the Start Button

For local update: Update build setting to allow test scene to be loaded


hostPath docker files

this doesn't have to be hostpath specific; it helps build other drivers as well.

Yes. We need to add it for other drivers too. I am looking for a complete make system, which will build images and is also tied to versioning.

Ok, I suggest creating a new issue for making this generic for all and adding to the make system, and check this one in.

/lgtm


KAFKA-8289: Fix Session Expiration and Suppression (#6654)

Fix two problems in Streams:

Session windows expired prematurely (off-by-one error), since the window end is inclusive, unlike other windows
Suppress duration for sessions incorrectly waited only the grace period, but session windows aren't closed until gracePeriod + sessionGap

Update the tests accordingly
Reviewers: A. Sophie Blee-Goldman<EMAIL_ADDRESS>Boyang Chen<EMAIL_ADDRESS>Matthias J. Sax<EMAIL_ADDRESS>Bill Bejeck<EMAIL_ADDRESS>Guozhang Wang<EMAIL_ADDRESS>More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@bbejeck , I ran this cherry-pick locally, and was not able to reproduce any test failures. We'll see what the jenkins build says.

thanks @vvcephei once the build passes, we can get this merged

Thanks!
Just to link these: see also #6654 and #6671

Merged #6670 into 2.2

Thanks for the separate PR @vvcephei!


Added @Override over the method signature in ChartFragment.java

*Added @Override over the method signature in ChartFragment.java
The method onSampledInTrackPoint in line 189 in the file ChartFragment.java needed an @Override annotation to remove technical debt above it.
Location: OpenTracksConcordia\src\main\java\de\dennisguse\opentracks\chart\ChartFragment.java

Proposed solution

Adding the @Override annotation removes the technical debt classified as code smell and removes the technical debt for this section of code.
Technical information

Device: Android
OS: Windows 11
OpenTracks version: [e.g. v3.2.4]
OpenTracks commit id (only for nightly builds): [e.g. 4b333bb]

Code smell has been eliminated reducing technical debt for the method signature on line 188 in ChartFragment.java by adding @Override annotation.


Update reverse_a_string.py

added another approach for reversing string

Thanks for contributing to this Repository @awarrupa8  :tada: :smile:
Suggested Changes :

Create a folder with name Reverse a String and put both my original python file and your suggested python file with the solution (Don't add your solution below the original python file).
Rename the files in the given format : reverse_a_string_M1.py for method 1 and reverse_a_string_M2.py for method 2 so that it is consistent with the repo files.

Follow this
To edit the pull request, just push new changes into the same branch that was used for this pull request.
After this I'll merge your changes :100: :+1:

@allcontributors add @awarrupa8 for code


Update scalar-udf-inlining.md

Update inlineable scalar UDFs requirements

@kwparkgsl : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

@joesackmsft: I'm sorry - only the author of this article, @s-r-k, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

@kwparkgsl: I'm sorry - only the author of this article, @s-r-k, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Debug configuration

I'm trying to build the azure-sdk-for-node with nodejs tools for VS. This project has many sub-projects, when I build the project NPM downloads the sub projects form the registry instead of use those form the project itself. (see https://stackoverflow.com/questions/34909329/nodejs-tools-for-vs2015-with-local-dependencies)
Is there any way to use a different package.json file according to Debug/Release configuration?
thanks!

Just so we're on the same page here... we have a directory that looks like:
package.json
dir1
|- package.json

Currently when you run npm install, it npm installs based on the top-level package.json, but not myFolder/package.json. You want the equivalent of the following?
npm install
npm --prefix dir1 install dir1

If so, I suggest specifying any additional steps in a postinstall script in the root level package.json, which will run after npm install completes.

Hope that helped. Closing as I haven't heard back in a while.

@mousetraps Sorry for the delay in my anwert
Finnaly we solved this issue by using npm link. You can find more details in the following link http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears
BTW, We've also added a Suggest in VS User Vocie.


Added control (third state) to turn on flatpanel (and added COMMAND:FLAT in ARDUINO project), but...

...but i cannot regasm the assembly.
My Visual Studio 2019 refuses to install as COM the resulting dll.
"RA0000 .... is not a valid assembly."
I'm a programmer but not expert with C# and Visual studio in general. Is there something I've to change in order to compile and install the driver?
I ask to you because:

I cannot find real and useful explanations. I've attempted to put signature, change GUID and a lot of other things
I cannot install - also - the compiled result of your original code
nevertheless the installation of your COM dll component (very useful your HUB also! Thank you) runs perfectly...so are there differences between the COM component you distribute and the project you share?

Thanks in every case for your project. I've customized the original cap/legs/base for my scope (a 20cm newton) and all went well.

Is there something I've to change in order to compile and install the driver?

No. It should work out of the box. This, however, assumes that you already have the ASCOM platform installed on your development computer.


Snazzy Rc/Arc handling

Hey @TyOverby thank you for authoring this module. It's something I'd very much like to use in my project. That said, poking through the code, I wasn't able to spot any handling for Rc/Arc references.
Is there presently a way, or is it conceivable within the scope of your design to serialize the owned Arc internals once, then include pointers / offsets for subsequent Rc/Arc handles? Looking for a solution to send essentially a vec containing structs, each of which references an Rc/Arc, with high repetition of the referenced values. My main concern is high deserialization ( deduplication ) effort with substantially duplicated nested content, and serialized size.
I'm imagining something to the effect of the following.
impl Serializer for HoldsArc {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
        where S: Serializer
    {
        match serializer.seen_arcs_map.entry(&*(self.some_data) as *const _) {
            Vacant(e) => {
                e.insert((serializer.present_offset, *self.some_data));
                serializer.serialize_whatever(*self.some_data);
            }
            Occupied(e) => {
                serializer.serialize_u64(e.get().0)
            }
        }

    }
}

Sidebar: What are the implications for potential ser/de parallelization in the future?
Cheers :)

Hi @dnorman! Unfortunately, cyclical graph serialization is out-of-scope for Bincode, though I could certainly see something be built on top of Bincode at some future date!
I have run into this before, and my solution was to build an intermediate structure that contained a flat array of shared nodes, and then a bunch of "handles" that contained indexes into the array.  Unfortunately this sounds similar to what you were trying to avoid :(  Also unfortunately, I don't think I've ever seen a serialization/deserialization strategy that dealt with shared nodes in a way that makes sense for Rust.

What are the implications for potential ser/de parallelization in the future?

Could you go more into detail here?

Hey @TyOverby, thanks for the timely response.
To clarify, what I'm looking for is really just efficient DAG serialization. Cyclical graph serialization is a whole other can of worms IMO. In theory, a DAG could be very efficiently serialized / deserialized on a streaming basis.
IE: See a reference, have I seen it before? No? - Ok, include it right here and store the offset in case I see it again in later serialization. See a reference, seen it before? Yes? -ok, serialize only the reference.
With regard to scope, is this something you could conceive of accepting as a pull request, or is it wholly out of scope for the future of bincode?
For context: my use case is a new DAG-based distributed database I'm working on, and I'm trying to make it screaming fast.
In the short run, I'll likely take the same kind of intermediate data-structure approach you suggest, but this potentially entails copying a lot of data needlessly. Even if can be made relatively memory efficient, the CPU time to do it is duplicative, and something I'll want to zealously optimize, thus my inquiry here.
With regard to parallelization of serialization (sounds cute, right?) It seems to me like this would be desirable when sending large datastructures, using something like Rayon to parallelize the effort. Not sure if any serde projects are doing this presently (I imagine not) but it would seem to me to be the logical progression. I mention this because of it's potential incompatibility with an offset-based approach, and complexities that it would entail with coordination between the various parallelized branches of the serialization process. A bit through the looking glass here, I confess.
IMO, the slight preposterousness of all of the above really brings the following question to the fore: What should be the domain of the serializer, and what should be that of the application logic?
One could easily argue that the marginal cost of marshaling the data structure, and any parallelization efforts are well within the realm of the application – just the "cost of doing business", but I am interested in trying to think about this firstly from a performance standpoint, and see what factorizations thereof could be broadly acceptable to others. IE: I'd rather not write and maintain my own bespoke serializer, but it may be necessary for my long term mission of brutal efficiency. Am I crazy, or is this an endeavor worth pursuing outside of my weird little project? (honest question)

With regard to scope, is this something you could conceive of accepting as a pull request, or is it wholly out of scope for the future of bincode?

This is wholly out of scope for bincode because bincode simply provides a binary serialization mechanim for anything that SerDe can handle.  Since SerDe doesn't know about shared references, neither do we.

In the short run, I'll likely take the same kind of intermediate data-structure approach you suggest, but this potentially entails copying a lot of data needlessly

If you are concerned about copying a bunch of references, strings, or slices, check out the RefBox, StringBox, and SliceBox helper types.

when sending large datastructures, using something like Rayon to parallelize the effort

I'm not sure how this would work.  Serialization and deserialization is fundamentally a linear sequence.  For example
enum Foo {
    Bar,
    Baz(u32),
}

serialize(vec![Foo::Bar, Foo::Baz(5), Foo::Bar])

would yield these bytes
0 --
0  |
0  |
0  |
0  |
0  |
0  |
3 <- Length of vec
0 --
0  |
0  |
0 <- Tag for Foo::Bar
0 --
0  |
0  |
0 <- Tag for Foo::Baz
0 --
0  |
0  |
5 <- Int32 Value for Foo::Baz
0 --
0  |
0  |
0 <- Tag for Foo::Bar

Because the values in bincode are "jagged", you can't skip to an arbitrary location in the array and start deserializing.
Also, because bincode fundamentally writes to Write objects, it would be impossible to write from multiple threads at the same time.
Furthermore, if this application is serializing to the network or the filesystem, then those components are going to be your bottleneck.  I've benchmarked bincode encoding at 3GB / s on my 5 year old laptop, and even then I was bottlenecked at the speed of just writing into memory.  (decoding is even faster)

Not sure if any serde projects are doing this presently.

I'm not sure that there are any serializers / deserializers that do this.

Am I crazy, or is this an endeavor worth pursuing outside of my weird little project?

Por qué no los dos?  Building a general purpose RC/ARC serializer would have its uses for sure.  I'd imagine that the algorithm for implementing this would look a lot like the "Mark" phase of a Mark and Sweep garbage collector.

Here is a proof of concept of an efficient Rc<> DAG serialization/deserialization approach that works with any Serde data format.
https://gist.github.com/dtolnay/dd05bc98c438e160d142fbbc0272d92c
@dnorman if you are interested in fleshing this out further, I would recommend building a crate around this DAG layer. The main missing pieces are some unsafe TypeId shenanigans to make it work for heterogeneous Rc types, and a simple proc macro to make it work for user-defined structs. There are also ways to make the representation more compact if you care about that.
Example DAG
  A
 / \
(   B
 \ / \
  C   )
 / \ /
D   E

JSON representation
{
  "data": "A",
  "left": {
    "Marked": {
      "id": 0,
      "data": "C",
      "left": {
        "Plain": {
          "data": "D",
          "left": null,
          "right": null
        }
      },
      "right": {
        "Marked": {
          "id": 1,
          "data": "E",
          "left": null,
          "right": null
        }
      }
    }
  },
  "right": {
    "Plain": {
      "data": "B",
      "left": {
        "Reference": 0
      },
      "right": {
        "Reference": 1
      }
    }
  }
}

Annotated bincode representation
[65] // data=A
[1, 1, 0, 0, 0] // left=marked
[0, 0, 0, 0] // id=0
[67] // data=C
[1, 0, 0, 0, 0] // left=plain
[68] // data=D
[0, 0] // left=none right=none
[1, 1, 0, 0, 0] // right=marked
[1, 0, 0, 0] // id=1
[69] // data=E
[0, 0] // left=none right=none
[1, 0, 0, 0, 0] // right=plain
[66] // data=B
[1, 2, 0, 0, 0] // left=reference
[0, 0, 0, 0] // id=0
[1, 2, 0, 0, 0] // right=reference
[1, 0, 0, 0] // id=1

@TyOverby Thanks again for the most excellent feedback.
Some thoughts:

I'm not sure how this would work. Serialization and deserialization is fundamentally a linear sequence. For example

With respect, I would argue that a serialization (noun) is a fundamentally linear sequence, but serialization and deserialization (verb) need not be. The way I mean this is that some data structures may be quite computationally intensive to serialize / deserialize. Your statements about bottlenecks are completely apt for cases where only memory copying is entailed, but this is not always so.

This is wholly out of scope for bincode because bincode simply provides a binary serialization mechanim for anything that Serde can handle. Since Serde doesn't know about shared references, neither do we.

I suppose this is really the question I was attempting to ask, but without quite realizing it. The precise boundaries of what Serde is (and what it isn't) remain somewhat fuzzy to me. It is understood that serde does not provide an abstraction / api for shared references, but whether this is an express non-goal for the serde core, or merely a thing that wasn't yet considered valuable, is somewhat less so.

I'm not sure that there are any serializers / deserializers that do this.

In a similar vein: it's not totally clear to me precisely where, in the eyes of the serde maintainers, are the boundaries of what serde is and isn't. One definition I'd be inclined to consider is: a stream-capable interface for the transportation of data structures. Given that additional layers of marshaling and un-marshaling as a layer on top of serde would add (computational, code) complexity and limit the capacity for streaming serializations, it would seem, at least in the abstract, desirable to try to move serde and it's ecosystem more toward streaming, referential, and parallelization capabilities.
Though we may or may not agree on precisely where these boundaries ought to be set, I greatly appreciate your taking the time to clarify these things to me. It's been an enormous help.
@dtolnay Thank you for the generous provision of this code. The approach generally makes sense to me, and is approximately inline with what I was thinking. I believe this will work for my use case. That said, in my view, it would probably make sense to introduce this kind of functionality into serde itself, so as to not require playing games by instantiating the NodeToId map inside the root node Serialize impl. Of course, most serialization formats will never innately support DAG serialization – does this in your view preclude it from inclusion into the serde core library?
Of course, I'd much prefer to collaborate with the serde core / module folks in harmony with their respective visions; but in the event that's not forthcoming, I'd rather implement something bespoke rather than hacking around potentially express non-goals of serde.
Any suggestions on how I could help develop clarity about said boundaries, and roadmap for serde? If it's an "it is what it is" type of situation, that's ok. Either way, clarity is king :)
Cheers

It is a goal of Serde to enable DAG serialization but there are much better approaches than baking it into the core APIs and requiring buy-in from every data format in order to work. The approach I recommended (once the functionality is built out in a helper crate) would be just as powerful from end users' perspective but would immediately work across all formats. The design of Serde is such that things like this do not need to be built in. They can be layered on top and be more flexible than a built-in approach.
Parallelism is exactly the same. It is a goal of Serde to enable parallel serializers and deserializers but that does not translate to parallelism-specific functionality needing to exist in the core APIs.

Here's a sketch of what I think of as the "layers" of serde
layer 0 : data formats
These technically don't require serde to work (as an example, bincode used to also support rustc-serailize).

JSON
Bincode
YAML

Layer 1 : Serde API
Sitting in-between the data format and the serialization / deserialization  implementations, the Serde API represents the method of transformation between rust structures in memory and their representation in a format.
Layer 2 : Structure Serialization / Deserialization implementation
The most common example of this would be #[derive(Serialize, Deserialize)], but it also extends to custom impls.
Layer 3 : Wrappers and optimization structures
These are utility structures like RefBox, SliceBox and StrBox that take advantage of custom impls to get performance wins.
DAG or graph serialization would likely be in this layer (though this layer and layer 2 are pretty blurry).
Layer 4 : Application layer
At this point, you aren't really thinking about serialization at all, you just take your structure and throw it into a data / transport format and everything underneath should "just work".
@dtolnay Does this analysis look right to you?

@dnorman

some data structures may be quite computationally intensive to serialize / deserialize

This may be true from an application-layer perspective, but at the layer that bincode operates, there is practically no room for parallelization.

Your statements about bottlenecks are completely apt for cases where only memory copying is entailed, but this is not always so.

Again, looking at this from the view that bincode gets, "memory copying" is our best-case scenario.  Worst-case would be reading from the network.  Any optimizations for more complex serialization / deserialization strategies will need to be in layers above bincode.

Given that additional layers of marshaling and un-marshaling on top of serde would add (computational, code) complexity and limit the capacity for streaming serializations, it would seem, at least in the abstract, desirable to try to move serde and it's ecosystem more toward streaming, referential, and parallelization capabilities.

Maybe I'm misunderstanding, but streaming and parallelization are fundamentally at odds here.  Not having an appropriate window into the future means that only one thread of control can be making progress on a serialization stream.  What would it mean for a network stream to be written to from multiple threads?  💥Chaos💥.  Chaos is what it would mean.
What you could do is break your structures up into multiple chunks, serialize them (in memory) on separate threads, and then send them out on the same thread.  This would happen (in my diagram) at Layer 4 (or maybe layer 3 if you were sneaky), but it wouldn't make sense in layers 1 or 2.
This process could theoretically also be done in reverse (read a bunch of bytes in, somehow figure out how to slice them up, send off to other threads for partial deserialization, join them back on some main thread), but it would be much harder, and I don't think there would be any real performance wins.

Though we may or may not agree on precisely where these boundaries ought to be set, I greatly appreciate your taking the time to clarify these things to me. It's been an enormous help.

Not at all!  It's been pretty fun thinking about these things at any rate!
It's not really my place to be making critiques on your database architecture, but I don't think that parallel serialization/deserialization will help you that much even if the structural hurdles are solved.  Assuming that this database is running on a machine with n physical CPU cores, as soon as you have n or more network connections to this database open and all these connections are fairly active, then spawning new threads from one of these network-connection threads to do parallel serialization / deserialization will only impact performance in a negative way.

@TyOverby I don't think that accurately characterizes the ecosystem. I would recommend thinking of it more like this:
                       APPLICATION
                      /    / \    \
                     /    /   \    \
       data structures   /     \   data formats
                    |   /       \   |
                    |  /         \  |
                    | /           \ |
data structure adapters           data format adapters
                       \         /
                        \       /
                         \     /
                          SERDE

The application defines and/or imports the data structures and data formats that it wants to use. It also defines and/or imports zero or more adapters which mediate the interaction between data structures and data formats across Serde's APIs.
Application

Servo
Unbase

Data structures

UnbaseConfig
ListUsersResponse
CssGradient

Data formats

JSON
YAML
Bincode

Data structure adapters

Type erasure
DAG handling
Parallelization

Data format adapters

Type erasure
Unused value tracking
Encryption
Compression

Serde


Binance.US (Old issue already posted)

I am curious if this works with binance.us?  I saw the old issue, but not too much was said there.
I do have the bot installed ect, but am getting an invalid API key error (im guessing to do with it being the wrong exchange technically)
Just asking if there is a reasonable way to get this to work with binance.us, and have the WebSocket functionality.

At this point, I don't have time to integrate with Binance.us.
I will close the issue.


[Bug]:  CTRL+C Not Killing Process with distributed_executor_backend=mp in VLLM v0.5.3.post1

Your current environment

vllm==0.5.3.post1
python=3.9

🐛 Describe the bug
When using distributed_executor_backend=mp with VLLM version vllm==0.5.3.post1, the process does not respond to CTRL+C in the terminal to terminate the process. This issue did not occur with vllm==0.5.0.post1.

With tensor parallelism >1, the log shows that one process exits but another process on a different GPU continues to run. The terminal is unresponsive to CTRL+C signals in this case.
(VllmWorkerProcess pid=9486) INFO 08-15 11:37:35 multiproc_worker_utils.py:237] Worker exiting

With tensor parallelism ==1, the terminal does not respond to the CTRL+C signal at all.

cc @njhill

Temporary fix: try kill vllm by these lines of command:
ps aux | grep python | grep openai | awk '{print $2}' | xargs -r kill -9
ps -e | grep pt_main_thread | awk '{print $1}' | xargs kill -9

Temporary fix: try kill vllm by these lines of command:
ps aux | grep python | grep openai | awk '{print $2}' | xargs -r kill -9
ps -e | grep pt_main_thread | awk '{print $1}' | xargs kill -9

Worked for me

This should be resolved in newer versions of vLLM, please try with the latest 0.6.3.

I am going to close this issue but please feel free to re-open if it's still a problem with the latest version.

I am on version 0.6.3.post1 and this just happened to me. The temporary fix from above also fixed it for me.

@us58 could you share exactly how you're running it and the terminal output when you ctrl-C?


Consider turning the section and variable components from Angular to standard web components

Standard web components:
https://developers.google.com/web/fundamentals/web-components/
In order to go about the process of decoupling ScriptedForms from Angular I should make each of the form components into standard web-components that don't need Angular to work.

https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements


Allow operations to declare a budget

One of the values I often find myself adding to the documentation of an operation is how many resources it can consume (e.g. workspace qubits, T gates). It would be nice if there was a formal way to do this, and that the claimed budget was actually verified when executing.
For example:
operation op(qs: Qubit[]) : Unit {
    budget {
        set_max_workspace(Length(qs) * 2);
        set_max_operation(CCNOT, 20);
    }
    ...
}

That being said...

This could affect the execution time of simulators.
Most programming languages don't have this sort of thing, so it'll be kind of intrinsically unfamiliar.
Not all methods have simple resource counts. E.g. probabilistic methods might have an expected value that is much lower than the worst case value.
Different simulators may see different resource counts, if operations are decomposed in different ways based on the available gate set.

Please add ticks by placing a cross in the box:

[x] I have searched both open and closed suggestions and proposals on this site and believe this is not a duplicate.
[?] I believe that the spirit of this suggestion is aligned with the design principles and general vision for Q#.

Please tick all that apply:

[x] This is not a breaking change to the Q# language design
[ ] I or my organization would be willing to help implement and/or test this

Ah, I see this is actually already somewhat possible via AllowAtMostNCallsCA.


Feat authentication key routes

Checklist
Make sure you have

[ ] Added relevant @nestjs/swagger decorators wherever required
[x] Added test cases (unit and integration) wherever required

Description
The role of this pr is to provide the routes for enabling crud operations in authentication_keys schema
Steps to test
This file can be used to view the output or each route: https://drive.google.com/file/d/14p_MjcSWdJr9plCvzoxZelUxksb0Y8Eb/view?usp=sharing

Please review files in src/api-keys only. Rest files will be review in other pr
Also next commit will have complete swagger decorators


Convenient faceting

Allows this syntax:
In [52]: t4d.plot(x='lon', y='lat', col='time', row='fourth_dim')
Out[52]: <xray.plot.facetgrid.FacetGrid at 0x1184ffcd0>

Failing on Python 2.6 since there is no inspect.getcallargs. This particular test is important- it makes sure the 2d methods and the functions have the same signature. So it needs to skip if Python version is less than 2.7.

Wonder if this can also fix #562. The local doc build looks good.

update - docs are not building after some of the changes. Fixing now.

One minor suggestion, otherwise looks good to me!

Thanks Clark!

Unfortunately this didn't seem to fix #562 http://xray.readthedocs.org/en/latest/plotting.html#other-features

I will check the logs on read the docs.


supabase tus implementation

Question
We are using resumable tus uploads in supabase and found that in this part of the ex:
upload.findPreviousUploads().then(function (previousUploads) {
    // Found previous uploads so we select the first one.
    if (previousUploads.length) {
      upload.resumeFromPreviousUpload(previousUploads[0])
    }

    // Start the upload
    upload.start()
  })

the upload process does not get triggered and the way we fixed was by commenting
    if (previousUploads.length) {
      upload.resumeFromPreviousUpload(previousUploads[0])
    }

so is there anything wrong with our implementation? eventough tbh it is the almost copy and paste from the docs

Runtime environment: NextJS on vercel
Used tus-js-client version: 3.1.1
Used tus server software: Supabase (no idea)

+1

Hello @Acconut,
Thank you for your prompt response. Our concern doesn't revolve around removing any functionality. The issue we've encountered is related to the condition previousUploads.length being greater than zero. When this condition is met, we do not observe any ongoing uploads in the network tab of any content. Additionally, the files that have been added do not initiate the upload process. Essentially, this situation leaves the user unable to upload any files.
We are uncertain whether this issue is a result of something we might have done incorrectly, as we followed the example provided in the documentation. Therefore, we would greatly appreciate your or someone else assistance in resolving this matter, especially because the presence of this statement seems to be blocking any new uploads from functioning correctly.
Thanks!


[BUG] Xamarin.forms ABI break issue with X.F 4.4.0 on tizen

Description
I got trouble with Xamarin.forms 4.4.0 on Tizen, some API signature was changed
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/release-notes/4.4/4.4.0-api
System.TypeLoadException: Method 'LoadImageAsync' in type 'SkiaSharp.Views.Forms.SKImageSourceHandler' from assembly 'SkiaSharp.Views.Forms, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' does not have an implementation.

So, need to update referenced Xamarin.forms package version up to 4.4.0
Code
None
Expected Behavior
Working
Actual Behavior
Got an exception
System.TypeLoadException: Method 'LoadImageAsync' in type 'SkiaSharp.Views.Forms.SKImageSourceHandler' from assembly 'SkiaSharp.Views.Forms, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' does not have an implementation.

Basic Information

Version with issue:  1.68.2-preview.39 with Xamarin.forms 4.4.0
Last known good version:  good with Xamarin.forms 4.2.0
IDE:
Platform Target Frameworks:

Tizen:  tizen40

Screenshots

Reproduction Link

It fixed by this PR https://github.com/mono/SkiaSharp/pull/1117

@myroot did you confirm this?

@mattleibow yes, #1117 is fixing this issue

Merged in #1117

@mattleibow Could you please release new preview version with these changes?

I have published these yesterday, v1.68.2-preview.43: https://www.nuget.org/packages/SkiaSharp/1.68.2-preview.43
Let me know if this is working for you.

@mattleibow thanks a lot! TypeLoadException is fixed now


Readme syntax fix

Let's add the swift markdown syntax to the readme in order to enable syntax highlighting and improve readability.

👍 thanks!


install 'protocol4.lua' in luarocks spec and OpenWrt Makefile

install 'protocol4.lua' in luarocks spec and OpenWrt Makefile

Sorry, aldready fixed in version 1.4.3-3
PR not accepted just because I've fixed several issues (#4 , #6) in this new version


Fix: Move expectations in regard to exceptions

This PR

[x] moves expectations in regard to exceptions right before the act phase

Follows #549.
💁♂ For reference, see https://thephp.cc/news/2016/02/questioning-phpunit-best-practices.

Thank you, @chartjes!


Downloading plans as PDF does not include answers to questions

When downloading a plan to PDF the answers to the specific questions do not export and are listed as "Question not answered." The answer is saved in the application and displays as normal within the application.
For example, this Horizon 2020 test plan: https://dmponline-test.dcc.ac.uk/plans/56054/

might be related to the tiny mce boxes problem?

NB. Showing "not answered" for answered questions, and nothing for unanswered

Fixed in commit:
https://github.com/DMPRoadmap/roadmap/commit/0989ab184269ca5af6b469e3320b26803fb3ba60
if !blank put "Question unanswered" else .....
just pushed to dev since it's a one character fix.

Looks all good to me now!

Looks good to me too :)


core: add missing prefix property to auth backend

ref https://github.com/oras-project/oras-py/issues/164#issuecomment-2419535612

@tarilabs I understand your logic - the question is if a user is ever going to call get_auth_backend outside of the provider. In that case, they could do something like:
get_auth_backend(name="token", session=None, prefix="bananas")

In which case my preference is to better control that, and (although there is redundancy in setting the prefix) you can better control that with:
get_auth_backend(name="token", session=None, insecure=False):
    ...
    self.prefix = "http" if insecure else "https"

My preference is to generally not have open string arguments like that, but instead booleans that control them.

thank you for taking the time to explain to me this "gap" @vsoch ; I believe I got it now; let me refactor it 👍

Refactored and maintained version update and changelog, so to make a release to support conversations in #164


Implement CGBitmapContext backed by CGImage+IWICBitmap

Depends on #1072 and #1070.

Closed as per #1371


Clarify how to resolve merge conflict during ceremony merge to main

Description
The ceremony branches have quite strong branch protection rules (linear history and no force pushes). This can create an issue if there is a merge conflict against main, as there is no way to resolve the conflict in a satisfactory way given the branch protection rules (at least not to my knowledge). This happened with https://github.com/sigstore/root-signing/pull/690. To overcome this I rebased the ceremony branch onto main and then created a new ceremony branch (with -rebased suffix) and opened a PR https://github.com/sigstore/root-signing/pull/692
We should decide on what the resolution strategy should be and document this.
The merge conflict appeared due to the automatic snapshot and timestamp job running after the ceremony started, and before it was merged into main. It's scheduled to run every 7th day of the week, like the 28th which was the day for this signing ceremony.
I suggest to update the cron job to run 10.00 on every Monday instead: 0 10 * * 1, see: https://github.com/sigstore/root-signing/blob/main/.github/workflows/stable-snapshot-timestamp.yml#L25

Thank you for filing this issue!
I see two ways we can proceed - we could freeze the job during the ceremony (and ensure that there is no expiration failure - perhaps something like "freeze, unless x days out" OR add a pre-ceremony step of running the automation so that there's no change main can expire)
I've handled some repos where they freeze automation during a release - I could set something up.
Running the cron on Monday instead seems like a decent solution as well, but might still end up with issues in case a ceremony bleeds over to the next weekend, right?

Yes, running the cron on Monday is not what I see a solution, it's just have it a bit more deterministic when it will run. We still need to have good procedures do deal with merge conflicts.

Yes, I think that is a good idea. I'm thinking if we can have it simple, like if there exists a ceremony/YYYY-MM-DD branch (not test-ceremony) and YYYY-MM-DD is closer than one week don't run the snapshot and staging? So then we don't need to manually set a state, the existence of such a branch is the indication. Of course we should have the option to override this check in an emergency situation.

Of course we should have the option to override this check in an emergency situation.

Agree, and we can do that by ensuring that we still allow workflow_dispatch to occur & ensure that it's only blocked if the valid-until date is far out.
Okay, will try to complete this next week! I'll mark this as a v7 milestone just so we prioritize it.


Do you plan on making this into an NPM package?

I've been wondering why there isn't a Typescript Reddit API Wrapper for ages!
However this doesn't appear to be published, or written with the intention of being used as a package. Is this something you want to do, or am I missing something?
Thanks!

Hi, I certainly would do this as an NPM package, absolutely. Haven't had much time to work on it though (feel free to contribute if you wanted to, I'd appreciate it haha).


Fixed some stuff

Setting $this->message in the send function isn't a good idea

Please merge? @AuroraAri

Apologies! I don't know why, but I never saw this. Merry Christmas! 👍


fix(hasDirtyAttributes): fix hasDirtyAttributes when resetting a property

Steps to reproduce the issue

Changing a fragment
Then changing a property
And finally resetting the property to its old value

Expected behaviour
hasDirtyAttributes should be true
Current behaviour
hasDirtyAttributes is false

Can I have a review @jakesjews ? Or may be you could suggest someone else to review this PR 😄 ?

Oh no 😢

May be @slindberg you can help me ?

Or @basz  ?

Sorry I'm not part of this repo either...

I don't have permissions either, I reached out to an org admin to see what the options are.

Thanks guys for your help 😄
Okey so @araddon could you help us here 👼 ?

I sent invite to @jakesjews to give him rights to manage this.

Looks like I have to use two-factor authentication for the invite. When I get some time I'll have to review a fair amount of stuff to make sure it will all work right. I should be able to get to this after all that.

@jakesjews any updates here? Any chance of a new beta release? This also seems to fix the issue @GuillaumeCisco was seeing in https://github.com/lytics/ember-data-model-fragments/pull/383

Thanks @VincentMolinie! I'll get a new beta release out once we resolve the npm access issue.

Thank you so much @patocallaghan !

Released in v5.0.0-beta.1


Doc comment on TypeAlias and subclasses regarding syntax is wrong.

Current syntax comment for TypeAlias:

typeAlias ::= 'typedef' typeAliasBody
typeAliasBody ::= classTypeAlias | functionTypeAlias

And for ClassTypeAlias:

classTypeAlias ::= SimpleIdentifier TypeParameterList? '=' 'abstract'? mixinApplication
mixinApplication ::= TypeName WithClause ImplementsClause? ';'

Which would suggest that a class type alias is declared with typedef Foo = Bar with Baz;. Which is incorrect; the keyword class is used, not typedef.
I think the best solution is to not specify any keyword in from of typeAliasBody; It should just be:

typeAlias ::= classTypeAlias | functionTypeAlias

Then GenericTypeAlias specifies metadata as the first element, while the others do not...

Fixed in #52515 with comments. Not sure what should be done with metadata, as I understand it can be removed?

Yes, <topLevelDefinition> rules do not include <metadata> any more, that's covered by having <metadata> <topLevelDefinition>)* in the rule for a library as a whole (<libraryDefinition>). The current grammar rule is as follows:
<typeAlias> ::=
    'typedef' <typeIdentifier> <typeParameters>? '=' <type> ';' |
    'typedef' <functionTypeAlias>;

In AST land this <metadata> looks like it is handled by AnnotatedNode (and TypeAlias <: AnnotatedNode), so I'll remove it from the docs TypeAlias docs.
In the PR I raised a few other issues, perhaps I should mention them here:

Background information
analyzer's AST `TypeAlias` has three subtypes,

FunctionTypeAlias, for example typedef void hello();
GenericTypeAlias, for example typedef hello = void Function();
ClassTypeAlias, for example class A = C with M;

The AST node TypeAlias has a getter called typedefKeyword which says it will return the token for the 'typedef' token. This, however, is not true. For a class type alias this will return the token for 'class'. Is that something that should be fixed (at least the docs)?
The language spec calls this feature "mixin classes" or "mixin application class" https://github.com/dart-lang/language/blob/cc2c933b1ae5a2c837f89ca4490040ff158a676f/specification/dartLangSpec.tex#L5428. In the AST this is called "ClassTypeAlias". This is somewhat confusing, especially when trying to find any documentation for this feature. Which, to my knowledge is very scares. I could not find any mention of it on dart.dev. The lang spec is also outdated, since it does not mention dart 3 class modifiers.
Maybe I am nitpicking here, but is this really a "type alias"? It introduces a new nominal type which exists at runtime, unlike standard typedefs. I feel like it shouldnt be in the TypeAlias bucket, unless I am missing something.

As a side note, it is quite unclear what this "mixin application class" feature is for exactly, or what problems it solves. Scanning the whole sdk repo, I have found a total of 3 uses outside of test cases.

In AST land this <metadata> looks like it is handled by AnnotatedNode (and TypeAlias <: AnnotatedNode), so I'll remove it from the docs TypeAlias docs.

I think we should (if we don't already) follow this rule for the "grammar" productions in the AST node documentation:

if a portion of the grammar is contained in a child node, then the child node should be referenced in the production, and
if a portion of the grammar is inherited from a parent node, then it should be repeated in the child node's documentation.

In other words, if someone is reading the docs for a node class N, I think the production should include everything that is in an instance of the class N, whether it's declared locally or inherited. I think this will make it easier for readers to figure out where the information is located in the AST.

Maybe I am nitpicking here, but is this really a "type alias"? It introduces a new nominal type which exists at runtime, unlike standard typedefs. I feel like it shouldnt be in the TypeAlias bucket, unless I am missing something.

It might be nitpicking, but I think it's a fair question. The answer is that it probably shouldn't be a subtype of TypeAlias.
The reason for the current situation is the same as one of the other questions you asked in the CL. The type hierarchy of the node classes has evolved over time, and sometimes we have missed the need to restructure the hierarchy as a result of changes to the language. But, while we would prefer to have the AST structure be better, there's a cost to changing it because of the number of other packages / tools built on our API, and we have to weigh the cost of making changes against the benefit. Sometimes that's a hard call to make, so we tend to err on the side of keeping the API stable.

From a language perspective, I'd say that a mixin application class (<mixinApplicationClass>) is a class declaration, very similar to other class declarations, and basically unrelated to a type alias declaration.
The syntax used to be something like typedef C = A with M;, so that's probably the history that explains why it was considered to be a kind of type alias.
(It could have been an alias mechanism if we had used a semantics where typedef C1 = A with M; and typedef C2 = A with M; would declare two names for the same class, by canonicalization of the class declaration which is the semantics of A with M. But we don't do that, as you mention, @shilangyu, so there's basically no justification for using the word 'alias' around these declarations.)
So it might be a nice simplification if the mixin application classes could be moved over to the class declaration AST hierarchy. (Of course, that's just a random drive-by comment from a language guy ;-)

Fixed in https://dart-review.googlesource.com/c/sdk/+/305840

Fixed back in last June :D. Thanks @shilangyu !


Update some broken links in the README file.

Fix some broken links.

Thanks! Unfortunately your change is lost when running doctoc to update the TOC again. I removed the emphasis instead as a workaround.


Allow text boxes

Text boxes allow for better manipulation of information as you can define the limits at which you want the text to make a line break.

For text size manipulation an idea could be contextual buttons that pop up when you select the whole box.

On the roadmap #4267 and we'll get to it soon!


Update auto-generated properties

Repository: openmicroscopy/ome-documentation
Already up-to-date.
Generated by build OMERO-5.1-latest-docs-autogen#326.

--no-rebase

Looks fine on staging and builds are all green, good to merge.


Feat: Animated text "HelpOps-Hub" on main page

Describe the feature
Animated text can capture user attention and make the main page more dynamic and engaging.
Add ScreenShots
https://github.com/mdazfar2/HelpOps-Hub/assets/95361125/a3607c3a-3f91-4433-bc05-362e07d23130
implement something like this on the main page text "HelpOps-Hub"
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[ ] I'm a VSoC'24 contributor
[X] I want to work on this issue

Hey @heli0707, that's awesome, but we will let you know about that in the future because right now we have other plans. Please wait, and we will connect with you soon about it.


Add async API calls.

This PR switches Odyessy to using the new Async for the API's that are available to be called that way. I don't know if that is what we want to do but it did make testing that the API's were working correctly with this new calling convention when testing locally.
This PR does rely on this Herbie PR to enable CORS for the checkstatus endpoint. This has been merged with main now.

Let me know how I can help.

Just thought of a bug/error in this code.
If for some reason the request times out (10s / counter reaches 100) an error is not thrown in this state and the function proceeds as if the job is ready to be collected. Will update to throw an error in this state.

Confirmed the server is running a sufficiently recent version of Odyssey to support this. Remaining steps:

[ ] Update Herbie binaries with sufficiently-recent version of Odyssey
[ ] Test locally
[ ] Merge

I'll test against the updated server today, won't point to the server or merge yet

No progress due to OOPSLA

No progress this week due to generals, but I should have some time to work on this on Thursday/Friday. I'll test against the server now that it's updated and switch local Odyssey to point to the server until binaries are updated.

Worked on adding a fallback check if the async API's don't exist. Getting some weird errors with errors not being caught.
Will circle back on.

I'm merging this branch now, tested locally and it works.


Please support focus() method

Version
@vueup/vue-quill version 1.1.1
Describe the bug
Please add focus() capability - https://quilljs.com/docs/api/#focus
To Reproduce
Attempt to use focus() on Vue Quill editor - does not work.
Expected behavior
Using focus() method will focus the editor with a cursor in the editable content area.
Reproduction link
N/A
Browser (please complete the following information):

Browser Any
Version Any

Additional context

Resolved by https://github.com/vueup/vue-quill/pull/361
Update to v1.2.0 for focus method support


Supporting Other Systems (Home Assistant)

(I wasn't sure of the best way to reach out. I'm sorry if this is the wrong place.)
I love mqtt-scripts. It saves me a lot of trouble. However, there are some systems that don't directly speak MQTT. And, while they can be made to do so, it seems inefficient to copy events and data from one system to MQTT just to act on it, send that data back to MQTT, and then have that information sent back to the originating system.
I've made an attempt at adding direct Home Assistant support to mqtt-scripts (http://github.com/dlashua/hass-scripts/). It works fine, though there's still plenty of work to be done in cleaning up the Node API/syntax of it.
It looks like maybe your Sandbox concept was meant for something like this, but, without documentation and being a fairly poor NodeJS programmer, I can't quite figure out how to use it. What would be the recommended way to implement connectivity to another platform (like Home Assistant, or Philips Hue, etc)?

@dlashua sorry, I missed this issue :/ Are you still interested in this?


Is there a way to plugin 3rd party validation library ?

Is there a clear way to plugin 3rd party validation library like FluentValidation? If there is then documentation needs to be updated. If not then can it be added as feature request so that its easy to use 3rd party plugin?
Fluent Validation for e.g. works really well with asp.net webapi where its completely unintrusive about how you declare your validation rules and do remote validation etc. Its widely used and populer so it would be easier for those who wishes to migrate from webapi to hotchocolate.

There is since you can completely customs the execution pipeline. The question is where to put such an integration. So, we could validate all arguments of the syntaxttree on validation, which would be fast but variables are not yet coerced. Also the arguments are only available as literals.
Or, it could be added as a query middleware after the variable coercion.
Lastly you could write a field middleware to handle this and this Is probably the simplest way to do it.
The middleware is able to run before or after the resolver. The middleware has generic access to all arguments and could integrate nicely with fluent validation.
If you want to contribute something like that we are open for that.
In any case we can walk you through implementing this.

As a side note @nigel-sampson investigated doing something like that.

https://hotchocolate.io/docs/middleware

I am doing following
            descriptor.Field<SalesPersonMutations>(f => f.CreateSalesPerson(default))                 .Use((services, next) => new MyValidationMiddleware<SP_GetSalesPersons>(next, new CreateSalesPersonValidator()));
The middleware is as follows:
`    internal class MyValidationMiddleware
{
private readonly FieldDelegate _next;
private readonly AbstractValidator _validator;
    public MyValidationMiddleware(FieldDelegate next, AbstractValidator<T> validator)
    {
        _next = next;
        _validator = validator;
    }

    public async Task InvokeAsync(IMiddlewareContext context)
    {

        // TODO this._validator.Validate<T>(myinputArguments);
        await _next(context);
    }
}`

The validation middleware is executing . However I am not sure how to get the myinputArguments  from the context.  Any idea?

Just as a tip, you can also use classes to represent a middleware.
.Use<MyValidationMiddleware<SP_GetSalesPersons>>();

That should work, we will handle all the constructor injection for you.
Regarding the arguments.
If you want a specific argument you can do the following:
var abc = context.Argument<string>("argumentName");

do not want to specify the type but access the argument in a more generic way do the following:
var abc = context.Argument<object>("argumentName");

if you want to fetch the argument as a literal:
var abc = context.Argument<IValueNode>("argumentName");

If you want to iterate over all arguments that the field has you can do the following:
foreach(var argument in ctx.Field.Arguments)
{
...
}

If you want to see which arguments where actually provided then you have to look at the field selection
foreach(var argument in ctx.FieldSelection.Arguments)
{

}

When you access the selection than you basically access the parsed syntax tree whereas if you access Field then you are accessing the type information ...you can compare that to MethodInfo in .NET.
Does that help you?

It does help.
var abc = context.Argument<object>("argumentName");
This is great stuff.
Let me know anyway I can contribute to this.

The next challange for me is to how throw error to the client.  I have seen the  ErrorBuilder.New() and QueryValidationResult but no idea how to use it properly so that it put these validation result in corrrect place.

This is what I done with my validation middleware
    public class MyValidationMiddleware<T>
    {
        private readonly FieldDelegate _next;
        private readonly AbstractValidator<T> _validator;

        public MyValidationMiddleware(FieldDelegate next, AbstractValidator<T> validator)
        {
            _next = next;
            _validator = validator;
        }

        public async Task InvokeAsync(IMiddlewareContext context)
        {
            var input = context.Argument<T>("input");
            if (input != null)
            {
                ValidationResult result = await this._validator.ValidateAsync<T>(input);
                if (!result.IsValid)
                {
                    SetResult(context, result);
                    return;
                }
                await _next(context).ConfigureAwait(false);
                return;
            }
            await _next(context).ConfigureAwait(false);
            return;
        }

        private void SetResult(IMiddlewareContext context, ValidationResult result)
        {
            List<IError> errors = new List<IError>();
            foreach (var validationError in result.Errors)
            {
                errors.Add(ErrorBuilder.New()
                .SetMessage(validationError.ErrorCode)
                .SetExtension(validationError.PropertyName, validationError.ErrorMessage)
                .SetPath(context.Path)
                .Build());
            }
            context.Result = errors;
        }
    }

which generates following
{
  "errors": [
    {
      "message": "NotEmptyValidator",
      "path": [
        "createSalesPerson"
      ],
      "extensions": {
        "PCFullName": "FullName required"
      }
    },
    {
      "message": "NotEmptyValidator",
      "path": [
        "createSalesPerson"
      ],
      "extensions": {
        "GenderId": "Gender required"
      }
    }
  ],
  "data": {
    "createSalesPerson": null
  },
}

Does this looks ok?

yes, this exactly the right way.

Thank you activebiz, this is exactly what we needed. I added some syntactic sugar with this UseValidator extension method:
    public static class ObjectFieldDescriptorExtensions
    {
        public static IObjectFieldDescriptor UseValidator<TValidator, TInput>(this IObjectFieldDescriptor descriptor)
            where TValidator : AbstractValidator<TInput>, new()
        {
            return descriptor.Use(
                (services, next) =>
                    new MyValidationMiddleware<TInput>(
                        next,
                        new TValidator()));
        }
    }

We plug it in like this:
            descriptor.Field(q => q.FileUploadProcessAsync(default, default))
                .Name("fileUpload")
                .Description("Upload a file to Azure.")
                .Type<FileUploadAzureFunctionResultType>()
                .Argument(
                    "input",
                    a => a.Type<NonNullType<FileUploadAzureFunctionInputType>>()
                        .Description("file upload parameters."))
                .UseValidator<FileUploadAzureFunctionInputValidator, FileUploadAzureFunctionInput>()
                .Authorize();

Hope that someday HC has some kind of built-in hook for FluentValidation or the like (or in a separate Hotchocolate.Validation library). But your extensible middleware makes this sort of thing possible. Loving the HC.

@PrimeHydra this is on our list.

@PrimeHydra this is on our list. We also plan to support the validation attributes that are located in the ComponentModel namespace.

any update on this?

Hope that someday HC has some kind of built-in hook for FluentValidation or the like (or in a separate Hotchocolate.Validation library)
@PrimeHydra

I've started something that does exactly this:
https://github.com/benmccallum/fairybread
Should v1 in the next couple of weeks, just trying to find time to wrap up the last bits.


Use first enum item default when no default is provided

Refs #72, WiP. Feedback=? @magopian

awesome, flawless, perfect :star2:
r+ :ship: :shipit: :rocket:


Chrome 50 fails to set answer sdp sent from Bowser

Hi, in my environment Chrome 50 started to show error when executing setRemoteDescription() with SDP sent from bowser, as follows (it doesn't occur on Chrome 49 <-> bowser call):

DOMException: Failed to set remote answer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to set remote video description send parameters..

I could fix the issue by tweaking sdp, not yet by the patch to owr (I feel Chrome handles sdps too strictly but anyway the issue can be fixed by owr). The problem started to happen since Chrome started to include rtx lines for VP9 etc from M50; owr/webrtc.js opts-out lines for VP9+ properly but it won't remove rtx lines referring them.
SDP given from bowser (in response to offer from chrome 50) causing error:
m=video 9 UDP/TLS/RTP/SAVPF 100 96 97 98
c=IN IP4 <IP_ADDRESS>
a=rtcp-mux
a=recvonly
a=rtpmap:100 VP8/90000
a=rtpmap:96 rtx/90000
a=rtpmap:97 rtx/90000
a=rtpmap:98 rtx/90000
a=fmtp:96 apt=100
a=fmtp:97 apt=101
a=fmtp:98 apt=116
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 ccm fir
I haven't confirmed yet though (I don't have an environment with openwebrtc built for myself), I guess it can be fixed by changing some lines in webrtc.js, to something like:
return dp && (!dp.parameters || !payload.parameters || (payload.parameters.packetizationMode == dp.parameters.packetizationMode && payload.parameters.apt == dp.parameters.apt));
from:
return dp && (!dp.parameters || !payload.parameters || payload.parameters.packetizationMode == dp.parameters.packetizationMode);

In addition to above changes I'm modifying offer SDP on bowser side :
sdp = sdp.replace(/a=setup:(passive|active)/igm, "a=setup:actpass")
Otherwise sdp cointains "a=setup" line that chrome doesn't accept, when the offer from bowser started after the first negotiation (offer/answer). I haven't yet found the root cause of this problem in owr codes.

@y-element thanks for reporting and looking into. I'll have a look at this.

@stefhak Thank you!, so appreciated.
On Thursday, 31 March 2016, stefan hakansson<EMAIL_ADDRESS>wrote:

@y-element https://github.com/y-element thanks for reporting and
looking into. I'll have a look at this.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/EricssonResearch/openwebrtc/issues/594#issuecomment-203812816

@y-element I think this was fixed when #598 was landed. Could you verify (note: it has not made it into a Bowser version yet)?

@stefhak
Thanks, I don't have owr environment right now but I will try to setup owr
& verify the fix.
On Tuesday, 5 April 2016, stefan hakansson<EMAIL_ADDRESS>wrote:

@y-element https://github.com/y-element I think this was fixed when #598
https://github.com/EricssonResearch/openwebrtc/pull/598 was landed.
Could you verify (note: it has not made it into a Bowser version yet)?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/EricssonResearch/openwebrtc/issues/594#issuecomment-205814758

I verified the issue reported here (the chrome50-specific one) was fixed, by removing SDP tweaks. Thanks so much. :)
I am experiencing separate problem by the way, which is, when owr initiates call and chrome joins the call, we will see a lot of warning messages and both sides will eventually get muted remote video stream. (I think no content is exchanged during this moment)
** (:43473): WARNING **: 'username' not the same for all remote candidates in the session
** (:43473): WARNING **: 'password' not the same for all remote candidates in the session
** (:43473): WARNING **: 'username' not the same for all remote candidates in the session
** (:43473): WARNING **: 'password' not the same for all remote candidates in the session
** (:43473): WARNING **: 'username' not the same for all remote candidates in the session
** (:43473): WARNING **: 'password' not the same for all remote candidates in the session
** (:43473): WARNING **: 'username' not the same for all remote candidates in the session
** (:43473): WARNING **: 'password' not the same for all remote candidates in the session
There are no sdp related error from UA, but on owr/safari side, there are error saying "Failed to load resource: unsupported URL", at which point the peerconnection seems to be lost. (Btw as another typical/strange behavior, onaddstream event will be emitted twice, before and right after this error).

For the moment I can avoid/workaround this error by always establishing the call to the same direction. It would be great to see any helps/advices (including separately creating issue etc). Thanks in advance.

Closing this issue as initial problem is fixed, Thanks so much. @stefhak

@y-element please file a separate issue on the password/username warnings, and spell out the setup you are using.


Visualize DB reports Enum as not serializable

When i try to visualize the Database,  this exception.  The Gender Type is an enum,  the attribute for the class is marked as @Enumerated(EnumType.STRING) in the code.  This worked the last time I used it with out the JPA Modeler.   Is this a bug, or is there something I am missing.
Solved: The Modeler ignores the Enumerated When reversing engineering.  However setting the field Type type to Enumerated, makes the problem go away.  Note: Adding  @Enumerated(EnumType.STRING)  as an Annotation also did not resolve the problem

Really Thanks for reporting the issue, It was reverse engineering issue, btw custom annotation, interface are not evaluated just used for template and code generation .
Please install v2.6.5 : https://github.com/jGauravGupta/JPAModeler/releases/tag/2.6.5


apply the latest deployer dependency for handling service api typing declaration reference

Related https://github.com/checkdigit/deployer/issues/152

not needed since it always use the latest npm version of deployer


SessionDuration Claim

Is there a way to use this functionality to include a SessionDuration claim?

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

ID: 1d8e93d6-413b-34aa-3359-41f5baa442d3
Version Independent ID: 0d657318-8058-a76a-c219-393ab3a4920d
Content: Learn how to provide optional claims to your Azure AD application
Content Source: articles/active-directory/develop/active-directory-optional-claims.md
Service: active-directory
GitHub Login: @CelesteDG
Microsoft Alias: celested

@jasonpnnl Thanks for your feedback! We will investigate and update soon.

@jasonpnnl Please refer to this document - Configurable token lifetimes in Azure Active Directory (Public Preview) to set token lifetimes for all apps in your organization. Refer this in the document for Single-Factor Session Token Max Age.

@jasonpnnl We will now proceed to close this thread. If there are further questions regarding this matter, please open a new issue and we will gladly continue the discussion.


Company name gets stuck

I just noticed that the page about me (http://why-cant-we-have-nice-things.mwl.be/requests/deprecate-mb-ereg-replace-eval-option) still indicates my old employer despite updating it on GitHub a while ago. It's kinda awkward that my actions may be associated with a company that has no connection to me anymore.
Maybe periodically (once a month?) the data should be refetched from GitHub?

The issue is Github's rate limit is very aggressive, I can't even fetch user metadata all at once, it's spread over cron jobs until all metadata is fetched. I'm gonna add something so that it starts refreshing it once it's done one complete pass at least, so it refreshes it from time to time.

Awesome! Thank you :)


Unknown Function Lower or LOWER

Hello mate,
Here is my entity
    @Entity(name="product")
    public class Product {
        @Id
	private Key id;
	private String name;
	private String code;
	@Field(name="is_deleted")
	private Boolean isDeleted;
}

My repository
@Repository
public interface ProductRepository extends DatastoreRepository<Product, Key> {

       @Query("select * from product where LOWER(code) = LOWER(@product_code) and is_deleted = @is_deleted)
	Product existsByCodeIgnoreCaseAndIsDeleted(@Param("product_code")String code, @Param("is_deleted")Boolean isDeleted);
}

When I call the method: existsByCodeIgnoreCaseAndIsDeleted() from a service I received this error message:
[Request processing failed; nested exception is com.google.cloud.datastore.DatastoreException: Unknown function "LOWER".] with root cause  com.google.datastore.v1.client.DatastoreException: Unknown function "LOWER".
I also tried with lowercase "lower", with no success.
Please help.
Thanks

@beunick I don't believe Datastore supports functions like that. Where have you seen this in documentation?

Reopen if this is still a question.