[MB-8404] Shuttle service items display estimated weight on MTO page

Description
Estimated weight is now being returned from the GHC API for shuttling service items and this PR displays the formatted estimated weight value or empty value place holder in the TOO interface.
The estimated weight field should be present on the MTO page, including in the reject service item modal.  Reason is a required field for shuttling service items so I didn't add the em dash if it was missing because this is likely just incomplete seed data.
Reviewer Notes
I took the time to move the service item details prop type shape into it's own definition that can be reused by the 3 components that is passes down through.
I set the estimated weight value to null in my database to show the behavior on the PARAMS move for the destination shuttle service item.
Setup
Add any steps or code to run in this section to help others prepare to run your code:
make db_dev_e2e_populate
make server_run
make office_client_run

Login as the TOO user.
Locate the PARAMS move in the queue and navigate to the Move Task Order page
Observe the estimated weight value is shown and formatted with a comma.
Click to reject the service item and see that the same estimated weight is displayed in the modal.

Code Review Verification Steps

[ ] If the change is risky, it has been tested in experimental before merging.
[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Screenshots

Messages

:book:
:link: MB-8404

  Generated by :no_entry_sign: dangerJS against 22c8c44b9d2c909032d5ffabafbf6429859826a5


Zombie processes

Hyprland starts with zombie processes, after which they remain until Hyprland is exited. After reverting https://github.com/hyprwm/hyprutils/commit/4c5f18d06b603b09c8ed9978e07bb768b042d7c9 and https://github.com/hyprwm/hyprutils/commit/8d21d1dfa91c9a2e7e65418c12eb3f913cc609b9, this issue is no longer reproducible. Screenshot of this issue: https://discord.com/channels/961691461554950145/961694014615208048/1305954135136272444

nice, me when the


Fix bug on force plots to show feature values for specific rows in training data

…Fixes bug where only first row feature values are show in all row plots.
Pull Request Description
Fixes bug as described in https://github.com/alteryx/evalml/issues/3045.

After creating the pull request: in order to pass the release_notes_updated check you will need to update the "Future Release" section of docs/source/release_notes.rst to include this pull request by adding :pr:123.

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

@peterataylor Do you need help getting all the checks to pass?

@peterataylor Do you need help getting all the checks to pass?

Thanks for the offer @freddyaboulton ! Having a quick look I should be able to do the release notes. But any guidance on the lint and dependency changes would be great. But I will look over the contrib guide again and check the approach.

@peterataylor The "Detect dependency changes" should be fixed as soon as you merge in the latest main branch.
If you have the development dependencies installed, you should be able to do the following from the top level of the repo:
make lint-fix
make lint

If make lint still fails, the errors should hopefully be clear.
If you do not have make installed you can look at the Makefile to see what those commands mean and run then yourself.
Let me know if you have any other questions!


Stereochemistry of implicit neighbours

Reference Issue
Extends on from: #6730
What does this implement/fix? Explain your changes.
Treat any implicit/missing neighbours in SMARTS and SMILES as being attached to the central (chiral) atom rather than being at the end. This is mostly a no-op expect for when the atom appears first and doesn't fit the criteria of chiralAtomNeedsTagInversion. The meaning of some stereocenters (mostly first atoms) does change but I would argue this makes more sense.
Sometimes this is just a case of you say this I say that but there are cases (marked with !?) that I think demonstrate why this logic make sense.

SMILES
SMARTS
Current
This
Comment

[C@H](Cl)(F)C
[C@H](Cl)(F)C
N/Y
Y

[C@H](Cl)(F)C
[C@!H0](Cl)(F)C
N
Y
!?

[C@H](Cl)(F)C
[C@h](Cl)(F)C
N
Y
!?

O=[S@@]1CCCO1
O~[S@]1CCCO1
Y
N
!?

[S@@]1(=O)CCCO1
[S@@]1(~O)CCCO1
N
Y
!?

[S@@]1(=O)CCCO1
[S@]1(~O)CCCO1
Y
N
!?

Any other comments?
I am also going to also look at the @SP/@TB/@OH etc's are handled.

Reference Issue
Extends on from: #6730
What does this implement/fix? Explain your changes.
Treat any implicit/missing neighbours in SMARTS and SMILES as being attached to the central (chiral) atom rather than being at the end. This is mostly a no-op expect for when the atom appears first and doesn't fit the criteria of chiralAtomNeedsTagInversion. The meaning of some stereocenters (mostly first atoms) does change but I would argue this makes more sense.
Sometimes this is just a case of you say this I say that but there are cases (marked with !?) that I think demonstrate why this logic make sense.
SMILES	SMARTS	Current	This	Comment
[C@H](Cl)(F)C [C@H](Cl)(F)C	N/Y	Y
[C@H](Cl)(F)C [C@!H0](Cl)(F)C	N	Y	!?
[C@H](Cl)(F)C [C@h](Cl)(F)C	N	Y	!?

O=[S@@]1CCCO1 O~[S@]1CCCO1	Y	N	!?
[S@@]1(=O)CCCO1 [S@@]1(~O)CCCO1	N	Y	!?
[S@@]1(=O)CCCO1 [S@]1(~O)CCCO1	Y	N	!?

Any other comments?
I am also going to also look at the @SP/@TB/@oh etc's are handled.

🤨

🤨

Sorry for to escape the @OH tag which is used of Octahedral geometry

Rebased, Obviously this would target 2024_03 at best.

@greglandrum as discussed when you visited, one to consider for when you are tweaking stereo.
Happy to explain more if needed but makes the logic can be more sane - although it does break things.

@johnmay I will try and make a block of time for this over the next couple of days

not stale. I still need to make time to think about this one


Anerdw: Watch isproofing.com

Anerdw requests the watch of the watch_keyword isproofing\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

isproofing\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Fastnlight in Charcoal HQ


[WIP] Stronger types for React DOM

Provides stronger prop type definitions for React DOM's JSX intrinsics.
This will be an ongoing project for a little while as the scope is ambitious. I'm opening this WIP PR for early feedback on the overall direction as well as for help from fellow interested developers. Pull requests to this branch welcome!
Will eventually close #3773 and close #5865.
Includes #6728 (SyntheticPointerEvent definition).
Implementation checklist

[x] Global HTML attributes (except for events)

[x] autoCapitalize (missed this in the initial pass)

[x] Global HTML events
[ ] Global SVG attributes and events
[ ] Element-specific attributes (and events, if that's a thing)
[ ] Precise type for style prop (a whole other can of worms 😅)
[x] Disallow children and dangerouslySetInnerHTML on void element tags
[ ] Accurate instance types (for refs and Event.currentTarget)
More? Let's discuss in this PR

Useful references

DOMProperty.js in react-dom
react-dom event system implementation and docs
The HTML living standard and MDN, naturally

Design choices / constraints
(I am open to discussing all of these!)
Leave unknown props typed as any
There is no way we can enumerate all acceptable/standard props of DOM intrinsics. If we ever got a Flow feature allowing regexes for keys, we could express open-ended namespaces like data-* attributes, custom attributes etc more precisely, and then maybe revisit this - with the goal of detecting more classes of errors, such as typos in prop names, or usage of attributes on elements that don't support them.
For now the typing philosophy here is: be reasonably strict with the types of known attributes, but lenient otherwise. This means we can add some value with these types, but not quite match the DX of using composite components... yet.

[ ] Open question: Should these be any or mixed? The latter would seem to be more useful in scenarios other than passing attributes into elements (say, defining a custom component type that takes React.ElementProps<button>)

Type numeric attributes as number
React will not warn if you pass a string (be it "1" or "foo") into what's meant to be a numeric attribute, e.g. tabIndex. However, I'm leaning towards the stricter tabIndex?: number in such cases. It's a judgement call, though, and an argument can be made for number | string. I've created the ReactDOM$Number type alias as a reminder to come back to this after some discussion.

Impose some case-sensitivity on enumerated attributes
In an ideal world we'd have a Flow builtin, perhaps called $CaseInsensitive, that makes the following possible:
const valid: $CaseInsensitive<"foo" | "bar"> = "Foo"; // OK
const invalid: $CaseInsensitive<"foo" | "bar"> = "baz"; // Error

(EDIT: See separate issue about $CaseInsensitive - https://github.com/facebook/flow/issues/6743)
With such a hypothetical builtin (and I'm not the right person to build it - as I'm not fluent in OCaml by any stretch), we could model enumerated attributes correctly, as case-insensitive enums.
Here, rather than reverting to string for such attributes (or manually adding all letter case permutations of values), I've arbitrarily chosen to support what I think are common/natural-enough spellings.

For enumerated values made of single words (true, false) - support only the all-lowercase version.
For enumerated values representing acronyms (ltr, rtl) - support all-lowercase alongside all-uppercase (LTR, RTL).
For enumerated values representing multiple joined words (contentEditable) - support camel-case alongside all-lowercase (contenteditable).
For enumerated values in kebab-case (family-name, street-address) - only support the lowercase version.

I am totally hoping that a Flow internals expert can come along and just give us $CaseInsensitive 😄  In the meantime I've introduced the $TODO$CaseInsensitive type as a placeholder.

Forbid the value "" in all kinds of boolean/enumerated props

See also https://github.com/facebook/flow/pull/6727#issuecomment-413048637, https://github.com/facebook/react/issues/13400, https://github.com/facebook/react/pull/13404.

There are a few classes of DOM attributes that are "boolean", "booleanish" (a term from the React source) or "enumerated"; in HTML, these generally admit "" as a valid value meaning "true". However, for some props, React DOM processes "" as a falsy JS value, omitting the attribute. This inconsistency, along with the fact that there is always a less-ambiguous way to specify "true" (foobar={true} or foobar="foobar") or an equivalent, is why I chose to model these props with union types that do not include "" - reducing the chance of users stumbling across surprising behaviour.

In light of the issue outlined in https://github.com/facebook/react/issues/13400, I'm currently thinking of removing "" as an allowed value from all kinds of enumerated attributes (ReactDOM$Boolean, ReactDOM$BooleanishString, and others like translate?: $TODO$CaseInsensitive<"" | "yes" | "no">), as there are simply too many subtly different behaviours to keep track of.

In a DOM boolean prop - modeled by ReactDOM$Boolean - React treats "" as falsy, while HTML specifies it as one of the allowed truthy values.
In DOM "booleanish string" props - ReactDOM$BooleanishString - and other enums, React treats "" as truthy (as does HTML).

As with typing numeric properties as number, disallowing "" is an "editorial" decision to be stricter in order to reduce ambiguity and the potential for bugs. I'd be happier to do this if React were to add a corresponding warning or documentation note discouraging the use of "" (or string values in general) in DOM boolean props.

Oh, nice. Some comments:

It might be helpful to do this work throughout multiple PRs, and keep track of progress in a "master issue?

In an ideal world we'd have a Flow builtin, perhaps called $CaseInsensitive. Interesting idea, and can definitely see cases such as this in which it would be useful. Making an issue to track the addition said utility and liking it back here for context would be helpful to keep track of it.

I'm a little worried about making stuff more restrictive, since it could introduce errors to people's pre-existing builds. Up for discussion.

Digging the pointer event's definitions 👏!

@mrkev:

It might be helpful to do this work throughout multiple PRs, and keep track of progress in a "master issue?

Yes in principle, I'm just trying to get to a point where I can see the overall "shape" of this work & see what the shippable milestones are along the way. Happy to get your thoughts on that. Also I didn't know what to expect in terms of a timeline for review/release etc (I'm glad to have your comments this early!), and as you see I'm still discovering some issues as I dive into specs and React's implementation thereof.
Things like modelling style can definitely be broken out, but in my mind the ideal is to roll all of this up into one coherent release of Flow - "the one where we got typechecking for React DOM" (and had to adjust a little bit 😄). One clear transition might be easier to document and educate users about.

This is still in progress, just had to take a break and focus on other things recently.
There is an angle here that I think ties into the React team's longer-term plans for React DOM (https://github.com/facebook/react/issues/13525). If ultimately we can model both today's React DOM and the future "React Fire" (which will include breaking changes, e.g. potentially className → class and others), and the types are accurate and strict enough, then Flow can play a useful role in helping the ecosystem migrate safely, especially for use cases not covered by non-type-aware codemod tools. The ideal starting point, well in advance of when React starts warning/deprecating APIs or committing to specific plans, would IMHO be a good typechecking experience for React DOM code written today.

@jbrown215 would there be parts in this that could be used from this pull request?? This is needed for improved Flowgen React support.

@villesau: Which parts do you need? I expect that @motiz88 does not have to continue his work on this, but I'm happy to review other PRs to the libdefs that you need.

I need as much as possible 😅This is the beef: https://github.com/joarwilk/flowgen/issues/76#issuecomment-471198963
I'll try to pick up the parts that are needed the most.

Yeah, actually part that is needed is not implemented here
Element-specific attributes (and events, if that's a thing)
Also style property can be typed with this https://github.com/frenic/csstype

Is there any chance to get this revived?

Subsumed by https://github.com/facebook/flow/pull/7569


MS JDBC Driver runs into issues with PreparedStatement over TLS1.3

Driver version
<dependency>
  <groupId>com.microsoft.sqlserver</groupId>
  <artifactId>mssql-jdbc</artifactId>
  <version>12.2.0.jre11</version>
</dependency>
<dependency>
  <groupId>com.microsoft.sqlserver</groupId>
  <artifactId>mssql-jdbc_auth</artifactId>
  <version>12.2.0.x64</version>
  <type>dll</type>
</dependency>

SQL Server version
Provide the output of executing SELECT @@VERSION on your target SQL Server.
Microsoft SQL Server 2022 (RTM) - 16.0.1000.6 (X64)
Oct  8 2022 05:58:25
Copyright (C) 2022 Microsoft Corporation
Express Edition (64-bit) on Windows Server 2022 Standard 10.0  (Build 20348: ) (Hypervisor)
Client Operating System
Provide the Operating System the client application is running on.
Window 10 Enterprise

JAVA/JVM version
Provide the JAVA/JVM version (e.g. java version "1.8.0").
OpenJDK 11.0.6
Table schema
Provide the table schema to repro the issue.
use embeded table "sys.tables"
Problem description
Provide full details of the problem.
with code below
        String url = "jdbc:sqlserver://sqlserver.test.com:1433;databaseName=test1;encrypt=strict;trustServerCertificate=false;trustStore=C:\\tmp\\sqlserver2022.pfx;trustStorePassword=testpass;user=test1;password=testpass";

        Connection conn = DriverManager.getConnection(url);
        Statement stmt1 = conn.createStatement();
        ResultSet rs1 = stmt1.executeQuery("select t.schema_id, schema_name(t.schema_id) as schema_name, t.name as table_name, t.create_date, t.modify_date "
                + " from sys.tables t  "
                + " where t.schema_id=1 "
                + " order by t.schema_id "
                + " OFFSET 0 ROWS FETCH NEXT 2 ROWS ONLY"
                + "");
        while (rs1.next()) {
            System.out.println(rs1.getObject(1) + " " + rs1.getObject(2) + " " + rs1.getObject(3));
        }

        PreparedStatement stmt2 = conn.prepareStatement("select t.schema_id, schema_name(t.schema_id) as schema_name, t.name as table_name, t.create_date, t.modify_date "
                + " from sys.tables t  "
                + " where t.name=?");
        stmt2.setString(1, "dbo");
        ResultSet rs2  = stmt2.executeQuery();
        while (rs2.next()) {
            System.out.println("Test2: "+rs2.getObject(1) + " " + rs2.getObject(2));
        }

"stmt1" can be executed correctly and print the query result correctly, but "stmt2" runs into issue which failed  in line "stmt2.executeQuery()"
Expected behavior
It seems JDBC driver or MSSQL server bugs since "Statement" works fine. exception happens only with PreparedStatement"
Actual behavior
Error message/stack trace
Error stack:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1: The parameter name is invalid.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:265)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1695)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:620)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:539)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7685)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4048)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:272)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:246)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:457)
at org.basic.db.mssql.DatabaseMSSQL.main(DatabaseMSSQL.java:53)
Any other details that can be helpful
Add any other context about the problem here.
JDBC trace logs
Provide the JDBC driver trace logs.  Instructions can be found here: https://docs.microsoft.com/sql/connect/jdbc/tracing-driver-operation

