Adding new NWB class

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

11 of 113 (9.73%)  changed or added relevant lines in 3 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-1.9%) to 59.214%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pynapple/io/folder.py
0
1
0.0%

pynapple/io/misc.py
1
2
50.0%

pynapple/io/file.py
10
110
9.09%

Files with Coverage Reduction
New Missed Lines
%

pynapple/io/neurosuite.py
1
16.63%

Totals

Change from base Build<PHONE_NUMBER>:
-1.9%

Covered Lines:
1807

Relevant Lines:
2967

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

11 of 113 (9.73%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-2.3%) to 58.743%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pynapple/io/folder.py
0
1
0.0%

pynapple/io/misc.py
1
2
50.0%

pynapple/io/file.py
10
110
9.09%

Totals

Change from base Build<PHONE_NUMBER>:
-2.3%

Covered Lines:
1809

Relevant Lines:
2968

💛  - Coveralls


Patch 1

Also move the error logging into the if block, because Confluent schema-registry produces excessive number of log messages, if it wants to access a schema for a topic key/value which is not defined to have a schema, which should be ignored.
Example (real topic name replaced by a placeholder):
 2021-02-04T05:51:16.226 level=ERROR logger=io.confluent.rest.exceptions.DebuggableExceptionMapper thread="qtp1105628551-27" msg="Request Failed with exception " io.confluent.rest.exceptions.RestNotFoundException: Subject '{topicName}-key' not found.         at io.confluent.kafka.schemaregistry.rest.exceptions.Errors.subjectNotFoundException(Errors.java:69)         at io.confluent.kafka.schemaregistry.storage.KafkaSchemaRegistry.validateAndGetSchema(KafkaSchemaRegistry.java:913)         at io.confluent.kafka.schemaregistry.rest.resources.SubjectVersionsResource.getSchemaByVersion(SubjectVersionsResource.java:116)

It looks like @AdiWehrli hasn't signed our Contributor License Agreement, yet.

The purpose of a CLA is to ensure that the guardian of a project's outputs has the necessary ownership or grants of rights over all contributions to allow them to distribute under the chosen licence.
Wikipedia

You can read and sign our full Contributor License Agreement here.
Once you've signed reply with [clabot:check] to prove it.
Appreciation of efforts,
clabot


iOS App is force closing once the compressVideo method is called

I have a picked video from the image picker. Now once I call LightCompressor.compressVideo following error appears and force closes the app:
`*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[AVAssetReader startReading] cannot be called again after reading has already started'
*** First throw call stack:
(0x19d2b186c 0x1b22cac50 0x1a4df1fe8 0x10498f040 0x10498f4c0 0x10498f570 0x19cea424c 0x19cea5db0 0x19cead10c 0x19ceadc5c 0x19ceb7d78 0x1e8d5d814 0x1e8d6476c)
libc++abi.dylib: terminating with uncaught exception of type NSException

thread #61, queue = 'processingQueue1', stop reason = signal SIGABRT
frame #0: 0x00000001cb201414 libsystem_kernel.dylib__pthread_kill + 8 libsystem_kernel.dylib__pthread_kill:
->  0x1cb201414 <+8>:  b.lo   0x1cb201434               ; <+40>
0x1cb201418 <+12>: pacibsp
0x1cb20141c <+16>: stp    x29, x30, [sp, #-0x10]!
0x1cb201420 <+20>: mov    x29, sp
Target 0: (Runner) stopped.
Lost connection to device.`

hey @AbedElazizShe thanks for the update. It seems like the issue has been fixed within the iOS side. Have you been already able to export those fixes to the flutter package? Thanks again for your effort.
Kind regards,
Chris


Loop function logic

The main loop function needs to have logic

i.e wait for start command/exit?


directConnect not working with FF 52+ and Protractor 5.1.1 (unable to parse new session response)

Protractor 5.1.1 is using version 3.0.1 of the Selenium JS bindings. When using directConnect: true Protractor will control geckodriver directly. Unfortunately, this version of the JS bindings is no longer compatible with the latest geckodriver (See https://github.com/mozilla/geckodriver/issues/555 https://github.com/mozilla/geckodriver/issues/529 and https://github.com/SeleniumHQ/selenium/issues/3607).
The solution is to use selenium standalone when testing with Firefox. The latest version of the selenium standalone server is compatible with Protractor's selenium JS bindings and with geckodriver. You can update and launch the standalone server with
webdriver-manager update
webdriver-manager start

and set seleniumAddress: http://localhost:4444. For an example using selenium standalone, see protractor cookbook. Note Protractor 5.1.1 requires Selenium 3 or greater and Firefox 52 or greater.
In the meantime, directConnect: true will not work with Firefox until the external issues are fixed and Protractor's selenium-webdriver version is updated.

There are various issues talking about Firefox that are somewhat out of date or confusing, so I thought I'd collect the latest info in a new issue.
Protractor 5.1.1 requires the latest Selenium 3 and only works with Firefox 52 or higher (you might be able to get Firefox < 47 working with marionette: false, I'm not sure). You need to use a selenium standalone server, directConnect: true will not work due to the above external issues. This is the case for geckodriver 0.15. Firefox 52, and Protractor 5.1.1, but may change with future versions.
Geckodriver is maturing and getting closer to the spec, so I'm betting directConnect will work again in future Protractor releases with updated selenium-webdriver JS bindings.

Thanks for collecting this; super helpful when dealing with issues that may have different symptoms but all reflect problems with FF

Thanks also for collecting this. As far as I (naively) see there seem to be no relevant external bugs open anymore, so the "only" thing missing would Protractor updating it's Selenium JS Bindings to match the requirements of geckodriver...?

That's correct. And Protractor does currently work with selenium-webdriver 3.3.0. However, the tricky part is bringing all the typings up to date. Unfortunately, we don't really have the time to maintain the selenium-webdriver typings, but assuming they're accurate and up to date the next steps would be:

Update webdriver-js-extender to latest selenium and types and do a release
Update Protractor to latest webdriver-js-extender
Update @types/selenium-webdriver and selenium-webdriver to latest

The hardest part is making sure the selenium-webdriver types are accurate with selenium-webdriver 3.4. But if some enterprising individual wanted to take that on (see how to contribute to DefinitelyTyped), then we could easily update Protractor and resolve this issue.

Update @types/selenium-webdriver and selenium-webdriver to latest
PR to update selenium-webdriver https://github.com/angular/protractor/pull/4265

making sure the selenium-webdriver types are accurate with selenium-webdriver 3.4.0,

how can we test this requirement?

If you update to the latest selenium and typings, tsc compiles without errors, and npm test passes then it should be good.

@heathkit
None of those things are accurate.

The tsc errors on compile (on a fresh npm install) are actually masked by a
crash on Jasmine (easy enough to fix, but fixing it involves bumping a few
more types).
Once Jasmine and cohorts are updated, there are promise and Control flow
errors.
These errors are already there, in part; they just aren’t noticed because
of the Jasmine crash.
Once fixed, you will start seeing type issues. Then, once you update
Selenium, there are some big breaking changes in the API which are not
reflected in the @types. Notably, there are methods which were deprecated
and pulled from Promises, which affect every type that returns a promise.
This is part of the purgatory I found myself in, as regards the FF issue.
On May 14, 2017 7:38 PM, "heathkit"<EMAIL_ADDRESS>wrote:

If you update to the latest selenium and typings, tsc compiles without
errors, and npm test passes then it should be good.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/angular/protractor/issues/4253#issuecomment-301347807,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAfDgTEGvP4_S0x0yvQGnaVi8sEMiZavks5r55CCgaJpZM4NMxrW
.

I've run into this as well; the typings are a bit crazy. @seanmay I'd be happy to try and pair/work through these with you because i'd love to have a clean(er) typing story moving forward.

Thanks for laying out the issues in detail, @seanmay. As you can see, it's a lot of work, and unfortunately some of it is just updating types for Jasmine and selenium-webdriver. With ControlFlow deprecation coming (https://github.com/SeleniumHQ/selenium/issues/2969), there's lots of changes to WebDriver Promises, which are used extensively throughout Protractor.
This is more work than the current maintainer has time for, so contributions are very welcome!

[19:55:07] I/status - selenium standalone version available: 3.4.0 [last]
[19:55:07] I/status - chromedriver version available: 2.29 [last]
[19:55:07] I/status - geckodriver version available: v0.16.1 [last]
But 'unable to parse' is still reproducible.
Any ETA for this?

I have the same issue, with the same version as in the last comment.
Do anybody know where is the problem?

Been beating my head against this for the past day and a half. Hopefully this gets fixed soon.

Tracking this: https://github.com/digitalbazaar/bedrock-protractor/issues/16

Currently trying to make protractor work with the latest geckodriver, the issue is reproducible.

Protractor 5.1.2
Selenium 3.5.3
GeckoDriver 0.19.0

I have the issue with both true and false for the directConnect option.

@Supamiu
That is doesn't work with directConnect is a known issue. The path is not correctly set in Protractor. This has been fixed on Github by @cnishina , but not in a new release.
I tried to run it locally without directConnect and Firefox 55 and GeckoDriver 0.19.0 + Selenium 3.5.3 and 3.4.0 and they all work. Can you provide more info about your config / script and so on to verify where the problem is?

Sure, here is the configuration I'm using to start protractor with firefox:
exports.config = {
    framework: 'jasmine',
    directConnect: false,
    allScriptsTimeout: 360000,
    specs: ['tests/**/*.spec.js'],
    // I'm using multiCapabilities because at the end I'll have chrome and IE in this array
    multiCapabilities: [
        {
            browserName: 'firefox'
        }
    ],
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 360000
    },
    localSeleniumStandaloneOpts: {
        jvmArgs: ["-Dwebdriver.gecko.driver=node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.19.0.exe"]
    }
};

The error occurs something like 10min after I started the tests, protractor opens an empty browser, making no navigation. Here are the logs of this error:
I/launcher - Running 1 instances of WebDriver
I/local - Starting selenium standalone server...
I/local - Selenium standalone server started at http://<IP_ADDRESS>:61237/wd/hub
E/launcher - Unable to parse new session response:
E/launcher - WebDriverError: Unable to parse new session response:
    at doSend.then.response (<project dir>\protractor\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:445:19)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
From: Task: WebDriver.createSession()
    at Function.createSession (<project dir>\protractor\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:777:24)
    at Function.createSession (<project dir>\protractor\node_modules\protractor\node_modules\selenium-webdriver\firefox\index.js:640:55)
    at createDriver (<project dir>\protractor\node_modules\protractor\node_modules\selenium-webdriver\index.js:167:33)
    at Builder.build (<project dir>\protractor\node_modules\protractor\node_modules\selenium-webdriver\index.js:629:16)
    at Local.getNewDriver (<project dir>\protractor\node_modules\protractor\built\driverProviders\driverProvider.js:53:33)
    at Runner.createBrowser (<project dir>\protractor\node_modules\protractor\built\runner.js:195:43)
    at q.then.then (<project dir>\protractor\node_modules\protractor\built\runner.js:339:29)
    at _fulfilled (<project dir>\protractor\node_modules\protractor\node_modules\q\q.js:834:54)
    at self.promiseDispatch.done (<project dir>\protractor\node_modules\protractor\node_modules\q\q.js:863:30)
    at Promise.promise.promiseDispatch (<project dir>\protractor\node_modules\protractor\node_modules\q\q.js:796:13)
E/launcher - Process exited with error code 199

Process finished with exit code 199

Downgrading back to version 0.18.0 doesn't fix the issue, just as a workaround?

I don't know how to downgrade the geckodriver to 0.18.0 using webdriver-manager, the main issue being that I have a postinstall entry in my package.json that calls webdriver-manager update in order to have the latest version of each driver I need.
That being said, I tried by downloading the 0.18.0 release on geckodriver repository, then manually paste it in my webdriver-manager/selenium folder and configure protractor to use it, I have the same issue, I double checked, it was the 0.18.0 loaded for this one, not the 0.19.0. Same issue for both of them.

@Supamiu
You can do webdriver-manager update --versions.gecko=v0.18.0 in your npm package to downgrade it to 0.18.0
Still it's very strange. Can you please create a new issue for this and provide us with an example project where this can be debugged. With my local configuation (Mac OSX 10.12.6 + FF 55 + GeckoDriver 0.19.0) I don't get exceptions on my current Angular (4) project

This is fixed in Protractor 5.2.0.

Confirmed, it's now working for me in 5.2.0. Thank you! 🙇

I updated to Protractor 5.2.0 and directConnect is not working for me.
webdriver-manager has version 12.0.6, Firefox 56.0.2 64 bit on Windows 7.
In the capabilities, I have
browserName: 'firefox',
'moz:firefoxOptions': {
'binary': 'D:/dev/Firefox 56.0.2/firefox.exe',
'args': ['-profile', 'd:/temp/protractor-firefox-profile'],
'log': {'level': 'trace'}
}
When I start Protractor, Firefox opens fine (and it's the expected version) and the robot in the address bar shows that Firefix is remote controlled. But than it just waits and nothing happens. No error messages are displayed in the console, just
I/launcher - Running 1 instances of WebDriver
I/direct - Using FirefoxDriver directly...
Any ideas?

I can confirm that this is working with:
C:\Users\rafal>protractor --version
Version 5.2.1

C:\Users\rafal>webdriver-manager update
[13:23:15] I/file_manager - creating folder C:\Users\rafal\AppData\Roaming\npm\node_modules\protractor\node_modules\webdriver-manager\selenium
[13:23:17] I/update - chromedriver: unzipping chromedriver_2.33.zip
[13:23:20] I/update - geckodriver: unzipping geckodriver-v0.19.1.zip

and latest kick ass fast firefox

Thank you for the reply @rafalf. It's still not working on my work system, probably because something is messed up. It works fine on another system.

Still having an issue running geckodriver with directConnect: true, but I was able to make it work if I change geckoDriverFile in _\protractor\built\driverProviders\direct.js_ to reference directly to the location of geckodriver.
it looks like the update-config.json not getting updated with geckoDriverFile !!!
I'm using:
Protractor: 5.2.2
firefox: 57.0.2

hi guys,
I am facing above same issue while running on firefox brower.
My issue : firefox browser is just launching and not navigating through application
below is my protractor .conf.json
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
'autoStartStopServer': true,
// maxSessions: 1,
/* Selenium Standalone Server */
seleniumServerJar: './selenium/selenium-server-standalone-3.12.0.jar',
seleniumServerStartTimeout: 5000,
/* Drivers */
chromeDriver: './selenium/chromedriver.exe',
geckoDriver: './selenium/geckodriver.exe',
multiCapabilities: [
//  {
//      'browserName': 'chrome'
//  },

{
  'browserName': 'firefox',
    marionette: true,
  firefoxPath: 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe',

  },

],

localSeleniumStandaloneOpts: {
    jvmArgs: ["-Dwebdriver.gecko.driver=node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.20.1.exe"],
    seleniumArgs:["-Dwebdriver.gecko.driver=node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.20.1.exe"]

},

directConnect: true,
baseUrl: 'http://localhost:4200/',
seleniumAddress: 'http://localhost:4444',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function () { }
},
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
browser.manage().window().maximize();
browser.manage().timeouts().implicitlyWait(5000);
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};

