When you compute shape, why don't you use mean expression of Exp_Pca.bin?

I notice that in compute_shape(), you only use mean shape, but not mean expression. I understand that it is because you use an expression basis provided by Guo et al, instead of those in 01_MorphableModel.mat.
https://github.com/sicxu/Deep3DFaceRecon_pytorch/blob/1c1c81e204b84ed18d841fe1f81313a39db382d5/models/bfm.py#L98
However, in Exp_Pca.bin, there is a variable called expMU which can be converted to the mean expression. Why don't you use it?
https://github.com/sicxu/Deep3DFaceRecon_pytorch/blob/1c1c81e204b84ed18d841fe1f81313a39db382d5/util/load_mats.py#L18

I understand even if you do not use the mean expression to compute the shape, the code still works.
But, in my opinion, adding with mean expression like mean_shape obviously more makes sense.


none: adding dev guide collection instr to CONTRIBUTING.md

// wish useful.

thanks, included as of 4ae16d721a4c866c8aae2ed331d4ce933b4cf300


Display strikethrough text with a line through it

smd will not display strikethrough text. This is not the behavior I'd expect. Most Markdown tools I've run into will display the text with a horizontal line through it like this:
oops
Consider changing the program's behavior?

Which terminal are you using? Some ansi codes are not interpreted in all of them.

Which terminal are you using? Some ansi codes are not interpreted in all of them.

The Gnome Terminal is my default. But I see Wezterm also removes strike-through text.
Note that these strikethrough texts are in tables, so if every cell contains strikethrough text then you get a blank line. And without those vertical and horizontal table borders, it's rather confusing output.
On the other hand, I kind of get it. Strikethrough text was text  its author wanted to strike out or delete. I'm just used to seeing the text with a horizontal line through it.

@johnblommers  can you give a markdown example then I can debug it?


merge from arlac77/npm-package-template

package.json