You can't set table name in a prepared statement using setString, it's meant only column values. This is for security reasons. If you really want to send in the table name dynamically, you can use string concatenation, e.g. here, but please be aware of the security risks you would be taking.

They did not use it for table name. The bind variable is for a column t.value.

Thank you @mmimica. You're right, I misread the name column as table name.
I'm not able to replicate this on my end, but will continue to look into this.

This is an issue in SQL Server 2022 RTM that is fixed in CU1:
https://learn.microsoft.com/en-us/troubleshoot/sql/releases/sqlserver-2022/cumulativeupdate1#2042238
I verified I could repro it before applying CU1 and not after.
Regards,
David

Closing due to inactivity.


docs(home): update component roadmap

relates to #294
Update the component roadmap on the VitePress home page.
Checklist

[x] The added / edited code has been documented with JSDoc

Oh no.. In the figma link of the ticket, the lower variant was planned to be implemented. It is the one with this layout:

You implemented the other variant of the tile design..
That's the reason why the refined ticket included a screenshot but somehow the screenshot is gone from the ticket now....


[USABILITY] Remove duplicate instance of links to Homescreen on Status Card

Describe the usability issue
There are three different ways shown on the Status card to close and get back to your homescreen. The button with text "Your Covid-19 info center" is no longer relevant (we do not use the term info-center) and is often being cut off by the "X" button at the bottom of the screen. Simplifying this will reduce confusion.
To Reproduce
Click on 'Show Status card'
Expected behavior
Only include one way to exit out of the Status card and remove the no longer relevant button with text "Your Covid-19 info center"
Screenshots

Done in version 2.7.2.

Confirmed change on 2.7.4


Rename Material component to AlbedoFactor

What

Closes https://github.com/rerun-io/rerun/issues/6829