My configuration are as below -
protractor version - 5.3.2
Selenium webdriver 5.6.0
geckodriver-v0.20.1.exe ==> tried with this as well
geckodriver-v0.18.0.exe
firefox version 56
Error i am getting after launch is as below
[12:39:19] I/update - chromedriver: unzipping chromedriver_2.39.zip
[12:39:19] I/update - chromedriver: chromedriver_2.39.exe up to date
(node:15344) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[12:39:21] W/driverProviders - Using driver provider directConnect, but also found extra driver provider parameter(s): seleniumAddress, seleniumServerJar
[12:39:21] I/launcher - Running 1 instances of WebDriver
[12:39:21] I/direct - Using FirefoxDriver directly...
[12:39:41] E/launcher - Unable to parse new session response: {"value": {"sessionId":"de44a1a9-e161-46ae-9fb0-e89048ee1cc7","capabilities":{"acceptInsecureCerts":false,"browserName":"firefox","browserVersion":"56.0","moz:accessibilityChecks":false,"moz:headless":false,"moz:processID":968,"moz:profile":"C:\Users\AppData\Local\Temp\rust_mozprofile.FhjJRUlJ0dff","pageLoadStrategy":"normal","platformName":"windows_nt","platformVersion":"6.1","rotatable":false,"specificationLevel":0,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000}}}}
[12:39:41] E/launcher - WebDriverError: Unable to parse new session response: {"value": {"sessionId":"de44a1a9-e161-46ae-9fb0-e89048ee1cc7","capabilities":{"acceptInsecureCerts":false,"browserName":"firefox","browserVersion":"56.0","moz:accessibilityChecks":false,"moz:headless":false,"moz:processID":968,"moz:profile":"C:\Users\\AppData\Local\Temp\rust_mozprofile.FhjJRUlJ0dff","pageLoadStrategy":"normal","platformName":"windows_nt","platformVersion":"6.1","rotatable":false,"specificationLevel":0,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000}}}}

Is this all sorted out and working now? Should this work on macOS Catalina with Protractor v7, Firefox 89, and GeckoDriver 0.29.1?


Calling GetType() on entity selects every property

I have a query, where I want to select one property from an entity, and also get the type of the entity. I receive the correct type, but now in the SQL generated by EF every property is selected. Is this a bug, or is it necessary to select all properties in order to get the entity type?
Steps to reproduce
Let's say I have an entity:
public class Entity
{
    public Guid Id { get; set; }
    public string Property1 { get; set; }
    public string Property2 { get; set; }
    public string Property3 { get; set; }
}

When I select only "Property1", the SQL generated is good:
var entity = context.Entities
    .Select(e => new
    {
        e.Property1
    })
    .FirstOrDefault();

SELECT TOP(1) [e].[Property1]
FROM [Entities] AS [e]

But when I also want to select the type of "Entity", I get the following SQL:
var entity = context.Entities
    .Select(e => new
    {
        e.Property1,
        e.GetType().Name
    })
    .FirstOrDefault();

SELECT TOP(1) [e].[Id], [e].[Property1], [e].[Property2], [e].[Property3]
FROM [Entities] AS [e]

It's not a big deal in this example, but I want to use this in an inheritance scenario where it becomes a problem due to the large amount of properties
Further technical details:
EF Core version: 2.1
Database Provider: EntityFrameworkCore.SqlServer
Operating system: Win 10
IDE: Visual Studio 2017 15.7.6

GetType is not something which we can translate to server. Further, there can be differences based on how entity is materialized or even inheritance hierarchy. Hence the only way to get it reliably and accurately is to create the actual instance. Hence you see all properties selected.
If you are using it specifically in TPH scenario then it would be better to use Discriminator property value rather than GetType().Name

Triage: closing this as by-design.

Thanks for clearing that up. I suspected that it worked like that, but I couldn't find any confirmation for it.
You are right, using the Discriminator value is the way to go then.


feat:create rpc spec for eth filter get logs new block filter uninstall filter pending transaction filter

LGMT


nixos/pam: Move pam_fprintd.so after pam_unix.so

This enables logging into GUI applications using a password even when
using fprintd. However, this now requires first entering an empty
password before being prompted for a fingerprint.
Fixes #171136
Description of changes

This moves the checking of the pam_fprintd module after the pam_unix module. This is required for GUI applications to still be authenticated with a password
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Bump. The formatting issue has been addressed. Still needs a rebase though.

However, this now requires first entering an empty
password before being prompted for a fingerprint.

I think the current behavior also requires you to press enter, which is equivalent to entering an empty password anyway.

I think the current behavior also requires you to press enter

At least in GDM and GNOME Shell polkit agent, you just put your finger on the fingerprint reader after being prompted, and it authenticates you without any further action.

Ah, right, I forgot to mention that I'm using i3 & i3lock.

I am on vacations so I cannot touch this yet, I recommend to rebase and look for other reviewers on Discourse.

Needs a rebase

However, this now requires first entering an empty
password before being prompted for a fingerprint.

This is a downgrade IMO.
Maybe something like #171136 (comment) would work better.

I mean, no one made a config PR yet sadly...

I mean, no one made a config PR yet sadly...

That does not mean we should merge a broken PR instead.
And someone actually made a PR with what looked like a proper fix but there was still a bug and we lack people familiar with PAM to review it: https://github.com/NixOS/nixpkgs/pull/282322

I think the current behavior also requires you to press enter

At least in GDM and GNOME Shell polkit agent, you just put your finger on the fingerprint reader after being prompted, and it authenticates you without any further action.

This may be related to https://github.com/sddm/sddm/pull/1220#issuecomment-1829545241

would making an option in the fprint service to have password auth first be a better solution? it would be backwards compatible and still allow people to use the password first method without hacky workarounds


Continue Experimenting with Data Catalogue POC - CKAN

User Story
We would like to experiment with adding public and potential AP datasets into our candidates to see if we can arrive at a state that allows user research.
User Type(s)
Developers and Data Engineers
Value
We want to put candidates in a state where other people can start testing them.
Questions / Assumptions / Hypothesis

Definition of done

[ ] Ingest a public datasource
[ ] Ingest an AP datasource
[ ] Timeboxed to 3 days
[ ] tests are green
[ ] Follow-on stories raised

Reference
How to write good user stories

CKAN has been parked, no longer chasing as potential candidate


Data loss occurs in the RTCDataChannel

COPY ISSUES FROM webrtc-sdk/Specs/issues/7