chore(scripts): cover@#overwrite c8 -x 'tests/**/*' --temp-directory build/tmp ava && c8 report -r lcov -o build/coverage --temp-directory build/tmp
chore(scripts): docs@documentation readme {{module}} --section=API
chore(scripts): lint@documentation lint {{module}}
chore(package): add module from template
chore(package): add main from template
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/*-test.mjs' as in template
chore(package): set $.ava.extensions='mjs' as in template
chore(package): remove unknown value for main ({{main}})
chore(package): remove unknown value for module ({{module}})

Pull Request Test Coverage Report for Build 2365

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

Totals

Change from base Build 2362:
0.0%

Covered Lines:
361

Relevant Lines:
375

💛  - Coveralls


[Yahoo] Add Yahoo authorization support via Bearer

Added

Yahoo authorization support via Bearer

I checked the authorization and Addressbooks sync functionality for Yahoo and it works fine (but not the Addressbook query, which seems not to be supported by Yahoo CardDAV API).
@mstilkerich, I also noticed that your software is licensed under GPL-3.0 License, so unfortunately I can not use it in our proprietary (not open source) software. I had to use CardDAV API because Yahoo had deprecated and then removed its Contacts API with only CardDAV API option left to use for contacts import functionality. It would be great if there are some options to lighten the licensing restrictions to something like GNU Lesser General Public License or, even better The MIT License - but of course just in case if the current license was not chosen on purpose. In any case, PR is relevant, because I checked Yahoo CardDAV API with your client and it, generally, works.

Hello, thank you! I really wonder why most servers appear to not advertise the Bearer auth scheme.
I will try to run the interop tests on yahoo to see if there are any further issues, assuming accounts are available for free! The addressbook query report is unfortunately an area of the protocol with highly varying degree of support and quality in different server implementations, I put a roundup of my experience so far in doc/QUIRKS.md.
Concerning license, I have no objections to re-release under MIT license. GPL was more of a carry over from rcmcarddav, but my intention was not to limit the use.

Hmm I cannot find any official documentation from yahoo concerning CardDAV API, so I guess the API you are accessing is not open to the public.

Hmm I cannot find any official documentation from yahoo concerning CardDAV API, so I guess the API you are accessing is not open to the public.

As I found out via this StackOverflow answer,
the parent company declares CardDAV support for Yahoo, though I haven't found the CadrDAV API documentation itself. But the contacts sync just works with your client, with the documented Yahoo OAuth2 authorization - as I checked myself.
As for the license - what is the best way to apply this change? Do I need to add it to this PR, or just wait?

The Yahoo CardDAV API seems to require a special request and approval by Verizon. It's too much hassle for me just to test it, so I won't add it to my test environment.
I have adapted the license to MIT and will release a 1.2.1 with your yahoo workaround soon.

@mstilkerich thank you a lot!


Futurize stage 1 with Black format

This PR includes 3 stages namely:

Clean up #105
Futurize stage 1 #106
Black formatting. #107

The reason for creating this PR is due to cascaded the PR's that were based on LIFO, as illustrated below. It is cumbersome to merge these PR's to master without merging #106
Master
  |
  --> https://github.com/ska-sa/tango-simlib/pull/105
	  |
	  --> https://github.com/ska-sa/tango-simlib/pull/106
		  |
		  --> https://github.com/ska-sa/tango-simlib/pull/106
			  |
			  --> https://github.com/ska-sa/tango-simlib/pull/106

Squash and merge this PR upon approval and close #107

Very hard to review this - which is why the plan was to do small PRs instead (and those have already been reviewed, so now we are duplicating work).

I know, but we couldn't merge PR's #105, #106 and #107 without merging #108 as they are all interdependent, hence why after PR's #105, #106 and #107 where approved I then created this PR which merges all of them into a single PR.
Not sure if all this makes sense. :thinking:


feat(snapshot): concatenate name of test and snapshot

Summary

I find the context of the test name and the snapshot name very useful in cases where you have multiple different
Meanwhile I also added the option to add a testName to toThrowErrorMatchingSnapshot.
I inspired from https://github.com/facebook/jest/pull/2094, but couldn't really find back where the exact tests are I need to change for this to work.
Let me know if I'm on the correct path
Test plan

I should change the tests for toMatchSnapshot, but I'm not totally sure which exactly test this

I have a bunch of failing tests running locally that seem to be unrelated to this change, so if someone can take a look in what causes these failures locally, as well as on the CI
Snapshot Summary
 › 64 snapshot tests failed in 16 test suites. Inspect your code changes or run with `yarn run jest -- -u` to update them.

Test Suites: 17 failed, 149 passed, 166 total
Tests:       63 failed, 1512 passed, 1575 total
Snapshots:   64 failed, 625 passed, 689 total
Time:        75.757s
Ran all test suites.
error Command failed with exit code 1

@Haroenv Your new test fails on appveyor, could you take a look?

@SimenB, I don't understand how the test can fail on appVeyor but not on other platforms. It doesn't seem to be anything windows-specific?

If you still have issues locally, try rebasing on master, and doing yarn clean-all && yarn && yarn test. Ensure you are on<EMAIL_ADDRESS>as well.
I do agree it seems odd the test should only fail on appveyor, though. Maybe the generated filename somehow is messed up? I'd be interested in a fresh CI run, so if you could push a rebased PR, that'd be great. Restarting the node 6 build on circle didn't help...

Tests have always passed on my end

@SimenB tests pass now, but node 4 fails from the merge 🤔

That is my fault, I activated a test in #4631 that uses `Array.prototype.includes , which is not supported on node 4.
The CircleCI badge should not be green, I have no idea what it looks at

Codecov Report

Merging #4460 into master will increase coverage by <.01%.
The diff coverage is 50%.

@@            Coverage Diff             @@
##           master    #4460      +/-   ##
==========================================
+ Coverage   57.12%   57.13%   +<.01%
==========================================
  Files         194      194
  Lines        6566     6565       -1
  Branches        3        3
==========================================
  Hits         3751     3751
+ Misses       2815     2814       -1

Impacted Files
Coverage Δ

packages/jest-snapshot/src/index.js
43.18% <50%> (+0.95%)
:arrow_up:

Continue to review full report at Codecov.

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

Wait, can somebody explain this change to me? I don't get it.

My idea was that if you're adding a custom snapshot name, it is because you have a lot of them in the same test and want to reference which is the test it actually occurs in. Imagine having a few different cases in which you'll add the same snapshots, then you might want to know which snapshot is for which test.
const getData = format => ({
  color: 'red',
  format,
});

it('works with format true', () => {
  const data = getData(true);
  expect(Object.keys(data)).toMatchSnapshot('has correct keys');
  expect(data.format).toMatchSnapshot('has correct format')
});

it('works with format false', () => {
  const data = getData(false);
  expect(Object.keys(data)).toMatchSnapshot('has correct keys');
  expect(data.format).toMatchSnapshot('has correct format')
});

This is a bit simpler than what you would be doing in real life, but any repeated test cases under similar use cases would make sense.
The problem with the implementation right now, is that when you look at the snapshot file, you don't know which test a certain assertion is coming from.
Obviously you can work around this before this PR by giving them separate names, but that seems a bit tedious to me.

Let's do it, although it's a breaking change.

Thanks :)


Errors in bulk request are not objects; they are strings.

Please use the following questions as a guideline to help me answer
your issue/question without further inquiry. Thank you.
Which version of Elastic are you using?
[ ] elastic.v2 (for Elasticsearch 1.x)
[X] elastic.v3 (for Elasticsearch 2.x)
Please describe the expected behavior
All errors in the response to a /_bulk request should unmarshal cleanly.
Please describe the actual behavior
Errors in the response fail unmarshaling with the error Cannot unmarshal object into go value of type string.
Any steps to reproduce the behavior?
Execute a bulk request that results in an error. For example,
{
   "took": 3,
   "errors": true,
   "items": [
      {  "create": {
            "_index":   "website",
            "_type":    "blog",
            "_id":      "123",
            "status":   409,
            "error":    "DocumentAlreadyExistsException
                        [[website][4] [blog][123]:
                        document already exists]"
      }},
      ...
   ]
}

Hmm... thanks for reporting. Did they change the error field? I have a test for this.

Let me look through their change history and find out for you.

In the 2.x branch they generate an object. Which version are you using exactly?

It doesn't appear so. The issue is that your test already assumes a response format. It doesn't test that the response is actually going to be in that format.

Yes. I have a lot of tests, but I don't have integration tests for everything.

I use version 2.2.0. Yeah it appears that in the code they generate an object, but the documentation and my log shows a regular message. Weird... going investigate more.

Ugh. The only way I can get this error to replicate is through a build on circleci, and now circleci is completely borked. It doesn't help that it only gives me 30 minutes before expiring the ssh session. I'll give you an update when circleci is stable enough to let me log the elasticsearch bulk action responses. What I can tell you at the moment from my debugging is that the error occurs at https://github.com/olivere/elastic/blob/release-branch.v3/bulk.go#L202. Of course, UnmarshalTypeError has very little information.

Well... :-)   The error is due to this line. You somehow managed to get ES to return a string while I can only see ES return a structured error.
Can you update to 2.3.2, or does that make things even worse?

Hmm... 1.x had an error message ...

We are definitely on 2.2. I do know that. I'm running my circleci build now with trace logging enabled. We should know soon.

Did you find the root cause of this?

Sorry for the sudden inactivity. No, I did not figure out the cause of this. I fixed a bug in existing code that was causing elasticsearch to raise the 400 error for one of the bulk request items. I tried to reproduce the issue many times before applying my fix, but I could not get it to reproduce. I also could not get to the logs because they had been redirected to nohup.out, which was empty. CircleCI would not let me view (or even download) the full log when I configured your client with a trace logger because there were too many requests; the log size was limited to 4 MB. I gave up after that and applied my fix.
I'll close this for now. Perhaps someone will also encounter the same problem, find this issue, and provide you with sufficient information to fix it. Cheers!

Okay. Thanks for trying.


AnimationTree Advance Expression is ignored (State Machine Tree transition never happens)

Godot version
4.0.3-stable
System information
Windows 10
Issue description
The value from an Advance Expression in a AnimationNodeStateMachineTransition in a State Machine in an AnimationTree seems to be completely ignored.
The transition is never performed, even when setting the value of the advance expression to a raw true.
Steps to reproduce

Add an AnimationPlayer and AnimationTree
In the root node, add a script with a boolean variable like @export var is_running := false
Add a StateMachine in the AnimationTree
Assign the root node into the AnimationTree Advance Expression Base Node.
Add 2 animations and create transtions between them in the StateMachine, and set the Advance Expression to is_running and the way back to not is_running:

Minimal reproduction project
AnimationTreeAdvance.zip
Press Toggle Move, it should transition to the "Move" state, but it is currently doing nothing:

Try putting the script on the animation tree

Try putting the script on the animation tree

No effect.
Even by changing here:

And then of course attaching the script there. Still no difference.

AnimationTreeAdvanceModded.zip
I modified the animation tree project.
Is it supposed to be like this?
https://github.com/godotengine/godot/assets/32321/228b6ca1-3d67-43f7-b0f1-c3aab02a38bf

Thanks, I checked the project, that works. I'll see if I open a PR with more clarification in the docs.

I modified the function to change state on up and down. Separated the functions. (removed the toggle)


How to change path build macos ???

from "outputDirectory": "build/macos/Build/Products/Release" to build/macos/Build/Products/Release-uat/
Please!!!
`{
"config": {
"mode": "release",
"flavor": "uat",
"arguments": {
"dart-define": {
"APP_ENV": "dev"
},
"flavor": "uat",
"target": "lib/main_uat.dart"
}
},
"outputDirectory": "build/macos/Build/Products/Release",
"duration": 457358,
"outputFiles": []
}
Successfully built Directory: 'build/macos/Build/Products/Release' in 457s
PathNotFoundException: Directory listing failed, path = 'build/macos/Build/Products/Release/' (OS Error: No such file or directory, errno = 2)
RELEASE FAILED in 489s
PathNotFoundException: Directory listing failed, path = 'build/macos/Build/Products/Release/' (OS Error: No such file or directory, errno = 2)
#0      _Directory._fillWithDirectoryListing (dart:io-patch/directory_patch.dart:42:24)
#1      _Directory.listSync (dart:io/directory_impl.dart:233:5)
#2      AppPackageMakerZip.make (package:flutter_app_packager/src/makers/zip/app_package_maker_zip.dart:30:12)
#3      FlutterAppPackager.package (package:flutter_app_packager/src/flutter_app_packager.dart:40:18)
#4      FlutterDistributor.package (package:flutter_distributor/src/flutter_distributor.dart:182:51)

#5      FlutterDistributor.release (package:flutter_distributor/src/flutter_distributor.dart:327:45)

#6      CommandRunner.runCommand (package:args/command_runner.dart:212:13)

`

I am facing the same issue as I have set up 3 flavors (development, staging, and production). Could you please help @lijy91?

A little digging into the code reveals that this is because of an assumption made in the BuildMacOsResultResolver class where it appends the buildMode at the end of the assumed path (i.e. build/macos/Build/Products/)
Here's the code 👇
https://github.com/leanflutter/flutter_distributor/blob/4a8384e48a562bca652e1f9b3073e18999688f9d/packages/flutter_app_builder/lib/src/builders/macos/build_macos_result.dart#L22-L27
A possible solution could be to keep the existing logic as it is, and just prepend it with a little customisation where the user would be able to provide a custom output-directory inside distribute_options.yaml like so:
output: dist/
releases:
  - name: development
    jobs:
      # Build your dmg
      - name: release-development-macos
        package:
          platform: macos
          target: dmg
          # The plugin will look for the `.app` file inside the provided directory only
          output-directory: build/macos/Build/Products/Release-development
          build_args:
            flavor: development
            target: lib/main_development.dart

And the BuildMacOsResultResolver might be able to accommodate this customisation by asking for a variable in its constructor like this:

class BuildMacOsResultResolver extends BuildResultResolver {
  final String? customPath; // Ask for this new variable

  const BuildMacOsResultResolver({this.customPath});

  @override
  BuildResult resolve(BuildConfig config) {
    final r = BuildMacOsResult(config, customPath);
    final String pattern = '${r.outputDirectory.path}/*.app';
    r.outputFiles = Glob(pattern).listSync().map((e) => File(e.path)).toList();
    return r;
  }
}

class BuildMacOsResult extends BuildResult {
  final String? customPath; // Ask for this new variable

  BuildMacOsResult(BuildConfig config, {this.customPath}) : super(config);

  @override
  Directory get outputDirectory {
    String buildMode = ReCase(config.mode.name).sentenceCase;
    String path = customPath ?? 'build/macos/Build/Products/$buildMode';
    return Directory(path);
  }
}

I hope this helps somehow :)

Another possible (and a much easier) solution that does not require the end user to know anything about the final build directory and the library to add any new fields would be to just make use of the flavor value that the user already passes in his distribute_options.yaml file like this:
class BuildMacOsResult extends BuildResult {
  BuildMacOsResult(BuildConfig config) : super(config);

  @override
  Directory get outputDirectory {
    String buildMode = ReCase(config.mode.name).sentenceCase;
    // Get the value for `flavor` from the `config` object
    String path = 'build/macos/Build/Products/$buildMode-${config.flavor}';
    return Directory(path);
  }
}

https://github.com/leanflutter/flutter_distributor/commit/0abe930d073c0d679038a00c09e4388e5e55ebd8


Introduce api client gem

Basic principle is explained in the Readme, but feel free to ask about arch decisions.

Would be good if the readme states how to include this gem in consuming apps eg
gem '....'

Would using middleware for faraday https://github.com/lostisland/faraday_middleware be an option?
Mainly encoding and decoding JSON: https://github.com/lostisland/faraday_middleware/wiki/Parsing-responses

@ansonK:
I've added the installation instructions to the Readme.
I think that as long as we only make a call from 1 single place in the code, we don't need it. The JSON parsing is at the moment concentrated to the single method:

def resource_get(path)
  JSON.parse(get(path)).deep_symbolize_keys
end

Creating a middleware will also complicate testing of the client a bit and I'm not sure how are we gonna be able to handle different errors.
So I would postpone this decision for later, if you agree, once we develop the client further.

@novotnyjakub I'm ok with leaving it until we have a more pressing reason to include it as you said unless someone else has a reason to use it now

looks good to me


is there support for other languages? like Chinese?

Hey there!
Yes, all languages that Hoyolab offers are supported (Go to hoyolab.com for a complete list), but the feeds on my server are only in English.
If you want to host the feeds by yourself, you can set the language in the config file (see example.conf). Use the common IETF BCP 47 language tags. For Chinese you can use zh-tw.
If you want to use my script as module, you can set set the lang parameter for the create_game_feeds function.


Google Docs version of Panel view

This task focuses on creating the content for a google docs version of the panel view.

PLEASE SEE COMMENTS BELOW *

'Starter for 10' code is available here:
https://github.com/jac-uk/digital-platform/blob/master/nodeScripts/google-docs.js
This grabs an existing application from firestore and outputs data to the following Google Doc:
https://docs.google.com/document/d/10e-mWyfN8_hi_-ealc6wib3kyy_MzmpB102zKOqC2U8/edit
To run the starter code run the following command from the root of the digital-platform project:
npm run nodeScript google-docs.js

This will append content to the Google Doc.
Note: If you don't already have it you may need to grab the service-account.json file and store it in the root of your local copy of the digital platform repo. Speak to @warrensearle @lloback or @tomlovesgithub
Your mission, should you choose to accept, is to configure the document content so instead of looking like this (current content):

It looks a lot more like this (panel view in admin):

The following resource will be useful (as well as google search):
https://googleapis.dev/nodejs/googleapis/latest/docs/index.html

Note
We changed tack on this task as Google Docs API is a bit low-level for our needs. At least on first appearance.
We decided to generate a html string instead as we can take advantage of the Google Drive API to upload the html and convert it into a google doc. This is much simpler and satisfies our needs.

application list
{{ applicationReferenceNumber }} / candidate name
Personal details
Character information
Equality and diversity information
Part Time Working Preferences
Location preferences
Jurisdiction preferences
Welsh posts
Additional Preferences
Qualifications
Memberships
Experience
Post-qualification experience
Judicial experience
Gaps in employment
Reasonable length of service
Independent assessors
Additional selection Criteria
Uploaded statement of suitability
Self Assessment
CV
covering letter
Issues
Notes
Agency Report

panel pack list

Application Reference Number
Welsh posts
Additional Preferences
Qualifications
Memberships
Experience
Post-qualification experience
Judicial experience
Gaps in employment
Additional selection Criteria


Can this feature be added to NatML (Unable to build on android; duplicate classes).

In NatShare you have this feature: + Added Embed AndroidX project setting for preventing duplicate errors when embedding AndroidX native library.
Could something similar be added to VideoKit, I'm unable to build my project because firebase also adds androidx files, and VideoKit does not properly use External Dependency Resolver to add it's dependencies, causing conflicts like:
Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.2.0-runtime (androidx.core:core:1.2.0) and videokit-androidx-core-1.8.0-runtime (:videokit-androidx-core-1.8.0:)

Sorry, my bad, I found the settings is already there by searching you're Discord.


Track added products for cache invalidation

I discovered that in sbt, the scripted tests/internal-tracking test
would fail if run with -Dsbt.resident.limit=$NUM where $NUM > 0. This
was because the test introduced a dependent project b, that depended on
a, but was set to not track a. If the b project was compiled before the
a project, the compilation would fail, but a cache entry would be added
to the compiler cache with a key that included a's target directory in
its classpath. If a was then independently compiled, the expectation
would be that b would also compile, but this actually failed. The reason
was that when zinc looked for the cached compiler, it found a hit and
did not create a new compiler instance. This was a problem because the
previous instance was unaware of the newly generated classes from the a
project. To get b to compile, it is necessary to invalidate the compiler
cache entry.
To invalidate the entry, we must detect that there are changes to the
project's dependencies. Previously, zinc did not even look at new
classes in a dependencies target directory. It did look at
removedProducts, but did not actually consider the removed products when
constructing the DependencyChanges instance in Incremental.scala. This
commit adds an addedProducts* field to InitialChanges with alternate
constructors and apply methods for binary compatibility. I then update
Incremental.scala to append both the removed and added products to the
DependencyChanges.modifiedBinaries parameter. After those two changes,
the scripted test passes with or without using cached compilers. Note
that this behavior was never detected in the past because all of the
scripted tests are run without setting sbt.resident.limit so every
single run of compile is guaranteed to have a fresh compiler.

I could have left InitialChanges as it was and just appended the new
products to the removedProducts set, but that seems liable to lead to
confusion.

A validation involving this pull request is in progress...

The validator has checked the following projects against Scala 2.12,
tested using sbt-allsources.sh.

Project
Reference
Commit

sbt
1.2.x

zinc
pull/569/head

io
1.2.x

librarymanagement
1.2.x

util
1.2.x

website
1.2.x

:x: The result is: FAILED
(restart)

A validation involving this pull request is in progress...

@eatkins Hey Ethan, resident compilation has not been working for more than three years (it started as an experiment and it was then dropped). Since then, Zinc 1.0 hasn't been tweaked to work with resident compilation and I would prefer not to tweak it until there's a working and reliable resident compilation working in the scalac compiler (this is not the case today).

@jvican that's interesting. I have actually been using it for the last 6 months without much in the way of noticeable issues. What I have noticed is that it often takes a few hundred milliseconds to create a new compiler instance so using a cached compiler is a noticeable improvement when it works. Do you remember off hand what doesn't work when using the cached compiler? Also, if cached compilers are unsupported, why are they not deprecated both in zinc and in sbt?

For context, I have been trying to reduce the time between triggering a build and the start of compilation in sbt. When you optimize the other initialization steps (gathering source files and comparing stamps), creating a new compiler instance ends up taking up most of the time. I have been able to get continuous builds using ~compile for small projects to complete within 100ms of touching a simple file, e.g. class Foo. That number increases by 50ms-300ms depending on how warm the the jvm is when a fresh compiler instance is created for the run. I suppose it doesn't affect ux that much, but I'm personally of the mindset that every millisecond matters for software latency especially when it creeps up to the 200ms range, which is noticeable.

Thanks for the clarification! I have been working on integrating an optional file system cache into sbt that automatically updates itself and recalculates hashes when it detects source file changes. This is how I've been able to reduce the compilation initialization time in sbt. It will be interesting to see if my changes can improve the performance relative to bloop. If not, I think I understand the pipeline well enough to hopefully be able to integrate the bloop performance improvements into sbt. As an experiment, I also integrated the file system cache into mill and did some rudimentary performance tests and I actually found sbt to be slightly faster than mill for large projects, but this was a few months ago and I'm not sure if that result will hold up.

Thanks for the clarification! I have been working on integrating an optional file system cache into sbt that automatically updates itself and recalculates hashes when it detects source file changes.

We have something similar to this in Bloop, and there's still work to do to share all of these hashes along all of its users inside the bloop codebase. I registered this idea in this thread:

One thing to consider is to associate hashes with classpath entries, and allow any compilation process to reuse those hashes. But if we do that, we need to think about proper invalidation. All options are...

So at some point I'll get back to it if nobody beats me to it.

Cool. It's good to see that my approach is inline with what you and others have considered for bloop. One pie in the sky idea is to have the file system cache actually include the contents of the source files. If the compiler exposed an interface that took a list of of source files along with the contents of the source files, then the compiler would not need to do any disk io to compile the sources. I am not really sure how disk bound compilation is, so maybe it wouldn't matter. I was initially surprised to discover the extent to which sbt can be heavily disk io bound though.

I am not really sure how disk bound compilation is, so maybe it wouldn't matter. I was initially surprised to discover the extent to which sbt can be heavily disk io bound though.

In the large scheme of things, compilation is not disk intensive. However, to gain some speedups from IO I've recommended several Bloop users to just use tmpfs directories as target directories and to rebase all the classpath entries of all the projects in a tmpfs directory. Tmpfs directories give you more throughput and less latency than reading/writing from/to disk, so I imagine that this alone would give you performance similar to the one you can get from swovel (but obviously I haven't tested this).
Note that my approach in bloop does not aim to store the contents of the source files, but rather just cache the "meta" information that I'm interested about and expose it to the different parts of the compiler APIs that need it. This kind of meta information is things like hashes (real hashes, not timestamps).

@jvican I remain a bit confused about your statement that resident compilation doesn't work in scalac. I have been using it in all of my projects for a year and have not had any issues with it. The only issue I've ever encountered with it was when I set resident compilation to be the default in sbt and ran the sbt scripted tests. Even then, there was only one test that failed and it was doing some weird stuff with the project tracking configuration.

The resident compiler was removed (#835), so I guess this can be closed too.


[REVIEW] Use sets to avoid differently ordered columns

Handle situations like the following:
gdf1 = DataFrame()
gdf1['a'] = [1,2,3]
gdf1['b'] = [4,5,6]

gdf2 = DataFrame()
gdf2['b'] = [1,2,3]
gdf2['a'] = [4,5,6]

gdf = pygdf.concat([gdf1, gdf2])

Changes lgtm


Documentation on QoI 1

Question of Interest (QoI):

Should the Aztec block production protocol adopt Dynamical or Fixed Block Time?

Stories:

Express pros and cons in terms of KPIs
KPIs e.g. per trajectory, conditional on scenario (congestion), etc.
Definition of congestion (and congestion scenarios)
Definition of agent behavior
Definition of steady state
Definition of experiment states (all phases fixed, some fixed, etc)
Eliminating redundant / unlikely states

Closed with QoI and PSuU workflow


README.md is missing the mention of used based image(s)

found during QG4 Check #12
According to TRG4.02 the README.md has to include a mention of used base images(s), like e.g. BPDM

fixed on https://github.com/catenax-ng/tx-vas-country-risk-frontend/commit/333361681b1335655a73fc6c245aae1d906fd857


cmake + HIP_PLATFORM=nvidia fails with "Could NOT find Threads"

When trying to compile for Nvidia using cmake I get the following error:
export HIP_PLATFORM=nvidia
export CC=/opt/rocm/bin/hipcc
export CXX=/opt/rocm/bin/hipcc

-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- The ASM compiler identification is unknown
-- Found assembler: /opt/rocm/bin/hipcc
-- Check for working C compiler: /opt/rocm/bin/hipcc
-- Check for working C compiler: /opt/rocm/bin/hipcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /opt/rocm/bin/hipcc
-- Check for working CXX compiler: /opt/rocm/bin/hipcc -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Warning: Did not find file Compiler/-ASM
-- Found Git: /usr/bin/git (found version "2.25.1")
-- Looking for pthread.h
-- Looking for pthread.h - not found
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
  Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.16/Modules/FindThreads.cmake:220 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  /usr/share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
  /opt/rocm/lib/cmake/hip/hip-config.cmake:204 (find_dependency)
  CMakeLists.txt:22 (find_package)

$ hipconfig
HIP version  : 5.1.20531-cacfa990

== hipconfig
HIP_PATH     : /opt/rocm-5.1.0/hip
ROCM_PATH    : /opt/rocm-5.1.0
HIP_COMPILER : clang
HIP_PLATFORM : nvidia
HIP_RUNTIME  : rocclr
CPP_CONFIG   :  -D__HIP_PLATFORM_NVCC__= -D__HIP_PLATFORM_NVIDIA__= -I/opt/rocm-5.1.0/hip/include -I/usr/local/cuda/include

== nvcc
CUDA_PATH   : /usr/local/cuda
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0

=== Environment Variables
PATH=/home/mad/.cargo/bin:/home/mad/.local/bin:/home/mad/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/go/bin:/opt/rocm/bin
HIP_PLATFORM=nvidia
CUDA_NVCC_FLAGS=-gencode arch=compute_86,code=sm_86

== Linux Kernel
Hostname     : AN515-45
Linux AN515-45 5.13.0-37-generic #42~20.04.1-Ubuntu SMP Tue Mar 15 15:44:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.3 LTS
Release:	20.04
Codename:	focal

| NVIDIA-SMI 515.48.07    Driver Version: 515.48.07    CUDA Version: 11.7     |

$ /usr/local/cuda/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0

@madMAx43v3r  Hi, were you able to resolve this issue on the latest HIP? If so can we close this ticket?


Rename modal.js to overlay.js

Fixes #4702 .Made multiple commits for ease of review. Squash and merge perhaps?

@aero31aero huge thanks for working on this!  I merged the last commit since it was independent of the rest.  For the rest, looking at the code, I'm thinking we should call it overlays.js, not overlay.js, since all the API methods like overlay.exit_overlay() end up reading funny without the extra s...
@showell @aero31aero what do you think?

Now that you point it out, its funny I didn't do that in the first place. Making changes and dropping off the fourth commit from the PR soon.

Updated.

Merged as 2d73e03e37dda57b36505f5c1a492c3752dae038, thanks @aero31aero!!
I had to change a couple references in tools/js-dep-visualizer.py that you missed, and of course update the commit message to close #4702.


a2x Syntax Error with .asdf/PyEnv

Describe the bug
[  0%] Generating cjxl.1
  File "/home/p/.asdf/shims/a2x", line 3
    exec /home/p/.asdf/bin/asdf exec "a2x" "$@" # asdf_allow: ' asdf '
SyntaxError: invalid syntax

To Reproduce
which a2x
    /home/p/.asdf/shims/a2x
mkdir build
cd build
cmake ..
cmake --build .

Expected behavior
[  0%] Generating cjxl.1
[  0%] Generating djxl.1
[  0%] Built target manpages

Environment

OS: WSL2
Compiler version: Debian clang 17.0.6
CPU type: x86_64
cjxl/djxl version string: v0.10.2 661fec1b [AVX2,SSE4,SSE2]

Additional context
Line 435f of CMakeLists.txt:
    file(STRINGS "${ASCIIDOC}" ASCIIDOC_SHEBANG LIMIT_COUNT 1)
    if(ASCIIDOC_SHEBANG MATCHES "/sh|/bash" OR MINGW)

.asdf/shims/a2x
#!/usr/bin/env bash
exec /home/p/.asdf/bin/asdf exec "a2x" "$@" # asdf_allow: ' asdf '

I think the problem is the SheBang line which has "/usr/bin/env bash",
so it isn't recognized as a Shell script.

Thanks for the report, can you check if #3565 fixes your problem?


USB Support

add ability to push ini file and pull log files automatically when usb is inserted.
https://docs.python.org/2/library/shutil.html?highlight=shutil#module-shutil
http://pyudev.readthedocs.org/en/latest/guide.html#monitoring-devices

new webapp doesn't need big ini file


Synchronize UI with player state

I plan to integrate your player into my app. I am currently working on an app that does play podcast show livestreams.
I need to sync my UI with the player state. For example if the stream ends and no data is being received any more I need to update my UI. (there are of course a lot more cases to cover).
What's the best way being informed as a ViewController about the player state?

You can use the delegate property on your AudioPlayer instance and implement this function:
func audioPlayer(audioPlayer: AudioPlayer, didChangeStateFrom from: AudioPlayerState, toState to: AudioPlayerState)

Thanks a lot for your quick response! The delegate is great!
However I do not know how to check for one case:
If I try to stream an AudioItem with an URL that does not stream any content the player stays in the state buffering. Shouldn't it move to stopped?
What happens if a stream ends? Will the player move to buffering and try to get more content? When will it "realize" there will be no more content and move to stopped or failed state?

Maybe there should also be an .Error or .Failed state?

If I try to stream an AudioItem with an URL that does not stream any content the player stays in the state buffering. Shouldn't it move to stopped?
Maybe there should also be an .Error or .Failed state?

Yep, I do agree. I made it in develop. Tell me what you think! :smile:

The new .Failed state works great! Exactly as expected!
I am not quite sure what's happening now at the end of a livestream. Will it be .Failed or .Stopped? But that's a minor thing.
Thanks a lot for fixing so fast!

It should be .Stopped since AVPlayer will post an AVPlayerItemDidPlayToEndTimeNotification.


CopterHack-2022: Edgenoon Team

Hello! Note, that Clover documentation doesn't have a line width limit in markdown file, we use "infinite" lines and line wrapping instead.

@okalachev Thank you for the corrections. Regarding the line length, we were using the default rules and that's why the discrepancy.

Dear friend,
Thank you for your interest in the CopterHack 2022 contest. Your application has successfully passed the experts’ review and was accepted for the second project stage of the competition, which will be held until February 28, 2022. This stage will be followed by monthly updates, lectures, and guidance from industry experts.
What's next?

Join the Telegram group with participants of the second project stage “CopterHack 2022, participants chat”.
Every month, you're expected to prepare free-form reports on the progress of your project (update) in this draft pull request. In your report please indicate your progress, what tasks have been solved. You are encouraged to attach photos and videos that demonstrate the results of the work done within the month.
Send the link to the update to the participants chat in the Telegram group.

In response to the message, you will receive feedback from the competition jury.
There is no specific date for sending the report, so you can send the report between the beginning and the end of the month.
Monthly updates become mandatory from November 2021. But as soon as you are in the telegram group, you can already send updates and receive feedback from the jury.
We are interested in helping you to complete your project as much as possible by the final stage. We wish you success!
Always in touch! Your CopterHack team.

November update
Hi, we prepared an update on our project.
Tags
Event: Copterhack2022
Team: Edgenoon
Data: 29 November 2021
What's done

[x] We researched the performance of small neural networks for object detection using Raspberry Pi 4 and Intel Neural Computer Stick 2. We prepared a table with results.
[x] We built a docker image for the Clover simulation based on ROS-Noetic and PX4. It's here.
[x]  We tested in the simulation the commands to move and to update the home position.

Next steps

[ ] We are waiting for the delivery of the Clover drone. We will need to assemble it and familiarize ourselves with the functionality.
[ ] We need to design a vector-based and non-symmetric helipad and print it.
[ ] We need to explore the camera properties at the raspberry and collect data.

December update
Hi, we prepared an update on our project.
Tags
Event: Copterhack2022
Team: Edgenoon
Data: 31 December 2021
What's done

[x] After some additional testing and the change of inference framework to onnxruntime with openvino provider, we decided to use the NanoDet-t model.
[x] We designed the helipad. It is in vector format and allows any scaling.
[x] We have received the Clover, assembled it and performed a few flying tests.
[x] We compared the Clover camera and the RPi 2 and performed some inference on a model trained on the Visdrone dataset.

Next steps

[ ] Designing a scheme of the whole system.
[ ] Implementation of the system in simulation.
[ ] Collection of data for the algorithm.
[ ] More tests of Clover.

Dear Edgenoon Team,
We are closing pull request for your project as you didn’t get to the final round of the competition.
You are welcome to submit your article to the clover documentation as an clover platform-based project. In order to do this please create a new pull request or make a comment to the existing one.
We wish you success in implementing your project and invite you to the next events.


Add spec for splatting empty Array/Hash

Hi,
Today I found a bug in Opal (opal/opal#1872). It would be nice if there is a spec that covers the case.

Hello,
Thank you for your contribution!
I added a commit to ignore the RuboCop warnings as it's intended here.


Support relative path and RomFS "boot.rom" locations.

the documentation is quite clear that the uxn folder should be in "/uxn" but generally people put their .3dsx files into a special folder (mine is /3ds), therefore if we put uxn inside it (/3ds/uxn) it won't work. Relative path would be great :)

btw should it be active in the latest release? It didn't work for me. Maybe the uxnds app should be inside the uxn folder then? I'll test this anyway...


plot_heatmap Error: cannot take a sample larger than the population when 'replace = FALSE'

Error:

Attaching package: ‘fastcluster’
The following object is masked from ‘package:stats’:
hclust

Error in sample.int(length(x), size, replace, prob) :
cannot take a sample larger than the population when 'replace = FALSE'
Calls: sample -> sample.int

I don't get more info than this, so not even sure which sample call causes the issue
input files seem fine
potential clue: https://stackoverflow.com/questions/19648238/r-says-cannot-take-a-sample-larger-than-the-population-but-i-am-not-taking
config settings:heatmap:
    metrics: ['correlation','cosine']
    hclust_methods: ['complete']
    n_observations: 1 # random sampled proportion float (0-1] or absolute number as integer
    n_features: 0.5 # highly variable features proportion float (0-1] or absolute number as integer

this causes the error for me: https://github.com/epigen/unsupervised_analysis/blob/f902effddc7b23e05e9093a4583833fa479a5763/workflow/scripts/plot_heatmap.R#L127

proposed fix:

randomColor <- function() {
  paste0("#", paste0(sample(c(0:9, letters[1:6]), size = 6, replace = TRUE), collapse = ""))
}

# make color mapping
if (is.numeric(metadata[[metadata_col]])){
    #check if divergent or sequential?
    row_annot <- HeatmapAnnotation(df=metadata[,metadata_col, drop=FALSE], which="row")

}else{
    n_cat <- length(unique(metadata[[metadata_col]]))
    qual_col_pals = brewer.pal.info[brewer.pal.info$category == 'qual',]
    all_brewer_colors <- unique(unlist(mapply(brewer.pal, qual_col_pals$maxcolors, rownames(qual_col_pals))))
    if (n_cat <= length(all_brewer_colors)){
        # get nice colors
        colors <- sample(all_brewer_colors,n_cat)
    }else{
        # too many groups, get random colors
        colors <- replicate(n_cat, randomColor())
    }
    names(colors) <- unique(metadata[[metadata_col]])
    colors_list <- list()
    colors_list[[metadata_col]] <- colors# put here the mapped colors

    row_annot <- HeatmapAnnotation(df=metadata[,metadata_col, drop=FALSE], which="row", col=colors_list)
}

It's not really that much more, highlighted it above now. Could also just remove the 'nice colors' part completely, but think it's nice that you first select for varying colors if there aren't that many


feat: new rpc method 'sign' to sign arbitrary data and text messages

This PR implements a new capability for the Sollet wallet: a new RPC method allowing to prompt the user to sign text message (string) or arbitrary data (Uint8Array).
Motivation
Be on a par with MetaMask extension for Ethereum where it is possible to sign data:

This is useful to prove ownership of an address or sign in with backends (with a better user experience than signing a dummy transaction).
Changes

Added handling of a new RPC method sign in PopupPage.js and introduced messageType variable to decide which UI to display.
Moved most of the existing UI component of ApproveSignatureForm into its own component SignTransactionFormContent which handles the display for the already existing cases (signTransaction and signAllTransactions)
Added a new component SignTransactionFormContent to handle the case of signing arbitrary data/text messages.

Screenshots
Visualization of the two new windows:

@armaniferrante to try to minimize future conflicts I made a separate PR with just the refactoring of extracting the component to its own file: https://github.com/project-serum/spl-token-wallet/pull/146 would be nice to have this merged first :)

@armaniferrante I have rebased this MR on the latest master. I also changed the RPC method to take 2 params: data, that must be a Uint8Array and display that currently can be either utf8 to display the data as a utf8 encoded string or if not specified will default to hex.


Add "--release" to cargo examples

Great project!
Briefly glanced over the examples to run, I think "--release" switch should be added. By default, cargo builds in debug it's many many times slower.

Thank you for the feedback! This is my first time working with Rust, so still learning the conventions. I've updated the documentation accordingly.


[android] Remove dependency from SwiftShims to Libc

Seems that SwiftShims cannot import some system headers (checked by a
test in test/ParseableInterface/ModuleCache/SystemDependencies). So
adding <android/api-level.h> is not going to work.
The change reproduces the only piece necessary from the header, which is
interpreting that if no ANDROID_API is defined, the level should be
the maximum allowed.

@swift-ci please smoke test

Yes, SwiftShims can't import libc things because it makes cycles with the Glibc overlay later on.


Add contributors to README

Fix #119
https://github.com/openjournals/joss-reviews/issues/7025

@all-contributors please add @bingqing-liu for code, design, ideas

@all-contributors please add @giswqs for code, design, maintenance

@all-contributors please add @alexgleith for code, review

@all-contributors please add @slowy07 for code, maintenance

@all-contributors please add @platipodium for review


Editor / Context menu (more actions...) items are displayed center, not left-aligned

VSCode Version: 1.46 Stable and 1.47 Insiders
OS Version:Windows 10

Steps to Reproduce:

Open any file
Click on the Editor / Context items (ellipsis button at top right corner)
See how the items (core and extension provided) are center, instead of left-aligned

I checked on MacOS, and it appears to be working just fine. Didn't test on Linux.
Thank you

Does this issue occur when all extensions are disabled?: Yes

Do you have editor tabs switched of on Windows?
Looks like duplicate of #99895

Yep, turned off.
It's indeed a duplicate. I search for duplicate issues, but didn't find. Maybe because the searched for centered/center instead of centred.
Thank you

/duplicate #99895


Sep library now supports parallel processing

RecordParser is no longer the only parallel CSV library.

🌪 Multi-threaded - unparalleled speed with highly efficient parallel CSV parsing that is [up to 35x faster than CsvHelper]

Please add Sep tests with parallel support. I am curious if it can dethrone RecordParser!

@nietras already submitted a PR.
https://github.com/joelverhagen/NCsvPerf/pull/61
I just haven't gotten around to re-running the benchmarks and updating the blog. But based on his own runs (https://github.com/joelverhagen/NCsvPerf/pull/64) it's looking really good!

@burnchar thanks for paying attention, I have benched against RecordParser and Sep is definitely faster. I had hoped to blog about the release but occupied by other matters and experiments. Server GC is your friend!

@burnchar thanks for paying attention, I have benched against RecordParser and Sep is definitely faster. I had hoped to blog about the release but occupied by other matters and experiments. Server GC is your friend!

I was not paying enough attention to notice that you had already sent a PR, but thank you both for your good work!
Writing high-performance libraries helps both the community and even the environment, and researching and sharing performance comparisons of those libraries helps get people to actually use them.

Updated the blog! https://www.joelverhagen.com/blog/2020/12/fastest-net-csv-parsers

Thank you for your updated benchmarks, and for your work on NuGet.


fix populating the client config when dialing an address

Codecov Report

Merging #1466 into master will increase coverage by 0.16%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1466      +/-   ##
==========================================
+ Coverage   89.19%   89.35%   +0.16%
==========================================
  Files         121      121
  Lines        8491     8581      +90
==========================================
+ Hits         7573     7667      +94
+ Misses        615      612       -3
+ Partials      303      302       -1

Impacted Files
Coverage Δ

client.go
83.67% <100%> (+0.11%)
:arrow_up:

internal/flowcontrol/stream_flow_controller.go
98.67% <0%> (-1.33%)
:arrow_down:

internal/flowcontrol/connection_flow_controller.go
100% <0%> (ø)
:arrow_up:

internal/flowcontrol/base_flow_controller.go
100% <0%> (ø)
:arrow_up:

session.go
71.64% <0%> (+0.27%)
:arrow_up:

send_stream.go
98.6% <0%> (+2.05%)
:arrow_up:

Continue to review full report at Codecov.

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


Issue Running Session

session = Session(directory)
directory =
'/Volumes/Elements/2021-07-09_10-24-33_Ma_1163_male_placepref'

Searching directory:  /Volumes/Elements/2021-07-09_10-24-33_Ma_1163_male_placepref
Found recording format: Binary
Error using readNPYheader
File not found: /Volumes/Elements/2021-07-09_10-24-33_Ma_1163_male_placepref/Record Node
109/experiment1/recording1/continuous/Rhythm_FPGA-100.0/sample_numbers.npy
Error in readNPY (line 9)
[shape, dataType, fortranOrder, littleEndian, totalHeaderLength, ~] = readNPYheader(filename);
Error in BinaryRecording/loadContinuous (line 81)
stream.sampleNumbers = readNPY(fullfile(directory, 'sample_numbers.npy'));
Error in BinaryRecording (line 40)
self = self.loadContinuous();
Error in BinaryRecording.detectRecordings (line 254)
recordings{end+1} = BinaryRecording(recordingDirectories{recIdx}, expIdx, recIdx);
Error in RecordNode/detectRecordings (line 95)
self.recordings = BinaryRecording.detectRecordings(self.directory);
Error in RecordNode (line 71)
self.detectRecordings();
Error in Session/detectRecordNodes (line 70)
self.recordNodes{end+1} = RecordNode(paths{i});
Error in Session (line 61)
self.detectRecordNodes();

session = Session(directory)
Searching directory:  /Volumes/Elements/2021-07-09_10-24-33_Ma_1163_male_placepref
Found recording format: OpenEphys
Error using memmapfile/hCreateMap
File "/Volumes/Elements/2021-07-09_10-24-33_Ma_1163_male_placepref/Record Node 103/all_channels.events" is not large enough to map
with the current format, offset, and repeat values.

Error in indexing (line 794)
hCreateMap(obj);
Error in OpenEphysRecording.detectRecordings (line 564)
timestamps = timestamps.Data(1:2:end);
Error in RecordNode/detectRecordings (line 97)
self.recordings = OpenEphysRecording.detectRecordings(self.directory);
Error in RecordNode (line 71)
self.detectRecordings();
Error in Session/detectRecordNodes (line 70)
self.recordNodes{end+1} = RecordNode(paths{i});
Error in Session (line 61)
self.detectRecordNodes();
Don't know why I don't have sample_numbers.npy or why all_channels.events is not large enough.

This issue now being tracked in #8


OpenLara modern RPI support

Added build script for OpenLara, using SDL and desktop GL for higher quality and modern RPI compatibility. In contrast, lr-openlara tries to use dispmanx and GLES2, which limit it to RPI3 and earlier and don't take full advantage of V3D's capabilities.

If you don't have an iso of the original PC cd-rom or GOG/Steam data, you can manually test with https://github.com/libretro/libretro-content/blob/master/Tomb Raider/Tomb Raider (Demo).zip. I left it out of the script because it lacks the menu, making it a bit harder to exit (it infinitely restarts the demo level when you try to quit).


The surface is misaligned

Dd7to9

Yes, this happens on some games when using windowed mode in the game.  Change the in-game settings to use fullscreen mode.

https://github.com/elishacloud/dxwrapper/issues/222#issuecomment-1694434605

Thanks for your efforts, and hope to see a fully supported window mode sooner

If the game is only using 2D DirectDraw and not Direct3D you could try enabling the following settings:
DdrawEmulateSurface = 1
DdrawWriteToGDI = 1

Thanks, that's okay, but the Hook game quits, need a new hook position?

Thanks, normal, but the hook game quit, do you need a new hook position

Thanks, normal, but can't hook the game

You could also try setting these settings to your screen resolution:
DdrawOverridePrimaryWidth  = 0
DdrawOverridePrimaryHeight = 0

OK

Thanks, I tried it, Releases v1.0.6542.21 doesn't have this setting item?

Here is the latest release.  Try just changing the ini settings to your display resolution.  dxwrapper.zip

If Gui is enabled, it will not enter d3d9.dll, and the original hook will become invalid

After turning on DdrawWriteToGDI=1, the ImGui in the DebugOverlay .cpp can also be displayed normally?

Compiled with the 84e47b5 update, the problem is more complicated. Now I'm using 9d01079 with dxwnd.dll it's normal

Ok, try this update.  I added basic window support.  Note: when using in-game windowed mode you should enable DdrawUseNativeResolution.
Here is the update:  dxwrapper.zip

Thank you very much for your interest and continuous update
This time the game window is normal, but there are still 4 problems.

After the window is minimized, the mouse moves slowly
When moving the game window, the ImGui of the hook does not follow the movement
The mouse message received by ImGui is in the wrong position
The game cannot open multiple windows and will be very stuck. After closing one window, everything else is gone

This should be caused by SurfaceToGdi, 9d01079 is normal when used with dxwnd

Thank you very much for your interest and continuous update
This time the game window is normal, but there are still 4 problems.

After the window is minimized, the mouse moves slowly
When moving the game window, the ImGui of the hook does not follow the movement
The mouse message received by ImGui is in the wrong position
The game cannot open multiple windows and will be very stuck. After closing one window, everything else is gone

This should be caused by SurfaceToGdi.
9d01079 is normal when used with dxwnd
dxwrapper.ini
Dd7to9=1
dxwnd.ini
ver0=9
flag0=134348834
flagg0=1275068416
flagh0=20

After the window is minimized, the mouse moves slowly
When moving the game window, the ImGui of the hook does not follow the movement
The mouse message received by ImGui is in the wrong position
The game cannot open multiple windows and will be very stuck. After closing one window, everything else is gone
When the window moves off-screen, the picture is compressed

This should be caused by SurfaceToWindows.
9d01079 is normal when used with dxwnd dxwrapper.ini Dd7to9=1
dxwnd.ini ver0=9 flag0=134348834 flagg0=1275068416 flagh0=20

Thanks, 1. Problem solved

1.The imgui window is always positioned relative to the desktop and does not follow the game movement

2.The game moves outside the left table, and the game screen does not go outside

1.The imgui window is always positioned relative to the desktop and does not follow the game movement
2. When moving the game window, the ImGui of the hook does not follow the movement

Yes, this is because of how the game and DirectDraw works, unrelated to dxwrapper.  The game writes to the location of the surface where the window is located.  So if you move the window then the game writes to the surface in a different location.
I can fix this by emulating the surface and then always writing to the real surface in the upper right hand corner of the surface.  That is probably the right way to solve this issue.

The mouse message received by ImGui is in the wrong position

This is related to the issue above.  When I solve that one it should solve this one.

The game cannot open multiple windows and will be very stuck. After closing one window, everything else is gone

Yes, dxwrapper always assumes that there is only one game window.  This won't be solved very soon.

When the window moves off-screen, the picture is compressed

This is probably something I am doing wrong.  I will need to look into this more.

Thank you very much, about point 4, it's already no problem, case DLL_PROCESS_DETACH:, causing other windows to crash, I'll just comment it out

case DLL_PROCESS_DETACH:, causing other windows to crash

Can you tell me which line(s) is causing this?  Also, try adding this line to the ini file ResetScreenRes = 0.

The latest build should fix most of these issues.  Here is the build:  dxwrapper.zip

It has been tested, very good, thank you very much for your efforts,

Ok, great.  Let me know if there are any issues left here.

This issue is fixed with the latest release.


Missing jobs  from APPGREAT Company we have 12 but should be 14 jobs

Environment: Windows
url: https://scrapers.peviitor.ro/src/appgreat/index.html
https://peviitor.ro/rezultate?q=AppGreat&country=România&page=1
Browser  : Chrome
Steps:
1)Open url in the browser
2) type "Appgreat" on the search bar
3) Check how many jobs we have
Expected results:
We should have 14 jobs showed

Actual results : we have only 12 jobs on the url.

No bug. 2 jobs on the company site have 404 error.


simproov buffermenus not working

I think that the easiest way to address this is to keep the ll.buffer_menu objects outside of the poly~?  going to have a go at this myself

this is done-- using ll.buffermenu outside the poly~


Get name from handle [REQUEST]

I noticed that you are able to get the handle from a name, can you add a function that gets the name from a handle?

Done 4fa799d


io_uring bandwidth with cached file

I have this fio jobfile (with a file (./data1/file8) created before by fio).
[global]
filename=./data1/file8 ; 8G file
rw=read
invalidate=0
thread
offset=0
size=100%

[init_cache]
ioengine=sync

[psync]
wait_for_previous
group_reporting
ioengine=psync
numjobs=8
offset_increment=1g
io_size=1g

[uring]
wait_for_previous
group_reporting
ioengine=io_uring
numjobs=1
fixedbufs
iodepth=128

io_uring shows high latency (as expected). But the bandwidth is much less than bw of psync method (threadpool of workers doing reads). For example, for my machine (disk util = 0%):
Run status group 2 (all jobs): # psync
   READ: bw=11.7GiB/s (12.6GB/s), 11.7GiB/s-11.7GiB/s (12.6GB/s-12.6GB/s), io=8192MiB (8590MB), run=684-684msec

Run status group 3 (all jobs): # uring
   READ: bw=2904MiB/s (3045MB/s), 2904MiB/s-2904MiB/s (3045MB/s-3045MB/s), io=8192MiB (8590MB), run=2821-2821msec

Increasing number of threads in io_uring section helps to reach about 80% of psync performance.
What am I doing wrong?

What kernel are you using?

What kernel are you using?

5.13.0-20 (also tested on 5.11.*, ~same result)

My guess here would be that your psync ends up parallellizing the mem copy of the fully cached file between 8 threads, which is going to be faster than using a single ring where you essentially end up doing the memory copy inline from submit. It boils down to a memory copy benchmark, and one setup has 8 threads and the other has 1... Hence I don't think you're doing anything wrong as such, the test just isn't very meaningful.

parallelism

Run status group 1 (all jobs): # psync 1 thread
   READ: bw=3195MiB/s (3350MB/s), 3195MiB/s-3195MiB/s (3350MB/s-3350MB/s), io=8192MiB (8590MB), run=2564-2564msec

Run status group 2 (all jobs): # psync 2 threads
   READ: bw=6682MiB/s (7006MB/s), 6682MiB/s-6682MiB/s (7006MB/s-7006MB/s), io=8192MiB (8590MB), run=1226-1226msec

Run status group 3 (all jobs): # psync 4 threads
   READ: bw=11.5GiB/s (12.4GB/s), 11.5GiB/s-11.5GiB/s (12.4GB/s-12.4GB/s), io=8192MiB (8590MB), run=693-693msec

Run status group 4 (all jobs): # psync 8 threads
   READ: bw=12.0GiB/s (12.9GB/s), 12.0GiB/s-12.0GiB/s (12.9GB/s-12.9GB/s), io=8192MiB (8590MB), run=668-668msec

Run status group 5 (all jobs): # uring 1 thread
   READ: bw=3035MiB/s (3183MB/s), 3035MiB/s-3035MiB/s (3183MB/s-3183MB/s), io=8192MiB (8590MB), run=2699-2699msec

Run status group 6 (all jobs): # uring 2 thread
   READ: bw=5104MiB/s (5352MB/s), 5104MiB/s-5104MiB/s (5352MB/s-5352MB/s), io=8192MiB (8590MB), run=1605-1605msec

Run status group 7 (all jobs): # uring 4 thread
   READ: bw=7256MiB/s (7608MB/s), 7256MiB/s-7256MiB/s (7608MB/s-7608MB/s), io=8192MiB (8590MB), run=1129-1129msec

Run status group 8 (all jobs): # uring 8 thread
   READ: bw=6445MiB/s (6758MB/s), 6445MiB/s-6445MiB/s (6758MB/s-6758MB/s), io=8192MiB (8590MB), run=1271-1271msec

Clarifying the question: why psync in this case scales better than uring?

Just ran a similar test here, just changing the io_uring case above to be 8 threads of 1G each like the psync case:
Run status group 0 (all jobs):
   READ: bw=29.3GiB/s (31.5GB/s), 29.3GiB/s-29.3GiB/s (31.5GB/s-31.5GB/s), io=8192MiB (8590MB), run=273-273msec

Run status group 1 (all jobs):
   READ: bw=29.7GiB/s (31.9GB/s), 29.7GiB/s-29.7GiB/s (31.9GB/s-31.9GB/s), io=8192MiB (8590MB), run=269-269msec

which shows about the same result, the runtime is short enough that there's a bit of variance between runs (+/- 1GB/sec either side). group 0 is psync here, group 1 is io_uring. For apples-to-apples, using iodepth=1 for the io_uring case as well. Does appear to be substantially slower to use higher queue depths for this. Didn't look into that yet, my guess would be that we're just spending extra time filling memory entries pointlessly for that.

the test just isn't very meaningful

I am trying to replace threadpool of workers (they do just reads) with io_uring in database-application. Old solution doesn't use O_DIRECT and has double buffering. Benchmarks on real data shows that io_uring solution loses (and I am doing something wrong). So, my investigation end up with this test.
Another guess: does single core application need to have a thread pool of uring instances (to compete with old solution based on, for example, posix aio?

I'll check in the morning, it's late here. Fio doesn't do proper batching either, might be a concern. In general, you should not need a thread pool, you can mark requests as going async with IOSQE_ASYNC and there's also logic to cap the max pending async thread count.

One thing that is interesting here is that if I run with iodepth=1, then I get about ~7GB/sec of bandwidth from one thread, but when I run with iodepth=128, then I get only 3GB/sec of bandwidth. Looking at profiles, the fast case spends ~13% of the time doing memory copies, and the slow case uses ~55%. That doesn't make a lot of sense! The higher queue depth case should spend the same time doing copies, just reaping the benefits of the batched submits.
The theory here is that the total memory range used is one page for the qd=1 case, and it's 128 pages for the qd=128 case. That just falls out of cache. That's simply an artifact of the CPU, it's not really an io_uring thing. If I hacked fio to use the same buffer for all requests, I bet the 128 case would be faster than the qd=1 case.
Anyway, that's the theory. I'll dig into this and see what I can find.

Thank you.
I tried nowait, force_async and played with iodepth, but bw only degrades (in this configuration). Maybe, really processor cache issue (but I haven't managed to find best parameters for it: with iodepth = 1 I have < 1GB/s, with iodepth = 128 I have 3 GB/s)

shmhuge really helps alleviate pressure, but I think what we really need here is the ring sqe/cqe maps being in a huge page... That'll likely be a nice win overall too. Looking into it.

Ran the "always copy to the same page" case for QD=128, and it didn't change anything. Puzzled, maybe this is tlb pressure? So I added iomem=shmhuge to use a huge page as backing for the job, and now the QD=128 job runs in ~10GB/sec and the QD=1 runs in ~7.5GB/sec. That's a lot more inline with what I'd expect. We're saving some time on being able to do a bunch of ios in the same syscall, and the that just yields more time to run the copy and hence a higher performance.

I've added kernel support for using a single huge page for the rings, that should cut down on TLB pressure which I think is what is killing us in this test. I'll re-run tests on Monday with that. liburing support also exists in the 'huge' branch. Note that both of these are pretty experimental, I literally just started on the kernel side yesterday late afternoon and did the liburing changes this morning.

Can you try with iomem=shmhuge added to your fio job file? Curious what kind of difference you'd see with it.

Can you try with iomem=shmhuge added to your fio job file? Curious what kind of difference you'd see with it.

No changes at all. With threaded/no-thread io_uring and psync.


Bugfix/2.1.1 use locked deps for dist and fix deps to 2.1.0

Apply the build fix to use locked-deps when building the release tarball/packages that was applied to 2.0 after it diverged from master (needs to be added to develop too). Otherwise the rebar.config settings are used.
Reconstruct the locked deps as of the released 2.1.0 tarball so that the 2.1.1 release only differs in the top level packaging to pick up the handoff.ip changes for cuttelfish.
Companion PR to basho/riak_ee#334

+1 7bb76dd


WASM C API (wasm_instance_new_with_args) fails with empty or null imports

This assertion is cryptic and hard to understand. It fails with empty or null imports.
https://github.com/bytecodealliance/wasm-micro-runtime/blob/d04f3988c3e456788c72f44cf807b4af35d94968/core/iwasm/common/wasm_c_api.c#L4853

Thanks for reporting the issue, seems that we had better remove the assertion.

@wenyongh  @blackbird1 actually, I am thinking about enhancing the assertion about wasm_extern_vec_t imports and preventing wasm_instance_new from invalid imports.
from the spec:

If the number  of imports is not equal to the number  of provided external values then: Fail.

@wenyongh @blackbird1 actually, I am thinking about enhancing the assertion about wasm_extern_vec_t imports and preventing wasm_instance_new from invalid imports.
from the spec:

If the number  of imports is not equal to the number  of provided external values then: Fail.

Do you mean we change the assertion like:
    if (import_func_count > 0)
        bh_assert((uint32)(func_import - *p_func_imports) == import_func_count);
    }

Or
    bh_assert(import_func_count == 0
              || (uint32)(func_import - *p_func_imports) == import_func_count);

The above code won't be impacted by the these lines, right?
        if (wasm_extern_kind(in) != WASM_EXTERN_FUNC)
            continue;

Since import_count is the total count of imports, and import_func_count is the total count of import functions. And if the latter is larger than 0, all the import functions must be linked, and (uint32)(func_import - *p_func_imports) == import_func_count) must be valid.

add a checker at the beginning. If imports doesn't match the module requirement, like length, fail.
https://github.com/bytecodealliance/wasm-micro-runtime/blob/main/core/iwasm/common/wasm_c_api.c#L4853 should be lik bh_assert(import_func_count == 0 || (uint32)(func_import - *p_func_imports) == import_func_count);

#1843


Added (potentially broken) timer example

This is an attempt to add a timer example. Currently it doesn't quite work yet, probably related to #802, and it might also be an interesting use case in that context.
In general, wrapping setInterval can be an insightful example, because it touches upon the "impedance mismatch" (as Dan Abramov calls it)  between reactive and non-reactive APIs. From a Rust perspective it also addresses a few challenges, like how to capture and move properly into the nested closures.
It is quite possible that I got it wrong, even if on_cleanup changes its semantics to effect-based.

Here's a version of the use_interval hook that works as you're intending. It's quite a bit simpler than the way that doesn't work, I think. The thing to know here is that effects (and memos) take their previous return value as their argument, so if there's something you need to keep alive, returning it from the effect and consuming it on the next iteration works well.
Conveniently, this also means that if we return the interval handle from the effect call, we always have a cancelable interval handle. Because the effect will only re-run when the interval changes, we always want to cancel a handle if we have one available. (Of course this is None on the first run.)
I also used the set_interval_with_handle helper that's built into Leptos — we have these for all the timeout/interval/animation-frame/idle-callback functions. All it does is provide the web-sys wrapping you were doing manually, there's no reactive magic happening.
pub fn use_interval<T, F>(cx: Scope, interval_millis: T, f: F)
where
    F: Fn() + Clone + 'static,
    T: Into<MaybeSignal<u64>> + 'static,
{
    let interval_millis = interval_millis.into();
    create_effect(cx, move |prev_handle: Option<IntervalHandle>| {
        // effects get their previous return value as an argument
        // each time the effect runs, it will return the interval handle
        // so if we have a previous one, we cancel it
        if let Some(prev_handle) = prev_handle {
            prev_handle.clear();
        };

        // here, we return the handle
        set_interval_with_handle(
            f.clone(),
            // this is the only reactive access, so this effect will only
            // re-run when the interval changes
            Duration::from_millis(interval_millis.get()),
        )
        .expect("could not create interval")
    });
}

Just as a fun side-by-side comparison for anyone else reading —
The React version
function useInterval(callback, delay) {
  const savedCallback = useRef();

  useEffect(() => {
    savedCallback.current = callback;
  });

  useEffect(() => {
    function tick() {
      savedCallback.current();
    }

    let id = setInterval(tick, delay);
    return () => clearInterval(id);
  }, [delay]);
}

The Leptos version
pub fn use_interval<T, F>(cx: Scope, interval_millis: T, f: F)
where
    F: Fn() + Clone + 'static,
    T: Into<MaybeSignal<u64>> + 'static,
{
    let interval_millis = interval_millis.into();
    create_effect(cx, move |prev_handle: Option<IntervalHandle>| {
        if let Some(prev_handle) = prev_handle {
            prev_handle.clear();
        };

        // here, we return the handle
        set_interval_with_handle(f.clone(), Duration::from_millis(interval_millis.get()))
          .expect("could not create interval")
    });
}

Actually there's a way to do this that's even shorter and more fun! 😄
gloo_timers implements Rust-y RAII wrappers for all the timers and intervals. They are sometimes annoying to use because they return an Interval or Timer or whatever that clears the timeout or interval on Drop. However, in this case it's hilariously good.
Behold—use_interval
use gloo_timers::callback::Interval;

pub fn use_interval<T, F>(cx: Scope, interval_millis: T, f: F)
where
    F: Fn() + Clone + 'static,
    T: Into<MaybeSignal<u32>> + 'static,
{
    let interval_millis = interval_millis.into();
    create_effect(cx, move |_| {
        Interval::new(interval_millis.get(), f.clone())
    });
}

Thanks a lot for the suggestions & help!
Avoiding that "double cleanup" is obviously much nicer. I missed the possibility to make the (Rust) closure itself Clone, which is why I though I had to turn it into a JS closure on the outer capture level, because I knew JsValue can be cloned. But yeah, since we mostly rely on 'static move closures anyway, it is natural to simply require Clone as well. Is such a double cleanup supposed to work though?
The suggested versions indeed work well! I've switched to the first one suggested, assuming that this is the most idiomatic / helpful to new users?

I missed the possibility to make the (Rust) closure itself Clone, which is why I though I had to turn it into a JS closure on the outer capture level, because I knew JsValue can be cloned. But yeah, since we mostly rely on 'static move closures anyway, it is natural to simply require Clone as well.

Yeah the nice thing here is that even if the closure itself isn't Clone the user can pass Rc::new(move || { /* some closure that captures a value that isn't Cloneable */}) I'm pretty sure. So it's relatively robust.

