404 not found spring-cloud-aws-context-1.0.xsd

I was referring  http://cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html#_messaging  for aws sns notification to add sns  functionality in my office spring project.
So i tried to setup aws sdk  xml configuration referring to this http://cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html#_amazon_sdk_configuration
Basically  i added the schema depencies as specified in the link
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/cloud/aws/context
        http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context-1.0.xsd">

Copied from example in spring aws doc:
<beans>
  <aws-context:context-credentials>
   <aws-context:simple-credentials access-key="xyz" secret-key="abc" >
  </aws-context:context-credentials>
</beans>
</beans>

But xml kept giving me error
So i tried to load schema in browser

http://www.springframework.org/schema/beans/spring-beans.xsd  - Response 200 ok  xml loaded.
http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context-1.0.xsd  - Response 404 not found.

Am I doing something wrong over here or this a bug?

It means the XSD hasn't been uploaded yet, so we can fix that. But you don't need to download the XSD to run your app, so the error must be from an XML editor or something (i.e. you can ignore it).

I'm a newbie so dont have good knowledge of how xml definitions work so hard to digest "But you don't need to download the XSD to run your app"  can you give some reference link for understanding this ?
Please notify once you upload the xsd.
Thanks

@kevinbheda Besides the 404 is there some problem preventing you from working?

@spencergibb well i had hard deadline delivery to complete aws sns functionality in half a day at work
so having very little time after i got xml editor and 404 error, i gave up and switched to aws java sdk.
But would really like to use spring-aws sdk in future.

I am closing this for now. As we have defined the spring.schemas correctly

The 1.0 XSDs have been uploaded and symlinked, e.g. http://www.springframework.org/schema/cloud/spring-cloud-aws-context.xsd. The original poster seems to have lost interest, but this should never have stopped anyone from using the schemas.

@dsyer  thanks for uploading the schema. I've been following this thread. I was a newbie at that time and did not know that i can ignore the xml editor error

@spencergibb The file located at http://www.springframework.org/schema/cloud/spring-cloud-aws-messaging.xsd references a dependent xsd which does not exist (schemaLocation="http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context-1.0.xsd"). The file is located here: http://www.springframework.org/schema/cloud/spring-cloud-aws-context.xsd.
It would be nice in IntelliJ to download the external resource, but as it is, it errors out when trying to fetch  the dependent xsd.


New Handler: eventTrackAdditional

This new handler is to be used for send an event to additional projects/libraries/instances of a single analytics provider, as well as the initial one.
Use Case
Currently, there is no way for a Angulartics user to be able to send events to more than one MixPanel project. This is useful when tracking analytics internally, as well as giving a client access to a separate account.
This new handler allows an additional libraries[Array] parameter which specifies the additional libraries you want to send any given event to.
Example Usage
angulartics-mixpanel integration:
  angulartics.waitForVendorApi('mixpanel', 500, '__loaded', function (mixpanel) {
    $analyticsProvider.registerEventTrackAdditional(function (action, properties, libraries) {

      // Track event in main library
      mixpanel.track(action, properties);

      // Loop through additional libraries, track events
      for (var i = 0; i < libraries.length; i++) {
        var library = libraries[i];
        mixpanel[library].track(action, properties);
      }
    });
  });

Called in app:
    var libraries = ['secondary'];
    $analytics.eventTrackAdditional(eventName, data, libraries);

This usage would send an event to Mixpanel's main project, as well as the  'secondary' project.

Can you point us to some documentation on how the Official mixpanel library suggests tracking for multiple projects simultaneously? These seems like a spotty edge-case to support out-of-the-box and I think it would be better to explore giving you more access to the innards of the codebase so that you can monkey-patch the desired behavior yourself.

Unless someone from @angulartics/owners disagrees I'm going to close this because I think this is a generally all-around unsupported use-case for most analytics libraries (I've never heard of anyone initializing a library more than once per). I believe it would still be possible to monkey-patch angulartics if we instead publicly expose some of the internal methods of the core.


Can't renew my license

Before creating a new bug report
Please check if there isn't a similar issue on the issue tracker or in the discussions.
Can't renew my ray license because whenever I hit renew License on the website, it gets stuck in this page.

@Thotsuya Can you try to log out of your Spatie account and logging back in?
You can retry the license renewal once you're logged in normally.

Already tried. Also with different browsers. If it is of some help. here's the console log

We are not getting any similar reports, so we think it's something on your end.
Could you try with another browser, and/or on another network?

Tried already on my phone, with a different network, on 3 different browsers and in incognito mode, but still stuck on that screen.

I've just tried in the three major browsers, and it seems to be working. My guess is that for some reason our payment provider does not accept a connection from your location.
Unfortunately there's nothing we can do about this. Did you make purchases via Paddle yet?

Its odd because I purchased the license a year ago from this location and had no issues.

There's a 403 in your screenshot, is that a Paddle resource?
Do you see stuff being loaded from the Paddle domain?

?

That's the only resource loading from paddle

it's 403, so that's being blocked. You'll have to contact Paddle I'm afraid to ask why that resource is being blocked for you.There's nothing we can do at our end to solve this...

Yes, thanks, it doesnt work on my location, asked a friend that lives in another country and it works just fine


Pyserial versioning check fails in px_uploader.py

When trying to upload the latest firmware, the upload fails with error
Error: pyserial not installed!     (Install using: sudo pip install pyserial)
However, I already have this installed, both with python 2.7 and python 3.6.
I found that the version of pyserial that I have does not use the  serial.__version__ syntax for checking the version, but rather uses serial.VERSION. Pyserial cannot be upgraded because part of my Linux system relies on this.

@Jwitty07 thanks for reporting and the information.
Could you please test if it works with the change here: #11887

The fix works. Thanks!

Cool, thanks for testing @Jwitty07.


pyOpenSSL == 0.13 won't build against newer versions (>= 1.0.2a) of OpenSSL headers / libs

There is a known issue where pyOpenSSL == 0.13 will not build against newer (>= 1.0.2a) versions of OpenSSL.
OpenSSL/crypto/crl.c:6:23: error: static declaration of 'X509_REVOKED_dup' follows non-static declaration
static X509_REVOKED * X509_REVOKED_dup(X509_REVOKED *orig) {
                      ^
/usr/local/opt/openssl/include/openssl/x509.h:751:15: note: previous declaration is here
X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev);
              ^
1 error generated.
error: command 'clang' failed with exit status 1

This was because of a change to the x509.h header that declared the X509_REVOKED_dup() function (that appears to have been merged in only after OpenSSL 1.0.1).
I ran into this issue while building Hue on Mac OS Yosemite with an upgraded version of OpenSSL.  (I'm putting together a Homebrew package.)
pyOpenSSL >= 0.14 doesn't have this problem.
Also, patching pyOpenSSL == 0.13 is pretty easy:
diff --git a/desktop/core/ext-py/pyopenssl/OpenSSL/crypto/crl.c b/desktop/core/ext-py/pyopenssl/OpenSSL/crypto/crl.c
index eec5bcb..b2fd681 100644
--- a/desktop/core/ext-py/pyopenssl/OpenSSL/crypto/crl.c
+++ b/desktop/core/ext-py/pyopenssl/OpenSSL/crypto/crl.c
@@ -3,7 +3,7 @@
 #include "crypto.h"

-static X509_REVOKED * X509_REVOKED_dup(X509_REVOKED *orig) {
+X509_REVOKED * X509_REVOKED_dup(X509_REVOKED *orig) {
     X509_REVOKED *dupe = NULL;

     dupe = X509_REVOKED_new();

I'm happy to submit a pull request!  I thought I'd check first to see if a pyOpenSSL upgrade is in the works.
Chris Stephens
Netflix, Inc

Good to know!
I assume it will still compile with < OpenSSL 1.0.2a?
@erickt tried to upgrade it recently to 0.13.1 and got some issues and went back to 0.13: https://issues.cloudera.org/browse/HUE-2814
I would say patching pyOpenSSL now is probably the best/quickest until we up to 0.14 or more!

With this change (the "static" modifier on "X509_REVOKED_dup()" removed), pyopenssl builds fine for me against OpenSSL 0.9.8y.
Submitting a pull request now.

Thx...

Hi, thanks for this hack @c6stephens. Just for the record, in case it helps somebody. Here's the steps to install pyOpenSSL==0.13 on a recent macOS version:
mkdir build
cd build
pip download pyOpenSSL==0.13
tar xzf pyOpenSSL-0.13.tar.gz
cd pyOpenSSL-0.13

From here you can either apply the patch made by @c6stephens or edit the file manually (for example: vim OpenSSL/crypto/crl.c).
pip install --no-clean .

And voilà. You now have an old pyOpenSSL version working in your python environment!


Doc Issue: extension creation in account

PHP Version

Shopware Version

Plugin Version

Actual behaviour
Docs state a wrong command https://sw-cli.fos.gg/extension_quick_start/ un der "Optional: Create the extension in the Account"
Right command: shopware-cli account producer extension create ImiDiPasswordProtectedPages platform
Expected behaviour
Extension is created in the store :-)
Steps to Reproduce?
shopware-cli extension create ImiDiPasswordProtectedPages platform

Do you mind creating a PR?

Sure - @shyim I did not find the repo / file :-)

They are here :) https://github.com/FriendsOfShopware/shopware-cli/tree/main/wiki/docs


WIP: Rewrite API calls to get data from postgres, remove getting info from…

… redis
TODO:

fix the tests
check that the API works

Hey @lbarcziova
Will this PR also resolve the 500 internal server error of the /api/copr-builds endpoint? If not I'll create a new issue.
The same error is thrown even on the local deployment but only for the /api/copr-builds/<build-id> endpoint.


[MASTER]Fix a potential OOM problem of repo creator

retest this please

Will later push again when 1.1.x merged.


Responsive Breakpoints based on actual table width

Instead of applying the responsive breakpoints to the available screen width, wouldn't it be more feasible to apply them to the actual table width instead?
Rarely ever will a table actually use the full width of a screen; after internal paddings/margins applied to surrounding containers, the table will almost always have a smaller width than the screen width. The issue compounds even further when the table is embedded inside a column, for example within a bootstrap column grid. In that case, the table width will be significantly less than the actual screen width, causing the breakpoints to be applied too late.
The FooTable script already provides such an option "useParentWidth", which when set to 'true' will use the parent container of the table as basis for its breakpoints, instead of the screen width.
I believe DataTable could benefit from something similar.

Instead of applying the responsive breakpoints to the available screen width, wouldn't it be more feasible to apply them to the actual table width instead?