webrtc-sdk/Specs/114.5735.08
my demo is simple, open RTCDataChannel by webrtc-kmp and safari.
then 10MB of data is sent, 64kb at one time.
In theory, 157 times need to be sent to complete the transmission, but on the native side, often only 42 to 44 times can be received.
The same DEMO is correct on Android.
I've read the source code for webrtc-kmp and I don't find it problematic. So one can only suspect that something is wrong here.
suspend fun connectDataChannel(): DataChannel {
    val peer = PeerConnection()
    val dataChannel = peer.createDataChannel(
      "default",
      ordered = true,
      /** maxRetransmits 和 maxRetransmitTimeMs 不能同时配置 */
      maxRetransmits = 2,
//      maxRetransmitTimeMs = 3000
    )
      ?: throw Exception("fail to create data channel")
    val offer = peer.createOffer(OfferAnswerOptions())
//
//    dataChannel.onError.onEach {
//      println("data channel error:$it")
//    }.launchIn(scope)
//    dataChannel.onOpen.onEach {
//      println("data channel open")
//    }.launchIn(scope)
//    dataChannel.onClose.onEach {
//      println("data channel close")
//    }.launchIn(scope)
//    dataChannel.onMessage.onEach {
//      println("data channel message: ${it.size}")
//    }.launchIn(scope)
    peer.setLocalDescription(offer)
    var lock = CompletableDeferred<Unit>()
    ws.onMessage { msg ->
      if (msg.text?.startsWith("icecandidate:") == true) {
        val iceCandidateJson = msg.text.split(':', limit = 2)[1]
        val iceCandidate =
          Json { ignoreUnknownKeys = true }.decodeFromString<IceCandidateData>(iceCandidateJson)
            .toIceCandidate()
        peer.addIceCandidate(iceCandidate)
      } else if (msg.text?.startsWith("remote:") == true) {
        val des = Json.decodeFromString<SessionDescriptionData>(msg.text.split(':', limit = 2)[1])
          .toSessionDescription()
        peer.setRemoteDescription(des)
      } else if (msg.text == "open-channel") {
        lock.complete(Unit)
      }
    }
    ws.postMessage("data-channel:${Json.encodeToString(SessionDescriptionData.from(offer))}")
    peer.onIceCandidate.onEach { iceCandidate ->
      ws.postMessage("icecandidate:${Json.encodeToString(IceCandidateData.from(iceCandidate))}")
    }.launchIn(scope)
//    dataChannel.onOpen.first()
    lock.await()
    println("okk:${dataChannel.readyState}")
    return dataChannel
  }

// ...
  suspend fun testNative2Js2() {
    val dataChannel = channel2Deferred.await()
    var sendSize = 0;
    println("Native2Js2: ${dataChannel.readyState}/${dataChannel.bufferedAmount}")
    val dur = measureTime {
      while (sendSize < totalSize) {
        dataChannel.send(ByteArray(unitSize))
        sendSize += unitSize
      }
      val lastMsg = "echo:${randomUUID()}".toUtf8ByteArray();
      dataChannel.send(lastMsg)
    }

    println("native2js2:[$dur] ${mbpres(sendSize, dur)}")
  }

  suspend fun testJs2Native2(
  ) {
    val dataChannel = channel2Deferred.await()
    var gotSize = 0;
    val endMessageContent = "end-channel-post".toUtf8ByteArray()
    val dur = measureTime {
      var lock = CompletableDeferred<Unit>()
      val job = dataChannel.onMessage.onEach { msg ->
        println("endMessageContentsize: ${msg.size}")
        if (msg.contentEquals(endMessageContent)) { /// !!!! HERE !!!! I have not been able to receive this message, and I have only received 42-44 of the 157 data.
          lock.complete(Unit)
        } else {
          gotSize += msg.size
          dataChannel.send(gotSize.toLittleEndianByteArray())
        }
      }.launchIn(scope)
      ws.postMessage("start-channel-post")
      lock.await()
      job.cancel()
    }
    println("js2native2:[$dur] ${mbpres(gotSize, dur)}")
  }