Is such a double cleanup supposed to work though?

I think after the ownership for on_cleanup moves from the Scope to the owning effect (see #918) then the double cleanup version should work. But I'd always recommend the "pass ownership through an effect's arguments" version, when you have an explicit create_effect already.
The impedance mismatch thing is interesting. This is actually a case where there's not a mismatch between Leptos's execution model and the way things tend to work in Rust. For example, the reason the gloo-timers version works so well is that when you call Timer::new() it creates a new timer, and implements Drop such that it clears it when dropped. This is how most things are designed to work in Rust... And the keep-alive effect of a Leptos efffect just kind of works with that perfectly, where returning something from the effect keeps it alive inside the reactive system, and taking it in as an argument to the effect and then dropping it cleans it up naturally.
Anyway now I'm just pontificating. Merging this PR and thanks for the example!


[Network] az network public-ip: Support ddos protection mode via --protection-mode

Resolves: https://github.com/Azure/azure-cli/issues/23936
Related command

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Network

/azp run


[DOC/ENH] making docs requires pyjanitor-dev kernelspec

in nbconvert_config.py. Is there a way to automagically set this up for people (like me 🤔 )?

A makefile command, perhaps?

Sure. Could get fancy and make the existence of the kernelspec a target of the notebooks target so it is set up the first time you run it.

conda activate pyjanitor-dev
python -m ipykernel install --user --name pyjanitor-dev --display-name "PyJanitor development"

It’s now part of the docs, if I remember correctly.

Intention was to put an autoconfig piece in the makefile

I will be working on this and other changes to documentation on contributing to the project that will probably involve splitting up CONTRIBUTING.rst into separate files. It's pretty monolithic right now, and there are two separate modules really: contribution guidelines and setting up an development environment. This will help make it clearer how to get started developing and then how to contribute those developments.


Using phpize

Good afternoon!
Is it possible to compile pdo_sqlsrv with phpize on Linux?

@szepeviktor Not yet but we are open to looking into this. Can you share why would you like to do this?

AFAIK all open-source PHP extensions are compiled with phpize.
Maybe I am stuck in open-source and Debian...

The phpize command is used to prepare the build environment for a PHP extension.

http://php.net/manual/en/install.pecl.phpize.php

yes, that would be very important (is there an easier and less spammy way to do a +1?)

is there an easier and less spammy way to do a +1?

The upper right corner of comments contains a +smiley, +1 is there.

@szepeviktor @Catscrash We accepted @xalopp's PR which lets you compile the drivers with phpize. Can you take a look and help us validate?


How to use webpack with external react?

I get an exception Uncaught TypeError: Cannot read property 'getPooled' of null
https://github.com/reactjs/react-art/blob/master/src/ReactART.js#L189
These dependencies may be the root cause?
const ReactInstanceMap = require('react/lib/ReactInstanceMap');
const ReactMultiChild = require('react/lib/ReactMultiChild');
const ReactUpdates = require('react/lib/ReactUpdates');

webpack config
externals: {
    'react': 'React',
    'react-dom': 'ReactDOM',
},

html
<script src="https://fb.me/react-15.2.0.min.js"></script>
<script src="https://fb.me/react-dom-15.2.0.min.js"></script>

Unfortunately React ART isn't compatible with the CDN builds of React and React DOM since it reaches into internals. You need to get them from npm, sorry for the hassle.


add react-wait

react-wait is a React Hook to manage complex loading states in a React application.

Thanks 😄


Upgrade to recent dependencies breaks tests

Automatic upgrade breaks the build: https://github.com/exasol/kafka-connector-extension/pull/102
Connector depends on an outdated version of a dependency.

@Shmuma , please plan for next Kehrwoche.


Fix #98

This small pr fixes #98.
Reason: LiteralText cannot be cast to TranslatableText

At first I was worried this had something to do with TranslatedServerLog, but it does not affect compatibility:

Resolved in discord conversation.


rtx30 gpu and cuda11.3

I'm trying to test the test_lanenet.py with GPU, however, it seems that the program can't find my cuda file although it exists. I used it from conda env with tensorflow1.15

I checked the lib64 and it exists. Can anyone help?

@shuyuanw Some Cuda relatived path were not correctly figured. You may find some help in stackoverflow:)