⚠ This is a breaking change!
This renames the Material component to AlbedoFactor, which now simply wraps a datatypes.Rgba32.
Consequently, the field mesh_material in Mesh3D is now named albedo_factor
When constructing a Mesh3D:

C++ & Rust: .with_mesh_material(Material::from_albedo_factor(color)) -> with_albedo_factor(color)
Python: mesh_material=rr.Material(albedo_factor=color) -> albedo_factor=color

Checklist

[x] I have read and agree to Contributor Guide and the Code of Conduct
[x] I've included a screenshot or gif (if applicable)
[x] I have tested the web demo (if applicable):

Using examples from latest main build: rerun.io/viewer
Using full set of examples from nightly build: rerun.io/viewer

[x] The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG
[x] If applicable, add a new check to the release checklist!
[x] I have run the raw_mesh examples
[ ] I have asked for a final @rerun-bot full-check and checked the results

PR Build Summary
Recent benchmark results
Wasm size tracking

To run all checks from main, comment on the PR with @rerun-bot full-check.

@rerun-bot full-check

@rerun-bot full-check


Images moving after carousel initialization.

I am using a simple image carousel that is initialize on document ready.
When viewing the page though the images get shown one below the other with their initial sizes, then the carousel gets initialized and only after that is finished they line up into a horizontal carousel the way they are supposed to look. Is there anyway that I can fade in the carousel only after it has initialized and this way get rid of that image flickering effect? Thanks! :)

Use $(document).ready() to execute something when the DOM is loaded and $(window).load() to execute something when all other things are loaded, such as images.

I am aware of these, was wondering if there's a core solution for this though.


Empty export (LPR) file is not deleted when there is no data in it (0-bytes size)

Remove the export file (LPR) when it's a 0-byte size file.

Bugfix implemented. No empty files are left behind.


Fix GPT4AllEmbedding validator

Thank you for contributing to LangChain!

[x] PR title: "package: description"

community: GPT4AllEmbeddings from langchain_community

[x] PR message: Delete this entire checklist and replace with

Description: A keyerror was thrown while initializing GPT4AllEmbeddings
Issue:  #23863 it fixes
Dependencies: No
Twitter handle: @khant_dev

[ ] Add tests and docs: If you're adding a new integration, please include

a test for the integration, preferably unit tests that do not rely on network access,
an example notebook showing its use. It lives in docs/docs/integrations directory.

[x] Lint and test: Run make format, make lint and make test from the root of the package(s) you've modified. See contribution guidelines for more: https://python.langchain.com/docs/contributing/

Additional guidelines:

Make sure optional dependencies are imported within a function.
Please do not add dependencies to pyproject.toml files (even optional ones) unless they are required for unit tests.
Most PRs should not touch more than one package.
Changes should be backwards compatible.
If you are adding something to community, do not re-import it in langchain.

If no one reviews your PR within a few days, please @-mention one of baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.

@RafaelXokito Thank you for reviewing the PR. I'll close this PR as #23867 fixed the issue.


Add support for TCP/TLS

Would like to be able to also send logs via TCP/TLS, not just UDP. Is there any reason that this is not currently supported by this library?

The main reason why we didn't do it was because it would require more careful implementation to ensure that the thread that submits the logs does not block the thread calling the logger at any point (and also does not use up an unbounded amount of memory).
It definitely would be doable, it just requires some care.

@fanwar: here's more on that, including some detailed explanations: https://github.com/papertrail/remote_syslog_logger/issues?utf8=✓&q=is%3Aissue is%3Aclosed tcp

Thanks for your response ... looks like adding this support in the short term is going to be difficult. We are trying to get TLS-based logging from a docker/kubernetes environment and have had trouble with other solutions pushing to papertrail (eg. logspout). Will keep searching for a working way to do this integration.

@fanwar I'd be curious to hear more about your experiences with logspout (and any other TLS senders usable from Docker) @ support at papertrailapp dawt com.  My gut reaction is that the easiest route might be https://github.com/papertrail/remote_syslog2 on the host, pointed at a directory exposed to guests with docker run -v (more). It's the option that Papertrail covers here.
Anyway, if you're comfortable sharing details about your environment and what you saw in email, I'd like to hear it.

Thanks Troy, will email you shortly with more details. Would love to get some help on this.


TheHive project running in PaaS contains:

manifest.yml for pushing haproxy and thehive using CloudFoundry
env-map.yml - env variables
haproxy.cfg - custom config to act as elastic proxy
README

👏 🙌 Thanks very much


FastQ_Screen Snakemake Wrapper Error

Hi,
Currently the FastQ_Screen wrapper defines the prefix after removing only the '.fastq' extension from the input file.
However, as shown below, fastq_screen also looks for other extensions ('.seq', '.txt' and '.fq')
Line 358 of fastq_screen:

$outfile =~ s/.(txt|seq|fastq|fq)$//i;

This means the wrapper will fail for FASTQ files ending in .fq, .txt or .seq as there will be a filename mismatch between the actual fastq_screen output and the anticipated output based on the prefix.
Thanks,
Stephen

Thanks! May I ask you to refile this issue on the snakemake-wrappers repository?


OCPBUGS-38154: Fix bug where nodes were not triggering dedicated serving reconciliation

What this PR does / why we need it:
Fixes a bug where node events would not trigger a reconcile loop for DedicatedServingComponentSchedulerAndSizer when the hypershift.openshift.io/cluster label was not present on the node. This can happen if:

A hostedcluster is assigned to a pair of request-serving nodes and the hypershift.openshift.io/cluster label is added to both nodes
One of the request-serving nodes is deleted by any means
A replacement request-serving node is created without the label

Now, node events also trigger a check to determine whether the node has the osd-fleet-manager.openshift.io/paired-nodes label, and if so, if the other paired nodes exist with the hypershift.openshift.io/cluster label. If so, we assume that this new node should trigger a reconcilation of the hostedcluster referred to by the existing paired node.
Which issue(s) this PR fixes:
OCPBUGS-38154
Checklist

[x] Subject and description added to both, commit and PR.
[x] Relevant issues have been referenced.
[ ] This change includes docs.
[x] This change includes unit tests.

/jira refresh

/retest-required

/approve

/lgtm


work item component Layout style fixes

Fixes the layout issues with work item component and adds a .view-content class.

Can one of the admins verify this patch?

@mitchharpur I submitted a PR to fix the Empty State of the Work Item list - do you want to take a look at that and possibly combine it with this PR? It is https://github.com/fabric8io/fabric8-planner/pull/1059


Ghostery blocks downloads from polyfill.io

Appologies if this is not the place to report polyfill.io issues.
Ghostery (browser anti-tracker plugin) does not appear to like polyfill.io, screenshot attached

As you can see the console error:
failed to load resource: net::ERR_BLOCKED_BY_CLIENT

Which occasionally becomes:
GET https://cdn.polyfill.io/v2/polyfill.min.js net::ERR_BLOCKED_BY_CLIENT
Is polyfill.io tracking visitors?
If so, is there a way to ask it not to?
Is there a way round this which doesn't involve removing polyfill.io? Do I need to manually install the service, without using the CDN?
Why does polyfill.io track users?

Hi @murdoch, we have a privacy policy which should explain everything you are wanting to know -- https://polyfill.io/docs/privacy-policy#what-information-do-we-collect-from-the-service
I'm not sure how Ghostery decides what to block and not block. If you know a good next step to take to get polyfill.io unblocked that would be useful :-)

Thanks @JakeChampion - I'll email ghostery and ask them :+1:


Which dataset has the pretrained model trained on?

Hello, i have seen the pretreined model you provided in the README.md page. But i didn't find infomation about is, could you please tell me which dataset has the pretrained model tained on?
thx

300W-LP dataset, as stated in the author's paper.


Unable to find Espressif esptool on your system...

First of all, MPY Jama is amazing!!!!
when I use the firmware tool on the MPY Jama, it shows me "Unable to find Espressif esptool on your system..."
even though I have followed the instructions to install the esptool, both through the pip and home-brew
I'm using a MacBook pro m1 and on macos 16.0

you need to add it to your path:
export PATH="/opt/homebrew/Cellar/esptool/4.6.2_3/bin:$PATH"

Hitting the same issue on M1 Mac Ventura. Setting the PATH variable as suggested does not resolve the issue. PATH works a bit different for MAC in that only the processes started from shell will inherit the value. Applications launched in any other way do not.
While launching the app from finder gives me the issue not finding esptool, if I launch the app from the terminal, using "/Applications/ESP32\ MPY-Jama.app/Contents/MacOS/ESP32\ MPY-Jama", works correctly due to the path setting being present.
Suggestion is to add a configurable parameter to the Mac version of the app in which to set the location of esptool.

Same problem for me - MPY Jama can't find the esptool but it is installed and in my path. As @coyte mentioned - starting from terminal esptool is found


OpenFL/Lime blocked?

Hi!
In the first place, thanks for tink's libraries!
I have a problem when i use the Monsoon library. It works fine if i use as Haxe project, but if it is a OpenFL/Lime projects, it is blocked in the Server.hx L137.
I am using CPP & Windows.
Here a simple project to replicate the problem. Sometime, when i use Ctrl+C to close the app from the console, the GUI application is closed, but the Server is working fine now. It responses correctly.
How could i fix the problem?
Thanks in advance.