js code:
ws.addEventListener("message", async (event) => {
  const data = event.data;
//  ...
if (typeof data === "string") {
    if (data.startsWith("data-channel:")) {
      const peer = new RTCPeerConnection();
      peerRs.resolve(peer);
      await peer.setRemoteDescription(JSON.parse(data.substring("data-channel:".length)));
      peer.ondatachannel = (e) => {
        channel = e.channel;
        channel.bufferedAmountLowThreshold = Math.ceil(unitSize / 2);
        console.log("open-channel", channel);
        channel.onmessage = (e) => {
          const { data: arraybuffer } = e;
          if (arraybuffer instanceof ArrayBuffer) {
            if (arraybuffer.byteLength < 1024) {
              const data = decoder.decode(arraybuffer);
              if (data.startsWith("echo:")) {
                channel?.send(arraybuffer);
              }
            }
          }
        };
        ws.send("open-channel");
      };
      peer.onicecandidate = (e) => {
        const candidate = e.candidate;
        if (candidate) {
          ws.send(`icecandidate:${JSON.stringify(candidate)}`);
        }
      };

      const answer = await peer.createAnswer();
      peer.setLocalDescription(answer);
      ws.send(`remote:${JSON.stringify(answer)}`);
    } else if (data.startsWith("icecandidate:")) {
      const peer = await peerRs.promise;
      const candidate = JSON.parse(data.substring("icecandidate:".length));
      peer.addIceCandidate(candidate);
    } else if (data === "start-channel-post" && channel !== null) {
     /// !!!!! HERE !!!! send message to native
      let i = 1;
      for (let sendSize = 0; sendSize < totalSize; sendSize += unitSize) {
        channel.send(new Uint8Array(unitSize));
        console.log("channel.bufferedAmount", channel.bufferedAmount);
        if (channel.bufferedAmount > channel.bufferedAmountLowThreshold) {
          const { promise, resolve } = promiseWithResolvers();
          channel.onbufferedamountlow = resolve;
          await promise;
        }
        const cur = i++;
        if (cur === 44) {
          await new Promise((cb) => setTimeout(cb, 1000));
        }
      }
      channel.send(encoder.encode("end-channel-post"));
      console.log("end channel post");
    }

I don't think there's anything wrong with this code, and on Android, it works correctly, so I'm just Posting it here for reference.
Can you give me some inspiration?

@Gaubee sorry, I'm not able to look deeper your demo right now. However, there PR #98 has been merged recently. It is not published yet. So it might be a cause if you were using 0.114.4.

@shepeliev I have review this commit.
This commit is just a question of the js platform, but in my example, I wrote the js-code myself.
The problem I found was on IOS, not JS.

I did this test because I was trying to set up faster communication between WKWebView and native instead of WKScriptMessageHandler based communication.
I have tested that WebSocket's speed does not meet the demand, and it has a large speed gap between up and down, which seems to be a hard-coded limitation.
That's why I'm trying to give WebRTC point-to-point connectivity.
Maybe I should be suspicious of the WKWebView problem?

Having the same issue with iOS data channel, most of the time the data channel is closed with no events or feedback

iOS data channel (From onDataChannel callback) stops receiving messages in a short time after the connection was established. While debugging, I found out that didReceiveMessageWithBuffer which is inside DataChannel, stops getting called. No signs of any crash or error.

Hello @shepeliev!
Can we please have a patch release with this fix https://github.com/shepeliev/webrtc-kmp/pull/123? I'm confident it will fix @Gaubee's problem as well

@tamimattafi, I've just published it.
@Gaubee, could you check if it solves the issue, please?

@tamimattafi, I've just published it.
@Gaubee, could you check if it solves the issue, please?

Thank you! @shepeliev


Disable react/no-multi-comp?

The react/no-multi-comp rule disallows multiple react classes from being declared per JS file.
IMHO this actually encourages a more Java-like approach,  and forces you to start nesting your file structures deeply rather than flat,  as small components (a few lines at best) start reaching out into the file system instead.
Or worse, it seeds a habit of avoiding extracting them at all and instead in-lining them into the parents render function.
I personally think this is frustrating, and should be removed.
Thoughts?

Yep, I hate this and agree with @dcousens :p

"hate" may have been a bit strong :) Actually, this may deserve a bit of a discussion. At first, it really bothered me. Eventually I've gotten use to it. I'm working on a pretty big React application and I could see how this will really bother me when I start refactoring my components. Overall, I still think that this rule should not be enforced.

I have no opinion on this since I don't use React. I changed the rule as you guys requested.

ping @cesarandreu thoughts?

I think it's fine to disable it, I don't have a strong opinion about it since I haven't built anything really large with React yet.
But I'd love to see an example of a cases where you think it's better to have multiple class definitions in the same file. So far when I've broken stuff up in a file I've just used static functions that take the expected props and return some DOM elements :D.

@cesarandreu

So far when I've broken stuff up in a file I've just used static functions that take the expected props and return some DOM elements :D.

That will fail if you want to use things like context without mixing concerns in the top level class.
Often,  these small classes will be quickly extracted if they become generic or re-usable.

From https://speakerdeck.com/vjeux/why-does-react-scale-jsconf-2014

Facebook recommends having a component per file, with the name matching the component name -- so there is no grepping for file contents, but a quick predictable mapping.

Facebook recommends having a component per file, with the name matching the component name -- so there is no grepping for file contents, but a quick predictable mapping.

I guess that is subjective to your IDE,  I have no problems switching around between files,  and often use stateless pure functions for mini-components in React.  The 1-class-per-file idiom might be necessary if you have thousands of classes in a project, but, I personally work more modular than that, and this would be very frustrating to have enforced.
@winkler1 if you want to continue discussion on this,  please open an issue in https://github.com/feross/eslint-config-standard-react.

FWIW, after using React for a while and trying to keep a single component per file... You realize how much of a terrible idea it is. Breaking up components in the same file just makes it easier to reason about what the overall thing represented in the file, even if it's broken up into multiple components. Otherwise you need to crawl through ten different files to understand where data is going.

^ agree for quick personal stuff. For big work codebases, one component per file works a lot better IMO.

Even when the components are tightly coupled? Breaking up a bunch of tightly coupled components that aren't meant to be reusable doesn't really make sense. I break off components when they're reusable, but it helps to break up large components into smaller parts, and composing them while keeping em in the same file.
I've tried the "one component per file" approach and moved away from it because it made it too difficult to understand how anything worked. You either end up with huge complicated components, or you end up having to chase through ten different files.

^ agree for quick personal stuff. For big work codebases, one component per file works a lot better IMO.

Disagree, the entirety of my experience using React has been for now-in-production projects,  and in that,   I closely align with @cesarandreu,  extraneous files for no reason leads to code bloat, and monolithic style project management.


Identity Resolution

From andrew.hankinson on September 18, 2012 13:30:31
Currently avref expects a link to a specific audio file. However, there are times where you will not be able to resolve an audio file. For example, if you create a time-aligned corpus of audio to chord symbols and want to share it broadly, you can share the annotations but not share the audio (due to copyright restrictions).
To get around this, we should expand the <timeline> element to support other audio/video identity resolution schemes. This could be schemes that use fingerprinting and unique ids, like MusicBrainz, or standardized references like the International Standard Recording Code ( http://en.wikipedia.org/wiki/International_Standard_Recording_Code )
It may look something like this:
<timeline
identity=" http://musicbrainz.org/recording/ebf79ba5-085e-48d2-9eb8-2d992fbf0f6d ">
...
</timeline>
@-identity is something I just made up -- we could probably re-use an existing attribute on this element.
Original issue: http://code.google.com/p/music-encoding/issues/detail?id=112

From<EMAIL_ADDRESS>on September 18, 2012 11:51:37
@-avref was intended to point to an <avFile> element; that is, a URI that begins with '#'.  But, since it's defined as data.URI, it could refer to anything accessible by a URI, including the musicbrainz URL.
<timeline avref=" http://musicbrainz.org/recording/ebf79ba5-085e-48d2-9eb8-2d992fbf0f6d ">
if that's what you wanted to do.  However, it seems logical to me to associate the other schemes you suggest with <avFile>, not <timeline>. For example,
<timeline origin="#w1" avref="#a1">
<when xml:id="w1"/>
<when xml:id="w2"/>
<when xml:id="w3"/>
</timeline>
<performance>
<recording>
<avFile xml:id="a1" target=" http://musicbrainz.org/recording/ebf79ba5-085e-48d2-9eb8-2d992fbf0f6d"/ >
</recording>
</performance>
In this case, <avFile> is not a specific audio/video file, but a reference to an a/v file.  This is not unlike <graphic target=" http://blah.blah.blah/imageCGI?image01"/ > where the actual image is "hidden behind" a reference.
The advantage of the extra level of indirection is that <avFile>, <recording>, or <performance> can be associated with metadata provided in the header, while <timeline> cannot.
Does this accomplish what you're looking for?

From andrew.hankinson on September 18, 2012 12:57:43
That's the general idea, although I worry about adding a song identity as @-avref. The song identity almost never resolves to an audio file; it just serves as a way of saying "the song I have in my hand is the same recording as the song that was used for the timepoint reference."
So when I'm generating the MEI I would use the MusicBrainz fingerprinter to find the MusicBrainz URL for the audio that I'm using, and would store that in the MEI file. When you receive my file you would have to then de-reference it by running the same fingerprinter on your audio. If the MusicBrainz URL you get from the fingerprinter is the same as the one that I stored you can be reasonably sure that the track you have is the same as the one I used to generate it.
Using @-avfile, or even <avFile /> would also mean I couldn't store a reference to an audio file as well as the identity, if I wanted.

From<EMAIL_ADDRESS>on October 04, 2012 15:38:44
Your references to "song", "audio", and "recording" are confusing to me.  First, you say a "song" is not an audio file, but then you say "the song I have in my hand is the same recording as the song that was used for the timepoint reference."  Does this sentence not say that song = recording?  What is it you have in your hand?  ;-)
Is the MusicBrainz URL is a identifier for a particular recording/song?  Or is it an identifier for a work/song?  That is, does it identify Elvis Presley's recording of "Blue Suede Shoes" or all recordings of "Blue Suede Shoes"?
In either case, I believe the MusicBrainz identifier itself is metadata that belongs somewhere other than on <timeline>; that is, in/on <source>.  The question is, where's the best place to put a pointer to that metadata?

From andrew.hankinson on October 05, 2012 01:49:47
You have an MEI file containing chord symbols with timepoints corresponding to a recording you have of Blue Suede Shoes. I want this data for my own research purposes, but because of copyright restrictions you cannot share the audio file you have with me.
Now, I have a thousand different versions of Blue Suede Shoes on my local computer -- live recordings, re-recordings, cover songs, re-orchestrations, etc. There is a very good possibility that you don't NEED to share your audio with me -- I probably have a version that will work just fine.
But how do you tell me which version you used? You cannot give me an audio file. You cannot simply tell me "Elvis Presley's 'Blue Suede Shoes'" because he recorded fifty different versions of it.
So you give me the MusicBrainz identifier for the recording. To get this you run the MusicBrainz fingerprinter (AcoustID) on the audio file you have. This will give you a fingerprint. You submit this fingerprint to MusicBrainz, which then tells you that it corresponds to this record: http://musicbrainz.org/recording/cae0281b-210b-4cd4-94db-c09be4b3277c You then store this identifier in your MEI file and hand it off to me.
I receive the MEI file with this identifier. I run the same fingerprinter on my own collection of audio files and receive a unique fingerprint for each of the audio files. I submit each fingerprint to MusicBrainz, and, lo and behold, one of them returns the same Identifier! I can then use that audio file as the source for the @-avref in the timeline, but you have not shared the audio with me.

From<EMAIL_ADDRESS>on October 10, 2012 13:11:18
Ok, the MusicBrainz identifier identifies a particular recording.  So, one possible place to store the MBid is here
<recording xml:id="cae0281b-210b-4cd4-94db-c09be4b3277c">
This sets up a one-to-one correspondence between the recording element and the MBid.
But this is using a generic attribute for a specific purpose, which may make the encoding unintelligible to other users/applications. It's better to put the MBid elsewhere, perhaps on a source element or in the content of a source/identifier element. The recording element can point to the source using its @-decls attribute.
This is somewhat "round about", but is entirely in keeping with the function of recording and source.  The recording element is analogous to surface in the facsimile module and shouldn't be used to capture metadata about a particular recorded (for lack of a better term, bibliographic) entity.  That's the job of source.
I'm aware that this is confusing. Perhaps renaming recording to something else would help clear up some of the confusion, but we (Raffaele, Johannes, and I) haven't been able to come up with a better term.  Suggestions will be greatly appreciated.
BTW, I haven't seen any of your comments in my in box, only after I visit here.  Was this on purpose or was the "send email" box not checked in error?

From andrew.hankinson on October 12, 2012 02:24:20
I've unchecked the e-mail box, but I thought it would still go to the participants of this discussion. I'll leave it checked.
Yeah, I really disagree with using xml:id to store this information, not least because you may want to refer to the same MBID twice in the same file.
I like the <source /> element solution. Could <recording /> have @-source, which points to a source ID?
Then on <source /> we could maybe have @-target?

From andrew.hankinson on October 17, 2012 07:52:52
Labels: -Milestone-Release2013 Milestone-ReleaseNext

From<EMAIL_ADDRESS>on February 12, 2013 13:44:33
Seems like I dropped the ball on this one a long time ago.  <recording> has @decls by which any element in the header, not just <source> can be associated with the <recording> element.  <source> provides @-data for recording pointers (note the plural) back in the other direction.

From<EMAIL_ADDRESS>on June 09, 2014 14:35:09
While I'm reluctant to add a lot of metadata to <recording>, I can see that adding att.authorized (@authority & @authURI) could provide a quick path to a standard identifier such as the MusicBrainz ID. However, other metadata about the recording such as title, date/place of issue, etc., would still need to be in a <source> element. The <recording> and <source> elements can be linked together via their @-decls attributes, the <recording> element pointing to the xml:id of the <source> and/or the <source> element pointing to the xml:id of the <recording>.

From andrew.hankinson on September 12, 2014 04:41:19
Closing since this is outdated. I'm sure this can be done with the new FRBR module if one were really dedicated.
Status: WontFix


⚠ Bofrost.be has degraded performance

In 80d11a2, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2384 ms

Resolved: Bofrost.be performance has improved in 507f234.


API PHP Exception: SystemhealthController.php:281

API PHP Exception: SystemhealthController.php:281
Hello I have some trouble with seeing health information on my OpnSense.
Error at /usr/local/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/SystemhealthController.php:281 - A non-numeric value encountered (errno=2)
Anybody have an idear what is going on here?
This error occurs when I toggle the Inverse option on and off. If it is off then all is fine but when I toggle it on I got that error.

Do you know why I don't get any packet data? It did work before the new Gecko release.

Detailed log:
[28-Feb-2018 16:57:28 Europe/Amsterdam] Exception: Error at /usr/local/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/SystemhealthController.php:281 - A non-numeric value encountered (errno=2) in /usr/local/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php:85 Stack trace: #0 /usr/local/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/SystemhealthController.php(281): OPNsense\Base\ApiControllerBase->APIErrorHandler(2, 'A non-numeric v...', '/usr/local/opns...', 281, Array) #1 /usr/local/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/SystemhealthController.php(576): OPNsense\Diagnostics\Api\SystemhealthController->translateD3(Array, true, Array) #2 [internal function]: OPNsense\Diagnostics\Api\SystemhealthController->getSystemHealthAction('ipsec-packets', '0', '0', '120', true, '1') #3 [internal function]: Phalcon\Dispatcher->callActionMethod(Object(OPNsense\Diagnostics\Api\SystemhealthController), 'getSystemHealth...', Array) #4 [internal function]: Phalcon\Dispatcher->dispatch() #5 /usr/local/opnsense/www/api.php(26): Phalcon\Mvc\Application->handle() #6 {main}
I hope this issue can be fixed ASAP.
Greetings,
SquadraMunter 👍

Well, do you have IPsec traffic? Here's mine...

Pls look at https://github.com/opnsense/core/issues/2228

No I have no IPsec traffic. I upgraded OpnSense to the latest version 18.2 but before that upgrade all things works just fine.

if you open a new ticket, please provide the details or reopen your old one

How can I reopen the old one?

why switch tickets again? ;)
I don't understand your report. I open the page, select ipsec, toggle invert a couple of times. data is always there. no error with fix on #2228.

I don't know? Maybe this problem is a power failure?

I only see dots nothing more can you help me to solve this problem?

you need to help us reproduce, otherwise we can't do anything :(

maybe to stress this point? why are you expecting data on ipsec when you don't have ipsec?

ipsec?

I don't see ipsec package or plugin that is installed on my opnsense

I can try to backup my OpnSense configuration and exclude the RRD data. After that I can do a factory reset and then import my configuration and fingers crossed that this solve the problem.

right now, you are showing a screenshot for ipsec traffic, expecting ipsec traffic visualisation to be shown but have no ipsec so the graph will always be empty.
I really cannot help because that's how it works unless I am misunderstanding.

I have normal internet access. And monitor everything else does work tho

I'm sorry, I still don't understand without context. Gaps can happen when you reboot or the firewall is offline. You've given no time base or context where you expect traffic to be show despite the graph being blank. In the last picture you crop the time axis.... it's impossible to help you under these conditions and I can't spend all my time on one person today.

Oh wait now I know what you mean about ipsec that is VPN based traffic. Sorry about that. But still this is strange when I have no data that it gives me a error even when I use that toggle option.

Did you apply the patch @AdSchellevis provided?

no how can I apply that patch manually?

# opnsense-patch 048f3d0

yes the patch does work. I tested it out and can say that the patch now does work as it should do. When I toggle that inverse button no API error happens.

Ok, nice. can we clone then? :)

I think you can close this issue 🥇

Thanks!


fix to prevent recursive spawning in windows

There you go, I got there in the end ;)

Great. If it works, could you make it a 4 spaces indent instead of 2? (the entire codebase is 4 spaces, so better to keep consistency).
(Just make an other commit in your branch, and it should update the PR directly)