Fixes exception if script is loaded with search query

If the script tag used to load the script had a search query, then this code would cause an exception. This resolves the problem

Ok, I see the problem. Thanks :)


Changed division to handle certain edge cases

Zhi could be off in rare edge cases. In the subtraction phase, q.limbs[v+i] + r.limbs[i] returned a uint32 before being added to carry, which could result in overflow.

Nice, you found it. Closes #5!


Add Lumiman LM530 (for library/manual selection)

Device information

Lumiman Wifi Smart Bulb LM530
https://www.amazon.com/LUMIMAN-Changing-Compatible-Assistant-Multicolor/dp/B07XYXY5QR?tag=blakaddertemp-20&th=1
Note: This is a Tuya device measured via localtuya but carries a more generic device info, but looking to commit for manual lookup-usage by the community!
Home Assistant Device information

Localtuya:
LUMIMAN SMART BULB
by Tuya
(Tuya device, mostly uploading into library so people can select this manually)
Checklist

[x] I have created a single PR per device. When you have multiple submissions please create separate PR's.
[x] For lights - I have only included the gzipped files (*.gz), not the raw CSV files.
[x] For lights - I have provided a CSV file per supported color mode. Look that up in Developer Tools -> States

Additional info

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
3608

Relevant Lines:
3608