I'm not sure how to go about this, since I'm not at all familiar with either of both projects (or even hxcpp), so it's a bit hard for me to debug. But I'll be meeting Hugh at the WWX in less than two weeks, so I hope I can get a hint how to go about this.
I think the solution will be to tie tink_runloop into the respective framework's runloop. You can see how it's done for JS and Flash: https://github.com/haxetink/tink_runloop/blob/master/src/tink/RunLoop.hx#L87
Maybe it could be equally simple for lime / OpenFL.


Optimizer::Run crashes on invalid SPIR-V input

See glslang issue https://github.com/KhronosGroup/glslang/issues/2385.  The primary issue is glslang not validating the HLSL and hence emitting unsupported code.  Secondarily, SPIRV-Tools might want to protect against the crash.  I'd thought the validator was run first, and if so, maybe there is something the validator is not catching.

Oh, you'd want to test that with a non-fixed glslang.  The (current one) at 759ae5 should work for reproduction.

In the glslang/SpvTools.cpp there are several spvOptOptions.set_run_validator(false); // The validator may run as a separate step later on which is disabling the use of the validator in the optimizer.
Without the validator being run the optimizer will make assumptions that the provided spir-v is valid.

Yes, that's fine with me.

Closing as invalid.


Please don't tie sentry-go to gin version

We are currently pinned to a specific version of gin and that is preventing us from upgrading from sentry-go 0.13 to 0.15. It would be nice if sentry-go allowed us to update sentry-go without our gin dependency.

This came up in the past in https://github.com/getsentry/sentry-go/issues/156.
We are very aware of this issue, but I can't give you a timeline for moving our integrations into their own modules.
May I ask which version of Gin you're using? We might look into lowering the required version to unblock you if the versions below 1.8.1 do not contain any security issues.

We’re on 0.13 right now.

I meant the version of Gin you're using 🙂

Oh sorry. Looks like we’re on v1.7.7


As an EngEd contributor I'd like to have a similar articles section

As an EngEd contributor, I'd like to have a similar articles section at the bottom of all articles. This section would showcase similar articles (in the same topic category).
Describe Value(s):
Value here - longer retention time by audience, added exposure to other similar articles that may not be getting page views.
Done When:

We have something similar to the Section Blog section (see image)
Should display 3 related articles.
Should use Hugo's built-in Related Content.
Should be displayed directly under the comments section and above the footer on EngEd article pages.

Styling Expectation:

Please use the same styling approach as the Section Blog referenced above. However, instead of using the section Green color for the boxes, please use the EngEd blue color.

We ask that students please leave a comment on this issue when they start working on the feature.

Example:

I'd love to work on this, @hborrelli1 @hectorkambow.

Great, thanks @louisefindlay23! We actually decided to just keep is as related articles (not necessarily from the same author) so that we help to highlight other authors and potentially other articles that may not be getting as many views. We decided to not include articles from the same author for now.

Great, thanks @louisefindlay23! We actually decided to just keep is as related articles (not necessarily from the same author) so that we help to highlight other authors and potentially other articles that may not be getting as many views. We decided to not include articles from the same author for now.

Great point - thank you Harry.
Great question Louise (we should have included that note) - another reason is that we are planning to include a "pinned" article section in the future as well - and we thought that would serve the same purpose if we did author similar articles.
That way the similar articles section focuses on related articles from other authors (based on the topics perhaps).
& pinned articles can be any article the author wants to showcase (of theirs).

Thanks, @hectorkambow and @hborrelli1. Great points. A pinned articles section sounds great. Will that be a future CCS issue?
Have made a PR: #7535 for this feature.


containerd: 1.5.4 -> 1.5.5

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/containerd/containerd/releases.
meta.description for containerd is: "A daemon to control runC"
meta.homepage for containerd is: "https://containerd.io/"
meta.changelog for containerd is: ""
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5/bin/containerd passed the binary check.

/nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5/bin/containerd-shim passed the binary check.

/nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5/bin/containerd-shim-runc-v1 passed the binary check.

/nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5/bin/containerd-shim-runc-v2 passed the binary check.

/nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5/bin/containerd-stress passed the binary check.

/nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5/bin/ctr passed the binary check.

6 of 6 passed binary check by having a zero exit code.

3 of 6 passed binary check by having the new version present in output.

found 1.5.5 with grep in /nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5

found 1.5.5 in filename of file in /nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5

directory tree listing: https://gist.github.com/ea9f0258a63c1570492ada515b687615

du listing: https://gist.github.com/2c9a2b931a70731b7d9800bc41d4088e

Rebuild report (if merged into master) (click to expand)

39 total rebuild path(s)

14 package rebuild(s)

14 x86_64-linux rebuild(s)
12 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
13 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
charliecloud
containerd
docker
docker-edge
docker-gc
docker_20_10
fn-cli
grype
ignite
nvidia-docker
out-of-tree
pipework
python38Packages.jupyter-repo2docker
python39Packages.jupyter-repo2docker

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A containerd https://github.com/r-ryantm/nixpkgs/archive/a4bd104210fe8adfd397af450797a5d5b6709e23.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5
ls -la /nix/store/nln75ajgi70d1kcdznh0jlzam0iva63x-containerd-1.5.5/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

12 packages built:

charliecloud
containerd
docker
docker-gc
fn-cli
grype
ignite
nvidia-docker
out-of-tree
pipework
python38Packages.jupyter-repo2docker
python39Packages.jupyter-repo2docker

Maintainer pings
cc @offlinehacker @vdemeester @kalbasit for testing.

Result of nixpkgs-review pr 132029 at a4bd1042 run on x86_64-linux 1

12 packages built successfully:

charliecloud
containerd
docker (docker-edge ,docker_20_10)
docker-gc
fn-cli
grype
ignite
nvidia-docker
out-of-tree
pipework
python38Packages.jupyter-repo2docker
python39Packages.jupyter-repo2docker

2 suggestions:

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/development/go-modules/generic/default.nix:223:5:
    |
223 |     installPhase = args.installPhase or ''
    |     ^

warning: missing-phase-hooks
buildPhase should probably contain runHook preBuild.
Near pkgs/development/go-modules/generic/default.nix:148:5:
    |
148 |     buildPhase = args.buildPhase or ''
    |     ^


I don't know how to compile this.

I don't even really know if this should be here but this is my last resort.


Custom extend

Updating to use the new changes in class-utils and pass in a custom extend method.
Custom extend method adds the follow:

[x] mixin on the prototype for instances.
[x] mixin as a static method for adding mixins like using plugins.
[x] mixins for running over registered mixin plugins and applying them to the given child Ctor.

:100: thanks @doowb! looks great!


[Feather request] Automatic re-dispatch when subview refuse to handle event.

If I understand the source code correctly. ParentView will handle touch event if subView refuse to handle event. But in iOS (not familiar with Android) parentView will handle event after make sure there is no other subview which can handle this event (Which is how tap through overlay view work).
Of course we can always do this (re-dispatch event) by ourselves , but I think it can be very handy to having this feather or providing a method like hitTest to see whether there is a subview can handle this event.

It's not quite as generic, but you might want to take a look at the pointerEvents prop to see if it works for your use case. Specifically, that's how I'd do an overlay that doesn't capture touches.

@ide I already solved my problem, justing looking for a more elegant way so I can easily handle this next time I run into problem like this.
And my use case is a little tricky that only a part of the view can capture touches while the other part can't.

Hi there! This issue is being closed because it has been inactive for a while.
But don't worry, it will live on with ProductPains! Check out its new home: https://productpains.com/post/react-native/feather-request-automatic-re-dispatch-when-subview-refuse-to-handle-event
Product Pains has been very useful in highlighting the top bugs and feature requests:
https://productpains.com/product/react-native?tab=top
Also, if this issue is a bug, please consider sending a pull request with a fix.


404 Page not found on vpn remote

My actions before raising this issue

[x] Read/searched the docs
[x] Searched past issues

i have deploy cvat on my server, i can success access cvat if in server remote desktop, but  in client side (connect vpn server first), i got page '404 page not found'
access:
on clientside:
remote_ip:80 --> 200 success nginx
remote_ip:8181/admin --> 404 page not found
remote_ip:8181/ -->404 page not found
Your Environment

Git hash commit (git log -1):

commit 955ca7f71b5514159e257d72feb01dcaeec3079f (HEAD -> develop, origin/develop, origin/HEAD)
Author: Nikita Manovich<EMAIL_ADDRESS>Date:   Mon Aug 2 15:28:16 2021 +0300

    Updated CHANGELOG and version till v1.6.0 (alpha)

Docker version docker version (e.g. Docker 17.0.05):

Client: Docker Engine - Community
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        f0df350
 Built:             Wed Jun  2 11:56:47 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       b0f5bc3
  Built:            Wed Jun  2 11:54:58 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.9
  GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
 runc:
  Version:          1.0.1
  GitCommit:        v1.0.1-0-g4144b63
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Are you using Docker Swarm or Kubernetes? No
Operating System and version (e.g. Linux, Windows, MacOS): Linux Debian
Code example or link to GitHub repo or gist to reproduce problem: installation guide export CVAT_HOST=<my_ip_vpn>