Forgot about your spaces preference :+1:

Great, merging \o/


[Bug]: trigger field errors don't show up in debugger

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Unless executed, Trigger field errors don't show up in debugger.
Steps To Reproduce

Write erroneous code in button OnClick field.
Notice debugger doesn't list the error.
But it shows up when clicking on the button.

https://www.loom.com/share/768e087f907f4a9c90ad47baf285da84
Public Sample App
https://drive.google.com/file/d/16H7YLK3ZtbZrzGgX97NYKYnMBKQbZN-z/view?usp=sharing
Version
Cloud - v1.7.8-SNAPSHOT

closed with #35839


Building issues on Windows (V8, Python 3.x and others)

Quoting a recipe from the cookbook:

Either version 2.x or 3.x (excluding 3.4) should work - it's used to run V8s GYP. Make sure you add python.exe to your path environment variable; Restarting your running shell may be necessary.

I'm not sure why 3.4 is excluded, but 3.x in general supposed to work. It seems that if 3.x is installed and added to PATH environment variable, V8 compilation fails because of a syntax error:
import sys; print sys.byteorder

print is a function in Python 3 and requires parentheses.
Is there a way to make gyp use ArangoDB\3rdParty\V8-4.3.61\third_party\python_26\python.exe instead of a local Python installation?

you have to adjust your PATH environment so it first fetches that.

Yeah, that's what I did, but now python in cmd will start a 2.x Python - I'm working with 3.x myself however. Could the path var be temporarily overwritten by the make script to fetch the included 2.6 Python automatically?
There cookbook recipe should be corrected accordingly (either remove the part about 3.x being supported, or remove Python as dependency entirely if the build scripts are modified to use the included Python binary).