💛  - Coveralls

Perfect. thanks a lot.


update ec2 modules to v2

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

test

test


back_chevron.png goes missing in Release build

Version
Tell us which versions you are using:

react-native-router-flux v3.37.0
react-native v0.34.1
iOS v10.0.2

Expected behaviour
back_chevron.png should show when our custom action called Actions.showArticle(id: this.props.node.id) is called when tapping on a list of articles, transitioning to a screen with the article.
Actual behaviour
While the back_chevron.png shows in Debug build, it doesn't show up in Release build for iOS. Note that when you tap where the image is expected to be, it behaves the same way; going back to the list of articles.
Steps to reproduce

Run in Debug build.
Confirm that the back_chevron.png is displayed when pushing scene.
Run in Release build.
Confirm that the back_chevron.png is not displayed.

// ArticleListItem
class ArticleListItem extends Component {
  render() {
    return (
      <TouchableOpacity
        onPress={event => Actions.showArticle({id: this.props.node.id})}
      >
          <Text>Foo</Text>
      </TouchableOpacity>
    )
  }
}

<Router
  createReducer={reducerCreate}
  wrapBy={RelayRenderer()}
  hideTabBar={true}
>
  <Scene key="modal" component={Modal}>
    <Scene key="root">
      <Scene
        key='showArticle'
        component={ArticleContainer}
        leftButtonIconStyle={{tintColor: '#fff'}}
        queries={{viewer: () => Relay.QL`query { viewer }`}}
      />
      <Scene
        key='showArticles'
        component={ArticleListContainer}
      />
    </Scene>
  </Scene>