Yes. It would be the parent container rather than the table itself (since the table is the element to be resized by the responsive code). I honestly can't remember why I didn't do that initially - it does seem fairly obvious.
This is something that would most certainly be worth looking into.

As far as I can tell, the change should be fairly simple. In the "_constructor" function for the "Responsive" prototype, I simply replaced the two references to "$(window).width()" with "$(dt.table().node()).parent().width()", which seems to have done the trick for me. Let me know if this is the wrong approach, but based on my tests, this would use the width of the parent container of the table as basis for the responsive breakpoints.

I think that would be the correct method for automatic hiding - but there is the special case of the class control, which will still need the window width. e.g. if a column is set not to display in a mobile display size, we'd need to know that from the window width. So now there is both the container and the window width to consider.


PostgreSQL wire protocol: type OID for text responses in prepared statements is invalid

CrateDB version
5.8.1
CrateDB setup information
1 node, basic configuration using the official Docker/Podman container.
Problem description
A text field in a response to a prepared statement is returned with the type oid of 705 ("unknown" in pg_type), rather than the expected value 25 ("text"), or the value 1043 ("varchar") which is used in a response for the same query using the simple query protocol.
Using a valid type OID is important because clients may decide to parse (and for example do apply Unicode decoding) depending on the type OID.
Steps to Reproduce

Make a Prepare/Bind/Execute query of the form "SELECT $1" with argument "foo" of type TEXT.
The RowDescription message in the response has a type OID of 705, rather than expected 25 ("text").

Actual Result
GitHub won't allow me to attach a pcap file, but attached are two Wireshark screenshots from a capture, the first showing the invalid "Type OID: 705" in a response to a P/B/E query, and the second showing the valid "Type OID: 1043" (which corresponds to "varchar" and is different from PostgreSQL which uses 25="text").

Expected Result
Expected Type OID of 25 or Type OID of 1043 as for a query using the standard query protocol.

Does the parse message include the type information?
The problem is that in select $1 there's otherwise no way to infer the type, that's why CrateDB default's to unknown.
I guess what we could do is run another type guess after we've received the value from the bind message, but not sure if that's a real improvement, given that the value was decoded using the unknown type.
Do you have a bit more context on how this came up? Is there a client where this causes problems?

Yes, the Parse message in the extended query protocol specifies the OID (it is set to 25 = "text" in this case), so it shouldn't be decoded as the unknown type.
Using select $1::text returns an OID of 1043 ("varchar"), which is different behaviour from PostgreSQL but seems OK.
Context: I am the author of a database client library that implements the PostgreSQL wire protocol and works partially with CrateDB. It uses the per-column returned OID to determine how values should be deserialized, and this CrateDB behaviour means that text fields are not deserialized correctly.

Could you run the following two commands to change the log levels, and then re-run your scenario and post the log output?
set global "logger.io.crate.action.sql" = 'TRACE';
set global "logger.io.crate.protocols.postgres" = 'TRACE';

As far as I can tell with a unit test, we also return 1043 if the parse message includes a 25 or 1043 oid as parameter type hint.
(that it returns 1043 instead of 25 may seem a bit odd, but that's because we internally use a single string type, so we loose the detail that it was input as 25)

OK, I have run your test, output below. What I wrote earlier concerning the type in the parse message was incorrect (my apologies); my library was in fact specifying Type OID = 0. With a Type OID = 25 the behaviour of CrateDB is OK (modulo 25 != 1043).
However, with the same query and Type OID = 0 in the Parse message, PostgreSQL infers that the output type is text and returns Type OID = 25 (see attached Wireshark screenshots). The difference for a client is that it will know it should apply the client encoding for OID=25 or OID=1043, but not if OID=unknown, leading to Unicode errors.

[TRACE][i.c.p.p.PostgresWireProtocol] [Jungfrau] msg=P msgLength=17 readableBytes=17
[DEBUG][i.c.a.s.Sessions         ] [Jungfrau] method=parse stmtName= query=SELECT $1 paramTypes=[undefined]
[TRACE][i.c.p.p.PostgresWireProtocol] [Jungfrau] msg=B msgLength=21 readableBytes=21
[DEBUG][i.c.a.s.Sessions         ] [Jungfrau] method=bind portalName= statementName= params=[fooblé]
[TRACE][i.c.p.p.PostgresWireProtocol] [Jungfrau] msg=D msgLength=2 readableBytes=2
[DEBUG][i.c.a.s.Sessions         ] [Jungfrau] method=describe type=P portalOrStatement=
[TRACE][i.c.p.p.PostgresWireProtocol] [Jungfrau] msg=E msgLength=5 readableBytes=5
[DEBUG][i.c.a.s.Sessions         ] [Jungfrau] method=execute portalName= maxRows=0
[TRACE][i.c.p.p.PostgresWireProtocol] [Jungfrau] msg=S msgLength=0 readableBytes=0
[TRACE][i.c.p.p.Messages         ] [Jungfrau] sentParseComplete
[TRACE][i.c.p.p.Messages         ] [Jungfrau] sentBindComplete
[TRACE][i.c.p.p.Messages         ] [Jungfrau] sentRowDescription
[TRACE][i.c.p.p.Messages         ] [Jungfrau] sentCommandComplete
[TRACE][i.c.p.p.Messages         ] [Jungfrau] sentReadyForQuery


Compile against Partition Maps that are in opam

Travis is angry because of some odd format of IMGT's Y_gen. going to let this go for now.


Update connecting.md with async/await

co.js uses ES6 generators to achieve coroutines, of which async/await is a natural version.
This simplifies the code significantly, removes reliance on co.js, removes the need to understand generators, and is compatible with current Node.js and on by default.

Don't async functions always return a promise no matter what? This would mean you'd have to, at base level, run await connect(), which is impossible (afaik) since you can't use await on base level.

@FireController1847 You're right, it's not possible to call await at top-level, and async functions always return a promise. So you have two options: you can handle promises without await, e.g. with .then(), or you can wrap them in a function whose return value you don't care about - that's what connect() is, in fact. The top-level simply calls connect() and does not need to wait for it to complete or use its return value.

@milaniliev That's the only issue I had with this PR; While this is literally an example of await and async, this example would not actually work when executing it in the real world unless all of your database code was within the connect() function.

@FireController1847 you can say that for all code using await/async it's not an issue. You also need to execute all your code in a callback with the other method.
it's pretty common to see a
(async () => {
})();

at the first level of the code, the above code work with the current version of mongodb-native
import {MongoClient} from "mongodb";
(async () => {
    const client = new MongoClient();
    const url = 'mongodb://localhost:27017/test';
    const db = await client.connect(url);
    console.log(await db.admin().listDatabases());
    await db.close();
})();

Well if we have to create a function and call it in the first place anyways, then why even use async/await to connect? It'd take more lines to do it this way than it would the .then() way.
This way
(async () => {
  try {
    var db = await (new MongoClient()).connect(url);
  } catch(e) {
    // Handle Error
  }
})();

Callback way
(new MongoClient()).connect(url).then(() => {
}).catch(e => {
  // Handle Error
});

You’re right, for this tiny example, async/await is more code. What I was
trying to demonstrate is how to use async/await, so that users can use it
in other places, or with more complex connections/queries, where the
async/await approach involves much less code and is significantly simpler
to read and comprehend, and the code is already inside a function so
there’s no need to wrap it.
I agree that this is probably the most laborious place to demonstrate
async/await use. I’m trying to find a better place for it in the docs
that’s still early enough in the docs reading path that relatively new
readers don’t have to get bogged down in .then() promise chains before
seeing there’s a cleaner, more modern way to do the same.
What do you think?
On Tue, Oct 17, 2017 at 1:03 AM FireController1847<EMAIL_ADDRESS>wrote:

Well if we have to create a function and call it in the first place
anyways, then why even use async/await to connect? It'd take more lines
to do it this way than it would the .then() way.
This way
(async () => {
try {
var db = await (new MongoClient()).connect(url);
} catch(e) {
// Handle Error
}
})();
Callback way
(new MongoClient()).connect(url).then(() => {
}).catch(e => {
// Handle Error
});
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mongodb/node-mongodb-native/pull/1531#issuecomment-337118510,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAL24WURa9S37zaMLvKNOQ7sjI8D0TCks5stDUcgaJpZM4OkMES
.

@milaniliev I think, personally, the example should be more obvious in the fact that it should be used in deep code or complex situations rather than it seeming like it's possible to use this at base level. I would say try adding some random code around it, or putting comments to specify that this is not meant to be used at base level (because for those who don't know much about async/await will most likely take it that way).

FWIW top-level async await is coming to Node soon (and has been shipped in v8 for almost a year)

The documentation is undergoing a complete rewrite, and this PR has not seen activity in over a year, so closing this.


Add support for UNICODE-1-1-UTF-7

Hi Zaahid,
I'm seeing some messages come through with the unicode-1-1-utf-7 charset. For example:
Content-Type: text/plain; charset=unicode-1-1-utf-7

This is an automatically generated Delivery Status Notification.

Delivery to the following recipients failed.

Probably coming from a very old mail server. However, it was causing the following error in mime-mail-parser which is dependent on this repo.
Notice: iconv_strlen(): Wrong charset, conversion from `UNICODE-1-1-UTF-7' to `UCS-4LE' is not allowed

Adding this charset as an alias of UTF-7 fixes the issue.

Cool, thanks @fkoyer -- released in 1.1.1

Awesome. Thanks for the quick response!


Fix nav scripting, classes and styles

Summary
This PR addresses the nav bug where an active class is added to the nav upon page load. I've changed the classes used to activate the nav. My guess is that the active class is used for some other functionality on the site/page and was being applied even if the user had not interacted with the nav.
Seen on: https://docs.mattermost.com/deploy/mobile-app-changelog.html

Confirmed that the mobile changelog page issue is resolved with this docs PR.


Title: Enhancement Request: Add Additional Filters for Ebook Website

Issue Description:
Issue Summary:
Currently, our ebook website provides filtering options for the language of reading. To enhance the user experience and make content discovery more effective, we propose the addition of additional filters.
Proposed Filters:

Programming Language: Users can filter ebooks by programming language, making it easier to find resources specific to their development needs.

Topic or Category: Users can narrow down their choices by filtering ebooks by topics or categories, such as web development, data science, machine learning, cybersecurity, etc.

Skill Level: Allow users to filter ebooks based on skill levels, including beginner, intermediate, and advanced.

4.Development Tools: Offer filters based on development tools, like IDEs (Integrated Development Environments), version control systems, or software development kits (SDKs).
Benefits:

Improved User Experience: The proposed filters will make it easier for users to discover and access relevant ebooks quickly.
Tailored Content: Users can find ebooks that match their specific interests, expertise level, or learning goals.
Efficient Browsing: Filters assist users in navigating the vast collection of ebooks more efficiently, saving time and effort.