v8-build.bat already does:
echo %CMD%
cd V8-%V8_VERSION%
.\third_party\python_26\python.exe build\gyp_v8 %CMD%
cd build
so if you follow the cookbook, ( https://docs.arangodb.com/cookbook/CompilingUnderWindows.html ) and ran make -f Makefile.v8-windows ?

I tried make -f Makefile.v8-windows but it failed. Possibly file permission issue: https://github.com/arangodb/arangodb-windows-libraries/issues/1. I'm not sure if it would had worked after takeown and icacls, but I compiled the solution in Visual Studio.
I think the problem is that the initial call to gyp is done using the bundled python, but if gyp itself tries to create subprocesses, it probably picks the Python found in %PATH%. This should be fixable by changing the environment variable temporarily:
set PATH=.\third_party\python_26\;%PATH%

The Python path must come first to take precedence.

can you revalidate whether this fixes your problem?

I changed v8-build.bat to look like:
cd V8-%V8_VERSION%

set PATH=%~dp0V8-%V8_VERSION%\third_party\python_26;%PATH%

.\third_party\python_26\python.exe build\gyp_v8 %CMD%

If no Python is in %PATH%, the command python fails. If a 3.x Python is in %PATH%, a SyntaxError is raised. Both errors disappear if PATH is modified like shown above.
These are the erros I'm still getting for make -f Makefile.v8-windows in cygwin bash:
Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu erm”glichen, mssen Sie den Schalter "/m" hinzufgen.
Der Buildvorgang wurde am 17.08.2015 17:27:23 gestartet.
Projekt "D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln" auf Knoten "1", v8 Ziel(e).
ValidateSolutionConfiguration:
  Die Projektmappenkonfiguration "Debug|x64" wird erstellt.
D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln.metaproj : error MSB4057: Das Ziel "v8" ist im Projekt nicht vorhanden. [D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln]
Die Erstellung des Projekts "D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln" ist abgeschlossen, v8 Ziel(e) -- FEHLER.

Fehler beim Buildvorgang.

"D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln" (v8 Ziel) (1) ->
  D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln.metaproj : error MSB4057: Das Ziel "v8" ist im Projekt nicht vorhanden. [D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln]

    0 Warnung(en)
    1 Fehler

Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu erm”glichen, mssen Sie den Schalter "/m" hinzufgen.
Der Buildvorgang wurde am 17.08.2015 17:27:23 gestartet.
Projekt "D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln" auf Knoten "1", v8_libbase Ziel(e).
ValidateSolutionConfiguration:
  Die Projektmappenkonfiguration "Debug|x64" wird erstellt.
D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln.metaproj : error MSB4057: Das Ziel "v8_libbase" ist im Projekt nicht vorhanden. [D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln]
Die Erstellung des Projekts "D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln" ist abgeschlossen, v8_libbase Ziel(e) -- FEHLER.

Fehler beim Buildvorgang.

"D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln" (v8_libbase Ziel) (1) ->
  D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln.metaproj : error MSB4057: Das Ziel "v8_libbase" ist im Projekt nicht vorhanden. [D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln]

    0 Warnung(en)
    1 Fehler

Verstrichene Zeit 00:00:00.05
Microsoft (R)-Buildmodul, Version 12.0.30110.0
[Microsoft .NET Framework, Version 4.0.30319.42000]
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu erm”glichen, mssen Sie den Schalter "/m" hinzufgen.
Der Buildvorgang wurde am 17.08.2015 17:27:23 gestartet.
Projekt "D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln" auf Knoten "1", v8_libplatform Ziel(e).
ValidateSolutionConfiguration:
  Die Projektmappenkonfiguration "Debug|x64" wird erstellt.
D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln.metaproj : error MSB4057: Das Ziel "v8_libplatform" ist im Projekt nicht vorhanden. [D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln]
Die Erstellung des Projekts "D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln" ist abgeschlossen, v8_libplatform Ziel(e) -- FEHLER.

Fehler beim Buildvorgang.

"D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln" (v8_libplatform Ziel) (1) ->
  D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln.metaproj : error MSB4057: Das Ziel "v8_libplatform" ist im Projekt nicht vorhanden. [D:\Projekte\ArangoDB\3rdParty\V8-4.3.61\build\All.sln]

    0 Warnung(en)
    1 Fehler

Several messages are printed to stderr about files not found by the system, full log:
http://pastebin.com/0iHQwwJ7 (look for "Das System kann die angegebene Datei nicht finden.")
The subsequent make -f Makefile.v8-windows install fails cause of permission denied again (it seems the compilation scripts set weird permissions on files). Admin shell does not solve the issue, I need to reset file permissions for the entire V8 build folder (as admin):
takeown /F V8-4.3.61/build /R
icacls V8-4.3.61\build\ /T /C /Q /reset

After that, the following copy command fails:
cp -a V8-4.3.61/build/Debug32/lib/*.lib ../WindowsLibraries/32/lib/Debug
cp: der Aufruf von stat für "V8-4.3.61/build/Debug32/lib/*.lib" ist nicht möglich: No such file or directory
Makefile.v8-windows:40: recipe for target 'install_bits' failed

It's simply looking for the wrong directory, the 32bit libs are in build/Debug/ (or another part of the script forgot to add the bitness to the path). The release libs are in Release32 and Release64 however. I think it's the missing %SUFFIX% for 32bit builds:
build32:
	./v8-build.bat x86 ia32 Win32 32

I think there should be an additional 32 for all 32 bit targets:
build64:
	./v8-build.bat x86_amd64 x64 x64 64

build32:
	./v8-build.bat x86 ia32 Win32 32 32

clean: clean32 clean64

clean64:
	./v8-clean.bat cmd x86_amd64 x64 x64 64

clean32:
	./v8-clean.bat x86 ia32 Win32 32 32

distclean: distclean32 distclean64

distclean64:
	./v8-distclean.bat x86_amd64 x64 x64 64

distclean32:
	./v8-distclean.bat x86 ia32 Win32 32 32

Makefile.v8-windows misses to create RelWithDebInfo directory, it should look like this:
install_bits:
	mkdir -p ../WindowsLibraries/$(BITS)/lib
	mkdir -p ../WindowsLibraries/$(BITS)/lib/RelWithDebInfo

make pack-win* copies icudt54l.dat to ArangoDB\share\arangodb, where arangod.exe expects it. The cookbook recipe is wrong about the name (icudt52l.dat) and the place (next to executable), the server will not start if you do so. I can't find that file in official 2.6.4 btw., do you compile it into the binaries?
If you have admin privileges, you don't need to copy WindowsBinaries, just create a symlink:
ArangoDB>mklink /D WindowsBinaries ..\arangodb-windows-libraries\WindowsBinaries

The file permission issues drive me crazy still, dunno if the cygwin environment itself causes this... Or is this the root of all evil?
find ../WindowsLibraries -type f -exec chmod a+r {} \;
find ../WindowsLibraries -type d -exec chmod a+rx {} \;

Still no clue why v8* doesn't build via msbuild command, the projects DO exist in solution file and build fine in VS. Couldn't find anything useful on the web. msbuild v8_libbase.vcxproj ... without specifying a project sort of works, not sure if it builds the same stuff twice however (or just dependencies?).

Another issue: the build scripts seem to copy some import js files to \share\arangodb\js\js, instead of \share\arangodb\js. This will make server init fail.

We had permission problems since we run jenkins and the build job via ssh. You get sort of mostly the same user (but not its admin privileges) as if you log in via the GUI-shell. Lets hope that after it took Microsoft 30 years to find out telnet/ssh acess to a wintendo could be a usefull thing these problems are solved for us sooner or later.
However, if you run cygwin as the same user as you currently are, the chmod shouldn't do anything problematic for you.
v8-build.bat only accepts 4 parameters. i've added some indention to make it more readable. Parameter #4 becomes SUFFIX.
The arangodb sln's are completely disjunct to the V8 ones, they simply expect to find the library dependencies in the WindowsLibraries folder - therefore the arango vsd can't build it (as it complains)
Do you still use 32bit windows?

However, if you run cygwin as the same user as you currently are, the chmod shouldn't do anything problematic for you.

I removed both repos, added filemode = false to core section of git config and checked out both again, then tried to build from scratch. The same permission issues occur, although I'm running everything with my user account (unless cygwin uses a different?! Not sure how to check /change it).
I was able to continue v8 building by resetting permissions, but annoyingly, the final make pack-win64 failed regardless of permission resets, and also if I start cygwin from an admin she'll... (It fails at copying the js folder)

v8-build.bat only accepts 4 parameters

True, must have been a problem related to another issue that led to an unrenamed Release folder.

The arangodb sln's are completely disjunct to the V8 ones, they simply expect to find the library dependencies in the WindowsLibraries folder - therefore the arango vsd can't build it (as it complains)

Okay, I don't really understand what you mean. Can you show me how the msbuild command should look like to build v8_*.libs? Or do I need another symlink?
The error confuses me because i can see the v8 projects in the solution and it builds in VS, but not in console (msbuild solutionFile /t:v8_lib ...)
Windows 64 only for sure.

the Arangodb solution files only know about that the v8-files have to exist.
They don't know how to invoke the V8-solution files:
jenkins@meschenich /cygdrive/c/b/workspace/CONTINUOUS_BUILD__DEVEL__Windows_VisualStudio_cmake
$ find WindowsLibraries/ |grep v8
...
WindowsLibraries/64/include/v8-debug.h
WindowsLibraries/64/include/v8-platform.h
WindowsLibraries/64/include/v8-profiler.h
WindowsLibraries/64/include/v8-testing.h
WindowsLibraries/64/include/v8-util.h
WindowsLibraries/64/include/v8-version.h
WindowsLibraries/64/include/v8.h
WindowsLibraries/64/include/v8config.h
WindowsLibraries/64/lib/Debug/v8_base.lib
WindowsLibraries/64/lib/Debug/v8_base.pdb
WindowsLibraries/64/lib/Debug/v8_libbase.lib
WindowsLibraries/64/lib/Debug/v8_libbase.pdb
WindowsLibraries/64/lib/Debug/v8_libplatform.lib
WindowsLibraries/64/lib/Debug/v8_libplatform.pdb
WindowsLibraries/64/lib/Debug/v8_nosnapshot.lib
WindowsLibraries/64/lib/Debug/v8_nosnapshot.pdb
WindowsLibraries/64/lib/RelWithDebInfo/v8_base.lib
WindowsLibraries/64/lib/RelWithDebInfo/v8_base.pdb
WindowsLibraries/64/lib/RelWithDebInfo/v8_libbase.lib
WindowsLibraries/64/lib/RelWithDebInfo/v8_libbase.pdb
WindowsLibraries/64/lib/RelWithDebInfo/v8_libplatform.lib
WindowsLibraries/64/lib/RelWithDebInfo/v8_libplatform.pdb
WindowsLibraries/64/lib/RelWithDebInfo/v8_nosnapshot.lib
WindowsLibraries/64/lib/RelWithDebInfo/v8_nosnapshot.pdb

But msbuild is invoked by v8-build.bat, and the solution file is arangodb\3rdParty\V8-4.3.61\build\all.sln?!
msbuild All.sln /t:v8 /p:Configuration=Debug /p:Platform=%MSPLATFORM%
msbuild All.sln /t:v8_libbase /p:Configuration=Debug /p:Platform=%MSPLATFORM%
msbuild All.sln /t:v8_libplatform /p:Configuration=Debug /p:Platform=%MSPLATFORM%

I also tried msbuild manually on cmd for arangodb\3rdParty\V8-4.3.61\tools\gyp\v8.sln, but same problem. It does not recognize any of the v8 targets/projects.
Do you use different build scripts internally? What is your cmake version?

Regarding premissions: I added chmod to file-copy-js.sh and it seems to fix permissions for the final make pack-win64:
 chmod a+r "${FROM}"
 test -d "${DIR}" || mkdir -p "${DIR}"

Permissions shouldn't be set/changed in the first place still.
All 4 windows sh scripts require Unix-style line endings, or they will raise syntax errors.
Any idea why it copies some js to the wrong folder?

do I get you right, that the copy will fail on your system, if the .js file isn't chmodd'ed before?

Yeah, the packing task fails because it can't access certain files and js\actions\api-aqlfunction.js happens to be the first. I added chmod to the sh script to fix permissions, so that they become accessible again and can be copied. But then, some end up in the wrong path.
I might have a found a solution to the permission issue, will need to do a clean build however. In cygwin's etc\fstab, it's possible to set option noacl, which should prevent it from creating a new permission set for every new file, and give default permissions instead.
Hm, is it possible to change language to English? Sometimes that might be helpful. Note that I use a Dreamspark version. IIRC I had the choice between an English and a German ISO, so one possibly lacks the other language...

Okay so here's a fix that should resolve the v8 build issues:
https://dl.dropboxusercontent.com/u/39101475/BugReports/gyp_build_fix.diff
It forces gyp to create flat solutions, which will make msbuild /t:v8* work with VS 2013 Ultimate (and possibly other versions too).
.gitattributes is supposed to prevent git from changing line endings on Windows from LF to CRLF. It breaks .sh scripts.
Sorry for not making this a PR, but git hates me. I tried to pull from origin, but it created lots of merge conflicts I was unable to resolve (didn't even touch those files).

So, I finally figured out the js/js problem. Turns out, the fix for js file packing was actually broken. See my PR, Fix target path for js files:
https://github.com/arangodb/arangodb/pull/1448/commits
I believe that sorts out all my build problems. I'll do another clean build for both 32 and 64 bits and see if it works out.

Ok, thanks. merged. closing.


how to start

do i have to buy EON hardware platform?
how do you build a lane detector , in APK ?

You can join our discord if you want to learn more about this project: https://discordapp.com/invite/avCJxEX

Ok


Tenor: Use provided poster image

Feature Description
In #4885 we've opted to not set a poster image for now as it wasn't available at the time.
~I've submitted a change to add the poster images to the API, which should be in production soon.~
Now the poster image is available in the API!
Example response:
{
  "media": [
    {
      "name": "media/tenor:3468838096637910112",
      "provider": "TENOR",
      "type": "GIF",
      "author": {},
      "createTime": "2020-10-26T21:36:35Z",
      "registerUsageUrl": "https://media3p.googleapis.com/v1/media:registerUsage?token=ASGVQQMYSYBsaaw4rMVmor93gH9l9S6RbV4%2B2Hl3I77adCZjxjpZpyrkNCuJv2kv33dfUYExYX0Me7bi2ypc6XgC/p2a5A%3D%3D",
      "imageUrls": [
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAAC/happy-national-cat-day-peace.gif",
          "imageName": "gif",
          "mimeType": "image/gif",
          "width": 498,
          "height": 498
        },
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAAe/happy-national-cat-day-peace.png",
          "imageName": "gifpreview",
          "mimeType": "image/gif",
          "width": 640,
          "height": 640
        },
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAAM/happy-national-cat-day-peace.gif",
          "imageName": "tinygif",
          "mimeType": "image/gif",
          "width": 220,
          "height": 220
        },
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAAS/happy-national-cat-day-peace.gif",
          "imageName": "nanogif",
          "mimeType": "image/gif",
          "width": 90,
          "height": 90
        }
      ],
      "videoUrls": [
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAPs/happy-national-cat-day-peace.webm",
          "videoName": "webm",
          "mimeType": "image/webm",
          "width": 640,
          "height": 640
        },
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAPo/happy-national-cat-day-peace.mp4",
          "videoName": "mp4",
          "mimeType": "video/mp4",
          "width": 640,
          "height": 640
        },
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAP3/happy-national-cat-day-peace.webm",
          "videoName": "tinywebm",
          "mimeType": "image/webm",
          "width": 186,
          "height": 186
        },
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAP1/happy-national-cat-day-peace.mp4",
          "videoName": "tinymp4",
          "mimeType": "video/mp4",
          "width": 186,
          "height": 186
        },
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAP4/happy-national-cat-day-peace.webm",
          "videoName": "nanowebm",
          "mimeType": "image/webm",
          "width": 86,
          "height": 86
        },
        {
          "url": "https://c.tenor.com/MCPJ3sVx3GAAAAP2/happy-national-cat-day-peace.mp4",
          "videoName": "nanomp4",
          "mimeType": "video/mp4",
          "width": 86,
          "height": 86
        }
      ],
      "videoMetadata": {
        "duration": "0s"
      }
    }
  ]
}

What we need here is the gifpreview image (https://c.tenor.com/MCPJ3sVx3GAAAAAe/happy-national-cat-day-peace.png).
The file extension is confusing, but it's actually an image/gif.
Alternatives Considered

Additional Context

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

FYI @embarks this is now unblocked :)

Verified in QA


Add scalar subregisters for vector registers

Rather than generating a bunch of shifts, truncates and ors for vector operations, this change creates and takes advantage of Binja's subregisters. This will make it much easier to lift actual vector operations (as opposed to scalar operations within vectors) in the future.

Lookin' good. Thanks for the PR. Probably about time we break this code up a bit though...


realize multiple filters

Since the filter option is a array, the module should support multiple filters. It will originally create the number of filter length times of html line when it comes to multiple filters. Now try to fix it.

@carstenschaefer,
Can you please review this pull request?


GH-19: Added model objects for supported data being returned

Pull Request Test Coverage Report for Build 52

42 of 42 (100.0%)  changed or added relevant lines in 6 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+4.2%) to 98.286%

Totals

Change from base Build 48:
4.2%

Covered Lines:
114

Relevant Lines:
115

💛  - Coveralls


Bug open files in VS Code

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

VS Code Version: 1.57.1
OS Version: 11.4

Steps to Reproduce:

Go to the terminal in vs code.
Type open 'filename'
Hit enter.

Bug.
There is a bug in VS code where instead of opening a file in the VS code editor, the file opens in chrome. Unfortunately, I do not know how to fix this bug, which slow development significantly because it requires developers to manually find files to open them in VS code. I'm not sure why this bug was programmed into VS code or how to fix it.
To be clear, the open filename command should open the file in the VS code editor to enable fast editing and development. Because of the bug, the open filename command opens the file in the Chrome browser, which is relatively useless because the file cannot be edited in Chrome.
Any advice or suggestions would be greatly appreciated. Thank you!

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.71.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.71.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Hi thanks! Please provide the command to update VS Code. Thank you.

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


[Code Style] Some code style changes

Minor changes to make some code cleaner / Swiftier

@seabaylea - Small minor cleanup and some minor style changes

LGTM. Merging.


Issue with NodeValue, documentation maybe ?

Hi, great project but the example seems just a little minimal.
I am trying to access the iTunesLibrary from node but i am not sure how to map the values/types to return types.
In this example its just a string that does not seem to work for me.
no exact matches in call to initializer return NodeValue(self.library.applicationVersion)
my plan was to map playlist but i got stuck with just the string.
https://developer.apple.com/documentation/ituneslibrary/itlibrary/allplaylists
import iTunesLibrary
import NodeAPI

@NodeClass final class iTunesLibraryClass {

    private let library: ITLibrary

    @NodeActor
    @NodeConstructor init() throws {
        library = try ITLibrary(apiVersion: "1.0")
    }

    @NodeActor
    @NodeMethod func allPlaylists() throws -> NodeValueConvertible {
        return NodeValue(self.library.applicationVersion)
    }
}

#NodeModule(exports: ["iTunesLibrary": iTunesLibraryClass.deferredConstructor])`

Any documentation or examples that i can check out how this works ?

Could you try return self.library.applicationVersion? iirc String conforms to NodeValueConvertible. Let me know if that works.
Regarding docs, definitely agree that there's a lot of room for improvement. I'd ideally like to create a DocC catalog but haven't got around to it yet due to a lack of time. It's on the roadmap though.

The string can be returned from your class simply like this.
    @NodeProperty var version: String { return library.applicationVersion }

I couldn't get the playlists to work from a NodeClass, but you can wrap each ITLibPlaylist item directly from the NodeFunction
import NodeAPI
import iTunesLibrary

@NodeClass final class NodePlaylist {
  var playlist: ITLibPlaylist
  init(playlist: ITLibPlaylist) { self.playlist = playlist }

  // simple types
  @NodeProperty var name: String { playlist.name }
  // some type mapping might be necessary (NSNumber? -> Double?)
  @NodeProperty var parendID: Double? { playlist.parentID == nil ? nil : Double(exactly: playlist.parentID!) }
  // ... map other properties
}

#NodeModule(exports: [
     "allPlaylists": try NodeFunction { () in
        let library = try ITLibrary(apiVersion: "1.0")
        return library.allPlaylists.map { NodePlaylist(playlist: $0) }
    }
])


[SPARK-48703][SQL][TESTS] Upgrade mssql-jdbc to 12.6.3.jre11

What changes were proposed in this pull request?
The pr aims to upgrade mssql-jdbc from 12.6.2.jre11 to 12.6.3.jre11
Why are the changes needed?
https://github.com/microsoft/mssql-jdbc/releases/tag/v12.6.3
Hotfix & Stable Release:

Fixed issue where TokenCredential class was required to be imported https://github.com/microsoft/mssql-jdbc/pull/2453
Fixed timestamp string conversion regression https://github.com/microsoft/mssql-jdbc/pull/2455
Fixed SQLServerCallableStatement default value regression https://github.com/microsoft/mssql-jdbc/pull/2456

Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass GA.
Was this patch authored or co-authored using generative AI tooling?
No.

cc @HyukjinKwon

Merged to master for Apache Spark 4.0.0-preview2.


How to use our own tflite model ?

This template is for miscellaneous issues not covered by the other issue categories.
For questions on how to work with TensorFlow, or support for problems that are not verified bugs in TensorFlow, please go to StackOverflow.
If you are reporting a vulnerability, please use the dedicated reporting process.
For high-level discussions about TensorFlow, please post to<EMAIL_ADDRESS>for questions about the development or internal workings of TensorFlow, or if you would like to know how to contribute to TensorFlow, please post to<EMAIL_ADDRESS>

@RomitGandhi07,
Could you please elaborate your query? Do you need help building the tflite model or implementing it on your mobile device?
Also, while submitting your query, please fill in the issue template along with the TensorFlow version you are using. Thanks!

Hello sir,
I have retrained my model and generated .lite file. Now, I want to use it in the android application, So I put the .lite file and labels.txt file in asset folder and change the file name in the java file as well but whenever I run my app the model associated with the app is detecting the objects. So, please tell me how to use the .lite model in the android app. Thanks for helping.

Could you please check out this quick start guide for Android and let us know if it helps? Thanks!

I have used the same example but for the defined model, it is working perfectly, I want to use my own model and for that, I uploaded my zip file contains .lite & label file on Google Drive and share it publicly and specify that link in download.gradle file but when I run the app the error showing that .lite file not found.
In download.gradle file:   src 'https://drive.google.com/file/d/1h0ugvgkmLRdeSvV-cugYHIGAVi5zs6tt/view?usp=sharing', this is the link provided

@RomitGandhi07 Are you trying classification or object detection. If you want to classify those three classes, you can use classification model described here.  If you are trying to develop object detection model, then please check this resource. These two tutorials will give you more detailed instructions on building your own tflite model and deploy on Android.
Please close the issue if this was resolved for you. Thanks!

Hi, I'm also experiencing difficulties with running my own tflite model - please see details here

@RomitGandhi07 I tried your files in object_detection tflite_model. I am getting different error when I used quantization = True by using this command TF_OD_API_IS_QUANTIZED = true;. The following is the error trace.
2020-03-25 18:57:08.025 10944-10944/? W/main: type=1400 audit(0.0:17): avc: granted { read } for name="u:object_r:net_dns_prop:s0" dev="tmpfs" ino=14616 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:net_dns_prop:s0 tclass=file
2020-03-25 18:57:08.031 10944-10944/? I/mples.detectio: Late-enabling -Xcheck:jni
2020-03-25 18:57:08.077 10944-10944/? E/mples.detectio: Unknown bits set in runtime_flags: 0x8000
2020-03-25 18:57:08.133 10944-10944/? I/mples.detectio: The ClassLoaderContext is a special shared library.
2020-03-25 18:57:08.286 10944-10944/? D/tensorflow: CameraActivity: onCreate org.tensorflow.lite.examples.detection.DetectorActivity@8b487a
2020-03-25 18:57:08.340 10944-10944/? W/mples.detectio: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2020-03-25 18:57:08.341 10944-10944/? W/mples.detectio: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2020-03-25 18:57:08.445 10944-10944/? I/CameraManagerGlobal: Connecting to camera service
2020-03-25 18:57:08.458 10944-10944/? I/tensorflow: CameraActivity: Camera API lv2?: true
2020-03-25 18:57:08.479 10944-10944/? D/tensorflow: CameraActivity: onStart org.tensorflow.lite.examples.detection.DetectorActivity@8b487a
2020-03-25 18:57:08.481 10944-10944/? D/tensorflow: CameraActivity: onResume org.tensorflow.lite.examples.detection.DetectorActivity@8b487a
2020-03-25 18:57:08.527 10944-10980/? I/Adreno: QUALCOMM build                   : 4a00b69, I4e7e888065
    Build Date                       : 04/09/19
    OpenGL ES Shader Compiler Version: EV<IP_ADDRESS>
    Local Branch                     : mybranche95ae4c8-d77f-f18d-a9ef-1458d0b52ae8
    Remote Branch                    : quic/gfx-adreno.lnx.1.0
    Remote Branch                    : NONE
    Reconstruct Branch               : NOTHING
2020-03-25 18:57:08.527 10944-10980/? I/Adreno: Build Config                     : S L 8.0.5 AArch64
2020-03-25 18:57:08.530 10944-10980/? I/Adreno: PFP: 0x005ff110, ME: 0x005ff066
2020-03-25 18:57:08.556 10944-10944/? I/tensorflow: CameraConnectionFragment: Desired size: 640x480, min size: 480x480
2020-03-25 18:57:08.556 10944-10944/? I/tensorflow: CameraConnectionFragment: Valid preview sizes: [4048x3036, 4000x3000, 3840x2160, 3264x2448, 3200x2400, 2976x2976, 2592x1944, 2688x1512, 2048x1536, 1920x1080, 1600x1200, 1440x1080, 1280x960, 1280x720, 1024x768, 800x600, 720x480, 640x480]
2020-03-25 18:57:08.556 10944-10944/? I/tensorflow: CameraConnectionFragment: Rejected preview sizes: [640x360, 480x360, 480x320, 352x288, 320x240, 176x144, 160x120]
2020-03-25 18:57:08.556 10944-10944/? I/tensorflow: CameraConnectionFragment: Exact size match found.
2020-03-25 18:57:08.561 10944-10944/? W/tensorflow: TFLiteObjectDetectionAPIModel: lunchbox
2020-03-25 18:57:08.561 10944-10944/? W/tensorflow: TFLiteObjectDetectionAPIModel: mouse
2020-03-25 18:57:08.562 10944-10944/? W/tensorflow: TFLiteObjectDetectionAPIModel: breadboard
2020-03-25 18:57:08.566 10944-10944/? I/tflite: Initialized TensorFlow Lite runtime.
2020-03-25 18:57:08.568 10944-10944/? I/tensorflow: DetectorActivity: Camera orientation relative to screen canvas: 90
2020-03-25 18:57:08.568 10944-10944/? I/tensorflow: DetectorActivity: Initializing at size 640x480
2020-03-25 18:57:08.608 10944-10984/? I/tensorflow: CameraConnectionFragment: Opening camera preview: 640x480
2020-03-25 18:57:08.618 10944-10980/? W/Gralloc3: mapper 3.x is not supported
2020-03-25 18:57:08.728 10944-10968/? W/Gralloc3: allocator 3.x is not supported
2020-03-25 18:57:08.927 10944-10984/? D/tensorflow: CameraActivity: Initializing buffer 0 at size 307200
2020-03-25 18:57:08.927 10944-10984/? D/tensorflow: CameraActivity: Initializing buffer 1 at size 153599
2020-03-25 18:57:08.928 10944-10984/? D/tensorflow: CameraActivity: Initializing buffer 2 at size 153599
2020-03-25 18:57:08.928 10944-10984/? I/tensorflow: DetectorActivity: Preparing image 1 for detection in bg thread.
2020-03-25 18:57:08.955 10944-10983/? I/tensorflow: DetectorActivity: Running detection on image 1
2020-03-25 18:57:08.990 10944-10983/? E/AndroidRuntime: FATAL EXCEPTION: inference
    Process: org.tensorflow.lite.examples.detection, PID: 10944
    java.lang.IllegalArgumentException: Cannot convert between a TensorFlowLite buffer with 602112 bytes and a Java Buffer with 1080000 bytes.
        at org.tensorflow.lite.Tensor.throwIfShapeIsIncompatible(Tensor.java:402)
        at org.tensorflow.lite.Tensor.throwIfDataIsIncompatible(Tensor.java:369)
        at org.tensorflow.lite.Tensor.setTo(Tensor.java:187)
        at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:150)
        at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:314)
        at org.tensorflow.lite.examples.detection.tflite.TFLiteObjectDetectionAPIModel.recognizeImage(TFLiteObjectDetectionAPIModel.java:193)
        at org.tensorflow.lite.examples.detection.DetectorActivity$2.run(DetectorActivity.java:181)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.os.HandlerThread.run(HandlerThread.java:67)

As I am not sure about your model whether it is quantized or not, so I changed the option to quantization = false. Then I got much smaller error trace as follows.
2020-03-25 18:57:09.181 10944-10944/org.tensorflow.lite.examples.detection D/tensorflow: CameraActivity: onPause org.tensorflow.lite.examples.detection.DetectorActivity@8b487a
2020-03-25 18:57:10.096 10944-10959/org.tensorflow.lite.examples.detection W/System: A resource failed to call close.
2020-03-25 18:57:10.096 10944-10959/org.tensorflow.lite.examples.detection W/System: A resource failed to call close.

Questions to you.

Did you copy the tflite model and label.txt to the asset folder?
did you quantize the model? Pre or post training quantization? Thanks!

Yes, I copied tflite model and label.txt in the asset folder and I quantized the model by converting to model to tflite model.
I'm sending you the zip file which contains .lite file and .txt file, it also has .pb file. So can you try this?
Tensorflow Lite Retrained Model.zip

@RomitGandhi07 Did you disabling the model downloading part from build.gradle by commenting apply from:'download_model.gradle as // apply from:'download_model.gradle. I will also point you to good instructions here. Try to follow and update your codes so that there is no FileNotFoundError.  Lets try it and see whether you can resolve. We will spend some time to resolve if there are any more updates we need to do. Thanks!

Ok, I am trying it.

Can you please tell me which example are you working on because in my example in build.gradle I haven't found to apply from:'download_model.gradle.
Can you please share the link from where you download the example?
Thanks in advance.

Ok Found it, I'm trying now whether its working or not

@RomitGandhi07 You need to clone this [repo](git clone https://github.com/tensorflow/examples). Complete instructions are here. Thanks!

So, simply I have to disable apply line from build.gradle and put my own .lite model and label file in the asset folder.
and please can you tell me in which java file in this example I have to change the file name of model and label ?

@RomitGandhi07 DetectorActivity.java is the file name where you need to change. Instructions are there in the doc I shared. Thanks!

I had done the same steps, now I neither getting any error nor object is detected. Can you help me to find out why it's happened?
I'm attaching zip file which contains .lite model file, label file and .pb file.
assets.zip

@RomitGandhi07 Can you please post the complete log you are noticing in the android studio? Is this model crashing in monile? Thanks!

Sorry for the delayed response, no model is not crashing in the device, I have tested the .pb file in google colab it is perfectly detecting the object (Means gives perfect probability value), so after that, I convert that into .lite file but when I use it in the android app it isn't detecting the object.

@RomitGandhi07 Is this still an issue? Can you share the colab where it is perfectly detecting? how many images per category you have used? what is the accuracy you are getting with the colab. Thanks!
If this was resolved for you, please feel free to close the issue. Thanks!

@RomitGandhi07 I found that you saved your model to graph.lite. Can you please change that to  graph.tflite and check the classification? Your tflite model extension was not correct. After changing that extension, I tested on my phone. It was detecting lunchbox with 99.96% accuracy. Here is an image for you.
I am closing this issue as this was resolved for you. Thanks!


Directory layout

I just start using pgsql and I like it. Good functionality and it seems to be pretty well documented. So thank you for that =)
But I don't like the directory layout introduced in commit (6cf4313b72deb1f98a7eda9ce4da750d418f835c). It's really cumbersome when installed with goinstall, and in general it's a little more than necessary.
If installed with goinstall, the import path in Go source files is really complicated and hard to remember.
import "github.com/lxn/go-pgsql/src/pkg/pgsql"

(It doesn't really make since to have a directory /src/ in the import path either, because you're importing a binary file.)
The source files (in /src/pkg/pgsql) should be moved to /pgsql. It is the Go convention. So it gives a shorter, easy to remember import path.
import "github.com/lxn/go-pgsql/pgsql"

I think the examples were good in the /examples directory. The project wouldn't be cluttered, imho.
Please consider this. I think its really annoying the way it is. But otherwise, thanks again for this package! And please keep up the great work!

The path is now even shorter, thanks :)


[QUESTION] Is it possible to make Ambassador to listen to multiple ports ?

I want to expose 2 ports from Ambassador, one with Client Auth enabled and another with Plain TLS.
Please let me know if this is possible. Thanks in advance

Hi, yes, you can have two ambassador running for example with different id that listen on different ports


Doesn't work on Windows

> Task :createModuleGraph FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':createModuleGraph'.
> Cannot access output property 'projectDirectory$modulegraph' of task ':createModuleGraph'. Accessing unreadable inputs or outputs is not supported. Declare the task as untracked by using Task.doNotTrackState(). For more information, please refer to https://docs.gradle.org/8.7/userguide/incremental_build.html#sec:disable-state-tracking in the Gradle documentation.
   > Failed to create MD5 hash for file content.

📱 Tech info

OS: Windows 11
Library/App version: 0.10.0
Gradle: 8.7

A project as simple as this example won't work, giving the same error: https://github.com/NinoDLC/ModuleGraphDoesntWork

Doesn't work on Windows but works on Mac and WSL

Hey, thanks for the report.
I'll take a look into it.

> Task :createModuleGraph FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':createModuleGraph'.
> Cannot access output property 'projectDirectory$modulegraph' of task ':createModuleGraph'. Accessing unreadable inputs or outputs is not supported. Declare the task as untrack
ed by using Task.doNotTrackState(). For more information, please refer to https://docs.gradle.org/8.7/userguide/incremental_build.html#sec:disable-state-tracking in the Gradle documentation.
   > Failed to create MD5 hash for file content.

Same happening for me

Couldn't get the root cause, so I added used that approach to work around this issue.
Can you double check if v0.10.1 works for you @MAshhal  and @NinoDLC? Thanks!


Question about login and authentication flow

Hi, I actually have two questions:

I was just curious why identity server has it's own logic to redirect to a login page instead of using things like ChallengeAsync? How does that work if I have a normal mvc webapp with login flow that also serves as oidc provider, similar to, say, github?
Why UseIdentityServer calls UseAuthentication internally? Is that done for any specific reasons? I see that the only real thing before it is cors configuration.

1: because we need more redirect semantics beyond challenge -- we have consent, error, logout, etc. so mainly for consistency.
2: we need to order the middleware in a particular way.

What are the order requirements? Because from what I know identity server does not influence the AuthenticateAsync and that is what authentication middleware calls... Just curious.

The code's there -- go have a look.

well that's generally what I figured from code. I may be looking again in a while. Thanks.


Allow custom scale string

Allow definition of custom scale strings using the -s, --scale options.
dBFS will remain a special case and default option, as it uses the dBFSValueMap which clamps the values to an upper limit of 0.
Add new LinearValueMap and dBValueMap value maps which map the values accordingly.
If the string begins with db or dB then it defaults to dBValueMap and the rest of the string is used for display purposes. Limits can be specified with, maybe, commas? I.e. -s dBm,20,-20 specifies the limits for a dBValueMap.
Otherwise it uses a LinearValueMap with the limits specified as above.

Also refactor the choice in main() into a factory method.

dBFSValueMap should disappear. We should have just a dBValueMap with default options (unit, limits) that are equal to current dBFS settings.
Also, format should be -s unit[,lower[,upper]]. E.g. -s dBFS,-120,0.


TP-172 Fix non-unique certificate SID scenario

Summary
A certificate sid alone is not unique, it's the combination of the type id and the sid that is. Changed so that we now use both.

I think this is what we want? Not 100% sure i've implemented this correctly.

Codecov Report

Merging #199 (8632e9e) into master (ddf469d) will increase coverage by 0.16%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##           master     #199      +/-   ##
==========================================
+ Coverage   61.58%   61.74%   +0.16%
==========================================
  Files         176      175       -1
  Lines       10572    10541      -31
  Branches      790      788       -2
==========================================
- Hits         6511     6509       -2
+ Misses       3881     3852      -29
  Partials      180      180

Impacted Files
Coverage Δ

certificates/business_rules.py
10.71% <ø> (+0.36%)
:arrow_up:

certificates/models.py
11.11% <0.00%> (-0.21%)
:arrow_down:

certificates/urls.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

I think you are missing the filter stuff

The mixins are on the FootnoteFilter class slightly below

I mean you don't have a CertificateFilterMixin to handle the URL being made up of <certificate_type_id><certificate_code> like in footnotes. The view needs to know how to get the certificate model from the URL parameters, doesn't it?

You might need to handle a missing description - not sure if that's actually allowed in the real data, though.

Think the description has to be there, otherwise I think this is good to go. I pretty much just pulled the search field override from the filter into the other method. Which is why it still works.


Apply BestieTemplate changes

Pull request details
Describe the changes made in this pull request
Apply changes from the template
List of related issues or pull requests
Closes #34
Closes #32
Collaboration confirmation
As a contributor I confirm

[x] I read and followed the instructions in README.dev.md
[x] The documentation is up to date with the changes introduced in this Pull Request (or NA)
[x] Tests are passing
[ ] Lint is passing

The link checker is not passing because the file https://github.com/TulipaEnergy/TulipaProfileFitting.jl/blob/main/docs/src/90-contributing.md
from the template is not in the main repository yet. It won't fail after we merge


initial script just needs to change to main.py

git clone https://github.com/lesteroliver911/docling-pdf-processor.git
cd docling-pdf-processor
pip install -r requirements.txt
streamlit run app.py
needs to change to:
streamlit run main.py
other than that working great and some demo docs, thanks for posting!

Hmm, the pdf docs I tried were unable to run; something about a Mac error?

@brandonopened thank-you for pointing the typo out :) I have fixed it
Could you let me know the error you were getting. ? I had to spend sometime getting docling configured on my mac.


[Dialog] Add workaround for Chrome flexbox bug

Hi,
It's for Dialogs.
There's a bug in Chrome with the flexbox layout when a parent node has a max-height, but no height.
The workaround is to also set the height;

[ ] PR has tests / docs demo, and is linted.
[ ] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[ ] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

Sorry, we can't accept than change:

Do you have a reproduction test-case of your issue?
You could use http://www.webpackbin.com/4kXBv_wLM to give one.

Hi,
Thx for your time.
I've filled your webpackbin with an example.
http://www.webpackbin.com/4J62oHd8G
You can see the big content with an height of 100% and an overflow-y at scroll. Its parent only has a max-height, without an height, and that messes up the child's height: 100%.
If you add the height next to the max-height, all works well (for this example :) )
Btw, I didn't even use flex here (my bad).
Thx again,
Olivier

Btw, by doing
if (dialogContent.offsetHeight > maxDialogContentHeight) {
  dialogContent.style.height = maxDialogContentHeight + 'px';
}
dialogContent.style.maxHeight = maxDialogContentHeight + 'px';

all works well for me


ci: Introduce CI coverage for Ruby 3.0.0 release candidate

[x] Create a nokogiri-test image based on Ruby 3.0 RCs (which will involve an update to concourse-gem)
[x] Add a non-release-blocking job to the CI pipelines
[x] Make sure it builds without errors (failures would be OK at this point)

Seeing this error:
/usr/local/lib/ruby/3.0.0/bundler/runtime.rb:302:in `check_for_activated_spec!': You have already activated racc 1.5.0, but your Gemfile requires racc 1.4.16. Since racc is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports racc as a default gem. (Gem::LoadError)
	from /usr/local/lib/ruby/3.0.0/bundler/runtime.rb:31:in `block in setup'
	from /usr/local/lib/ruby/3.0.0/bundler/spec_set.rb:147:in `each'
	from /usr/local/lib/ruby/3.0.0/bundler/spec_set.rb:147:in `each'
	from /usr/local/lib/ruby/3.0.0/bundler/runtime.rb:26:in `map'
	from /usr/local/lib/ruby/3.0.0/bundler/runtime.rb:26:in `setup'
	from /usr/local/lib/ruby/3.0.0/bundler.rb:149:in `setup'
	from /usr/local/lib/ruby/3.0.0/bundler/setup.rb:20:in `block in <top (required)>'
	from /usr/local/lib/ruby/3.0.0/bundler/ui/shell.rb:136:in `with_level'
	from /usr/local/lib/ruby/3.0.0/bundler/ui/shell.rb:88:in `silence'
	from /usr/local/lib/ruby/3.0.0/bundler/setup.rb:20:in `<top (required)>'
	from /usr/local/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb:83:in `require'
	from /usr/local/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb:83:in `require'

Green build: https://ci.nokogiri.org/teams/nokogiri-core/pipelines/nokogiri/jobs/cruby-3.0-rc/builds/5
Closing.