</Router>

So suddenly babelRelayPlugin starting acting up and could not transpile...
After I made some fixes to remove the error, the arrow is back for some reason.

@Naoto-Ida I got the same issue.  how did you do that? remove the babelRelayPlugin?

I just ended up calling renderBackButton as a scene argument. Now we have a custom back arrow that always shows.

I'm seeing the same issue in the latest build, the back chevron is displayed in non release builds, but in a release build it is not displayed. I don't see any errors in the build output.


Loop Behavior with OpenSCENARIO

I would like to be able to create a loop behavior for vehicles using OpenSCENARIO. It seems like already there might be some potential solutions to this problem, but none of them seem to work so far.
In these scenarios, each vehicle has a dedicated Act describing their behavior inside one over-arching Story for all the vehicles. And inside each Act, a Sequence>Maneuver>Event>Action>Private>Routing>FollowRoute>Route is described consisting of a bunch of Waypoints so that the vehicle can follow along a given route for this scenario.  Firstly, looking at the complementary support documentation for OpenSCENARIO and looking through the code, the expectation was that increasing the numberOfExecutions parameter for a Sequence tag would ensure this whole Sequence would be repeated. But, be it a Route or any other type of scenario definition, changing the numberOfExecutions parameter does not seem to have any effect whatsoever and the Sequence never gets repeated. Secondly, as an alternative to the first method, additional Events or appropriate conditions are used to create an Act in which one specific Event consisting of a Route is supposed to be triggered again and again at the end of each loop. Seemingly, even with more basic scenario definitions, an Event cannot be triggered more than once to provide this looping behavior anyway. As a result, that approach did not provide the desired result either.
Environment:

OS: Ubuntu 16.04
CARLA Version: CARLA 0.9.7
Scenario Runner Version: master (commit id: ffd8f8c1d51344bf8037233006725eda654df6a4)

Hi,
thanks for this hint. I could reproduce the problem. There is in fact a bug. I started looking into a solution.

You can take a look into the following branch:
https://github.com/carla-simulator/scenario_runner/tree/fix/repetitions
For my quick tests it seems to fix the issues.

Hi. This fix seems really helpful and indeed now you can see the vehicles attempting to repeat the same behavior. Except the fact that when it is used in a Sequence involving Routing>FollowRoute>Route. Because now the vehicle will complete the first loop, slow down and stop, make a small loop to go back a bit and start the second loop only then. As a result, the transition between these repetitions is awkward and has some extra undefined behavior.

A small addition to my previous comment: This is at least the case with a Speed parameter set using ParameterDeclaration. Without a speed set, so far it seems to be working in repeating Sequences with smooth transitions in between.

Another point: In a case where multiple cars are following their Routes under one over-arching Story, when the Ego car (hero) completes its loop, the other cars start behaving strangely and lose their way for a bit as the Ego vehicle is said to be reset and destroyed:

Resetting ego-vehicle!
Destroying ego-vehicle!

Visually, the Ego vehicle does not seem to be disappearing between these loops anyway, and in between these repetitions for the Ego vehicle, it seems like maybe the other cars are trying to find their way again to possibly continue following their original route. But somehow, the Ego vehicle completing 1 execution of a Sequence has some sort of side-effect on the other vehicles.