Implementation Details:
I will work on integrating these new filters into the website's search and filtering functionality. These filters should be easily accessible to users and clearly presented on the website's interface.
Acceptance Criteria:

The filters for programming language, topic, skill level, and publication date are added to the website's search functionality.
Users can easily apply and remove filters while browsing ebooks.
The filters are tested for functionality and accuracy.
The user interface is updated to include these new filters.
The changes are thoroughly documented for users.

Additional Notes:
This enhancement will significantly benefit our users by providing a more tailored and efficient experience. It aligns with our commitment to improving the user experience on  ebook website.
Priority: High
Labels: enhancement, filtering, user experience
Please feel free to discuss and provide feedback on this proposal.

enhancements to search should go in https://github.com/EbookFoundation/free-programming-books-search


Include .errors hash in flash msg

I rule and have completed some work on Case Manager that's ready for review!
This pull request makes the following changes:
As suggested by @Kevin-Wei:
“update the flash msg to use the .errors hash in the create action on the patient's controller”
It relates to the following issue #s:

Fixes #605

Current coverage is 98.37% (diff: 100%)

Merging #623 into master will not change coverage

@@             master       #623   diff @@
==========================================
  Files            25         25
  Lines           493        493
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            485        485
  Misses            8          8
  Partials          0          0

Powered by Codecov. Last update e815e1d...1acad89

This is super helpful, thank you so much @danfowler !
Looking good to me, expect a merge tomorrow.

👍

Welcome aboard @danfowler , happy to have you!


Command line interface does not properly support paths.

The only path that seems to work is ".". If "*" or any subdirectory is used and an update is found, the script crashes.


Replace input handling in InputManager with DeviceSourceManager/DeviceInputSystem

This PR contains all of the code to replace the current input functionality inside of the InputManager with the DeviceSourceManager. As of right now, the event-based functionality as been replaced with calls to the DeviceSourceManager and the returned data is then injected into a simulated event that will work with the existing code. There are a couple of other changes to support this.
DeviceInputSystem now supports MouseWheel data and stores the PointerEvent.movementX/Y values. This second one is added to support pointer locked interactions because the actual cursor position doesn't change so the deltas need to be tracked.

Closing because this needs to be updated to 5.0.  Will create a new one for this feature

Closing because this needs to be updated to 5.0.  Will create a new one for this feature


Add DateTime support - see https://yaml.org/type/timestamp.html

This PR adds DateTime support. See see https://yaml.org/type/timestamp.html

Hi @joerichsen
Thank you for your PR. Looking at the link you provided made me think that if we support DateTime, we should probably support Date, too, don't you think? Would you want to add that?
Also, please add an entry to CHANGELOG.md
In the mean time I'll try to improve the checks. Seems like a caching problem.

Alright, the caching problem should be fixed now. Can you rebase your branch to master, please?

Sounds good - I will take a look at Date support make this PR ready to be merged :-)

Very nice. Thank you for your contribution!

I get failing tests on Elixir 1.10.x. I must have broken the check for that yesterday. Anyway I will fix that problem before publishing a new version.


include specifics of third-party package installation for scripts & venvs

Currently additional packages for scripts can be installed using setup.py + install_requires. However some packages can lead to ImportError if  not imported at script startup.
Expected

document as per below
align with custom venv setup (enterprise)

Details
additional packages should be installed as
#setup.py
...
setup(...,
      name='mymodule',
      install_requires=["package==version", ...])

On startup of your script all packages & their dependencies are installed into a local path (given by om.scripts.tmppath), from where your main module & all its imported dependencies are loaded. Then this local path is removed from Python's sys.path to avoid conflicting packages from interfering with the default installation - probably the reason for the ImportError.
There are two options:

import all dependencies in your package's __init__
add the installation path in your main module:

# mymodule.__init__
sys.path.insert(0, os.path.join(dirname(__file__), '..'))

The second option is the safe path. It is planned to do this by default along with more flexibility to prepare custom venvs on first launch.

The rationale for the default behavior of removing the package installation path (from sys.path) after the package has been loaded are the runtime workers, where many different scripts can run in parallel. Several issues:

Each script can install any number of dependencies, which may have conflicting package versions. If the runtime would  install packages into the default venv, such conflicts can cause intermittent package failures.
Removing from sys.path ensures that default packages are loaded from the default installation and not overridden by a custom package - unless the user explicitly wants that. Since typically dependent packages are imported at module load time this is not a problem in general.


Protozoid paradigm

Hello! It says to make a GitHub issue is there's a discrepancy to point out. Right now protozoid is written as concatenative - it is - but it is also message oriented too. Could it be updated to concatenative/message? Thanks!

Fixed!


Reencryption using a subkey

Summary

I want to be able to revoke and delete my old encryption subkey and use a new one.
Trying to add the subkey as a new recipient fails with Recipient already in store
gopass recipients update does not do anything either
Steps To Reproduce

Create new encryption subkey
gopass recipients add <id-of-subkey>

Expected behavior

Passwords reencrypted
Environment

OS: NixOS 19.03
OS version: Linux neon 4.14.113 #1-NixOS SMP Sat Apr 20 07:15:10 UTC 2019 x86_64 GNU/Linux
gopass Version:

gopass 1.8.5-git+HEAD go1.10.8 linux amd64
<root>     - gpg 2.2.15 - git 2.21.0 -   fs 0.1.0
Available Crypto Backends: gpgcli, openpgp, plain, xc
Available RCS Backends: gitcli, noop
Available Storage Backends: fs, inmem

Installation method: nix

Yes, I agree that our handling of subkeys is ... poor.
This must be fixed eventually.

I worked around that problem with gopass recipients add 08E33517FEDD43BCEF2A4C4037F4E8B81DE452FE, but I have loads of problems with failing to decrypt now. I will open a separate issue when I figured out what is happening...
Thought to share that option here though


The result is strange

Hi! Thanks for your great work.
I try to run the code in win10, and use gcc -shared -o libwarping.dll warping.c instead of compile.sh. I modified lib = cdll.LoadLibrary("external/forward_warping/libwarping.so") to lib = cdll.LoadLibrary("external/forward_warping/libwarping.dll"). Then I run depthstillation.py but obtain strange result like that (dCOCO/im1):

which is quite different from the result in supply. material. Did I miss something?

Hi,
wow, that's interesting :sweat_smile: I guess there is something occurring at low level... probably when passing NumPy data to the C wrapper? Not sure when, but I will try to reproduce this issue on Windows.
For now, I would suggest running it in a Linux environment.

Got it. I run the code in wsl2.0 and find it works well.


Prime Factors - The inline function frac( ) is not interpreted correctly

While developing the solution for the exercise, I noticed that when I used the frac( ) function, the result was not correct when extracting the decimal part of a decfloat34 variable.
Here is the first version of the full code I'm trying, which is not passing the unit testing on the platform:
CLASS zcl_prime_factors DEFINITION PUBLIC FINAL CREATE PUBLIC .
  PUBLIC SECTION.
    TYPES integertab TYPE STANDARD TABLE OF i WITH EMPTY KEY.
    METHODS factors
      IMPORTING
        input         TYPE int8
      RETURNING
        VALUE(result) TYPE integertab.

  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.

CLASS zcl_prime_factors IMPLEMENTATION.
  METHOD factors.
    DATA(lv_number) = input.
    DATA(lv_factor) = 2.
    WHILE lv_number <> 1.
      DATA(lv_result) = CONV decfloat34( lv_number / lv_factor ).
      IF frac( CONV decfloat34( lv_number / lv_factor ) ) = 0.
        lv_number = lv_number / lv_factor.
        INSERT lv_factor INTO TABLE result.
        CONTINUE.
      ENDIF.
      lv_factor = lv_factor + 1.
    ENDWHILE.
  ENDMETHOD.
ENDCLASS.

If I replace the frac( ) line with a classic MOD, it works correctly.
*      IF frac( CONV decfloat34( lv_number / lv_factor ) ) = 0.
      IF lv_number MOD lv_factor = 0.

I have found that if I split the statement into two parts, frac() still fails:
*      IF frac( CONV decfloat34( lv_number / lv_factor ) ) = 0.
      DATA(lv_result) = CONV decfloat34( lv_number / lv_factor ).
      IF frac( lv_result ) = 0.

Either code variant passes the tests in a Netweaver 7.4 system.

thanks reproduced as
  DATA lv_result TYPE decfloat34.
  lv_result = 7 / 2.
  WRITE frac( lv_result ).

https://github.com/abaplint/transpiler/pull/705

@aferngas try again,

@larshp, It worked perfectly with:
IF frac( CONV decfloat34( lv_number / lv_factor ) ) = 0.


.lagoon.yml config file contents are cleared

Describe the bug
The lagoon-cli config file ~/.lagoon.yml contents are deleted, except for the current property. This results in the following error when trying to run Lagoon CLI commands.
Unable to refresh token, you may need to run `lagoon login` first, error was couldn't connect to :: dial tcp :0: connect: can't assign requested address
To Reproduce
Not sure. When the error started occurring I started using lagoon-cli in a Docker container I had available to me and put off checking what the issue was until after a restart of the host machine.
Expected behavior
Lagoon CLI commands return expected results.
Desktop (please complete the following information):

OS: Mac OS Big Sur

Additional context
Lagoon version: lagoon 0.10.0 (go version go1.13.15 linux/amd64)

Hi @GROwen this has been tracked here #162
There is a PR to fix it, just working to release it.


WIP: Jgaye/261 handle sizing of take action pages

For #261
@thansidwell I applied the max-width and margin for the 3 pages under 'Take action' section.
I did not touch the 'Overview' and 'Methodology' page has they have 2 columns and already have a padding on mobile view.
I'm not sure if it would be a better practice to create a <TakeActionContent> Component to reuse for those pages, instead of adding it for each page. Not sure who to tag that would have an opinion on that. Can you tag someone @thansidwell ?
How to reproduce
Got to /transform-property, /take-action-overview or /get-access, and manipulate the screen to see the padding for wide screen, or mobile size screen

Thanks @jgaye. Maybe @paulhchoi has opinions on best practices here?