it solve!
refering to https://openvinotoolkit.github.io/cvat/docs/faq/#how-to-specify-multiple-hostnames
Thanks


Conditions issued by signal being caught by handling-errors form

Some of the libraries I am using use/abuse conditions to control program flow by using signal and handler-bind. Unfortunately the condition that these libraries signal are being caught by the handling-errors form evaluator.lisp.
The snippet below will let you reproduce the behavior:
(define-condition snake-handler () ())
(handler-bind ((snake-handler (lambda (x) (format t "Bazinga:~a" x))))
(signal 'snake-handler)
(print "Doh"))

Removing the condition clause in handler case as shown below resolves the issue.
(defmacro handling-errors (&body body)
  `(handler-case
       (handler-bind
           ((simple-warning
              #'(lambda (wrn)
                  (format *error-output* "~&~A: ~%" (class-name (class-of wrn)))
                  (apply (function format) *error-output*
                         (simple-condition-format-control   wrn)
                         (simple-condition-format-arguments wrn))
                  (format *error-output* "~&")
                  (muffle-warning)))
            (warning
              #'(lambda (wrn)
                  (format *error-output* "~&~A: ~%  ~S~%"
                          (class-name (class-of wrn)) wrn)
                  (muffle-warning))))
         (progn ,@body))
       (simple-condition (err)
         (format *error-output* "~&~A: ~%" (class-name (class-of err)))
         (apply (function format) *error-output*
                (simple-condition-format-control   err)
                (simple-condition-format-arguments err))
         (format *error-output* "~&"))
       #+ignore(condition (err)
                 (format *error-output* "~&~A: ~%  ~S~%"
                         (class-name (class-of err)) err))))

Well, of course conditions can be use for something else than error management, and since I've never done that I caught all conditions... BTW, cl-jupyter must improve its error handling (it does not follow yet completely the jupyter protocol). For the short term, I propose to only catch  serious-conditions to be sure I only track errors... I hope your libraries are not subclass (then it will definitely be an abuse).

TY latest commit fixed


injecting html in a popover doesn't work/popover templates do not work

Not sure if I am doing this wrong or what...

  <legend>Android Industries

      2

  </legend>

##js
$scope.templateUrl = 'app/views/android-industries-popover-template.html';

I get the following error message...
GET http://localhost:63342/MOCK_UPS__2/MOCK_UPS_2/app/template/popover/popover-template.html 404 (Not Found)
angular.js:11594 Error: [$compile:tpload] Failed to load template: template/popover/popover-template.html
http://errors.angularjs.org/1.3.9/$compile/tpload?p0=template%2Fpopover%2Fpopover-template.html
It is not even trying to look for my template... and even if I do bring that template in, then it will just make the string 'app/views/android-industries-popover-template.html' the content in the popover.
I have tried it with and without the {{}}.

This feature has not landed in a stable release yet. Unless you're using a manual build from the current master branch, this feature does not exist.
What version of Angular and UI Bootstrap are you using and if it's one of the officially release versions, please provide a plunkr reproducing your problem.

I am using a manual build by copying the new popover.js into the latest release.
AngularJS v1.3.9, Bootstrap v3.3.1

Here is a quick plunker of my problem
http://plnkr.co/edit/bBAeHhFF6oE7XvCfUibc?p=preview

@jpetraws A problem I see right off is that you are using the bootstrap javascript library and the angular-ui-bootstrap library.  The plunker provided does not have the latest angular-ui-bootstrap library or a manual build, it's pulling from http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.12.1.min.js.  Here is a plunk with the latest build from master using a popover with the new template feature.  If you can reproduce the problem using that plunk I'll reopen the issue, thanks.


Issues with adding png image files to pdf

Hello.
First of all, great work on the library, it is very helpful.
Now, my issue is that when i attempt to add a .png image either from memory or from file to a newly created pdf file:

If the image DOES contain alpha channel and i read it from file, the error "PDF doesn't support PNG alpha channel" is displayed
If the image DOES contain alpha channel and i read it from memory, the error "PNG chunk length larger than file"  is displayed
If the image does NOT contain alpha channel and i read it from file, the error "PNG chunk length larger than file" is displayed
If the image does NOT contain alpha channel and i read it from memory, the error "PNG chunk length larger than file" is displayed

I dug in the source and this line:
chunk = (const struct png_chunk *)&png_data[pos];
does not seem to read correctly the chunk length.
The number i debug as chunk length inside the source (right after that line) is 218103808 instead of 13. This happens on the first iteration of the while(1) loop, while reading the "IHDR" length bytes.
Tried with more than one image, the same number is returned.
Tried to set chunk->length by reading manually 4 bytes from png_data, but it fails after some iterations with error "Wrong PNG format, chunks not found".
The images used to test the issue were downloaded from the internet, they are displayed correctly in programs(windows Photo, gimp etc.), and are not changed in any way from my program, just loaded as bytes.
Note that i have tested the validity of those loaded bytes by saving them to a test file, which is a perfectly working file. So the bytes are likely not corrupt/messed in any way.

Hi. Thanks for this report. The PNG support was only recently added, and does currently only support a limited range of PNG images types. Are you able to attach some known to be broken PNG images to this bug report, and I'll look into it?

Sure, i drag & drop them here, or paste a link?

Note that the PNG chunks have their length encoded as big endian, so if you're on a little endian machine (x86/ARM), they won't immediately decode in the debugger. That's what the ntoh32 function is for.
Nope, just a regular win 10 machine

I think a link would be simplest, I'm not sure you can actually host files on GitHub bug reports.

Very well, here are the links:
https://imgur.com/QZfYbkE
https://imgur.com/PwhYknP
I can test things if you need extra help, just tell me if you need something to look into

Hi John. I've got a partial fix that resolves an issue with PNG files that were split over multiple chunks (this is pretty common on larger files. We'd only tested with tiny files).
The alpha support issue is a bit harder though, as it is not natively supported by PDF.
Can you test the version here and confirm if it resolves some of the issues for you?
https://github.com/AndreRenaud/PDFGen/tree/png-chunkgs

Thank you very much, i will test it and get back to you

Can you test the version here and confirm if it resolves some of the issues for you?

I run the same tests(1-4) with the new branch and i face the exact same issues (ignore the alpha channel points, i just run all of them again to get the updated state after applying the fix). The chunk size is still 218103808.
May i point something,
https://github.com/AndreRenaud/PDFGen/blob/png-chunkgs/pdfgen.c#L2516
Looking through the code and searching online, i run into this: https://stackoverflow.com/questions/19995440/c-cast-byte-array-to-struct
typedef struct
{
    uint32_t id;
    uint16_t test;
    uint8_t group;
    uint32_t time;
}

The compiler will probably place padding between "group" and "time" to ensure that "time" is on a 4-byte boundary

Note, i'm not really familiar with C, but, If understand correctly, this happens if the data types are mixed in regards to byte size. So, the struct "png_chunk" is 8 bytes (length : 4 bytes, type : 4 bytes), so it shouldn't have this issue(?), but when i manually set the "length" property like this (naive way to test it)
chunk->length = ( png_data[pos] | png_data[pos + 1] | png_data[pos + 2] | png_data[pos + 3] );

the "length" value was correct, at least for the "IHDR" chunk, but failing later (as mentioned in my first post)

The alpha support issue is a bit harder though, as it is not natively supported by PDF.

I totally understand

Yes, there was an issue with packed structs. Hopefully this is fixed now. The length issue is what the ntoh32 is designed to resolve, so this shouldn't be a problem. Can you have a look at the latest code on that branch and tell me if it resolves your issue?

Yes, there was an issue with packed structs. Hopefully this is fixed now. The length issue is what the ntoh32 is designed to resolve, so this shouldn't be a problem. Can you have a look at the latest code on that branch and tell me if it resolves your issue?

The alpha support on PNGs is unlikely to ever be supported. This is mostly because of the amount of code it would require, and PDFGen is designed to be pretty small. I'll close this for now, but feel free to reopen if there are any other outstanding issues.


Wifisecure has moved to Bear SSL api

As detailed here: https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/src/WiFiClientSecure.h#L27

I'm working on fixing this. I'll also add a library.json so that the library can more easily be used in platformio.
If you're interested I could make a PR for the master branch on the Hal9k-dk fork? It currently is just using the old API, however, I think the change to bearSSL is simple enough (check out the 2.0 branch)

The fixes are live here: https://github.com/Hal9k-dk/esp8266-restclient
I have also made a test-sketch for the ESP, and it works, kinda.
I have noticed that the tests always complete successfully when using SSL, but when using normal HTTP, it is very dependent on signal strength. If the ESP has a good connection to wifi, most HTTP tests will pass, but if it doesn't, most will fail. All while all SSL tests still succeed. I can't see any other reason for this that wificlientsecure is more reliable than wificlient


dxcam is fast, so is yolo, but cv2 isn't

I'm working on a project to use yolo to realtime mark the objects on the user's screen.
after going through a cprofile, i found that dxcam and yolo only took less than 50% of process time, but cv2.waikey(1) took nearly 20%.
does anyone know how to speed up the cv2.imshow or is there a faster or a better way to realtime display pics on the screen?

cv2.waikey(1) designed to sleep around 15ms
it actually calls windows sleep function
and for your situation, just don't show it on the same thread


Ractive reordering CSS class names?

Description:
Ractive seems to be reordering class names in the DOM.
Versions affected:
0.8.11 & 0.9.0-build-108
Platforms affected:
Chrome, Firefox, Safari
Reproduction:
http://codepen.io/jmellicker/pen/mWEXMY?editors=1010
(click one of the buttons "three" or "four")

Marking this as pending. I'm not sure what's the proper behavior or what the specs have to say with regards to this. A few searches led me to this Stack Overflow answer whose comments mention Semantic UI is depending on this behavior.
Afaik, the only time order matters would be:

If you use attribute selectors
If you use node.classList
Semantic UI (as mentioned in SO answer and the issue demo)

Yeah, in most cases it wouldn't matter, but Semantic UI needs certain things in order.
Ractive 0.7.3 didn't reorder class names, did something fundamental change so fixing this would be hacky? If so, please close and forget this issue! (We don't have to use Ractive to set classes, document.getElementById('grid').className = 'ui three column grid' works fine.)

0.8 started not completely trampling the class attribute and instead checks for classes that are added and removed by Ractive to insert or remove from the existing list. I would say we could switch to using classList, but we still support IE9, which apparently doesn't do that. I don't think it would be much trouble to see if there's an anchor point in the existing class list for new classes to insert them in template order. I didn't realize there was anything sensitive to class order. TIL

This should now be fixed in edge and v0.8-dev. it'll go out with 0.8.12 as soon as #2899 is resolved.


DOC API compose section recomposing

grrr, @#$%^  you're right  -  I wrongly readed intention - I assumed these are usage examples (I saw many hoc1(hoc2(... used directly on component in export default statement) while they're definitions of HOCs ... prepared for usage/reusing    .....
I was watching and not seeing ... that BaseComponent is only parameter definition in ES6 function definition - 1-st one doesn't need this explicitely
I see it a bit missleading, now.  In all other code in this section BaseComponent is a real component to be enhanced - this makes some common context while these lines are out of it.
Maybe making it a little more verbose  (updated file) ?

Codecov Report

Merging #623 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #623   +/-   ##
=======================================
  Coverage   88.18%   88.18%
=======================================
  Files          49       49
  Lines         364      364
=======================================
  Hits          321      321
  Misses         43       43

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 929deca...2c70bb0. Read the comment docs.

We use BaseComponent to name the last argument of all HOCs in the source code, for example here and here, so I believe using the same word in the doc is better.

This is why I wrote 'a bit missleading' - I know it's good, now ... but lacking of/mixed context leaded me wrong way. This is very introductive section where reader's context is based on earlier experience ... where probably wasn't needed separated HOC definition.
Adding before all other lines
const BaseComponent = props => {...}

we'd have real BaseComponent followed with BaseComponent (not related to earlier statement!) only as parameter and again real BaseComponent enhanced by composedHoc. The same name, mixed context.
Consistency in code is ok, but in examples it can be missleading. If BaseComponent is used in definitions than use AnotherComponent in usage examples ... just to minimize missunderstanding.
// instead of defining HOC as usual (ES6 function)
const composedHoc = BaseComponent => hoc1(hoc2(hoc3(BaseComponent)))

// we can express it shorter
const composedHoc = compose(hoc1, hoc2, hoc3)

// In both cases we can use this HOC in the same way
const EnhancedComponent = composedHoc(LayoutComponent)

We don't use Component here because it might be confused with React.Component. LayoutComponent is coming from nowhere, so it might be confused. too. How about
// instead of defining HOC as usual (ES6 function)
const composedHoc = BaseComponent => hoc1(hoc2(hoc3(BaseComponent)))

// we can express it shorter
const composedHoc = compose(hoc1, hoc2, hoc3)

// In both cases we can use this HOC in the same way
const EnhancedComponent = composedHoc(BaseComponent)

Could be .. but still mixing context - maybe explain this directly, more complete example?
// component to be wrapped
const BaseComponent = props => {...}

// instead of defining HOC as usual (ES6 function)
const composedHoc = BaseComponent => hoc1(hoc2(hoc3(BaseComponent)))

// we can express it shorter
const composedHoc = compose(hoc1, hoc2, hoc3)

// In both cases we can use this HOC in the same way
const EnhancedComponent = composedHoc(BaseComponent)

By convention we're using BaseComponent almost everywhere as function parameter.
This way BaseComponent in second statement is not related to component defined earlier (and used at the end) - composedHoc (as a function) can be used to enhance any other component (passed argument).

IMO compose is one of the first function - developers meet with starting learning functional ideas. No need to extend somehow?

I'll close this for now.


Have url_rewrite middleware resolve server variables from IIS when running ANCM in-proc

Hi @muratg, @shirhatti and @jkotalik 👋
I'm keen to give this one a shot, but I'd appreciate some pointers on how to do this.
How does IIS expose server variables?
Thanks 🙇♂

I've found IServerVariableFeature and the associated GetIISServerVariable extension method.
The current thinking is to create a new PatternSegment that gets values from the IServerVariableFeature while allowing fallback on the existing implementation if we're not using in-proc hosting.
Please let me know if that sounds about the direction you'd like this to take.
Cheers 🙏

Yeah, that would be the right direction to take this!

I'm surprised the issue isn't closed given the associated PR was merged and the PR description mentions "Addresses #".
Is that because I don't have permissions to close the issue?

"Addresses" doesn't close the attached issue, you have to use "Closes" or "Fixes" :)

But yeah, it's also because you don't have the permissions :). Thanks for this contribution!

Fixed in https://github.com/aspnet/AspNetCore/pull/10022 (https://github.com/aspnet/AspNetCore/commit/4a2bd2adbf74b316f01eb062de3e83261562801d)


Auto-Create-Config based on horizon_config_example.ini if present

Summary
Basically would just copy paste horizon_config_example.ini as horizon_config.ini on startup if no horizon_config.ini could be found.
Motivation
Prevents error confusion caused by missing config.
Additional Information
Will need extra error handling in the event that horizon_config_example.ini isn't present either.

Thinking about this further, this isn't a great idea because users seem to frequently edit the example config itself, which would just cause further confusion when Horizon uses it to create the actual config


Reject the signing promises on failure.

Brief description of the changes [REQUIRED]
If signing a file for s3 upload fails FineUploader hangs. Promises related to signing were not calling failure on their parent promises.
Repo steps:

Find a large file.
Put it in an SD card.
Add the file to FineUploader
Pull out SD card before the signing can finish.
Signing methods fail, rejecting their promise.
Promise rejection is not propagated up.

What browsers and operating systems have you tested these changes on? [REQUIRED]
Windows 10. Chrome
Are all automated tests passing? [REQUIRED]
Yes
Is this pull request against develop or some other non-master branch? [REQUIRED]
Yes. Develop.

Thanks for the PR. I'm a bit surprised that this is broken. I seem to remember this working at some point. I can see how this would fail if the file suddenly disappeared during the upload process.
I'll take a closer look soon.

I know if the file is pulled before signing, it will have a size of 0 and I think the signing will complete succesfully. It just signs what it thinks an empty file. Then it uploads to s3, and of course s3 complains about an empty file. The root of that problem is that the file size went to zero when it wasn't zero to begin with. I couldn't figure out where to add code to solve that, so instead thought relying on S3s errors would be fine.
The error that I encountered, was the FileReader getting an error when creating the signature. It would properly reject its promise. However, the calls to getEncodedHashedPayload did not listen for the rejection. So I just went in and propagated up the rejection call.

Interesting - thanks for the details. You are correct about the empty file when it is removed from the filesystem during the upload process. I'll take a closer look when I get a chance.

I expect to be able to look at this closer tomorrow. If all looks well, I'll merge into develop as part of 5.11.9.

Can you describe the symptoms of this issue? I'm not exactly sure what I should be seeing when attempting to reproduce.

I saw the file just 'hang'... It never actually starts uploading or reports an error. No XHR requests get made and the state of the file doesn't change.

I'm not able to follow the exact steps in your description, but I did notice a couple related issues:

When the network connection is pulled, the upload hangs for quite a while. I think this can be solved with an XMLHttpRequest timeout.
If the file is deleted while the upload is in progress, fine uploader will continue to send chunks, but they are 0 sized. It seems like Fine Uploader should fail the upload in this case.

I think both of these issues should be addressed as part of this case. I'll look into making this adjustments soon. I hope to release those along with your fix to compete 5.11.9.

If you put a break point on the 'failure' below, do you ever hit it?
getEncodedHashedPayload: function(body) {
    ...
        reader = new FileReader();
        reader.onloadend = function(e) {
            if (e.target.readyState === FileReader.DONE) {
                if (e.target.error) {
                    promise.failure(e.target.error); // here
                }
                else {
                    var wordArray = qq.CryptoJS.lib.WordArray.create(e.target.result);
                    promise.success(qq.CryptoJS.SHA256(wordArray).toString());
                }
            }
        };
   ...

I was able to hit the failure if I pulled the sd card while it was trying to read the file.
From what you saw:

is something that is especially problematic for really bad internet connections. I would love to see a timeout setting somewhere.
Definitely ran into this. Less useless xhr requests would be awesome

I was never able to hit the breakpoint above. I simply saw FU send a bunch of empty chunks at S3 after the file was deleted. But I believe your changes are correct, so I will merge this in.
I'm going to prioritize #743 and #1669 to address the other two issues we discussed. If you'd like to help out with either, let me know.


new NativeEventEmitter() was called with a non null argument without the required "addListener" method.

Environment

System:
OS: macOS 12.0.1
CPU: (8) arm64 Apple M1
Memory: 303.86 MB / 8.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 18.7.0 - /var/folders/8v/fxtg8gf53hxg33c467mx5cym0000gn/T/yarn--1663834600779-0.8417465260153014/node
Yarn: 1.22.19 - /var/folders/8v/fxtg8gf53hxg33c467mx5cym0000gn/T/yarn--1663834600779-0.8417465260153014/yarn
npm: 8.17.0 - /opt/homebrew/bin/npm
Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.11.3 - /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
Android SDK: Not Found
IDEs:
Android Studio: 2021.3 AI-213.7172.25.2113.9014738
Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild
Languages:
Java: 11.0.16 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 18.1.0 => 18.1.0
react-native: 0.70.1 => 0.70.1
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found
Platforms

both
Versions

Android: 11
iOS: 15
react-native-geolocation: latest
react-native: 0.70.1
react: 18.1

Description

Hello!
React native emits warnings at each startup about the NativeEventEmitter because it is missing two methods as shown in the screenshot above. These methods are explained on official react native documentation. Currently, addListener() and removeListeners() have to be added to the Native Module object before instantiating it as an Event Emitter.
Reproducible Demo

Add the library to the project and import it in any js file.

same error - temporary solution for fix need to open package @react-native-community - geolocation - js - nativeInterface.ts
and change
let nativeEventEmitter: NativeEventEmitter | null = null;

to
let nativeEventEmitter: NativeEventEmitter | null = {};

The error will disappear, but what this will lead I don't understand.

Hey, thanks for reporting the issue, I will investigate it!

Until this is fixed, another option is to hide the warning 🙈
LogBox.ignoreLogs(['new NativeEventEmitter']);

I'll look onto it this week

@michalchudziak how do i get this changes at my current package.? Do i need to update this package or shall i do this manually?

It's shipped in 3.0.2


LightGBM: average_precision earlyStopping criterion does not seem to work

Hi,
I am trying to train models using MMLSpark LightGBMClassifier, setting the "earlyStopping" criterion to "average_precision". However, it never stops until it reaches the maximum number of iterations, and in fact, based on the logs, it does not seem to be even evaluating the criterion.
For example, when I set earlyStopping to 'auc', I see something like this in the stderr log:
21/01/20 22:11:58 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:11:58 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:11:58 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:11:58 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:11:58 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: Valid auc=0.8800437895547021 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: Valid auc=0.8800437895547021 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: Valid auc=0.8800437895547021 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: Valid auc=0.8800437895547021 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: Valid auc=0.8800437895547021 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:00 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: Valid auc=0.8763379546795153 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: Valid auc=0.8763379546795153 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: Valid auc=0.8763379546795153 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: Valid auc=0.8763379546795153 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: Valid auc=0.8763379546795153 21/01/20 22:12:03 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: Valid auc=0.8427327779203404 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: Valid auc=0.8427327779203404 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: Valid auc=0.8427327779203404 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: Valid auc=0.8427327779203404 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: Valid auc=0.8427327779203404 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:06 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:08 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 22:12:08 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 22:12:08 INFO lightgbm.LightGBMClassifier: Valid auc=0.8436776167278073 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: Valid auc=0.8436776167278073 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: Valid auc=0.8436776167278073 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: Valid auc=0.8436776167278073 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: Valid auc=0.8436776167278073 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:09 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: Valid auc=0.8445991882695754 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: Valid auc=0.8445991882695754 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: Valid auc=0.8445991882695754 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: Valid auc=0.8445991882695754 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: Valid auc=0.8445991882695754 21/01/20 22:12:11 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 22:12:14 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false 21/01/20 22:12:14 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false 21/01/20 22:12:14 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false 21/01/20 22:12:14 INFO lightgbm.LightGBMClassifier: Valid auc=0.8461803153101356 21/01/20 22:12:14 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false 21/01/20 22:12:14 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false 21/01/20 22:12:14 INFO lightgbm.LightGBMClassifier: Valid auc=0.8461803153101356 21/01/20 22:12:14 INFO lightgbm.LightGBMClassifier: Valid auc=0.8461803153101356 21/01/20 22:12:14 INFO lightgbm.LightGBMClassifier: Valid auc=0.8461803153101356
But when I set earlyStopping to 'average_precision', I get this:
21/01/20 18:32:35 INFO lightgbm.LightGBMClassifier: LightGBM task generating sparse dataset with 210563 rows and 1079 columns 21/01/20 18:32:35 INFO lightgbm.LightGBMClassifier: LightGBM task generating sparse dataset with 210563 rows and 1079 columns 21/01/20 18:32:35 INFO lightgbm.LightGBMClassifier: LightGBM task generating sparse dataset with 210563 rows and 1079 columns 21/01/20 18:32:35 INFO lightgbm.LightGBMClassifier: LightGBM task generating sparse dataset with 210563 rows and 1079 columns 21/01/20 18:32:35 INFO lightgbm.LightGBMClassifier: LightGBM task generating sparse dataset with 210563 rows and 1079 columns 21/01/20 18:32:39 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:39 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:40 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:40 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:40 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 0 with result: 0 and is finished: false 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:42 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 1 with result: 0 and is finished: false 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:44 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 2 with result: 0 and is finished: false 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:46 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 3 with result: 0 and is finished: false 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:48 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 4 with result: 0 and is finished: false 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:51 INFO lightgbm.LightGBMClassifier: LightGBM task calling LGBM_BoosterUpdateOneIter 21/01/20 18:32:54 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false 21/01/20 18:32:54 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false 21/01/20 18:32:54 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false 21/01/20 18:32:54 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false 21/01/20 18:32:54 INFO lightgbm.LightGBMClassifier: LightGBM running iteration: 5 with result: 0 and is finished: false
As you can see, the metric is does not seem to be updated, and predictably, earlyStopping is never triggered.
If it helps, here is an excertp of the stdout:
[LightGBM] [Warning] metric is set=average_precision, metric=average_precision will be ignored. Current value: metric=average_precision [LightGBM] [Warning] metric is set=average_precision, metric=average_precision will be ignored. Current value: metric=average_precision [LightGBM] [Warning] metric is set=average_precision, metric=average_precision will be ignored. Current value: metric=average_precision [LightGBM] [Warning] metric is set=average_precision, metric=average_precision will be ignored. Current value: metric=average_precision [LightGBM] [Warning] metric is set=average_precision, metric=average_precision will be ignored. Current value: metric=average_precision [LightGBM] [Info] Number of positive: 4816, number of negative: 626989 [LightGBM] [Info] Number of positive: 4816, number of negative: 626989 [LightGBM] [Info] Number of positive: 4816, number of negative: 626989 [LightGBM] [Info] Number of positive: 4816, number of negative: 626989 [LightGBM] [Info] Number of positive: 4816, number of negative: 626989 [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.392420 seconds. You can set force_row_wise=trueto remove the overhead. And if memory is not enough, you can setforce_col_wise=true. [LightGBM] [Warning] Auto-choosing col-wise multi-threading, the overhead of testing was 0.433868 seconds. You can set force_col_wise=trueto remove the overhead. [LightGBM] [Warning] Auto-choosing col-wise multi-threading, the overhead of testing was 0.672994 seconds. You can setforce_col_wise=trueto remove the overhead. [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.459724 seconds. You can setforce_row_wise=trueto remove the overhead. And if memory is not enough, you can setforce_col_wise=true. [LightGBM] [Info] Total Bins 58687 [LightGBM] [Warning] Auto-choosing row-wise multi-threading, the overhead of testing was 0.593519 seconds. You can set force_row_wise=trueto remove the overhead. And if memory is not enough, you can setforce_col_wise=true. [LightGBM] [Info] Number of data points in the train set: 126387, number of used features: 778 [LightGBM] [Info] Total Bins 58687 [LightGBM] [Info] Total Bins 58687 [LightGBM] [Info] Number of data points in the train set: 126316, number of used features: 778 [LightGBM] [Info] Number of data points in the train set: 126378, number of used features: 778 [LightGBM] [Info] Total Bins 58687 [LightGBM] [Info] Total Bins 58687 [LightGBM] [Info] Number of data points in the train set: 126371, number of used features: 778 [LightGBM] [Info] Number of data points in the train set: 126353, number of used features: 778 [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.007627 -> initscore=-4.868356 [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.007624 -> initscore=-4.868836 [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.007636 -> initscore=-4.867184 [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.007574 -> initscore=-4.875429 [LightGBM] [Info] [binary:BoostFromScore]: pavg=0.007652 -> initscore=-4.865153 [LightGBM] [Info] Start training from score -4.868991 [LightGBM] [Info] Start training from score -4.868991 [LightGBM] [Info] Start training from score -4.868991 [LightGBM] [Info] Start training from score -4.868991 [LightGBM] [Info] Start training from score -4.868991 [LightGBM] [Info] Finished linking network in 880.123565 seconds [LightGBM] [Info] Finished linking network in 1351.083543 seconds [LightGBM] [Info] Finished linking network in 1363.004313 seconds [LightGBM] [Info] Finished linking network in 1352.197649 seconds [LightGBM] [Info] Finished linking network in 1360.990499 seconds
As you can see there is a warning message, but a nearly identical warning message appears when I use 'auc' instead of 'average_precision'

MMLSpark Version: 1.0.0-rc3
Spark Version 2.4.0
Spark Platform Cloudera

Hi, can somebody look into this? 'average_precision' is a very important criterion for extremely unbalanced datasets, and with this feature missing, the usefulness of LightGBM is greatly reduced for real-world problems.

@edsonaoki I think average_precision was only implemented in September 2020 based on this commit:
https://github.com/microsoft/LightGBM/commit/2870490073c537eeb3648893257be8692b63148c
the older version of lightgbm on mmlspark you are using can't recognize it.  I think this newer version I upgraded may work now:
https://github.com/Azure/mmlspark/pull/1015
but I would have to check

also, according to an email conversation following this issue
https://github.com/Azure/mmlspark/issues/1006
it seems that early stopping in mmlspark is not returning the model trained at the best iteration, but at best iteration + earlyStoppingRound later, which is not correct right now.
Copying a snippet from email conversation with user request:
“Moreover, I can calculate the best iteration value by accessing the attribute numIterations or numTotalModel in
https://mmlspark.blob.core.windows.net/docs/1.0.0-rc3/scala/index.html#com.microsoft.ml.spark.lightgbm.LightGBMBooster
”
I will need to double check this in detail later, but just thinking about this, if early stopping is triggered it will be “earlyStoppingRound” iterations later than the best iterations based on the code:
iters - bestIter(index) >= trainParams.earlyStoppingRound
https://github.com/Azure/mmlspark/blob/master/src/main/scala/com/microsoft/ml/spark/lightgbm/TrainUtils.scala#L296
But we actually want to get the model at the best iteration, not the last model trained at (best iteration) + (earlyStoppingRound later).  In that case, if the user hits the early stopping conditions, we should set the default number of iterations to be the best iteration on predict in the lightgbm model, instead of the last model trained.  So this isn’t necessarily correct: “I can calculate the best iteration value by accessing the attribute numIterations or numTotalModel” as that wasn’t exactly the best iteration, it was the best iteration + early stopping rounds later if early stopping was triggered.

note you can try the latest version, it's not an official release, but every PR has maven coordinates:
MMLSpark Build and Release Information
Maven Coordinates
com.microsoft.ml.spark:mmlspark_2.12:1.0.0-rc3-49-659b7743-SNAPSHOT
Maven Resolver
https://mmlspark.azureedge.net/maven

@edsonaoki I noticed the new average precision metric also needs to be added to the comparison function with AUC, NDCG and MAP, which I did in this PR:
https://github.com/Azure/mmlspark/pull/1034

@edsonaoki average precision metric for early stopping should be fixed now with PR:
https://github.com/Azure/mmlspark/pull/1034
the latest build on master should have the fix, including this build:
Maven Coordinates
com.microsoft.ml.spark:mmlspark_2.12:1.0.0-rc3-78-ff42a2a4-SNAPSHOT
Maven Resolver
https://mmlspark.azureedge.net/maven
please feel free to reopen this issue or open a new issue if you are still seeing problems in latest build, thank you!

@imatiach-msft  thank you very much for looking into this! I will try to use the new build asap and let you know if there are any issues.


Possibility to rotate svg?

Hi,
Thank you for this excellent tool. I'm trying to figure out a way to rotate the gerber file 90, 180 or 270 degrees but I can't seem to figure out a way to do it. Is there any way to specify a rotation as an input parameter?
I'm using D3 to draw the svg-files in the following manner:
scope.dsvg.append('svg')
.html($sce.trustAsHtml(gerberToSvg(svgObj)));
However, when using this approach the normal translation/rotation attributes do not work:
scope.dsvg.append('svg')
.html($sce.trustAsHtml(gerberToSvg(svgObj)))
.attr("rotate("+rotation+")"); //Does not have any effect
I know that this is probably not an issue with this library, but I wasn't sure where else to put it.
Thank you for sharing your excellent work!

Hey, glad you like the tool! Unfortunately, there is no way to specify rotation as a parameter to the conversion function. Additionally, the solution here isn't going to be very pretty (code-wise) because we're already using a translate + scale transform to flip the image (because Gerber y-coordinates are flipped from SVG y-coordinates).
I've never used d3, but I think I have some tips that could help you figure this out:

It looks to me that the d3 attr method takes two parameters: an attribute name and an attribute value

The attribute name is transform
The attribute value will probably need to include rotate(${rotation},${xCenter),${yCenter})

SVG doesn't allow a transform attribute on the root SVG element, so you need to select the first g child of the SVG and apply the transform to that

As mentioned above, however, that g child already has a transform attribute to flip the image, so make sure you append the rotate to the existing value rather than replacing it

You can get the xCenter and yCenter from the viewBox

e.g. for a viewBox = [100, 200, 3000, 4000], the center-point would be at x = 100 + (3000 / 2) = 1600, y = 200 + (4000 / 2) = 2200

In addition to adjusting the transform attribute of the g element, you'll need to manually change the width, height, and viewBox attributes of the root svg element to fit the layer after it is rotated

I would take the viewBox of [xMin, yMin, width, height], turn it into four points representing each of the corners of the box ([xMin, yMin, xMin + width, yMin + height]) as well as the center point from above
Rotate those points to construct a new viewBox (Google how to rotate a point about another point, there's some good Stack Overflow answers that I used while building the library)
The new width and height attributes are simply the width and height values from the new viewBox divided by 1000 with units attached

I also found this d3 transform library (maybe it can help): https://github.com/trinary/d3-transform

Closing because I didn't hear back, so I assume you figured something out. Feel free to re-open if you're still having trouble


store images from email source

store classifier output alongside

As we were just discussing, I think this is best executed as a flat file full of all images with a CSV with a line per image with columns for all the info we deem necessary (e.g. path to image file, class label from classification, camera of origin etc.).  But also probably a good idea to align this with however @tkswanson is structuring data for trainings and other purposes.  All decisions here, however, are still worth mulling/discussing in making these choices.

The csv format is currently
datetime,camera_id, image_file_name, top 1 classification, confidence
The camera_id is set to b000 until camera ids are passed through the email.
Flat folder is saved locally. Next step is to periodically sync folder with NAS at safari park network, should this be done in a separate repo?


vmcall__vm_map_foreign_lookup failed

Hello,
I have this issue when starting the basic VM application basic_cxx, to test the hyperkernel https://github.com/Bareflank/hyperkernel.
Environment:

Ubuntu 17.10 running on KVM-enabled qemu, cpu = host,
Hardware : Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz on Dell Latitude E5540 laptop.
This is the output on the serial line.

DEBUG: domain init: 0
WARNING: set_vm_control_if_allowed failed: enable_invpcidcontrol is not allowed to be set to 1
WARNING: set_vm_control_if_allowed failed: enable_xsaves_xrstorscontrol is not allowed to be set to 1
WARNING: set_vm_control_if_allowed failed: load_ia32_perf_global_ctrlcontrol is not allowed to be set to 1
WARNING: set_vm_control_if_allowed failed: load_ia32_perf_global_ctrlcontrol is not allowed to be set to 1
DEBUG: success: host os is now in a vm on vcpuid = 0

Standard Exception Caught
GSL: Precondition failure at  /hypervisor/bfvmm/include/memory_manager/map_ptr_x64.h: 924

Are you on Linux? Kernels since the spectre/meltdown debacle use PCIDs, which is the lowest 12 bits of CR3. It's likely that Windows does the same, but I'm not sure. The call to lower() checking if bits[11:0] == 0. I think you should be able to place a cr3 &= 0xFFFFFFFFFFFFF000; before the call to lower() to fix the problem

Yeah, we have not tested the hyperkernel since the Meltdown changes to Windows and Linux. We are about to do a pretty massive re-write of that code in the next couple of weeks.

Ok, Thank you for the clarification.

I'm going to close this for now. Let us know if you run into any other issues.


Add Conditional Neural Processes (CNP)

Paper: https://arxiv.org/abs/1807.01613

@veds12 Can I take this?

Sure


Improve migration guide

Improves the migration guide

shout if need help, note we are using singlequotes in js snippets (legacy " probably only left on the config/index.md))

Thanks!