Hi,
the last of your posts refers to the CARLA LocalPlanner:
https://github.com/carla-simulator/carla/blob/94dab0c4d7e16d349a0c2ff8d205cf546ad32cca/PythonAPI/carla/agents/navigation/local_planner.py#L91
This creates this not-so-nice debug output. You can ignore it, or file an issue at CARLA.
We are currently performing the review for the PR, and plan to merge it. We will look into the problem with the speed parameter afterwards.

Hi,
About the last point on the local planner, the issue is not that there is a debug output being printed by it, it’s that once a vehicle is finished with following its route, all the other vehicles seem to get confused about their own route. This seems more of an issue with waypoint following or scenario management actually.

If all are using the same local planner module, this is as I explained above. Do you see this also when using different routes for different vehicles?


Deserialize Array With Different Types

What's the best practice to deserialize the following json?
"name":"age children","attributes"=:[["27", "1", []],["28", "2", []]
Newtonsoft has the JsonArrayIndex attribute, which makes it easy to deal with it.
e.g.
class Foo {    public string Name;    public DataValue Value; }
class DataValue {
   [JsonArrayIndex(0)]    public int Age;
   [JsonArrayIndex(1)]    public int NumberOfChildren;
}
Is manually parsing the array with a custom formatter the best way to do it with Utf8Json?

Oh, I did not know JsonArrayIndex. Thanks.
Yes, anyway currently the best way is make a custom formatter.


Update CircleCI config 2.0

CircleCI dropped support for their older version back in autumn and only support their newer version now.
The CircleCI config needs to be updated in order to run the tests in CI again. Instructions here.

Closing as obsolete. We now use Github Actions for CI.


Update environment

Update the environment file for two reasons:

the RF model is saved in a pickle file. Reading the model fails if the version of scikit-learn in the environment does not match the version used to write the file. For now, I suggest to pin the version of scikit learn, but we should maybe find a better format to store the model.
geopandas and shapely, used in the Europe notebook, are not part of the environment.

the RF model is saved in a pickle file. Reading the model fails if the version of scikit-learn in the environment does not match the version used to write the file. For now, I suggest to pin the version of scikit learn, but we should maybe find a better format to store the model.

Good point @fnattino ! I would propose ONNX (we also have an issue for it #6! The conversion is very simple and here is an example notebook. @QianqianHan96 we can look into it together.

the RF model is saved in a pickle file. Reading the model fails if the version of scikit-learn in the environment does not match the version used to write the file. For now, I suggest to pin the version of scikit learn, but we should maybe find a better format to store the model.

Good point @fnattino ! I would propose ONNX (we also have an issue for it #6! The conversion is very simple and here is an example notebook. @QianqianHan96 we can look into it together.

Thanks Yang for your advice, I will have a look at this example notebook and then try to convert the pickle file. I will let you know if I meet problems.

Thanks Yang for your advice, I will have a look at this example notebook and then try to convert the pickle file. I will let you know if I meet problems.

Great! Keep me posted if you got any issue. We could also do it together.

Thanks Yang for your advice, I will have a look at this example notebook and then try to convert the pickle file. I will let you know if I meet problems.

Great! Keep me posted if you got any issue. We could also do it together @QianqianHan96 .

Thanks, Yang. I am wondering how could we do it together, in this pull request or create a new pull request?

Thanks Yang for your advice, I will have a look at this example notebook and then try to convert the pickle file. I will let you know if I meet problems.

Great! Keep me posted if you got any issue. We could also do it together @QianqianHan96 .

Thanks, Yang. I am wondering how could we do it together, in this pull request or create a new pull request?

Sorry for the late reply @QianqianHan96 . For ONNX let's do it in another PR, please review this PR first. We could take about it in our next sprint.

Thanks Yang, I have reviewed this PR and merged it. I agree, let's discuss about the ONNX on 27 Oct.


Allow for testing migration down functions

It's currently very easy to run into a poorly written migration where the down function doesn't correctly undo the migration. Diesel's documentation suggests the use of redo for testing this, but unless a project is testing this via CI, it's likely that faulty down functions will only be noticed when they're run. Even worse, it may be difficult to track down which migration was faulty. It would be cool if Diesel could include a command that starts with two blank databases, runs through the migrations step by step while redoing the migrations on the first database and checking that it is equivalent to the second database. A naive bit of pseudocode:
let db1 = get("database1")
let db2 = get("database2")
for x in migrations:
        db1.run_migration(x)
        db2.run_migration(x)
        db1.redo(x)
        assert_eq(db1,db2) # e.g. for Postgres, diff the pg_dump of the two

[ ] I have already looked over the issue tracker for similar issues.

Instead of using two databases and dumping database info, it would make a lot more sense to use Diesel's ability to print the schema. This only gives table structure, but would be much easier to implement.
An obviously needed feature in a binary implementing this would be the ability to exclude the testing of specified migrations.

@mehcode This should be doable by using the methods provided by the Migration in diesel-migrations.

I fully agree that the diesel command should support this. Does redo and redo -a have any other purpose than testing?
If no, I would propose that diesel migration redo and diesel migration redo -a actually checks that the database is exactly as it was before and warns the user, if the database was left in a different state (ideally with a diff what changed).


Tagging a new version

With #53 and #59 closed, could you tag a new point release so SPM can pick up the fixes, or is there anything else you consider to be blocking it?

Will tag this in the morning 👍

https://github.com/DanToml/Jay/releases/tag/1.0.1


Lab 16 Video Indexer Screenshots

Module: 8 Computer Vision
Lab/Demo: 16
Task: 00
Step: Review video insights
Description of issue
While the lab instructions show the screenshot where they detected 25 people and also with the recognized people name in the video, when the learners and myself tried out, it only shows 2 people and Unknown #1 and Unknown #2.
This is what I see when using the Responsible AI video:

Is there a reason for that? Free account vs unlimited account?
Thanks!
Repro steps:

There may be restrictions for some accounts, and it's possible the model has changed since the screenshots were taken.


ProPhoto is converted to sRGB color space

Describe the bug
when I use cjxl  to convert a 16-bit Prophoto PNG to JXL, the generated JXL image is with sRGB color space instead of preserving the ProPhoto color space.
To Reproduce
(1) cjx input.png output.jxl
but if I do "cjxl input.png output.jxl -q 100", the generated jxl image is with the ProPhoto color space.
Expected behavior
For lossy conversion from PNG to JXL, the generated JXL should preserve the original ProPhoto color space.
Screenshots
If applicable, add screenshots or example input/output images to help explain your problem.
Environment

OS: MacOS 15.1.1
Compiler version:
CPU type: Apple Silicon M1
cjxl/djxl version string: 0.11

Additional context
Add any other context about the problem here.

Attach a 16-bit PNG file with ProPhoto RGB color space.

This is a duplicate of #3874


setMaxCharacters not working

setting max characters in xml works however, programmatically setting it doesn't
Using latest version

fixed release 1.3.6


"Reports"`

I am less than a python newbie, so please forgive me.
Managed to download python and followed the instructions for the dependencies.
I get this when I try to run it
Traceback (most recent call last):
File "pocketmagstopdf.py", line 134, in
import requests as requests
ModuleNotFoundError: No module named 'requests'
Any idea how to fix?

It looks like you don't have  the python requests module on your system yet. You'll need to install it but I don't know what OS you are using so here are some basic instructions to cover Windows, Mac and Linux:
Windows

Open the command prompt by pressing the Windows key + R, typing cmd and pressing Enter.
Type pip install requests and press Enter.
Wait for the installation to complete.
Test that the module has been installed by running your Python program again.

Mac

Open the Terminal application by going to Applications -> Utilities -> Terminal.
Type pip3 install requests and press Enter.
Wait for the installation to complete.
Test that the module has been installed by running your Python program again.

Linux

Open up a terminal window.
Type sudo apt-get update and press Enter.
Type sudo apt-get install python3-pip and press Enter.
Type pip3 install request and press Enter.
Wait for the installation to complete.
Test that the module has been installed by running your Python program again.

Thank you.  It's windows.  Actually, it fails every dependency for version number issues; claiming that the version numbers in the build are too high.   Then, if I pick the version numbers which it shows, it fails for not having Visual C++ v14 installed.  I think this may be above me.  Thank you!


update v2.5.1

re-render using grayskull
add myself as maintainer

closes #5
closes #6

Checklist

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

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.

@conda-forge-admin, please rerender