log errors when project download fails (refs #156)

Save exception details to the log when download fails.
Refs #156.

could you please also add a check in test_download_failure() once #182 is merged, to check that job.failure_log_file contains the exception?

Closed, as we decided to merge this with #182.


Terminology Updates

Summary
Following the v6.0 release, where Account Settings options were split between 2 dialogs: Account Settings and Settings, the v6.2 release will further adjust documentation terminology to make a clear distinction between Profile & Security settings versus Channels-specific settings.
Updated references to Account Settings and Main Menu to match the latest product interface, and updated links to product documentation pages.
Ticket Link
https://community-daily.mattermost.com/boards/workspace/g4k9s1f953n4bytz5f9sz9orer/bm1j7wcrrspoymkjermbydid97h/vcwyy7xnhh4qits4thrb3pte53e/7e84xw9oxy9ozca7g7ejyhyacmy
Related Tickets
https://github.com/mattermost/docs/pull/5286

@cwarnermm I'm not sure I'm the right one to review this. Could you please ask someone with more knowledge about the product UI?

Absolutely, @hanzei. Thanks!


Web - Chat - Reason after 'Requested money for' is not shown for description that starts with <

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to staging dot on web chrome
Click on new chat and enter email of any user
Click on request money and on the description type any sentence that should start with < (There should be no gap between < and sentence). Request the money.
On the LHN , notice that on the new request money page chat,  it displays 'Requested money for' , but the text that we inputted earlier is missing after 'for' word

Expected Result:
Reason after 'Requested money for' should be shown for description that starts with <
Actual Result:
Reason after 'Requested money for' is not shown for description that starts with <
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: yes
Reproducible in production?: n/a
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/5a89a7c8-c58c-407c-90ec-e0b22606107c
https://github.com/Expensify/App/assets/93399543/7af12685-4356-4bb3-a39c-c5644b8a6c60
Expensify/Expensify Issue URL:
Issue reported by: @priya-zha
**Slack conversation:**https://expensify.slack.com/archives/C049HHMV9SM/p1685794745289299
View all open jobs on GitHub

@michaelhaxhiu  Done the debugging for this, currently the API is returning incorrect text from the backend. This needs to be fixed in the API itself.

@sethraj14 description is missing in email as well

Taking a look!

No c+ here, as the fix is on the server side

The PR caused a regression on staging, updated PR to fix it here

This is done!

@Gonals I'm the external reporter for this bug. Thanks.

Paid now.


⚠ ClamAV has degraded performance

In 66e5f98, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 481 ms

Resolved: ClamAV performance has improved in 7341dad.


Update wanted ebooks list

This adds some novels by James Stephens to the wanted ebooks list, as discussed recently on the mailing list.

Thanks!


build: attempt to restore android cross-compilation

When building on Windows, the check would incorrectly fail, resulting in
the inability to cross-compile from Windows.

@swift-ci please test

sigh this doesn't actually fix the issue :-(


Left nav hot fix

Handful of tweeks to the left Nav

Improved base layers  all on all off behavior
Footer button overlap fixed
Adding spacer fixed width icon to right buttons

Coverage decreased (-0.1%) to 70.804% when pulling e35631e7aac7b6dc4d90998d76097b2ee3fa514d on leftNavHotFix into d00878b0e04a1885a5a7a8306b3114e0b3fbe4f8 on master.


Asset Data Manipulation

Submitter:
Magnus Redeker (Fraunhofer IOSB-INA)
Target Users:

Machine Operator
Factory Manager
Autnomous Optimazion Service
etc.

Description:

The Target User connects to the AAS of the Asset of interest
The Target User connects to the Asset Interface Description Submodel describing which operation modes (semanticId) of the Asset can be selected through which interfaces with which security requirements
The Target User selects an operation mode for the asset
The Target User configures a client of the relevant Asset interface fullfilling the security requirements
-for example: client for Asset's OPC UA server with Namespace and NodeID
The Target User deploys the configured client that connects to the Asset interface and changes the Asset's operation mode

Technologies of interest:

HTTPS/REST
MQTT
Apache Kafka
OPC UA: Standard, PubSub, ReverseConnect
ProfiBus
ProfiNet
ModBus
etc.

Gaps:
Currently, no "omniscient" register like the Asset Interface Description exists
Links:
None

The use case was discussed within the working group.


Add moola integration

Description
Add moola intergration:

Add ability to do the following actions inside celo terminal (should act the same as moola cli, reference source code here)

Deposit: deposit.tsx
Withdraw: withdraw.tsx
Borrow: borrow.tsx
Repay: repay.tsx
Set auto repay health factor: auto-repay.tsx
delegate: credit-delegation-delegator.tsx
borrow from delegation and repay for delegation: credit-delegation-borrower.tsx
liquidity swap: liquidity-swap.tsx

Other components:

Display user account status: account-status.tsx
Display reserve status: reserve-status.tsx
Display user reserve status: user-reserve-status.tsx

Also added cREAL (It seems there is another pending PR that is intended to add cREAL, I can remove the changes related to this if you think that's better!)

TODO:

Add tests: still need to add tests, should be done soon, I thought maybe I could open the PR first and get some feedback and advice / suggestions for anything that needs to be updated while adding tests so the process might speed up a little bit 😃

Thanks for the PR.
For cREAL, there is an open PR: https://github.com/zviadm/celoterminal/pull/261, with an issue associated with it. I think this one will fail because of that too.
For rest of it: Since it is only touching stuff in apps/moola and doesn't require any new dependencies, I am happy to accept and merge. Unless there is something specific that you want me to review, I can do that too. In general, I am happy to accept most changes inside apps/moola pretty quickly especially when no new dependencies are introduced.

I think this all looks good, if tests pass this should auto-merge and i will release new beta build soon after 👍
Thanks again for adding the app.


Function to estimate noise level

Several functions that provide uncertainty quantification rely on the estimated noise standard deviation from the experimental data. It would be good to isolate the noise estimation into a function.
The function estimnoise could provide several methods for noise estimation:

Standard deviation across scans of a 2D dataset.
Standard deviation of imaginary part of 1D signal (after phasing).
Standard deviation of (1D signal - smoothed signal), using a Savitzky-Golay filter or a lowpass filter.
Standard deviation of 1D signal from a provided model signal.

This could be a private function, or it could be public.

Currently there is a public function noiselevel which estimates the noise standard deviation. This function should be expanded to include the options listed above.

The second option in your list:

Standard deviation of imaginary part of 1D signal (after phasing).
does not need any dedicated implementation as it can be (probably more intuitively) obtained as follows:

[Vre,Vim] = correctphase(V);
std_re = noiselevel(Vre);
std_im = noiselevel(Vim);


await TransferUtility.Upload hangs

Describe the bug
I have the following code:
//Get region
            var selectedRegion = RegionEndpoint.GetBySystemName(AWSRegion);
            var client = new AmazonS3Client(selectedRegion);
            var fileTransferUtility = new TransferUtility(client);

            try
            {
                TransferUtilityUploadRequest transferUtilityUploadRequest = new TransferUtilityUploadRequest()
                {
                    BucketName = bucketName,
                    FilePath = filePath
                };
                await fileTransferUtility.UploadAsync(transferUtilityUploadRequest);
            }
            catch
            {
            }

When using await, the first file uploads but then hangs - there is no return, exception, or action.
Expected Behavior
I expect the code to continue running so it can process the remaining files that should be uploaded.  If there is a problem, an error should be reported.
Current Behavior
Nothing is reported back - the code stops responding.
Reproduction Steps
See above with the code snippet.  This is a similar experience that was reported and was closed in 2020:
https://github.com/aws/aws-sdk-net/issues/1648
Possible Solution
No response
Additional Information/Context
No response
AWS .NET SDK and/or Package version used
AWSSDK.S3 <IP_ADDRESS>
Targeted .NET Platform
.NET Framework 4.8
Operating System and version
Windows 10

Could you share more details about the files / part size you're using? I tested locally with a few 10MB files (created using fsutil - For /L %i in (1,1,1000) do fsutil file createnew D%i.tmp 10485760) and this code worked for me:
AWSConfigs.LoggingConfig.LogMetrics = true;
AWSConfigs.LoggingConfig.LogTo = LoggingOptions.Console;
AWSConfigs.LoggingConfig.LogResponses = ResponseLoggingOption.Always;

var client = new AmazonS3Client();
var fileTransferUtility = new TransferUtility(client);

foreach (var file in Directory.GetFiles(@"C:\Temp"))
{
    var transferUtilityUploadRequest = new TransferUtilityUploadRequest
    {
        BucketName = "my-test-bucket",
        FilePath = file,
        Key = Guid.NewGuid().ToString("D"),
        PartSize = 1048576
    };

    await fileTransferUtility.UploadAsync(transferUtilityUploadRequest);
}

I added the logging statements at the beginning so I could see the requests going to S3.

Daniel,Thank you for your example - I found out where I went wrong.  When calling the routine, I was using .Wait() on the end where I should have been using await at the front.
I'll close this item and thank you again for your prompt response (a much better experience than when posting questions on repost.aws)
Thor
On Wednesday, January 4, 2023 at 09:03:58 AM CST, Daniel Pinheiro @.***> wrote:
Could you share more details about the files / part size you're using? I tested locally with a few 10MB files (created using fsutil - For /L %i in (1,1,1000) do fsutil file createnew D%i.tmp 10485760) and this code worked for me:
AWSConfigs.LoggingConfig.LogMetrics = true;
AWSConfigs.LoggingConfig.LogTo = LoggingOptions.Console;
AWSConfigs.LoggingConfig.LogResponses = ResponseLoggingOption.Always;
var client = new AmazonS3Client();
var fileTransferUtility = new TransferUtility(client);
foreach (var file in Directory.GetFiles(@"C:\Temp"))
{
var transferUtilityUploadRequest = new TransferUtilityUploadRequest
{
BucketName = "my-test-bucket",
FilePath = file,
Key = Guid.NewGuid().ToString("D"),
PartSize = 1048576
};
await fileTransferUtility.UploadAsync(transferUtilityUploadRequest);

}
I added the logging statements at the beginning so I could see the requests going to S3.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Method to return the currency name

Can a method be added to return the currency name
$currency->getName();

Is there a reason this doesn't exist? If not I'll open a PR.

Yes, the value object Currency is not a repository for currency information. You can interact with the included currency array yourself if needed.


Get-CsOnlineUser, what is the correct way to find users based on policies (PS 3.1.1)

Hi,
I tried to found our users based on the meeting policies, using the following PS commands:
Get-CsOnlineUser -Filter "TeamsMeetingPolicy -eq '*RestrictedAnonymousAccess*'" | ft sipa*
Get-CsOnlineUser -Filter { TeamsMeetingPolicy -eq "RestrictedAnonymousAccess" } | ft sipa*

But both of them returns empty results.
When I run the following command:
Get-CsOnlineUser -Filter { TeamsMeetingPolicy -ne $null } | ft sipa*, TeamsMeetingPolicy

I'm getting a list of users and their Teams Meeting Policy is marked as:
TeamsMeetingPolicy
------------------
RestrictedAnonymousAccess
RestrictedAnonymousAccess
RestrictedAnonymousAccess
RestrictedAnonymousAccess

Anybody have an idea what is the correct filter to find users based on their policies?

Hi @Petri-X we have fixed this issue in TPM 4.0.1

This command used to work for me in Feb 2022 and not working any longer. I never understand why Microsoft makes things harder?   Can anyone advise how can I make this command working?
#List of all @mydomain.gov.au domain users who do NOT have FederationAndPICDefault policy
Get-CsOnlineUser -Filter {UserPrincipalName -like<EMAIL_ADDRESS>-and Enabled -eq $True -and ExternalAccessPolicy -ne "FederationAndPICDefault"} | Select UserPrincipalName, SipAddress, Alias, ExternalAccessPolicy, TeamsUpgradeEffectiveMode, Description, City, Office, PostalCode, StreetAddress, Phone | Export-Csv C:\TEMP\AllUsersWhoDoNotHaveFederationandPICDefault_27052022.csv

Replied on the other ticket. Thanks


Picture Capture at the press of a button

My Setup:
-Arduino UNO R3
-4 Arducam OV5642 5MP Plus cameras
-Arducam Multi-camera adapter.
I managed to get the panoramic cam working, but it requires Arducam host to take pictures. Is there a way to do this with a push of a button? Or when a certain if statement is true?
I'm currently running "Arducam_Mini_5MP_Plus_4CAM_Capture2SD"
Any suggestions will be appreciated.

@headofled
Hi,
Of course,  you can control the camera take picture by a button.
You can refer to this below code:
keyState= digitalRead(KEY);
if(!keyState)  {
isCaptureFlag = true;
while(!digitalRead(KEY));
}
if(isCaptureFlag){
myCAM.flush_fifo();
myCAM.clear_fifo_flag();
//Start capture
myCAM.start_capture();
Serial.println(F("start capture."));
total_time = millis();
flash_time =millis();
while ( !myCAM.get_bit(ARDUCHIP_TRIG, CAP_DONE_MASK));
length = myCAM.read_fifo_length();
if( length < 0x3FFFFF){
myCAM.flush_fifo();
myCAM.clear_fifo_flag();
//Start capture
myCAM.start_capture();
while ( !myCAM.get_bit(ARDUCHIP_TRIG, CAP_DONE_MASK));
Serial.println(F("CAM Capture Done."));
total_time = millis() - total_time;
}else{
Serial.println(F("CAM Capture Done."));
total_time = millis() - total_time;
}
total_time = millis();
read_fifo_burst();
total_time = millis() - total_time;
//Clear the capture done flag
myCAM.clear_fifo_flag();
isCaptureFlag = false;
}
}
Let us know if you need more help.
Regards,
ArduCAM support team.

@supprot
I implemented the code you suggested, but I'm getting errors that read:
Arduino: 1.8.3 (Windows 8.1), Board: "Arduino/Genuino Uno"
C:\Users\Herlihyi\Documents\Arduino\Camera_with_switch\Camera_with_switch.ino: In function 'void myCAMSaveToSDFile(ArduCAM)':
Camera_with_switch:181: error: 'keyState' was not declared in this scope
keyState=digitalRead(KEY);
^
Camera_with_switch:181: error: 'KEY' was not declared in this scope
keyState=digitalRead(KEY);
                  ^

Camera_with_switch:182: error: 'keystate' was not declared in this scope
if(!keystate)
 ^

Camera_with_switch:184: error: 'isCaptureFlag' was not declared in this scope
isCaptureFlag = true;
^
Camera_with_switch:187: error: 'isCaptureFlag' was not declared in this scope
if(isCaptureFlag)
^

Camera_with_switch:196: error: 'total_time' was not declared in this scope
total_time = millis();
^
Camera_with_switch:197: error: 'flash_time' was not declared in this scope
flash_time = millis();
^
Camera_with_switch:205: error: 'myCam' was not declared in this scope
myCam.flush_fifo();
^
Camera_with_switch:211: error: 'total' was not declared in this scope
total_time = millis() - total time;
                       ^

Camera_with_switch:219: error: 'read_fifo_burst' was not declared in this scope
read_fifo_burst();
             ^

Camera_with_switch:222: error: 'myCam' was not declared in this scope
myCam.clear_fifo_flag();
^
C:\Users\Herlihyi\Documents\Arduino\Camera_with_switch\Camera_with_switch.ino: At global scope:
Camera_with_switch:226: error: expected unqualified-id before 'if'
if (length >= MAX_FIFO_SIZE) //8M
^
exit status 1
'keyState' was not declared in this scope
I'm assuming that maybe I didn't put the lines in the right place?
If you want, I will copy and paste the code here.

@headofled
Hi,
The code on the post just wants you to refer to the button  to trigger taking picture. If you want to get the complete code, please refer to the below link:
https://github.com/ArduCAM/Arduino/blob/master/ArduCAM/examples/mini/ArduCAM_Mini_5MP_Plus_short_movie_clip/ArduCAM_Mini_5MP_Plus_short_movie_clip.ino
Let us know if you need more help.
Regards,
ArduCAM support team.

@supprot
Ok, but where do I connect the leads of the switch?

@supprot
Also, (2 Things)
1.I tried to use the code found here:
https://github.com/sumotoy/ArduCAM/blob/master/examples/mini/ArduCAM_Mini_5MP_4Cams_TimeElapse2SD_LowPower/ArduCAM_Mini_5MP_4Cams_TimeElapse2SD_LowPower.ino
but when I run it in ArduCam host, the serial monitor keeps saying that OV5642 is not detected despite the fact that I clearly have them plugged into the adapter board.

I uploaded the code that you gave me and it seems to work, however when I try to view the pictures on the SD card, I get a message that says that the file is empty.

Solutions/suggestions would be appreciated.

@headofled
Hi,
Sorry for reply you so late.
About the switch, we defined the KEY to GPIO2, In our adapter board,
you can use the button directly.
For SD card,please try to format the sd card in fat32.
Please try it again and let us know if you need more help.
Regards,
ArduCAM support team.

@supprot
Where exactly is the GPIO2 on the ArduCam 4 Cameras Adapter Board?
And can you send me a link to fat32?

@headofled
Hi,
Please refer to this picture we attached for you

@supprot
So I got the code to work. The video saves to the SD card.
But for some reason, the video is refusing to playback. I get this error:

Is there something I should install in order to playback the videos?

@supprot
Is there a way to tweak the code you gave me to take photos instead of videos?

@headofled
Hi,
Please use the The storm video to try.

@UCTRONICS
Storm video?

@ headofled
Hi,
If you want to take photos and save it to your SD card, please refer to this link：
https://github.com/ArduCAM/Arduino/blob/master/ArduCAM/examples/mini/ArduCAM_Mini_5MP_Plus_Multi_Capture2SD/ArduCAM_Mini_5MP_Plus_Multi_Capture2SD.ino
Regards,

@UCTRONICS
The code works, but it's only taking pictures on 1 camera. I need it to take pictures with all 4 simultaneously.

@UCTRONICS
Also, I need it to take pictures with the press of a button (see pictures above), rather than taking series of pictures at timed intervals

@headofled
Hi,
If you want to take picture with 4 cameras, you can refer to this demo
https://github.com/ArduCAM/Arduino/blob/master/ArduCAM/examples/mini/ArduCAM_Mini_4CAM_Capture2SD/ArduCAM_Mini_4CAM_Capture2SD.ino
https://github.com/ArduCAM/Arduino/blob/master/ArduCAM/examples/mini/ArduCAM_Mini_5MP_Plus_4CAM_Capture2SD/ArduCAM_Mini_5MP_Plus_4CAM_Capture2SD.ino
But you should add button driver by yourself.About button driver, just refer to codes
we attached for you before.
Let us know if you need more help.
Regards.

@UCTRONICS
So I changed around the code, mainly adding:
#define KEY 2
pinMode(KEY, INPUT);
as well as changing one of the void loops to:
void loop() {
if(!digitalRead(KEY)){
if(CAM1_EXIST)
myCAMSaveToSDFile(myCAM1);
if(CAM2_EXIST)
myCAMSaveToSDFile(myCAM2);
if(CAM3_EXIST)
myCAMSaveToSDFile(myCAM3);
if(CAM4_EXIST)
myCAMSaveToSDFile(myCAM4);
delay(5000);
}
However, and I have no idea if this has anything to do with the code, or the cameras, but the pictures are coming out corrupted, or an improper file, or are not saving entirely. What should I do?

@headofled
Hi,
Please try this code we attached for you.
The "pinMode(KEY, INPUT)"; should be written in the void setup(){}.
#define KEY 2
bool keyState;
void setup()
{
.......
......
pinMode(KEY, INPUT);
}
void loop()
{
keyState = digitalRead(KEY);
if (!keyState)  {
while (!digitalRead(KEY)); //waitting the key release
if (CAM1_EXIST)
myCAMSaveToSDFile(myCAM1);
if (CAM2_EXIST)
myCAMSaveToSDFile(myCAM2);
if (CAM3_EXIST)
myCAMSaveToSDFile(myCAM3);
if (CAM4_EXIST)
myCAMSaveToSDFile(myCAM4);
}
}

Hello, I want to know If you can take a picture and save it inside your computer instead of an SD card

@Seaatm
Yes, if you want to take a picture and save it inside computer, you should use our Host V2 application.
https://github.com/ArduCAM/Arduino/tree/master/ArduCAM/examples/host_app/ArduCAM_Host_V2.0_Windows

@UCTRONICS I tried and it worked, But is there a way to save the image inside your computer without using the Host V2 app?

@Seaatm
The Arduino UNO board communicates with the PC only through the serial port. If you don't use our host v2 gui, you can use other application which supports communicate through the serial port.


pull request for e2e test at 12/18/2016 13:26:22

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


helm install traefik fails: not found

The helm chart tarball https://helm.traefik.io/traefik/traefik-10.3.4.tgz listed in the Traefik installation instructions no longer exists at that URL
https://github.com/epinio/docs/blob/1a250297f2ed24b763893c4bbb5572da41bffd4e/docs/installation/install_epinio.md?plain=1#L35-L42

@nunix This is how we install Traefik in CI on EKS, there is no version resolution so we use the latest one there. https://github.com/epinio/epinio/blob/main/acceptance/install/suite_test.go#L61

Documentation was updated.


fixed recs for player profile

so the top corneres are sharp but not the bottom ones?

yea, so it doesn't look inconsistent when we add the flags


pickBy() doesn't take the number 0 as a key

I noticed a strange behaviour with pickBy(), maybe it was intended, but I need clarification.
I have a function that take a props object and returns a partial object via pickBy.
If any key of this object is a number, it still works but not for 0.
If i want to have that key, i need to pass it as a string '0'.
const objVariation =(props)=> ({
  main: objVariationError[props.main],
  alert: {
    alertValue: "I'm alerted"
  },
});

const objVariationError = {
  0: {
    mainValue: "I'm 0 and I don't work... As intended"
  },
  1: {
    mainValue: "Hello I'm 1"
  },
  2: {
   mainValue: "Hello I'm 2"
  }
};

const transform = props => pickBy((val, key) => props[key], objVariation(props));

transform({main : 0, alert:true}); // => doesn't work, output is {"alert": {"alertValue": "I'm alerted"}}
transform({main : '0', alert:true}); // => works, ouput is {"alert": {"alertValue": "I'm alerted"}, "main": {"mainValue": "I'm 0 and I don't work... As intended"}}

It looks like it's a very specific case but I'll go over why in a bit.
You can check the REPL here : pickByError.
You might say that I can still pass it as a string and everything's good, but I work with a very large app with React, my props object has propTypes where it is set as number...
Any idea about that ?

My bad, when pickBy test it, it returns the property if it's truthy, 0 is not so the correct way to do it is :
const transform = props => pickBy((val, key) => props[key] != null, objVariation(props));

I'm closing this...


Add isort hook fot the pre-commit tool

This change provides the sorting of imports alphabetically and groups them by section and type.

Keep formatters before the linters so that you won't get double errors. Let linters check files after the formatting changes happen.

Keep formatters before the linters so that you won't get double errors. Let linters check files after the formatting changes happen.

Yes, it makes sense. Thank you.


mongodb: add new dependencies for bundled enterprise modules

Description of changes
Closes 281416

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

3 packages failed to build:

mongodb (mongodb-6_0)
mongodb-4_4
mongodb-5_0

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

1 package failed to build:

mongodb (mongodb-6_0)

2 packages built:

mongodb-4_4
mongodb-5_0

I don't believe this failure is a result of these changes.
nix log /nix/store/nlv9px9m8vlhd0d3ckbrkzfp3yncx80v-mongodb-6.0.12.drv
In file included from src/mongo/db/query/analyze_regex.cpp:34:
src/mongo/util/ctype.h:75:15: error: found ‘:’ in nested-name-specifier, expected ‘::’
   75 | enum ClassBit : uint16_t {
      |               ^
      |               ::
src/mongo/util/ctype.h:75:6: error: ‘ClassBit’ has not been declared
   75 | enum ClassBit : uint16_t {
      |      ^~~~~~~~
src/mongo/util/ctype.h:75:26: error: expected unqualified-id before ‘{’ token
   75 | enum ClassBit : uint16_t {
      |                          ^
src/mongo/util/ctype.h:91:11: error: ‘uint16_t’ does not name a type
   91 | constexpr uint16_t calculateClassBits(unsigned char c) {
      |           ^~~~~~~~

I don't believe this failure is a result of these changes.
nix log /nix/store/nlv9px9m8vlhd0d3ckbrkzfp3yncx80v-mongodb-6.0.12.drv
In file included from src/mongo/db/query/analyze_regex.cpp:34:
src/mongo/util/ctype.h:75:15: error: found ‘:’ in nested-name-specifier, expected ‘::’
   75 | enum ClassBit : uint16_t {
      |               ^
      |               ::
src/mongo/util/ctype.h:75:6: error: ‘ClassBit’ has not been declared
   75 | enum ClassBit : uint16_t {
      |      ^~~~~~~~
src/mongo/util/ctype.h:75:26: error: expected unqualified-id before ‘{’ token
   75 | enum ClassBit : uint16_t {
      |                          ^
src/mongo/util/ctype.h:91:11: error: ‘uint16_t’ does not name a type
   91 | constexpr uint16_t calculateClassBits(unsigned char c) {
      |           ^~~~~~~~

Agree, it also fails on master branch.

Yup, just saw that while debugging
hugh@noir /data/nixpkgs master
❯ git pull; git status; git rev-parse HEAD
Already up to date.
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
9cd077109869bcc37eefe263b877c865181b6bba

       > build/nixos/mongo/db/query/analyze_regex.o failed: Error 1

src/mongo/util/ctype.h:75:15: error: found ‘:’ in nested-name-specifier, expected ‘::’
   75 | enum ClassBit : uint16_t {
      |               ^
      |               ::
src/mongo/util/ctype.h:75:6: error: ‘ClassBit’ has not been declared
   75 | enum ClassBit : uint16_t {
      |      ^~~~~~~~
src/mongo/util/ctype.h:75:26: error: expected unqualified-id before ‘{’ token
   75 | enum ClassBit : uint16_t {
      |                          ^
src/mongo/util/ctype.h:91:11: error: ‘uint16_t’ does not name a type
   91 | constexpr uint16_t calculateClassBits(unsigned char c) {
      |           ^~~~~~~~
src/mongo/util/ctype.h:70:1: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   69 | #include <array>
  +++ |+#include <cstdint>
   70 |
src/mongo/util/ctype.h: In lambda function:
src/mongo/util/ctype.h:124:16: error: ‘uint16_t’ was not declared in this scope
  124 |     std::array<uint16_t, 256> arr{};
      |                ^~~~~~~~
src/mongo/util/ctype.h:124:16: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
src/mongo/util/ctype.h:124:29: error: template argument 1 is invalid
  124 |     std::array<uint16_t, 256> arr{};
      |                             ^
src/mongo/util/ctype.h:125:32: error: request for member ‘size’ in ‘arr’, which is of non-class type ‘int’
  125 |     for (size_t i = 0; i < arr.size(); ++i)
      |                                ^~~~
src/mongo/util/ctype.h:126:12: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
  126 |         arr[i] = calculateClassBits(i);
      |            ^
src/mongo/util/ctype.h:126:18: error: ‘calculateClassBits’ was not declared in this scope
  126 |         arr[i] = calculateClassBits(i);
      |                  ^~~~~~~~~~~~~~~~~~
src/mongo/util/ctype.h: At global scope:
src/mongo/util/ctype.h:128:2: error: ‘mongo::ctype::detail::<lambda()>’ called in a constant expression
  123 | constexpr auto chClassTable = [] {
      |                               ~~~~
  124 |     std::array<uint16_t, 256> arr{};
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  125 |     for (size_t i = 0; i < arr.size(); ++i)
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  126 |         arr[i] = calculateClassBits(i);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  127 |     return arr;
      |     ~~~~~~~~~~~
  128 | }();
      | ~^~
src/mongo/util/ctype.h:123:31: note: ‘mongo::ctype::detail::<lambda()>’ is not usable as a ‘constexpr’ function because:
  123 | constexpr auto chClassTable = [] {
      |                               ^
src/mongo/util/ctype.h:125:5: error: ‘goto’ is not a constant expression
  125 |     for (size_t i = 0; i < arr.size(); ++i)
      |     ^~~
src/mongo/util/ctype.h:130:33: error: ‘uint16_t’ has not been declared
  130 | constexpr bool isMember(char c, uint16_t mask) {
      |                                 ^~~~~~~~
src/mongo/util/ctype.h: In function ‘constexpr bool mongo::ctype::detail::isMember(char, int)’:
src/mongo/util/ctype.h:131:24: error: invalid types ‘const int[unsigned char]’ for array subscript
  131 |     return chClassTable[static_cast<unsigned char>(c)] & mask;
      |                        ^
src/mongo/util/ctype.h: In lambda function:
src/mongo/util/ctype.h:138:30: error: ‘kLower’ was not declared in this scope
  138 |         arr[i] = isMember(i, kLower) ? 'A' + (i - 'a') : i;
      |                              ^~~~~~

This breaks aarch64-darwin as net-snmp is only available on linux.

Opened #284605


Design flow for creating a collection and uploading a dataset

@pdugan20 commented on Wed Jun 10 2020
This page will probably share some common components with the existing project management page (where fields are common and remain editable post-creation).
It should allow for:

Naming of a project
Ability to add a dataset to the project
Accommodate whatever other input is required on behalf of users

@pdugan20 commented on Wed Jun 10 2020
@liaprins-czi I'm imagining we'd want to keep this page as simple as possible and push secondary actions like adding additional users to a project in subsequent post-creation steps? Maybe a step like an empty-state checklist which allows users to complete follow-up actions?

@liaprins-czi commented on Wed Jun 10 2020
Yeah, I think keeping it as simple as possible, too! Here is something I had posted in #364 but I think it's more relevant for this issue:
This is what I've been exploring a bit in sketches earlier this week. My initial thought was that when a user is creating a new project, it could make sense to walk them through what they can add/required to add (dataset(s), project-level metadata, and settings for when the publish it like private vs public, etc). But when I sketched that out I wasn't so sure. Especially since user can just add a dataset, and we pull out the project-level fields from it if they're included. I think the overarching goal of getting it to be as easy and quick for the user as possible (to prevent them from dropping off from contributing their data) will help to decide. I also want to see how many project-level fields end up making it into our initial schema (which should be finalized Jun 12).
As far as "adding additional users to a project": for MVP it was just going to be allowing one user to go into the create/manage state of a project (same user that created the project has to edit it). They can get a link for a private project they made, to share with others and they'll be able to see a preview of the project page, cxg visualizations, etc. But if you think it's important for multiple users to access a project's manage state for MVP, we can push back on that initial decision.

@pdugan20 commented on Thu Jul 30 2020
OK have some early work around creating a project and uploading a dataset here: https://www.figma.com/file/ldTQ4rQu0wYR6fSXJtjDhf/project-management?node-id=0%3A1
...and will plan to discuss at our design review later today. I'm hoping to gain more clarity around:

required fields (aside from project name)
whether or not a user can upload one or more dataset files as a part of a single project
whether or not we plan on associating each project with a user id in order to show a list of a users projects that they have created (and can edit)
does a project need to exist before a dataset can be uploaded?
are we supporting: a. file uploading directly in the browser, b. copying a link to a dropbox file or other data service, c. both?

I believe we also have a list of minimum columns each dataset must contain, correct? So we'll probably want to create some robust error states here that explain to a user how to modify and reupload their dataset if it doesn't meet our minimum requirements.

@pdugan20 - Per the September 29 refinement for self-publication:

Add Links to the Create Collection flow. The schema supports the following fields:

Additionally, submitters may include project-level metadata inside their dataset. This information is used to populate project metadata in Corpora when the submitted dataset is used to create a new project.

Field name
Description

project_name
String

project_description
Longer description of the project.

project_links
List of links associated with the project.

Much of the project metadata is links. Each link is a dictionary with keys "link_url", "link_name", and "link_type".
"link_name" gives the text that should be displayed for the link. "link_type" is one of PROTOCOL, RAW_DATA,
SUMMARY, or OTHER. Exactly one link should be of type SUMMARY.

Add attestation to the Create Collection flow for private Collections

Figma: https://www.figma.com/file/g0L0CfVzRc8r6HQa4NH1wJ/Collections?node-id=0%3A1


ionic framework(v1) app not support in android 7

My app is working in marshmallows but I try to install the app in nougat android version(7) it displayed the 504 error message after downloading is completed from google play store could you please help for me asap?
Please find the screenshot below

Hello, thanks for using Ionic! Unfortunately I cannot reproduce this issue. I tried installing https://play.google.com/store/apps/details?id=com.pacificalabs.pacifica&hl=en, which is an Ionic app on my Nexus 6 running Android 7.1.1 and its working fine. Its possible that you are using a cordova plugin that is not supported on Android 7.1.1 or simply an issue with that phone. If you google Google play error 504, that error usually means you have a network issue with your phone, or an issue with your google account.

The following plugins only am using in my mobile app but am still facing the same issue
cordova-plugin-console
cordova-plugin-device
cordova-plugin-inappbrowser
cordova-plugin-splashscreen
cordova-plugin-statusbar
cordova-plugin-whitelist
cordova-plugin-x-toast
ionic-plugin-keyboard
I have google and try to resolve the 504 error
i have tried the below methods but nothing happened :(
Method 1:

Go to Settings>> Application Manager or Apps>> Open “All” apps
From the list of apps find Google Play store >>Clear Data and Clear Cache
From the list of apps find Google Service Framework >> Clear Data and Clear Cache
Restart your mobile phone
Now install or update app from Google Play Store

Method 2:

Go to system settings>> Accounts>>Google>>remove your Gmail account
Now from settings>>Apps>>All> Force stop, Clear data and cache for Google Play Store, Google Service Framework and Download Manager (like in method 1)
Restart your android
Now again go to settings>> Accounts>>Google>>Add your gmail account
Then accept all the Google terms and setup Google settings
Rerun Google Play Store and update or install your app.

Is your problem resolved because I have the same issue?

I am having the same issue with ionic 2 and ionic 3 app as well. It doesnt support android 7

@rishiankush The above issue was fixed for me
Reason for issue for me : i have built apk file and zip align the apk then upload in play store but that app not support in android 7 and finally i have done updated my android studio as well sdk version in my machine then take build my app without zipalign  i directly upload in play store and it works for me 👍

@sahayarex sorry i am using the v1 👎

Even the basic starter app is not working on android 7 but working fine in android 6


Allow waiting for selected ports

Changing HostPortWaitStrategy like this doesn't seem right, but I'm not familiar with the code.
I logged the issue (https://github.com/testcontainers/testcontainers-java/issues/2227) instead.


[REFACTOR] 🔢 simplify email service to use standard SMTP library

Description
Currently, the email service has conditional logic to handle different SMTP servers based on the environment. This adds unnecessary complexity and branching paths in the code.
Changes needed:

Remove environment-specific conditional checks in SendEmail method
Use Go's standard smtp library for all environments
Configure SMTP server details via environment variables:

SMTP_HOST
SMTP_PORT
SMTP_USERNAME (if needed)
SMTP_PASSWORD (if needed)
EMAIL_FROM

Expected behavior:

Single code path for all environments
SMTP server details configured through .env file
Production environment will use production SMTP server configured via env vars
Local development can still use Mailhog by setting appropriate local SMTP values

Anything else?

Remove sendEmailUsingMailHog function
Refactor SendEmail to use a single SMTP implementation
Update documentation for required environment variables

Are you willing to submit PR?
No

completed by #21


Android example giving wrong results on Samsung Galaxy A3

I've built the android demo and installed the same APK on 3 phones: Samsung S6, HTC one M9, and Samsung Galaxy A3.
On the Galaxy A3 only the results are wrong; whereas the other phones give sensible results for various things in the office (photocopier, monitor, laptop etc) the A3 produces much lower scores and suggests things like oscillascope and nematode.
Additionally, the preview window is small and skewed. Suspecting an odd resolution might have confused things, I forced it to 640*480 but the problem persists.
I do not know whether this is unique to the A3 .

Hi, would you mind posting a screenshot and the adb log please? Also you can grab the actual image being classified by turning on SAVE_BITMAP in TensorFlowImageListener.java, which could be helpful to see.

Also, what version of Android is your A3 running?

I'm afraid the phones are at work; I'll provide the requested details on Monday.
Sorry.

I believe this is the requested information.
Screenshot (For comparison, most other phones would say photocopier)

Preview image, which seems rather bad!

adb log
TensorFlow_A3.txt
I cannot promise that the preview image matches the same run through the network as the screenshot.

Samsung Galaxy A3 comes by default with Android 4.4.4.
And it seems that the ImageUtils.convertYUV420ToARGB8888 function that makes the conversion from raw camera output to RGB format isn't compatible with versions of Android <= 5.1.1 due to a bug on android
See issues #4911 and #306
So the solution is to update Android to +5.1.1, or adapt YUV2RGB function to this version of Android.

Thank you for the information.


Translated comment tags to spanish

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thank you for opening this pull request.
This is a standard message notifying you that we’ve reviewed your pull request and have decided not to merge it.
Reason: You have replaced important terms and words during translation, for example, removing the reference to  and  tags.
We would welcome future pull requests from you.
Thank you and happy coding!


TextEncoder.encode() does not properly handle out-of-order low surrogate

When an out of order surrogate is encountered it should be replaced with the replacement character (utf-8 bytes 0xef 0xbf 0xbd).
Example:
console.log((new TextEncoder()).encode("\uDC00"));
result:
Uint8Array(3) [ 237, 176, 128 ]
expected:
Uint8Array(3) [ 239, 191, 189 ]

Funny, I just discovered a Chrome bug: typing "\uDC00" into the Chrome console causes Chrome to crash. It seems Chrome doesn't like incomplete surrogates just as much as this library, lol: https://bugs.chromium.org/p/chromium/issues/detail?id=1092264


NewRelic instrumentation

Instrumentation thru NewRelic::Agent::Datastores to make Cassandra visible as database.
Statistics are grouped by statement type + table name.
CQL visible only for slow queries.
Fixed config param name. (newrelic vs newrelic_enabled)

@shaqonline, if you rebase against master the specs should pass. I'd be delighted to have this functionality once the tests are green.

@pezra one test is still red

That is weird. It was some sort of order/eventual consistency issue, i think. I restarted the test which will likely solve this particular instance of the problem. I'll keep my eye out for that issue and if it shows up again i'll hunt it down for reals.

@shaqonline, rather than injecting the instrumentation directly into the keyspace, how about making instances of Keyspace observable? Keyspace could call #changed immediately after the query execution and pass the query and elapsed time to all observers. That would provide a generic way to logging, app perf tracking, etc to gain access to this information.

@pezra, see how newrelic_rpm works for ActiveRecord and Redis.
How about Notifications?

Using notifications would be a good generic solution.
Regarding how it is done with active record,  etc, is that out of necessity or convenience?

@pezra necessity if we want to use NewRelic official method, NewRelic::Agent::Datastores.wrap block. But we can try to create our implementation of that and just report metrics without yield'ing.

Merged! Thanks for the improvement


Channel stop receiving

I am currently using version 0.1.1 and have around 7 unlimited channels for receiving data. All works fine, but after 12 hours the channels stop receiving. I can see that the .send() method is called, but it's not ending up at the receiving side, no exception is thrown or something else that hints to a stop. At this time around 25k events are handled without issue.
I am not exactly sure if this is an actual jox issue, but does that timespan ring a bell? Is there something within the code were this could happen?
Thanks,
Sven

Hm that's very suspicious. No, there's nothing time-based in the code. I know it's hard to reproduce, but the Channel.toString dumps a lot of internal representation information, which might help to debug such issues.
Is there some specific pattern of production/consumption that you are using, that might help to reproduce the problem?

Let me try the Channel.toString. I have also added a check for isClosedForReceive() - was only checking isClosedForSend so far.
Using jox more or less out of the examples with a little wrapper around it - see:
https://github.com/svenkubiak/mangooio/blob/feature/8.5.0/mangooio-core/src/main/java/io/mangoo/async/EventBusHandler.java

Indeed this seems like rather ordinary usage
In addition to the testsuite (which includes benchmarks sending many messages), I'm also running a simple two-thread send-receive loop locally, so far<PHONE_NUMBER>0 messages have successfully been sent & received ;)
If you'd have some more information, that would be great.

I am quite sure that this is caused by the virtual thread that my receive() call is wrapped in. Looks like this is not intended for a blocking call. I have made some adjustments in my code and going to run further tests. But I am absolutely convince that this it not related to jox at all.

Thanks for the update :) I did run an overnight test as well, but didn't find anything.
Maybe you are experiencing thread pinning, as part of your blocking call? This can be traced by adding -Djdk.tracePinnedThreads=full (see e.g. https://todd.ginsberg.com/post/java/virtual-thread-pinning/)

While I was quite certain that switching from a virtual thread to a platform thread would fix my issue, unfortunately it didn't. Stopped receiving after around 12 hours as before. While I was further investigating this I noticed that in the doReceive() method there is a check regarding the segment id
if (segment.getId() != id)
If this would match equal, then doReceive would end up in an infinite loop not receiving. What would be the situations when this could happen?
As this is not mentioned in the readme, your recommendation for have a constant received would be to put the receive() in an infinite loop, right? So something like this:
Thread.ofVirtual().start(() -> {
    try {
        while(true) {
                var payload = channel.receive();
                //handle payload
        }
    } catch (Exception e) { //NOSONAR
        ...
    }
});

I have adjusted my implementation again and doing additional tests now.

If you are referring to this line, on the next iteration it will re-read the receiveSegment value, and it should already be move forward. This might only happen if there are concurrent receives happening - which I don't think is the case here (when another recevie() moves forward the segment). The segment is moved forward in findAndMoveForward.
Yes, the loop looks right. Maybe try catching & logging a Throwable, so that e.g. OutOfMemoryError is also discovered? Or better, installing an uncaught exception handler.
Did you try capturing the stack trace?

If you are referring to this line, on the next iteration it will re-read the receiveSegment value, and it should already be move forward. This might only happen if there are concurrent receives happening - which I don't think is the case here (when another recevie() moves forward the segment). The segment is moved forward in findAndMoveForward.
Yes, the loop looks right. Maybe try catching & logging a Throwable, so that e.g. OutOfMemoryError is also discovered? Or better, installing an uncaught exception handler.
Did you try capturing the stack trace?

Yes, I did. And after a lot of digging, it turned out to be a a OutOfMemoryError Exception in an InfluxDB connection which was part of the what the. That was one of the stranges behaviours I have seen. The whole application kept behaving normal in some parts.
Thanks for your support!

Ah, good to hear it's resolved :)


Roll Engine from 3d597393aa24 to a60e8c3c62db (3 revisions)

https://github.com/flutter/engine/compare/3d597393aa24...a60e8c3c62db
2022-03-15<EMAIL_ADDRESS>Switch the renderer to impeller based on the presence of a command line flag. (flutter/engine#31959)
2022-03-15<EMAIL_ADDRESS>Roll Skia from 9565f4bd902b to a48a3c9417c0 (3 revisions) (flutter/engine#32044)
2022-03-15<EMAIL_ADDRESS>[macOS] fix text selection when there's composing text  (flutter/engine#31936)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


SFX Command Binding

Description of the new feature/enhancement
To improve gamification and making the use of (the) terminal(s) even more engaging, I'd like to propose a "SFX Command Binding" feature.
For me, it started with this tweet: https://twitter.com/timmkrause/status/1263009434231549952
A colleague wrote "Wait, I still need to push it." and I wrote back "You should play https://www.youtube.com/watch?v=vCadcBR95oU while pushing." and while writing I just thought how cool would it be, to let a small piece of audio be played when git push is being executed.
This should be configurable in a dynamic manner of course.
Maybe something like this:
{
    "profiles": [
      {
        "guid": "{guid}",
        "name": "PowerShell Core",
        "source": "Windows.Terminal.PowershellCore",
        "fontFace": "Cascadia Code PL",
        "sfxCommandBindings": [
            { "command": "git push", "soundEffect": "ms-appdata:///roaming/salt-n-pepa-push-it-short.mp3" }
        ]
      }
    ]
}

What do you think?? :)

Architecturally, the actual text/command that is being run is the shell's job, not the terminal. So, we wouldn't be able to introduce something like "command": "git push".
That said, a workaround we've been thinking of is #3799. You can think of this like "paste X text" and define X in the keybinding for the settings.
This could be an extension to that, and I do love the thought of audio clips when I do a git push haha.

Thanks for the request!
Thinking about this more... I believe it would be best if the CLI application itself handled playing sounds. Here's why!
First, the terminal can't actually tell that you've run a command.  Now, that might be enough to conclusively identify that you're doing a git push, but you could also be using vim and running g (go to, nowhere), i (insert), t push ... Only the shell knows what those characters mean!
Second, if you write a script that runs git push and then plays a sound, you get a lot more control! Imagine you wanted to play a different sound if the push failed. Terminal has no way of knowing :smile: but your script absolutely does.

Sounds reasonable. Do you know a „global hook“ for PS Core to realize this?


Added support for ninja build system

Hi,
many large projects are switching to (or at least are supporting) the ninja build system. The ninja build system has the advantage of a much smaller overhead than classical make files. For more information see: https://ninja-build.org/
This PR adds support in ament for building ROS2 with ninja. It does so by adding a new build option called --ninja. This options set a ninja_build flag which is then queried afterwards. If set to true cmake is passed the option -G Ninja and instead of make the ninja build tool is called.
Please note that I'm not that familiar with python. So if anything of this PR looks like bad style or should be done in another way please tell me.
Edit: With ccache, gcc and gold linker I get a compile time for ROS2 of about 12 minutes compared to 14 minutes with make (also witch ccache, gcc and gold linker)

Please see #127 for a different PR adding support for XCode which will likely interfere with this.

With the last commit I changed to variable name to use_ninja and the build parameter to --use-ninja.

Thank you for the update. I committed some additional minor changes and triggered some CI builds (not using --use-ninja though since our build slaves don't have it installed):

All green :rocket: Thanks!


NullReferenceException on Dispose of DefaultHttpResponseMessage

https://github.com/FubarDevelopment/restsharp.portable/blob/c2bc6b0ce43414a287e7c5ccbdf0dfae046e6875/RestSharp.Portable.HttpClient.Shared/Impl/Http/DefaultHttpResponseMessage.cs
NullReferenceException is thrown on dispose.
To reproduce error use RestClient.Execute while internet is disabled.
Problem lies in fact that ResponseMessage is null when there is no internet connection.

Closed, because I haven't encountered the problem after the 3.1 release.


Refresh command in Azure doesn't work when expanding a node

Repro:

Have a server in Azure where you don't have the DNS name resolving (example: SQL Managed Instance server)
Expand it, will time out after 1min
Try to do other things in the meantime (e.g. refresh a list). It's not possible!

This is a larger issue with the data explorer that I'm going to tackle in December.
We can either do temporary work around or go and fix the core data explorer code.

Please wait and fix properly in a future release 😄 It can wait until then.

Closing as issue not reproducible anymore


Move chart configuration options to a separate dialog.

This change takes the existing optionsControl HTMLElement on the right side of the chart, and renders it inside the dialog instead. This seemed to be the easiest solution, since trying to separate out the options logic was creating sync issues between the underlying chart options and the options UI.
Also replaced the Hide Chart button with a Show Table button, and added a min height to the chart so it always opens at a reasonable size.

This is part of our planned UX changes for charts.

Correction, these were supposed to be limited to notebooks only. I'll close this PR for now, and reopen after that refactor.


Discovery plugin fails on Chromecasts with '.' in names

Home Assistant release (hass --version):
0.25.2
Python release (python3 --version):
Python 3.5.2
Component/platform:
Discovery / Cast
Description of problem:
Discovery plugin fails on Chromecasts with '.' in names.
Expected:
No errors
Problem-relevant configuration.yaml entries and steps to reproduce:
discovery:
media_player:
  platform: cast

Traceback (if applicable):
16-08-11 02:57:09 INFO (Thread-2) [netdisco.service] Scanning
Exception in thread zeroconf-ServiceBrowser__googlecast._tcp.local.:
 Has been fixed in their code but no new release has been made after the fix.

Same problem here, mine are named "audio.livingroom".

@Landrash is right. This will be fixed once zeroconf 0.17.7 gets released.

zeroconf 0.17,7 was released Feb 1st. Is this still an issue?

Closing this issue as it is old. You can re-open it if you are able to reproduce it running the latest version.

@balloob Yep :/ I have this since updating to 0.40(i've been using HomeAssistant since ~v0.30 and have had the same devices at home since a Chromecast i addedd around ~v0.38)
Mar 16 21:01:22 home.lab hass[16730]: Exception in thread zeroconf-ServiceBrowser__http._tcp.local.:
Mar 16 21:01:22 home.lab hass[16730]: Traceback (most recent call last):
Mar 16 21:01:22 home.lab hass[16730]: File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
Mar 16 21:01:22 home.lab hass[16730]: self.run()
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1170, in run
Mar 16 21:01:22 home.lab hass[16730]: """A Reaper is used by this module to remove cache entries that
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1118, in <lambda>
Mar 16 21:01:22 home.lab hass[16730]: self.condition.notify()
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1033, in fire
Mar 16 21:01:22 home.lab hass[16730]: if entry.__eq__(cached_entry):
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1091, in on_change
Mar 16 21:01:22 home.lab hass[16730]: def run(self):
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/netdisco/discoverables/__init__.py", line 87, in add_service
Mar 16 21:01:22 home.lab hass[16730]: service = zconf.get_service_info(typ, name)
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1580, in get_service_info
Mar 16 21:01:22 home.lab hass[16730]: browser.cancel()
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1191, in __init__
Mar 16 21:01:22 home.lab hass[16730]: class Signal(object):
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 246, in service_type_name
Mar 16 21:01:22 home.lab hass[16730]: zeroconf.BadTypeInNameException: Unexpected characters 'lab.'
Mar 16 21:01:22 home.lab hass[16730]: Exception in thread zeroconf-ServiceBrowser__http._tcp.local.:
Mar 16 21:01:22 home.lab hass[16730]: Traceback (most recent call last):
Mar 16 21:01:22 home.lab hass[16730]: File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
Mar 16 21:01:22 home.lab hass[16730]: self.run()
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1170, in run
Mar 16 21:01:22 home.lab hass[16730]: """A Reaper is used by this module to remove cache entries that
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1118, in <lambda>
Mar 16 21:01:22 home.lab hass[16730]: self.condition.notify()
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1033, in fire
Mar 16 21:01:22 home.lab hass[16730]: if entry.__eq__(cached_entry):
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1091, in on_change
Mar 16 21:01:22 home.lab hass[16730]: def run(self):
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/netdisco/discoverables/__init__.py", line 87, in add_service
Mar 16 21:01:22 home.lab hass[16730]: service = zconf.get_service_info(typ, name)
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1580, in get_service_info
Mar 16 21:01:22 home.lab hass[16730]: browser.cancel()
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 1191, in __init__
Mar 16 21:01:22 home.lab hass[16730]: class Signal(object):
Mar 16 21:01:22 home.lab hass[16730]: File "/home/homeassistant/.homeassistant/deps/zeroconf.py", line 246, in service_type_name
Mar 16 21:01:22 home.lab hass[16730]: zeroconf.BadTypeInNameException: Unexpected characters 'lab.'

(i use the .lab TLD for my home domain, with DNS names attributed to devices on DHCP with hostname.lab, so that lab. can be basically anything)

Please report this as a bug for the zeroconf lib.


association-select ignores placeholder value

In rc7 of aurelia-orm, the association-select ignores a custom placeholder value. i have set following properties, but in the final html code always '- select a value -' gets rendered as placeholder.
 <association-select property="name"                                     value.bind="currentStudioId"                                     repository.bind="studioRepo"                                     selectablePlaceholder="true"                                     criteria.bind='{where:{isAvailable:{"==":true}}}'                                     placeholderText="Select Studio">                 </association-select>

see https://github.com/SpoonX/aurelia-orm/pull/213


Middleware - pass extra parameter to resolver

Hello. I would like to create middleware that handles mongodb transaction with it's creation and also handle it's rejection appropriately with try-catch block, so it's not necessary to implement same logic within every resolver. But how to pass session handle to resolver from middleware?
In Koa, I can just add custom property to koa Context, e.g. ctx.mongodbSession, and then use it in controller.
Any advice how to achieve something similar with type-graphql middleware? Thanks.

In middlewares you have access to the ResolverData which has context prop - it's shared beteween all resolvers just like in koa, so you can put there your session and access it in  resolver using @Ctx() decorator.
https://typegraphql.ml/docs/authorization.html#recipes

@19majkel94 thanks. Solved.