When @Configuration class implements SchedulingConfigurer

I cannot implement this functional interface with ShedLock. It throws an error complaining about trying to inject a proxy.
@Override
    public void configureTasks(ScheduledTaskRegistrar registrar) {
        registrar.setTaskScheduler(taskScheduler());
    }

My setup:
@Bean(name = "taskExecutor")
    @Primary
    public TaskExecutor taskExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(20);
        executor.setThreadNamePrefix("async-");
        executor.setAllowCoreThreadTimeOut(true);
        executor.setWaitForTasksToCompleteOnShutdown(true);

        return executor;
    }

    @Bean(name = "taskScheduler")
    public ThreadPoolTaskScheduler taskScheduler() {
        ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
        scheduler.setPoolSize(50);
        scheduler.setWaitForTasksToCompleteOnShutdown(true);
        scheduler.setErrorHandler(t -> log.error(
                "Unknown error occurred while executing task.", t
        ));
        scheduler.setRejectedExecutionHandler(
                (r, e) -> log.error(
                        "Execution of task {} was rejected for unknown reasons.", r
                )
        );

        return scheduler;
    }

    @Bean(name = "scheduledLockConfiguration")
    public ScheduledLockConfiguration scheduledLockConfiguration(TaskScheduler taskScheduler, LockProvider lockProvider) {
        return ScheduledLockConfigurationBuilder
                .withLockProvider(lockProvider)
                .withTaskScheduler(taskScheduler)
                .withDefaultLockAtMostFor(Duration.ofMinutes(10))
                .build();
    }

    @Bean(name = "lockProvider")
    public LockProvider lockProvider(MongoClient mongo) {
        return new MongoLockProvider(mongo, "my_db");
    }

Hi @lukas-krecan
I actually had that annotation on there already but I also had the ScheduledLockConfiguration bean definition.
This still fails:
@Configuration
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
@Slf4j
public class SchedulerConfig implements SchedulingConfigurer {

    @Override
    public void configureTasks(ScheduledTaskRegistrar registrar) {
        registrar.setTaskScheduler(taskScheduler());
    }

    @Bean(name = "taskExecutor")
    @Primary
    public TaskExecutor taskExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(20);
        executor.setThreadNamePrefix("traveliko-async-");
        executor.setAllowCoreThreadTimeOut(true);
        executor.setWaitForTasksToCompleteOnShutdown(true);

        return executor;
    }

    @Bean(name = "taskScheduler")
    public ThreadPoolTaskScheduler taskScheduler() {
        ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
        scheduler.setPoolSize(50);
        scheduler.setWaitForTasksToCompleteOnShutdown(true);
        scheduler.setErrorHandler(t -> log.error(
                "Unknown error occurred while executing task.", t
        ));
        scheduler.setRejectedExecutionHandler(
                (r, e) -> log.error(
                        "Execution of task {} was rejected for unknown reasons.", r
                )
        );

        return scheduler;
    }
}

java.lang.IllegalStateException: @Bean method SchedulerConfig.taskScheduler called as bean reference for type [org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler] but overridden by non-compatible bean instance of type [com.sun.proxy.$Proxy264]. Overriding bean of same name declared in: class path resource [com/traveliko/platform/core/config/SchedulerConfig.class]
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.resolveBeanReference(ConfigurationClassEnhancer.java:418) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:366) ~[spring-context-5.1.3.RELEASE.jar:5.1.3.RELEASE]
	at com.traveliko.platform.core.config.SchedulerConfig$$EnhancerBySpringCGLIB$$22cac23f.taskScheduler(<generated>) ~[classes/:na]
	at com.traveliko.platform.core.config.SchedulerConfig.configureTasks(SchedulerConfig.java:45) ~[classes/:na]

You are right, it's indeed a bug. I will take a look at it in next few days. Thanks for reporting.

Hi @lukas-krecan
That was indeed an oversight on my side. Not even a workaround ;-) That's the proper way to do it!
Thank you.

Hi, I'm sorry to interrupt to use this closed issue.
I think I found some related issue on Stackoverflow which we do run into as well.
It might be due to the usage of the messageBrokerTaskScheduler bean defined in AbstractMessageBrokerConfiguration, or check the docs.
Could you please shed some light on this?

I have answered the SO question right now https://stackoverflow.com/questions/56017382/how-to-fix-websockets-and-shedlock-compatibility-in-spring-boot-application/56036601#56036601

@lukas-krecan Thanks for you help! :+1:


Traefik filters Marathon application if the application has no port specified

I am not sure if I am using Traefik correctly but something looks suspicious to me.
Namely, I have an app running in two backends and the app has been assigned a random port by Marathon, like this:

<IP_ADDRESS>:31769
<IP_ADDRESS>:31492

The application has these labels in Marathon:
traefik.backend=foo
traefik.frontend.rule=Path
traefik.frontend.value=/mypath
then in my case Traefik outputs the following to the DEBUG log:
"Filtering marathon task without port %s/nodeapp"
And consequently the Traefik web interface does not list the app and load balancing is not of course working. I would expect Traefic to detect the ports 31769 and 31492 and register the application to be load-balanced.
A workaround is to just write some arbitrary port number to the applications ports in the Configuration dialog and save the configuration, after which Traefik determines the correct ports and registers the app correctly and load balancing works.

Hi @akunaatrium, thanks to @dylanmei, in the last version of Traefik, you can use the label traefik.portIndex as seen here: https://github.com/emilevauge/traefik/blob/master/docs/index.md#marathon. It allows Traefik to use marathon random ports. Is it useful ?

Hi! Nope, sorry, not working. Tried with traefik.portIndex with values 0 and 1, still the same result.

I think it's worth noting that I am using Traefik through Docker image emilevauge/traefik:latest. Could be that this verison at Docker Hub does not yet contain the fix?

Maybe yes, could you update your traefik image?

Hello @akunaatrium
The task is filtered out because Traefik gets no port info from marathon. I imagine you will have the same problem regardless of the newness of your docker image.
marathon.go
So I'd like to know more about your version of Marathon, and if you could show some more of your marathon json that would help.

I will soon be able to get the Marathon version and application json when I get home but first I would like to elaborate on this a bit more. I just assume that the task.Ports value in the taskFilter function is the list of ports that I can manually enter to the Marathon application configuration. When I enter one completely random number to the configuration as the port (which is actually not used in any way), Traefik suddenly is able to get all the correct Marathon assigned ports (31769, 31492) and registers the application. Can't Traefik retrieve the Marathon assigned ports (in my case 31769 for one task and 31492 for the second task) without having to manually have anything written the Ports field? I may be missing something obvious also because I am actually just starting out with Mesos/Marathon.

The application's JSON looks like this (retrieved with Marathon REST API call to GET /v2/apps/nodeapp):
{
    "app": {
        "acceptedResourceRoles": null,
        "args": null,
        "backoffFactor": 1.15,
        "backoffSeconds": 1,
        "cmd": "node /home/vagrant/app/app.js",
        "constraints": [
            [
                "hostname",
                "UNIQUE"
            ]
        ],
        "container": null,
        "cpus": 0.1,
        "dependencies": [],
        "deployments": [],
        "disk": 0,
        "env": {},
        "executor": "",
        "healthChecks": [],
        "id": "/nodeapp",
        "instances": 2,
        "labels": {
            "traefik.backend": "foo",
            "traefik.frontend.rule": "Path",
            "traefik.frontend.value": "/mypath"
        },
        "lastTaskFailure": {
            "appId": "/nodeapp",
            "host": "<IP_ADDRESS>",
            "message": "Reconciliation: Task is unknown",
            "slaveId": "1f0c708c-ff03-43f5-887b-97a28558e043-S2",
            "state": "TASK_LOST",
            "taskId": "nodeapp.ec2e8e48-bb06-11e5-a537-024233626ade",
            "timestamp": "2016-01-15T18:07:51.638Z",
            "version": "2016-01-14T21:36:51.098Z"
        },
        "maxLaunchDelaySeconds": 3600,
        "mem": 16,
        "ports": [
            1234
        ],
        "requirePorts": false,
        "storeUrls": [],
        "tasks": [
            {
                "appId": "/nodeapp",
                "host": "<IP_ADDRESS>",
                "id": "nodeapp.0f43151d-bbb4-11e5-89ce-024219c79614",
                "ports": [
                    31690
                ],
                "slaveId": "5c22aec6-4c05-479f-9b8c-5aa5c68343b6-S0",
                "stagedAt": "2016-01-15T18:16:12.923Z",
                "startedAt": "2016-01-15T18:16:13.022Z",
                "version": "2016-01-15T18:16:12.886Z"
            },
            {
                "appId": "/nodeapp",
                "host": "<IP_ADDRESS>",
                "id": "nodeapp.12a63d4e-bbb4-11e5-89ce-024219c79614",
                "ports": [
                    31643
                ],
                "slaveId": "5c22aec6-4c05-479f-9b8c-5aa5c68343b6-S1",
                "stagedAt": "2016-01-15T18:16:18.606Z",
                "startedAt": "2016-01-15T18:16:18.682Z",
                "version": "2016-01-15T18:16:18.541Z"
            }
        ],
        "tasksHealthy": 0,
        "tasksRunning": 2,
        "tasksStaged": 0,
        "tasksUnhealthy": 0,
        "upgradeStrategy": {
            "maximumOverCapacity": 1,
            "minimumHealthCapacity": 1
        },
        "uris": [],
        "user": null,
        "version": "2016-01-15T18:16:18.541Z",
        "versionInfo": {
            "lastConfigChangeAt": "2016-01-15T18:12:18.389Z",
            "lastScalingAt": "2016-01-15T18:16:18.541Z"
        }
    }
}

And version of Marathon is: 0.13.0.

You'll want to declare your ports, even if you're happy for marathon to select random ports.
https://mesosphere.github.io/marathon/docs/rest-api.html
ports (Array of Integers)
The port array currently serves multiple roles:

The number of items in the array determines how many dynamic ports are allocated for every task.
For *every port that is zero*, a globally unique (cluster-wide) port is assigned and provided as part of the app definition to be used in load balancing definitions.

So in your case add "ports": [0] -- marathon will select the port for you and traefik will send traffic to that port.

Ok, so that's how the logic is indeed then. Thanks for clarification.


Prerequisite for purchase order year-end process

There is no article for purchase order year-end process in ( https://docs.microsoft.com/en-us/dynamics365/unified-operations/financials/ ). Hence, customers refer to the document available at ( https://docs.microsoft.com/en-us/dynamicsax-2012/appuser-itpro/process-purchase-orders-at-year-end ). However, this document does not describe a prerequisite. The missing prerequisite is the invoices for the purchase orders should be posted before the end of the fiscal year. If there is a invoice that is not in posted state, then the corresponding purchase order will not be accepted for the year-end process. The following error message will be thrown -

The accounting date for the invoice must be in the same fiscal year as the related purchased order. Run the purchase order year-end process or change the date to the current fiscal year.

Hence, this issue has the following two tasks

[ ] Provide a document for purchase order year-end process at ( https://docs.microsoft.com/en-us/dynamics365/unified-operations/financials/ )
[ ] Ensure the prerequisite that invoices should be posted before the start of the new fiscal, is stated

Bug 298720 has been logged to track this issue.


Getting event logging listener exception

Delta version: 2.11:0.6.0
EMR Version: 5.30
Exception:
20/05/28 08:45:00 ERROR AsyncEventQueue: Listener EventLoggingListener threw an exception
java.lang.ClassCastException: java.util.Collections$SynchronizedSet cannot be cast to java.util.List
at org.apache.spark.util.JsonProtocol$.accumValueToJson(JsonProtocol.scala:348)
at org.apache.spark.util.JsonProtocol$$anonfun$accumulableInfoToJson$3.apply(JsonProtocol.scala:324)
at org.apache.spark.util.JsonProtocol$$anonfun$accumulableInfoToJson$3.apply(JsonProtocol.scala:324)
at scala.Option.map(Option.scala:146)
Facing this while using Delta Merge operation
Found a similar error raised here:
https://stackoverflow.com/questions/61799041/strange-non-critical-exception-when-using-spark-2-4-3-emr-5-25-0-with-delta-la

Thanks for reporting this. This is caused by https://github.com/delta-io/delta/commit/a1f7976b9c32849c605cfdce8d97254298555f33 : We changed the accumulator used by Merge to an internal accumulator. But Spark event log serialization doesn't handle internal accumulators whose type is SetAccumulator.
This error doesn't impact anything of your jobs. Except it may impact the debugging when you look at the Spark UI on Spark History Server, because the error will cause Spark not log the task events for your merge query and the Spark UI won't be able to render the Spark jobs and stages for the merge query properly. The live Spark UI when your application is running is not impacted.
However, we cannot revert the commit because it's a pretty import fix for the stability of merge queries. We noticed that a non-internal accumulator will be kept in memory pretty long and cause stability issues. For example, if a merge query touches 1 million files, all of file paths will be kept in memory until you run 1000 stages after the merge query.
We will work with the Spark community to fix this issue.

I'm closing this one. This issue will be fixed in Apache Spark 2.4.7/3.0.1/3.1.0. See https://issues.apache.org/jira/browse/SPARK-31923

I still get this issue in AWS EMR runnning Spark 3.0.1 and Delta 0.7.0. Any ideas why?

@rtjarvis I'd suggest asking EMR support.  Perhaps they are missing some patches?

Hello guys :)! I confirm we're still running into this with Spark 3.0.1 (and in master), on an open-source image we use at Data Mechanics. I have explained why the patch doesn't entirely work in SPARK-31923.


fix: post-form outline to none

Fixes #44
Added outline: none; to #feed-post-form textarea App.css
Before

After

I think my Linter added and removed some spaces in the file!

We have an UI Kit textarea for doing that. Also outline: none is a bad practices.
Read More here:
Why outline none is a bad practice?

Yeah I understand, that is why I mentioned that either we can use outline:none; or we can use your textarea (maybe a more rounded version if it looks good)! Maybe you can add the new one and create a PR on the same issue.

Closing in favor of #71


Running srb init throws ArgumentError

Input
After initializing a new ruby project with a simple class:
class Person
  def initialize(name, age, hobbies)
    @name = name
  end

  def introduce
    puts "Hi, my name is<EMAIL_ADDRESS>  end
end

Gemfile:
group :development do
  gem 'sorbet', '~> 0.5.6482'
  gem 'sorbet-runtime'
end

running the initialization command:
srb init

Observed output
Hey there!

This script will get this project ready to use with Sorbet by creating a
sorbet/ folder for your project. It will contain:

- a config file
- a bunch of 'RBI files'

RBI stands for 'Ruby Interface'; these files define classes, methods, and
constants that exist, but which Sorbet doesn't always know about.

Heads up:

To set up your project, this script will take two potentially destructive
actions:

1.  It will require every file in your project. Specifically, every script in
    your project will be run, unless that script checks if __FILE__ == $PROGRAM_NAME
    before running any code, or has the magic comment # typed: ignore in it.

2.  It will add a comment to the top of every file (like # typed: false or
    # typed: true, depending on how many errors were found in that file.)

Would you like to continue? [Y/n] y
Generating: sorbet/config
Reusing existing config file: sorbet/config
Generating: sorbet/rbi/sorbet-typed/
Generating: sorbet/rbi/gems/
/home/benedikt/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sorbet-0.5.6482/lib/gem-generator-tracepoint/tracepoint_serializer.rb:35:in `initialize': wrong number of arguments (given 1, expected 0; required keywords: files, delegate_classes) (ArgumentError)
        from /home/benedikt/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sorbet-0.5.6482/lib/gem-generator-tracepoint/tracer.rb:40:in `new'
        from /home/benedikt/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sorbet-0.5.6482/lib/gem-generator-tracepoint/tracer.rb:40:in `new'
        from /home/benedikt/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sorbet-0.5.6482/lib/gem-generator-tracepoint.rb:43:in `main'
        from /home/benedikt/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sorbet-0.5.6482/bin/srb-rbi:232:in `block in make_step'
        from /home/benedikt/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sorbet-0.5.6482/bin/srb-rbi:118:in `init'
        from /home/benedikt/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sorbet-0.5.6482/bin/srb-rbi:196:in `main'
        from /home/benedikt/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sorbet-0.5.6482/bin/srb-rbi:237:in `<main>'

Expected behavior
For sorbet to set up the project.

Running on Ruby 3.0.0

Apologies, I did not know Ruby 3 was not supported. This works for 2.7.3, so I'll close this,


Performance with SP Call ODBC vs idb-pconnector vs old IBM Node 6 Database driver

Environment:
IBM i 7.3 (need to update to 7.4 now)
Old version:
Node 6 (yes I know - it is a long story.... ;-) )
Native IBM Node.js driver
const db = require('/QOpenSys/QIBM/ProdData/OPS/Node6/os400/db2i/lib/db2a');
New version:
Node.js 14.21.3
IBM ODBC driver for PASE in the actual version (July 2023)
Hi there,
after getting the Stored Procedure with the larger OUT Parameter to work thanks to your fix with 2.4.8 (thanks a lot again!) we recognized performance problems with the ODBC connection compared to the old Node.js which was running under Node 6 with the old IBM database driver (yes - I started with Node.js back in early 2015 with V 0.12 :-D ).
I now created some test scripts which call the same SP with promises for 10 times in parallel and collect them with promise.all and get values around 400ms for the old IBM DB2 driver as well as the idb-pconnector.
With ODBC I get around 800ms for the same job.
In real life it was much worse when a lot of users access the same script in parallel. So about 100-300 users access my Node.js script at the (nearly) same time and each of them starts the 10 requests to the SP.
With the old IBM DB driver we have response times around 400ms - 10 seconds (this is something we are also working on because we are sure it is something in the RPG processes behind the SP) and with the ODBC Version we get response times around 500ms (which is confusing to me because in my above test which called the SP directly the best response is 700ms and that was only one time and late at night when only a few people worked on the system) to 70 seconds (!!!).
Most times with the ODBC version we have more than 30 seconds while the old version is normally under 3 seconds (which is very bad at all).
I also tried the connection pool with and without reuse. With this I get the same response times. Sometimes they are even worse...
I tested it with and without CALLBACKS and get the same results.
So first of all my question is:
Do you know about such performance differences already with SP regarding IBM I and your package / IBM ODBC driver?
 I need to change my scripts to the idb-pconnector but I don't want to do that... With the ODBC it is much easier to develop of course.
After switching to 7.4 we will convert the Node 14 to Node 20. Maybe that will bring a performance boost?
I know that the above scenario is very specific and the customers system is heavy loaded.
For better understanding and compare I need to create a test environment on my system, which I will do later.
With this you will be able to reproduce that.
First of all it would be interesting, if you or anybody else made the same experience?
Many thanks for your response and have a great day.
Kind regards
Markus

Do you know about such performance differences already with SP regarding IBM I and your package / IBM ODBC driver?

The old db2a package (which became the idb-connector package) connects to the database through libdb400, which is an in-job, in-memory interface. For ODBC, it must connect through a socket to the host server. Even on localhost, sending data over a socket will be slower than just accessing the data through a pointer, especially if it's large amounts of data.
I don't think Node 20 will bring any performance difference in this case, since the performance is being impacted by the database connection which in either case is written in C++ code and unaffected by any changes in Node.js runtime.
There may be some connection options which could affect your performance. You can also check out the performance tuning ODBC docs.

Hi Kevin,
many thanks for that quick response again.
I was afraid that you (or someone else) will say that....
I will check out the performance tuning docs.
Another Test I will do now is to use our IceBreak ILE Web Application Server to make a http request from Node.js to IceBreak. Within the IceBreak environment we can call directly the RPG Programs which are used in the background and in another customer scenario this brought a big performance boost because no Database Server Job at all is used.
When I have some new data I come back and report them.


VSCode: Do not parse Windows file paths as URIs

Fixes #2184. Uri.parse parses URIs, Uri.file takes a file path and turns it into a URI. For UNIX-style paths, Uri.parse works fine, but for Windows file paths, parsing them as URIs is wrong; the the drive separator is URL-encoded and the URI is unusable, etc.
https://github.com/sourcegraph/cody/assets/55120/417332a4-9c10-4728-a2de-b24bfb8d4fb3
Test plan

Open a workspace, start a chat
@-mention a file in the workspace
The file should be included in the chat context, Cody can see the content, etc.

Reviewed our other uses of Uri.parse and they appear correct. They may handle files, but they are file URIs.


translate /help/glossary/#pilot #destination #mutual-tls #secure-nami…

…ng #service-consumer #service-operator #service-producer #service-registry #source #tls-origination

done @rootsongjc

/lgtm

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: rootsongjc
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content_zh/OWNERS [rootsongjc]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


table groups renamed in zabbix 4

I have trouble with this error:
2019/05/15 07:47:18 [...db-zabbix/log/log.go:299 Error()] [E] Error while executing script: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups grp on grp.groupid = hg.groupid
WHERE grp.internal=0
   AND tre.clock > 1' at line 35
2019/05/15 07:47:18 [...db-zabbix/log/log.go:299 Error()] [E] Error while executing script: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups grp on grp.groupid = hg.groupid
WHERE grp.internal=0
   AND his.clock > 1' at line 33
2019/05/15 07:47:18 [...db-zabbix/log/log.go:299 Error()] [E] Error while executing script: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups grp on grp.groupid = hg.groupid
WHERE grp.internal=0
   AND his.clock > 1' at line 33
2019/05/15 07:47:18 [...db-zabbix/log/log.go:299 Error()] [E] Error while executing script: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups grp on grp.groupid = hg.groupid
WHERE grp.internal=0
   AND tre.clock > 1' at line 35

This problem is only with zabbix > 4.0 due to mysql8 have "groups" word reserved.
Everything works after change 4 lines in input/mysql.go

solution also is in pull request
https://github.com/zensqlmonitor/influxdb-zabbix/pull/16

ok fixed for postgresql and mysql


Add support for colors in lightmaps

The colours in the lightmaps should be used on GND import. The colors on the lightmaps are often very ugly, especially on indoor maps due to extreme banding issues. It would probably be a good thing to allow the user to ignore the colour on GND import.

The actual colors in the GND lightmap aren't posterized. Gravity's client clearly butchers them, but I've had no issues reproducing the original colors from the texture's RGBA values :)

Thanks for the info, I didn't know the posterization was an issue limited to the client.
On an unrelated note, would you happen to have any insight on this issue? It's the biggest problem with the whole plugin right now, with that fixed I would be more motivated to continue working on it.


MSAL.js with Server Side auth

Core Library
@azure/msal-browser
Core Library Version
2.14.0
Wrapper Library
Not Applicable
Wrapper Library Version
NA
Description
Hi Team,
How can we retrieve an authorization code from MSAL.js and send it to backend for further processing? The UI doesn't have to handle anything there but retrieve a permanent authorization code. Backend will do modifications in background to user's calendar based on some actions.
I have gone through multiple documents and samples, I couldn't find anyway to do so. Please guide and help.
Thanks.
MSAL Configuration
No response
Relevant Code Snippets
No response
Identity Provider
No response
Source
External (Customer)

@pra7eek this is not supported and in general, moving around sensitive information like authorization code is not a good idea. Instead, have you considered the on-behalf-of flow? This should be able cover your use case.
You can find a sample project here. If you run into any problems, feel free to raise an issue there.

@derisen thank you for the response. The "on-behalf-of flow" might work out but I need to test it first. I cloned the sample project to try it out. I did all the steps which are mentioned in the sample app readme, but I'm seeing the following error once the login popup closes after I authorize it:
AADSTS7000218: The request body must contain the following parameter: 'client_assertion' or 'client_secret'
After searching on the interest, I tried enabling "Allow public client flows", but I still see this error.

@pra7eek just answered.

@derisen , In the example, I see that every request to the server has a bearer token. So in theory, can this bearer token be saved in some database permanently? As I mentioned earlier, there is no UI interaction once we retrieve the token, everything has to run on the server based on some actions. What is the expiry time of the token?

I noticed that UI refreshes the token after a while. This solution won't work for us. UI just needs to have one time connect and give that token to the server api and things will be handled by a backend service. Is there anyway to refresh this token on the server side like the other OAuth apps?

@derisen , In the example, I see that every request to the server has a bearer token. So in theory, can this bearer token be saved in some database permanently? As I mentioned earlier, there is no UI interaction once we retrieve the token, everything has to run on the server based on some actions. What is the expiry time of the token?

@pra7eek This is possible. In this case your frontend and backend apps should share the same app registration (i.e. client Id). Your backend app then can use MSAL's AcquireTokenSilent() API to refresh the tokens as needed.
You would also need a mechanism that would trigger the front-end to prompt the user for interactive token acquisition when the back-end can no longer use the token for some reason (token is expired, MFA required etc.). For instance, when the backend receives an interaction required error from Graph API, you would propagate this error to front-end).
See here for instance a .NET sample project that implements a scenario similar to yours. We don't have a similar sample for JavaScript, but in principle you should be able to replace the .NET frontend there with a JS frontend.
cc @jasonnutter

@derisen, That's the issue.
We can't rely on the UI for the further authentication. For example:
A person connects their calendar with our project using the lib so that we can add events to his calendar on his behalf. We save the access token in the database for further use. Now after a day or so, we have an action which needs us to add an event to the calendar, but the token has expired, and it's all happening somewhere in API communication. Frontend is not involved there. We need to refresh that token right there in the backend.
I feel it's a pretty common scenario where we need to save the refresh token in the backend so that things happen in background. Please let me know if there is anyway to handle this.

@pra7eek sorry if I haven't made it clear -you will still refresh the token in the backend, its just that if (for whatever reason) the backend is not able to refresh it, you'll need to notify the frontend to prompt the user.
Please go through this sample once and see if that corresponds to your case.
FE authenticates user and gets token and user account object


Oscillating Pod counts when misconfigured replicas

Report
I observed oscillating pod counts because both HPA controller & ScaledObject Controller attempt to update the scale subresource of a Deployment when the min & max replicas were misconfigured.
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: my-deployment
spec:
  maxReplicaCount: 50
  minReplicaCount: 4
  scaleTargetRef:
    kind: Deployment
    name: my-deployment
  triggers:
  - metadata:
      value: "45"
    metricType: Utilization
    type: cpu
  - metadata:
      desiredReplicas: "15"
      end: 0 12 * * SUN-SAT
      start: 0 7 * * SUN-SAT
      timezone: America/Los_Angeles
    type: cron
  - metadata:
      desiredReplicas: "26"
      end: 0 18 * * SUN-SAT
      start: 0 12 * * SUN-SAT
      timezone: America/Los_Angeles
    type: cron

Here's the order of events:

User updated minReplicas & maxReplicas to 27, which in turn updated the HPA, and eventually the Deployment's replica count
User then updated & misconfigured replica counts by setting minReplicas = 50, and maxReplicas = 10, this ment that the HPA object wasn't updated
KEDA then attempted to scale the deployment to 50 replicas in it's reconcile loop and HPA reverting it back to 27. This happened every 5 mins

Expected Behavior
I would expect replica counts to stay at 27 because HPA can't be updated.
In addition, I would expect the ScaledObject webhook to enforce valid min & max replica settings; it should fail to be updated with invalid settings
Actual Behavior

Keda operator would update the /scale subresource and set the replica count to 50
HPA would override this and set it to 27
This behavior happened over and over again until the ScaledObject was fixed and minReplicas was <= maxReplicas

Steps to Reproduce the Problem
I can't seem to reproduce it since it first occurred :-(
Logs from KEDA operator
n/a - lost the logs :-(
here's a k8s audit log of when the deployment is getting scaled by Keda
{
  annotations: {
    authorization.k8s.io/decision: 'allow',
    authorization.k8s.io/reason:   'RBAC: allowed by ClusterRoleBinding "keda-operator" of ClusterRole "keda-operator" to ServiceAccount "keda-operator/infra"',
  },
  apiVersion:               'audit.k8s.io/v1',
  auditID:                  '9840e292-822c-43df-8f4f-378ab0b8fd79',
  kind:                     'Event',
  level:                    'RequestResponse',
  message:                  '',
  objectRef: {
    apiGroup:        'apps',
    apiVersion:      'v1',
    name:            'my-deployment',
    namespace:       'default',
    resource:        'deployments',
    resourceVersion: '3635019749',
    subresource:     'scale',
    uid:             'cbc8124a-b008-4336-a5bf-784082c5d310',
  },
  requestObject: {
    apiVersion: 'autoscaling/v1',
    kind:       'Scale',
    metadata: {
      creationTimestamp: '2022-08-09T22:33:21Z',
      name:              'my-deployment',
      namespace:         'default',
      resourceVersion:   '3635019749',
      uid:               'cbc8124a-b008-4336-a5bf-784082c5d310',
    },
    spec: {
      replicas: 50,
    },
    status: {
      replicas: 27,
      selector: 'app=my-app,service=my-deployment',
    },
  },
  requestReceivedTimestamp: '2023-12-14T07:54:46.539407Z',
  requestURI:               '/apis/apps/v1/namespaces/default/deployments/my-deployment/scale?timeout=32s',
  responseObject: {
    apiVersion: 'autoscaling/v1',
    kind:       'Scale',
    metadata: {
      creationTimestamp: '2022-08-09T22:33:21Z',
      name:              'my-deployment',
      namespace:         'default',
      resourceVersion:   '3635022604',
      uid:               'cbc8124a-b008-4336-a5bf-784082c5d310',
    },
    spec: {
      replicas: 50,
    },
    status: {
      replicas: 27,
      selector: 'app=my-app,service=my-deployment',
    },
  },
  responseStatus: {
    code:     200,
    metadata: {
    },
  },
  sourceIPs: [
    '<IP_ADDRESS>',
  ],
  stage:                    'ResponseComplete',
  stageTimestamp:           '2023-12-14T07:54:46.545965Z',
  time:                     '2023-12-14T07:54:46.546119559Z',
  user: {
    extra: {
      authentication.kubernetes.io/pod-name: [
        'keda-operator-79b499d775-6sr7n',
      ],
      authentication.kubernetes.io/pod-uid: [
        'bcc0603a-6af2-45cd-b1c6-dd70514f95d1',
      ],
    },
    groups: [
      'system:serviceaccounts',
      'system:serviceaccounts:infra',
      'system:authenticated',
    ],
    uid:      '7381072e-aed9-4a70-b970-bd6cc3280b9a',
    username: 'system:serviceaccount:infra:keda-operator',
  },
  userAgent:                'keda/v0.0.0 (linux/amd64) kubernetes/$Format',
  verb:                     'update',
}

and HPA attempting to update this back;

2023-12-14 01:10:50.000 | cluster=cell-002-00 kind=HorizontalPodAutoscaler name=keda-hpa-my-deployment reason=SuccessfulRescale New size: 27; reason: Current number of replicas above Spec.MaxReplicas
-- | --

KEDA Version
2.12.1
Kubernetes Version
1.27
Platform
None
Scaler Details
No response
Anything else?
I can't seem to reproduce it; Either way though the validating webhook should refuse to create a ScaledObject where minReplicas is > maxReplicas to prevent this misconfiguration.

Thanks for tackling this!


2021.1211.0 release does not have the proper files

I'm assuming you swapped the files

It doesn't matter since release is too old anyway


Fedora 21 - Can't get past: "Type in the received code:"

gsync will be perfect for me if I can get it working! - Many thanks for doing it!
I see there is a forward slash as the second character in the code - could that be causing the problem?
Thanks,
Phil.

I think I might be encountering the same issue.
I, actually, cloned the git repo into git/gsync (to have the latest code), then installed on my PC-BSD (FreeBSD) system with:
sudo pip install -e git/gsync
The prompt returns after:
gsync --authorize
. . . and I see the .gsync config directory is created.
When I run gsync, as below, I get prompted again with:
"Authorization is required to access your Google Drive."
gsync -vr drive://a_folder /full/path/to/local/folder
After getting and entering another code, I get the same prompt again.
I put a print statement to verify the token text gotten from raw_input() was what I had typed in, because I swear I had some issue with that in the past (strange characters, or cut and paste issues, or . . .). But it was what I had entered.
I wondered if you hit your limit on your Google API key, so I enabled the drive API in my developer's console, and created my own key. I downloaded and copied to client.json, in .gsync. But I still got the same error.
Another thing: .gsync/credentials is an empty file. If the authorization is successful, shouldn't that "cache" info?

i have same problem too.


isSymbolicLink or stat function returns wrong result

isSymbolicLink or stat function does not work as expected. It returns False on actual symlink. However, isNotSymbolicLink function works as expected. Tested with turtle-1.5.16, using nix-shell on ubuntu-16.04. This is a simple test program:
{-# LANGUAGE OverloadedStrings #-}

module Main where

import           Prelude hiding (FilePath)
import           Turtle

-- | Create a file and a symlink, check symlink.
main :: IO ()
main = do
    let filename = "test.txt"
        linkname = "linkToFile"
    writeTextFile filename "some text"
    symlink filename linkname
    isSymbolicLink <$> stat linkname >>= print  -- Problem, expected True, got False.
    isNotSymbolicLink linkname >>= print        -- OK, got False as expected.

@zoranbosnjak: It's because stat follows symbolic links, whereas lstat does not follow symbolic links.  See their respective documentation here:

https://hackage.haskell.org/package/turtle-1.5.16/docs/Turtle-Prelude.html#v:stat
https://hackage.haskell.org/package/turtle-1.5.16/docs/Turtle-Prelude.html#v:lstat

So the reason the first version returns False is because it's actually getting the FileStatus for the file that the symbolic link is pointing to and not the link itself.

@Gabriel439: Thank you, I was not aware of lstat.

@zoranbosnjak: You're welcome! 🙂


pushViewController:drawerController in iOS7

Hi there,
I try to use MMDrawerController for one of my 2nd view, where I will push it form first view.
MMDrawerController *drawerController = [[MMDrawerController alloc] initWithCenterViewController:navigationController                                                                     leftDrawerViewController:leftSideNavController    rightDrawerViewController:rightSideNavController];
[self.navigationController pushViewController:drawerController animated:true];
My navigationController contains the navigationItems set in viewDidLoad method. However, it didn't show up in iOS7. But when I test it with iOS6, the navigationBarItems and navigation title are shown correctly.

I faced the same issue in iOS 9 beta - the push sometimes works and sometimes causes the app non-responsive - looks like when the leftDrawer is not completely hidden and I push from centerVC's navigationController for another VC, the problem occurs. Thoughts on the cause? Thanks!


nixos/initrd-network: run DHCP in the background to increase its resiliency

Description of changes
This changeset changes the behavior of the DHCP client during the initrd boot sequence.
Previously, the DHCP client (udhcpc) would try a single time to acquire a DHCP address on each interface for which DHCP was configured. It would also block until the DHCP request either succeeded or failed.
If the DHCP server on the network is not available when udhcpc tries to get an address, then there will be no further attempts to obtain an address, even if the DHCP server becomes available again. A common situation in which this can happen is during boot up after a power loss: the DHCP server may be slower to come up than the system.
If ssh has been enabled in initrd, the result is that the system is not accessible if DHCP did not succeed. (Local console use is unaffected).
This changeset removes the --now option and puts udhcpc in the background for all interfaces. This means that udhcpc will continue to attempt to get a DHCP address in the background until one is obtained.
Tested by booting up a system with the network cable unplugged; waiting for the first DHCP request to time out; plugging the network cable back in; and observing that a DHCP address was obtained successfully. Then the boot procedure finished normally.
Resolves #306858
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[X] Fits CONTRIBUTING.md.

Interested in this ... I have a headless raspi that could use this change

It should be ready to test, would you be able to try it and report back how it goes?

Thanks for the feedback! I run it on all my systems too, and it seems ok. The only minor issue is that the DHCP messages may show up on the screen while the user is entering the password. It doesn't cause any issue, but it may be disconcerting to the user. I am not aware of any solution though, other than suppressing all DHCP output to the screen, which seems worse than doing nothing.


Installing snappi on windows requires msvc++ compiler

currently grpc-tools is a dependent package for snappi library and it requires Microsoft  visual studio c++ compiler to be available on Windows OS.
If unavailable the installation fails.

--prefer-binary bypasses the need for msvc++ compiler - is there a reason why this was commented out in the requirements.txt?

@ajbalogh While working on the black installation issue on python2.7, was trying different combinations to figure out the issue, this was commented and missed to uncomment back. will revert it back

Thanks for pointing it out


"With" knex... error table or view doesn't exist

VSCode
Knex version: 0.14.5
Database + version:  Oracle - <IP_ADDRESS>.0
OS:  window 7
@atiertant
Bug
i tried to implement the "With" like the doc said: https://knexjs.org/#Builder-with
but i got a bug.

The bug is when i tried to get a result from this query :
knex queryBuilder:

 public async getMaintenanceActivitySubTypes(
    buildingId: number,
    activityTypeId: number,
    status: string,
    searchText: string,
    offset: number,
    limit: number,
    orderBy: IOrderBy[]
  ): Promise<IPaginatedResult<IMaintenanceActivitySubTypes>> {
    const client = await getRepertoireClient();
    let query = client
      .distinct('VM1234.SOU_FAM.SOU_FAM as activitySubTypeId')
      .select('VM1234.SOU_FAM.DES_SOU as descr', ' VIEW_RESP_ENTR.STATUT')
      .with('VIEW_RESP_ENTR', (qb: knex.QueryBuilder) => {
        qb.distinct('SOU_FAM_ACT')
          .select(' STATUT')
          .from('REPERTOIRE.OUV_RESP_ENT')
          .where('OUVRAGE', buildingId)
          .andWhere('FAMILLE_ACTIVITE', activityTypeId)
          .andWhere('STATUT', status ? maintenanceMangerStatus[status.toUpperCase()] : maintenanceMangerStatus.ACTIVE);
      })
      .from('VM1234.SOU_FAM, VIEW_RESP_ENTR')
      .where('VM1234.SOU_FAM.FAM_ACT', activityTypeId)
      .andWhereRaw(`VM1234.SOU_FAM.SOU_FAM = VIEW_RESP_ENTR.SOU_FAM_ACT`);

    const sort = orderBy.length
      ? orderBy
      : [{ field: 'activitySubTypeId', direction: direction.ASC }];
    query = orderByIterator(query, sort);

    const sort = orderBy.length ? orderBy : [{ field: 'activitySubTypeId', direction: direction.ASC }];
    query = orderByIterator(query, sort);

    const logger = createLogger('sqlrepository - building');
    logger.info(query.toQuery());
    const result: any = await query;
    console.log('result', result);
    const paginatedResultRaw: IPaginatedResult<any> = await knexUtils.paginate(client, query, offset, limit);

    const paginatedResultTyped: IPaginatedResult<IMaintenanceManager> = {
      paging: paginatedResultRaw.paging,
      items: paginatedResultRaw.items
    };

    return paginatedResultTyped;
  }

sql genereated :
with VIEW_RESP_ENTR as (
  select distinct SOU_FAM_ACT, STATUT from REPERTOIRE.OUV_RESP_ENT
  where OUVRAGE = '0154'
  and FAMILLE_ACTIVITE = '16'
  and STATUT = 'A')
select distinct
VM1234.SOU_FAM.SOU_FAM activitySubTypeId,
VM1234.SOU_FAM.DES_SOU descr,
VIEW_RESP_ENTR.STATUT from VM1234.SOU_FAM,
VIEW_RESP_ENTR
where VM1234.SOU_FAM.FAM_ACT = '16'
and VM1234.SOU_FAM.SOU_FAM = VIEW_RESP_ENTR.SOU_FAM_ACT
order by activitySubTypeId ASC

Error message :

ORA-00942: table or view does not exist
"with "VIEW_RESP_ENTR" as (select distinct "SOU_FAM_ACT", "STATUT" from "REPERTOIRE"."OUV_RESP_ENT" where "OUVRAGE" = :1 and "FAMILLE_ACTIVITE" = :2 and "STATUT" = :3) select distinct "VM1234"."SOU_FAM"."SOU_FAM" "activitySubTypeId", "VM1234"."SOU_FAM"."DES_SOU" "descr", "VIEW_RESP_ENTR"."STATUT" from "VM1234"."SOU_FAM, VIEW_RESP_ENTR" where "VM1234"."SOU_FAM"."FAM_ACT" = :4 and VM1234.SOU_FAM.SOU_FAM = VIEW_RESP_ENTR.SOU_FAM_ACT order by "activitySubTypeId" ASC - ORA-00942: Table ou vue inexistante"
Thanks !

And what is expected query in that case? Please create minimal reproduction code. You just might have written any table name wrong and oracle would throw that error.
Closing as cannot reproduce, can be reopened if reproduction code or correct output sql is added.

And what is expected query in that case? Please create minimal reproduction code. You just might have written any table name wrong and oracle would throw that error.
Closing as cannot reproduce, can be reopened if reproduction code or correct output sql is added.

if the name was incorrect, why i can execute the sql in TOAD and i get the result that i expected :o

( same as the sql genereated by knex | copy/paste)

That is not the same query, nor copy/paste from knex. One generated by knex would look completely different as you can see here https://runkit.com/embed/sc33wjmqgjen and in the error message returned by oracle. Maybe you have case sensitivity issue since I see you are not quoting your identifiers.
Please add reproduction case if you find out that there is actually bug in knex.


Broken pages in pdf file

Some pages are completely broken/pixels mangled strangely in PDF file.
Using -k flag too keep images shows that they are downloaded just fine
Example from URL: Backpacker 16

Downloaded images for PA47, PA48, PA49:

Nice catch. I saw this pattern before but didn't realize it was happening during PDF conversion. It looks like the images getting messed up are PNGs that are 8bpp whereas the JPGs and 24bpp PNGs are coming out fine. Should be an easy fix, at the cost of slightly larger output files. Good to know, since now I know not to try to optimize the images for newspapers to use a smaller color space.

Fixed in v0.3.1

Downloaded v0.3.1 and I confirm it works as it should. Good job !


[question] Migrating from zwavej2 to zwave2mqtt

Hey folks,
I am running a rather large installation of Homeassistant here; along with 120-or-so zwave nodes. Everything is running on a real server (no raspberry pi) inside docker containers. Currently the official zwavejs docker container is running.
Now I have no issues with this at all. It is working like a charm. The only itch I have is to backup (and restore) the NVR part of the stick. I really, really, really don't want to go though all the rooms in all the stories of my house and open up all the outlets, switches, cover shutters to re-bind them all. I want/need a binding backup.
I know that zwave2mqtt has such an option to backup/restore NVR. I know because I used it... Getting ahead of myself.
So I did my homework as good as I could, and found out the current way to switch from zwavejs to zwave2mqtt is (or looks like):

Take a VM Snapshot.
Remove zwave Integration from Homeassistant,
Remove the old zwavejs docker container,
copy the cache data over to a save place,
note the encryption keys,
Launch zwave2mqtt docker container,
let it run for some,
shut it down again,
Copy the cache files over (Unsure: Is the name the same?)
Start the container again with exposed port 3000,
re-install the zwave integration.

I have two issues with this:

All nodes have different names,
I am unsure if the cache files have the same names.

Also, nodes.json does not exist in zwavejs volumes.
Or maybe I am doing this wrong alltogether. What's a better way to move from zwave to zwave2mqtt while keeping the nodes in homeassistant?
PS: I was able to see all nodes in the webinterface. And the integration had all the entities, too. Just not correctly named. I feel I am just a bit off to get this right.
This is also where I snatched a NVR backup before rolling the snapshot back.
ANY help is greatly appreciated!
-Chris.

@christianreiss How did you installed zwavejs2mqtt? As an hass addon or as a separete docker container? How did you setup the store volume? Zwavejs2mqtt stores everything in store folder that needs to be mapped in a dedicated volume (local folder or docker volume). nodes.json will be there. About your naming issue, I dunno how hass handels them so I tag someone that could help you with them:
@kpine
@raman325
On my side the only thing you can do to set node names and location on startup is to set them from the ui or edit the nodes.json file you can find in store folder to match the names/locations you are using now

Hey,
Thanks for replying. I did install it via the community add-on (resulting in a docker container). There is an automatic volume-mapping done, and was able to see the directory structure for zwave2mqtt.
Come to think of it, I think I might have copied the files into the wrong dir:
/root/1/usr/share/hassio/addons/data/a0d7b954_zwavejs2mqtt/cache/c95f13ce.json
/root/1/usr/share/hassio/addons/data/a0d7b954_zwavejs2mqtt/store/c95f13ce.json

(Ignore the beginning of the path, thats a cloned vm running a rescuecd).
So I place everything into store, not cache? Do the filenames keep the same?

I dunno what is cache but the correct one is  store. Also I'm not sure that cache file is something from zwavejs or else? What is the content of it?

This is the zwavejs volume dir:
[root@sysrescue ~/1/usr/share/hassio/addons/data/a0d7b954_zwavejs2mqtt]# ls -lha /root/1/root/core_zwave_js/cache/
total 1.8M
drwxr-xr-x 4 root root 4.0K Apr  6 06:27 .
drwxr-xr-x 4 root root 4.0K Mar 23 09:35 ..
-rw-r--r-- 1 root root 363K Mar 23 09:34 c95f13ce.json
-rw-r--r-- 1 root root 773K Apr  6 06:36 c95f13ce.metadata.jsonl
drwxr-xr-x 2 root root 4.0K Apr  6 06:39 c95f13ce.metadata.jsonl.lock
-rw-r--r-- 1 root root 670K Apr  6 06:37 c95f13ce.values.jsonl
drwxr-xr-x 2 root root 4.0K Apr  6 06:39 c95f13ce.values.jsonl.lock

And cache/store of zwave2mqtt:
total 1.8M
drwxr-xr-x 4 root root 4.0K Apr  6 06:27 .
drwxr-xr-x 5 root root 4.0K Apr  6 07:08 ..
-rw-r--r-- 1 root root 363K Mar 23 09:34 c95f13ce.json
-rw-r--r-- 1 root root 773K Apr  6 06:36 c95f13ce.metadata.jsonl
drwxr-xr-x 2 root root 4.0K Apr  6 06:39 c95f13ce.metadata.jsonl.lock
-rw-r--r-- 1 root root 670K Apr  6 06:37 c95f13ce.values.jsonl
drwxr-xr-x 2 root root 4.0K Apr  6 06:39 c95f13ce.values.jsonl.lock
[root@sysrescue ~/1/usr/share/hassio/addons/data/a0d7b954_zwavejs2mqtt]# ls -lha store/
total 2.3M
drwxr-xr-x 5 root root 4.0K Apr  6 07:10 .
drwxr-xr-x 5 root root 4.0K Apr  6 07:08 ..
-rw-r--r-- 1 root root 363K Apr  6 07:08 c95f13ce.json
-rw-r--r-- 1 root root 759K Apr  6 07:10 c95f13ce.metadata.jsonl
drwxr-xr-x 2 root root 4.0K Apr  6 07:10 c95f13ce.metadata.jsonl.lock
-rw-r--r-- 1 root root 669K Apr  6 07:10 c95f13ce.values.jsonl
drwxr-xr-x 2 root root 4.0K Apr  6 07:10 c95f13ce.values.jsonl.lock
-rw-r--r-- 1 root root    3 Apr  6 06:41 nodes.json
-rw-r--r-- 1 root root 512K Apr  6 07:06 NVM_2022-04-06.bin
drwxr-xr-x 2 root root 4.0K Apr  6 06:41 sessions
-rw-r--r-- 1 root root  980 Apr  6 06:49 settings.json
-rw-r--r-- 1 root root  186 Apr  6 06:41 users.json

So the c95f13ce* files originated my rsync'ing the files in there. They seem to be accessed and modified, so right names then?
a80576230e469af20d1c5850c708d93f  cache/c95f13ce.metadata.jsonl
17b6676219e4d6e579f1ac57488eaa6e  store/c95f13ce.metadata.jsonl
a80576230e469af20d1c5850c708d93f  /root/1/root/core_zwave_js/cache/c95f13ce.metadata.jsonl

Question remain: Why did everything not plugin-out-plug-in work in Homeassistant? New names?

So the c95f13ce* files originated my rsync'ing the files in there. They seem to be accessed and modified, so right names then?

Yep, now they are in the correct folder.


--config option does not work

Webpack seems to convert 'require(configFileLocation)' in file JavaScriptObfuscatorCLI to !function(){var e=new Error('Cannot find module "."');throw e.code="MODULE_NOT_FOUND",e}().

solution is to use non_webpack_require instead; however, i cant figure out a way to use that without typescript compliaing. Please see if you can figure out a way.

Interesting. With __non_webpack_require__ unit tests will break.

Expect 0.10.1 version later today.

Fixed in<EMAIL_ADDRESS>

thanks! feel free to remove exprContextCritical: false, :)

Oh >_<. I'll remove it in next release when it will be done.

exprContextCritical: false still needed to hide this message.


Changes how hdf5 files are loaded in CorrectBias_stored

Instead of using for loops to manually copy data, one by one, uses numpy's
built-in features to copy and shape data.
This seems to speed up loading the data by 500-700x.

Hm, I don't see any reason why the memory usage should be different. cdef double [:,:] xView = np.ones((trainingSet.xRowCount, xColumnCount), dtype=np.float64) creates a "Memoryview" on the NumPy array, it doesn't replace it. See: http://docs.cython.org/en/latest/src/userguide/memoryviews.html
Here are the results of /usr/bin/time -l with the command cradle correctBias_stored  -rngSeed<PHONE_NUMBER> -ctrlbw ../CRADLE_files/test_data/test_ctrl.bw -expbw ../CRADLE_files/test_data/test_exp.bw  -r ../CRADLE_files/test_data/region.bed -biasType shear pcr map gquad -faFile ../CRADLE_files/ref_genome/hg38/hg38.2bit -covariDir ../CRADLE_files/covariate/hg38_fragLen500_kmer50 -p 5 -o test_cradle_correctBias_stored for the version with these changes:
-- RUNNING TIME: 0.0014399867587619357 hour(s)
        6.49 real         9.88 user         1.57 sys
 599617536  maximum resident set size <-- ~600 MB
         0  average shared memory size
         0  average unshared data size
         0  average unshared stack size
    284750  page reclaims
      1145  page faults
         0  swaps
         0  block input operations
         0  block output operations
         0  messages sent
         0  messages received
         0  signals received
        74  voluntary context switches
    101670  involuntary context switches

And here are the results without these changes:
-- RUNNING TIME: 0.0663975461324056 hour(s)
      240.47 real       278.71 user         6.01 sys
 645791744  maximum resident set size <-- ~645 MB
         0  average shared memory size
         0  average unshared data size
         0  average unshared stack size
    331261  page reclaims
         0  page faults
         0  swaps
         0  block input operations
         0  block output operations
         0  messages sent
         0  messages received
         0  signals received
        69  voluntary context switches
    108596  involuntary context switches

maximum resident set size is the important number here (it's in bytes). With these changes, not only is CorrectBias_stored faster but it also used less memory.

I must be mistaken. I appreciate you doing all this. Thanks!


Adding keyboard component

Codecov Report

Merging #92 (4459825) into master (d2d4a29) will decrease coverage by 0.14%.
The diff coverage is 60.25%.

:exclamation: Current head 4459825 differs from pull request most recent head 1354acc. Consider uploading reports for the commit 1354acc to get more accurate results

@@            Coverage Diff             @@
##           master      #92      +/-   ##
==========================================
- Coverage   79.75%   79.61%   -0.15%
==========================================
  Files         113      114       +1
  Lines       10365    10443      +78
  Branches     1059     1061       +2
==========================================
+ Hits         8267     8314      +47
- Misses       2098     2129      +31

Flag
Coverage Δ

unittests
79.61% <60.25%> (-0.15%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

packages/lib/components/index.ts
6.38% <0.00%> (-0.14%)
:arrow_down:

packages/lib/components/kbd/kbd.tsx
61.03% <61.03%> (ø)

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 e0ddd2e...1354acc. Read the comment docs.


Missing Menu Titles

The titles of the following menus are displays as SettingsWindow. They should be displayed as their own names.

Keep Awake
Dim Screen
Back Noises

macOS v13.3.1

Thank you for your feedback! it will be fixed.

fixed in version 2.4

Thank you @jacklandrin 🙌


Improve placeholders (simulation while especially)

There has been some confusion about what to put in the while latex math field, so maybe choose an arbitrary variable (say, n) and put an example placeholder of something like n<10.
This could also be helpful in automatically choosing the first slider for the slider variable capture.

Closing because it mainly only affected simulation whileLatex.


Read a negative frame size (-2147418110)!

eclipse.buildId=unknown
java.version=11.0.3
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh
Command-line arguments:  -os win32 -ws win32 -arch x86_64
This is a continuation of log file C:\Users\Administrator\AppData\Roaming\DBeaverData\workspace6.metadata.bak_0.log
Created Time: 2019-08-14 11:01:14.535
org.jkiss.dbeaver.model
警告
Wed Aug 14 11:38:22 CST 2019
org.jkiss.dbeaver.DBException: SQL 错误 [08S01]: Read a negative frame size (-2147418110)!

unfortunately cannot reproduce the ticket.
there is to less information.
if it is still actual for you - feel free to reopen the ticl=ket or create a new one


Fix wrong amount of dots in centerMode

Fixes issue #1466

does this fix work with centerMode: false?
I have a pretty similar issue here: http://jsfiddle.net/0bnor44n/

No.
You need to set infinite: false: http://jsfiddle.net/0bnor44n/1/
If you want it to work with infinite I think you need to change the following lines: https://github.com/danielpuglisi/slick/blob/b7ef77ffb0ef26734d0362df614793bce5ec94e0/slick/slick.js#L981-L985

@danielpuglisi I am also facing the similar issue. I am using centerMode with infinite: false and it shows me number of slides + 1 dots. Were you facing the same issue?

@nikitaaswani I don't remember, I don't use slick anymore. It doesn't seem to be maintained anymore anyway.
I'm currently using https://github.com/nolimits4web/swiper in case you need a good alternative slider ;)


rx.video does not support responsiveness in its width and height properties

Describe the bug
rx.video does not support responsiveness in its width and height properties
To Reproduce
Steps to reproduce the behavior:
                        rx.video(
                            url="https://youtu.be/xxxxxxxxxxxxxxxx",
                            width = ["320px","320px","320px","320px","960px"],
                            height = ["180px","180px","180px","180px","540px"],
                        ),

Expected behavior
Support responsive alternatives like the rest of components

Python Version: 3.10.12
Reflex Version: 0.3.4
OS: linux ubuntu 22.04
Browser (Optional): Chrome

ok i will look on this

In Reflex 0.3.7 only the Chakra components support the responsive styles. We've updated for our next release, making sure that all components will have access to responsive properties.


Enable support for iPython

I feel with one day of work it should be possible to adapt the current code such that it would also work within an interactive python shell:
bob.request("Please ....")

and it would simply print the answer.
We would need to add code that auto-detects whether the current Context is jupyter or just a python shell.
What do you think?

I think bob("Please ...") works already...


[Docs] Replace image in README file

Current  #State:
See the white background between the man and woman in the image below that needs to be updated to a better version in the README file.

Desired State:
This is the desired image.

Replace with the image below.

Contributor Resources

Meshery documentation site
Meshery documentation source
Instructions for contributing to documentation

I will like to contribute.

i would like to contribute


Failed to run Android demo targeting API < 20

I tried to build the demo application for Android for KitKat device (API 20). I was able to modify the app not to use new hardware.camera2 and it worked on Android Lollipops successfully. However there is an issue targeting older Android device.
It turned out that the app crashes right after trying to load the native shared library, tensorflow_demo in my case.
And that's due to dependency of libpthread.so to libmediandk.so that is not supported for API older than 21. See the following logcat message:
Error: ..dlopen failed: could not load library "libmediandk.so" needed by "libtensorflow_demo.so"; caused by library "libmediandk.so" not found
I also desperately tried to replace the cloned libpthread.so with the same file from my  /usr/arm-linux-gnueabi/lib/ directory with no success.
I am using:
1- android-ndk-r10c
2- api_level=20
3- build_tools_version = "20.0.0"
Did I missed anything in that process?

Hi Hamid,
The libpthread.so target is just a kludge to get around the fact that the
protobuf library attempts to link it in, despite this not being necessary
(or possible) on Android.
A cleaner workaround for you is to edit google/protobuf/BUILD and change
the line:
LINK_OPTS = ["-lpthread"]
to:
LINK_OPTS = [""]
Ideally the protobuf linkopts would be dependent on build target, or the
dummy libpthread.so file could be generated at compile-time so that it
would match the target architecture (will look into it).
On Sat, Dec 5, 2015 at 5:19 PM, Hamid Bazargani<EMAIL_ADDRESS>wrote:

I tried to build the demo application for Android for KitKat device (API
20). I was able to modify the app not to use new hardware.camera2 and it
worked on Android Lollipops successfully. However there is an issue
targeting older Android device.
It turned out that the app crashes right after trying to load the native
shared library, tensorflow_demo in my case.
And that's due to dependency of libpthread.so to libmediandk.so that is
not supported for API older than 21. See the following logcat message:
Error: ..dlopen failed: could not load library "libmediandk.so" needed by
"libtensorflow_demo.so"; caused by library "libmediandk.so" not found
I also desperately tried to replace the cloned libpthread.so with the
same file from my /usr/arm-linux-gnueabi/lib/ directory with no success.
I am using:
1- android-ndk-r10c
2- api_level=20
3- build_tools_version = "20.0.0"
Did I missed anything in that process?
—
Reply to this email directly or view it on GitHub
https://github.com/tensorflow/tensorflow/issues/419.

Hi Andrew,
I think pthread also resolves some POSIX symbols like getPageSize,  strtof, ... that are used elsewhere.
By removing -lpthread, I still get unresolved reference errors.
How should I resolve them by removing pthread ?
Thanks,
Hamid

The libpthread.so in the TF repo is not actually a copy of libpthead.so
(it's actually arbitrarily cloned from libmediandk.so, which could explain
your earlier link errors), so it's not possible that it could be providing
anything. Those functions are found in other libraries on Android.
-DHAVE_PTHREAD still applies, it just doesn't need to actually link in
pthread.
If you:

remove the "-lpthread" from google/protobuf/BUILD,
delete the ":dummy_pthread" dep in tensorflow/examples/android/BUILD
build with:
bazel build tensorflow/examples/android:tensorflow_demo
--config=android_arm

with no other changes do you still get the same errors? Please attach a log
if so.
On Sat, Dec 5, 2015 at 8:13 PM, Hamid Bazargani<EMAIL_ADDRESS>wrote:

Hi Andrew,
I think pthread also resolves some POSIX symbols like getPageSize, strtof,
... that are used elsewhere.
By removing -lpthread, I still get unresolved reference errors.
How should I resolve them by removing pthread ?
Thanks,
Hamid
—
Reply to this email directly or view it on GitHub
https://github.com/tensorflow/tensorflow/issues/419#issuecomment-162261581
.

I followed your instruction. Still no success.
Following is my steps:
1- changed google/protobuf/BUILD
// [""] returns bazel error
LINK_OPTS = []

2- changed tensorflow/examples/android/BUILD
cc_library(
    name = "tensorflow_native_libs",
    srcs = glob(["jni/**/*.cc"]),
    hdrs = glob(["jni/**/*.h"]),
    copts = [
        "-std=c++11",
        "-mfpu=neon",
        "-O2",
    ],
    linkopts = ["-llog -landroid -lm -ljnigraphics"],
    tags = [
        "manual",
        "notap",
    ],
    deps = [
    #    ":dummy_pthread", // commented
        "//tensorflow/core:android_tensorflow_lib",
    ],
)

3- My workspace looks:
android_sdk_repository(
    name = "androidsdk",
    api_level = 20,
    build_tools_version = "20.0.0",
    # Replace with path to Android SDK on your system
    path = "/hamidb/software/TADP/android-sdk-linux",
)
android_ndk_repository(
    name="androidndk",
    path="/hamidb/software/TADP/android-ndk-r10c",
    api_level=21)

4- I issued (I also tried without android_arm)
bazel build --verbose_failures //tensorflow/examples/android:tensorflow_demo --config=android_arm
After running the apk file my logcat logs:

--------- beginning of /dev/log/main
D/Raydium_ts_main(  242): ## Report rate in 10 seconds =1213
I/art     ( 1219): GcCauseBackground partial concurrent mark sweep GC freed 6011(335KB) AllocSpace objects, 27(1351KB) LOS objects, 12% free, 6MB/7MB, paused 5.823ms total 48.435ms
--------- beginning of /dev/log/system
I/ActivityManager(  904): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.tensorflow.demo/.CameraActivity bnds=[984,1381][1176,1573]} from pid 1219
W/art     (  166): Could not get current activity
I/ActivityManager(  904): Start proc org.tensorflow.demo for activity org.tensorflow.demo/.CameraActivity: pid=11918 uid=10073 gids={50073, 1028, 1015}
W/NvAppProfileService(  904): App Profiles: Enabled
I/PowerServiceCient(  904): Successfully bound to service
E/art     (11918): dlopen("/data/app-lib/org.tensorflow.demo-1/libtensorflow_demo.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "getpagesize" referenced by "libtensorflow_demo.so"...
D/AndroidRuntime(11918): Shutting down VM
E/AndroidRuntime(11918): FATAL EXCEPTION: main
E/AndroidRuntime(11918): Process: org.tensorflow.demo, PID: 11918
E/AndroidRuntime(11918): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "getpagesize" referenced by "libtensorflow_demo.so"...
E/AndroidRuntime(11918): 	at java.lang.Runtime.loadLibrary(Runtime.java:364)
E/AndroidRuntime(11918): 	at java.lang.System.loadLibrary(System.java:526)
E/AndroidRuntime(11918): 	at org.tensorflow.demo.TensorflowClassifier.(TensorflowClassifier.java:46)
E/AndroidRuntime(11918): 	at org.tensorflow.demo.TensorflowImageListener.(TensorflowImageListener.java:51)
E/AndroidRuntime(11918): 	at org.tensorflow.demo.CameraConnectionFragment.(CameraConnectionFragment.java:212)
E/AndroidRuntime(11918): 	at org.tensorflow.demo.CameraConnectionFragment.newInstance(CameraConnectionFragment.java:91)
E/AndroidRuntime(11918): 	at org.tensorflow.demo.CameraActivity.onCreate(CameraActivity.java:30)
E/AndroidRuntime(11918): 	at android.app.Activity.performCreate(Activity.java:5231)
E/AndroidRuntime(11918): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
E/AndroidRuntime(11918): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2160)
E/AndroidRuntime(11918): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2246)
E/AndroidRuntime(11918): 	at android.app.ActivityThread.access$800(ActivityThread.java:136)
E/AndroidRuntime(11918): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1197)
E/AndroidRuntime(11918): 	at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(11918): 	at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(11918): 	at android.app.ActivityThread.main(ActivityThread.java:5030)
E/AndroidRuntime(11918): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(11918): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(11918): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
W/ActivityManager(  904):   Force finishing activity org.tensorflow.demo/.CameraActivity
W/ActivityManager(  904): Activity pause timeout for ActivityRecord{65595fd8 u0 org.tensorflow.demo/.CameraActivity t73 f}
I/Process (11918): Sending signal. PID: 11918 SIG: 9
W/InputMethodManagerService(  904): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@65367aa0 attribute=null, token = android.os.BinderProxy@651cfa98
I/ActivityManager(  904): Process org.tensorflow.demo (pid 11918) has died.
D/Raydium_ts_main(  242): ## Report rate in 10 seconds =1038

Thanks Hamid. I'm guessing this might be a discrepancy between what the
compiler expects of API level 21 and what the device provides at level 20.
I've just tried setting my WORKSPACE ndk api_level to 20 and found that the
Android demo still builds. Could you try the same and see if that corrects
the issue?
On Sat, Dec 5, 2015 at 9:33 PM, Hamid Bazargani<EMAIL_ADDRESS>wrote:

I followed your instruction. Still no success.
Following is my steps:
1- changed google/protobuf/BUILD
// [""] returns bazel error
LINK_OPTS = []
2- changed tensorflow/examples/android/BUILD
cc_library(
name = "tensorflow_native_libs",
srcs = glob(["jni//*.cc"]),
hdrs = glob(["jni//*.h"]),
copts = [
"-std=c++11",
"-mfpu=neon",
"-O2",
],
linkopts = ["-llog -landroid -lm -ljnigraphics"],
tags = [
"manual",
"notap",
],
deps = [
#    ":dummy_pthread", // commented
"//tensorflow/core:android_tensorflow_lib",
],
)
3- My workspace looks:
android_sdk_repository(
name = "androidsdk",
api_level = 20,
build_tools_version = "20.0.0",
# Replace with path to Android SDK on your system
path = "/hamidb/software/TADP/android-sdk-linux",
)
android_ndk_repository(
name="androidndk",
path="/hamidb/software/TADP/android-ndk-r10c",
api_level=21)
4- I issued (I also tried without android_arm)
bazel build --verbose_failures
//tensorflow/examples/android:tensorflow_demo --config=android_arm
After running the apk file my logcat logs:
--------- beginning of /dev/log/main
D/Raydium_ts_main( 242): ## Report rate in 10 seconds =1213
I/art ( 1219): GcCauseBackground partial concurrent mark sweep GC freed
6011(335KB) AllocSpace objects, 27(1351KB) LOS objects, 12% free, 6MB/7MB,
paused 5.823ms total 48.435ms
--------- beginning of /dev/log/system
I/ActivityManager( 904): START u0 {act=android.intent.action.MAIN
cat=[android.intent.category.LAUNCHER] flg=0x10200000
cmp=org.tensorflow.demo/.CameraActivity bnds=[984,1381][1176,1573]} from
pid 1219
W/art ( 166): Could not get current activity
I/ActivityManager( 904): Start proc org.tensorflow.demo for activity
org.tensorflow.demo/.CameraActivity: pid=11918 uid=10073 gids={50073, 1028,
1015}
W/NvAppProfileService( 904): App Profiles: Enabled
I/PowerServiceCient( 904): Successfully bound to service
E/art (11918):
dlopen("/data/app-lib/org.tensorflow.demo-1/libtensorflow_demo.so",
RTLD_LAZY) failed: dlopen failed: cannot locate symbol "getpagesize"
referenced by "libtensorflow_demo.so"...
D/AndroidRuntime(11918): Shutting down VM
E/AndroidRuntime(11918): FATAL EXCEPTION: main
E/AndroidRuntime(11918): Process: org.tensorflow.demo, PID: 11918
E/AndroidRuntime(11918): java.lang.UnsatisfiedLinkError: dlopen failed:
cannot locate symbol "getpagesize" referenced by "libtensorflow_demo.so"...
E/AndroidRuntime(11918): at java.lang.Runtime.loadLibrary(Runtime.java:364)
E/AndroidRuntime(11918): at java.lang.System.loadLibrary(System.java:526)
E/AndroidRuntime(11918): at
org.tensorflow.demo.TensorflowClassifier.(TensorflowClassifier.java:46)
E/AndroidRuntime(11918): at
org.tensorflow.demo.TensorflowImageListener.(TensorflowImageListener.java:51)
E/AndroidRuntime(11918): at
org.tensorflow.demo.CameraConnectionFragment.(CameraConnectionFragment.java:212)
E/AndroidRuntime(11918): at
org.tensorflow.demo.CameraConnectionFragment.newInstance(CameraConnectionFragment.java:91)
E/AndroidRuntime(11918): at
org.tensorflow.demo.CameraActivity.onCreate(CameraActivity.java:30)
E/AndroidRuntime(11918): at
android.app.Activity.performCreate(Activity.java:5231)
E/AndroidRuntime(11918): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
E/AndroidRuntime(11918): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2160)
E/AndroidRuntime(11918): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2246)
E/AndroidRuntime(11918): at
android.app.ActivityThread.access$800(ActivityThread.java:136)
E/AndroidRuntime(11918): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1197)
E/AndroidRuntime(11918): at
android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(11918): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(11918): at
android.app.ActivityThread.main(ActivityThread.java:5030)
E/AndroidRuntime(11918): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(11918): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(11918): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
W/ActivityManager( 904): Force finishing activity
org.tensorflow.demo/.CameraActivity
W/ActivityManager( 904): Activity pause timeout for
ActivityRecord{65595fd8 u0 org.tensorflow.demo/.CameraActivity t73 f}
I/Process (11918): Sending signal. PID: 11918 SIG: 9
W/InputMethodManagerService( 904): Window already focused, ignoring focus
gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@65367aa0
attribute=null, token = android.os.BinderProxy@651cfa9
https://github.com/android.os.BinderProxy/tensorflow/commit/651cfa98
I/ActivityManager( 904): Process org.tensorflow.demo (pid 11918) has died.
D/Raydium_ts_main( 242): ## Report rate in 10 seconds =1038
—
Reply to this email directly or view it on GitHub
https://github.com/tensorflow/tensorflow/issues/419#issuecomment-162264595
.

Thank you Andrew.
I guessed that before and built the demo but never tried after removing pthread from protobus.
Now I confirm that changing to API=20 and removing pthread from both protobus and demo application solved the issue (even without --config=android_arm).
Thanks again for your guidelines.

Great, glad that worked!
I have a patch for the original libpthread.so issue coming, so that it will
generate the dummy lib at compile-time and make things more portable.
On Sun, Dec 6, 2015 at 10:03 AM, Vincent Vanhoucke<EMAIL_ADDRESS>
wrote:

Closed #419 https://github.com/tensorflow/tensorflow/issues/419.
—
Reply to this email directly or view it on GitHub
https://github.com/tensorflow/tensorflow/issues/419#event-483728500.

Thanks Andrew,
The patch can be absolutely useful, especially when POSIX is really needed in an application.

Is this procedure even works for API 19?

It should, if you follow these steps:

patch CameraConnectionFragment.java to remove the use of the camera2 API and use android.hardware.Camera instead
change the API level defined by AndroidManifest.xml
set the API level of your NDK appropriately in WORKSPACE

Note that "--config=android_arm" is not necessary or beneficial and was included by mistake in earlier comments.

@CalmWaves
You can checkout my fork from here enabling API<20.

Hi, thanks for the instructions on how to build the library for API < 20.
The steps outlined by @andrewharp don't seem to work with the latest TF code though.
I've modified the Android demo to remove dependencies on APIs lower than 21, modified AndroidManifest.xml, and configured the WORKSPACE file, all that to make the build target API 19.
However, the build fails with the following error:
ERROR: /home/bruno/tensorflow/tensorflow/contrib/android/BUILD:36:1: C++ compilation of rule '//tensorflow/contrib/android:android_tensorflow_inference_jni' failed: linux-sandbox failed: error executing command /home/bruno/.cache/bazel/_bazel_bruno/fc8ca368ddd99b1148acfb9b362d6174/execroot/tensorflow/_bin/linux-sandbox ... (remaining 65 argument(s) skipped).
In file included from tensorflow/contrib/android/jni/jni_utils.cc:32:0:
./tensorflow/contrib/android/jni/limiting_file_input_stream.h: In member function 'virtual int tensorflow::android::LimitingFileInputStream::Read(void*, int)':
./tensorflow/contrib/android/jni/limiting_file_input_stream.h:39:28: error: 'errno' was not declared in this scope
} while (result < 0 && errno == EINTR);
^
./tensorflow/contrib/android/jni/limiting_file_input_stream.h:39:37: error: 'EINTR' was not declared in this scope
} while (result < 0 && errno == EINTR);
^
Target //tensorflow/examples/android:tensorflow_demo failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 1615.615s, Critical Path: 1600.63s
Any advice?
Thanks.

@barantes If you add #include <errno.h> to the includes list for tensorflow/contrib/android/jni/limiting_file_input_stream.h, does the build error go away?

The include tree for the newer NDK APIs must be including errno.h implicitly. Adding it explicitly fixes the build error on older APIs. Fix incoming.

Hi Andrew. Thanks for the quick response. The library was successfully built after adding #include <errno.h> to limiting_file_input_stream.h.


Update Email Templates UI

Addresses #11

Current progress. Need to unstick the API call CORS issue before being able to continue.


exposition: prepare for release 0.4.0

Prepare for release 0.4.0 for metriken-exposition

Holding as a draft until we add per-column metadata in the parquet conversion


SnapServer using FlatDB Strategy

PR description
Draft PR to implement SnapServer using FlatDB Strategy
Fixed Issue(s)

#3165

blocked by #5889

related to #5889
related to #6157

this is ready for review, but is waiting on #5889 before it can be merged


Missing API documentation: Software usage statistics [Microsoft Defender Portal]

Hi,
In get-software.md the api endpoint is documented for retrieving software data.
In a recent release, the software page also shows statistics on usage of the software

This data is queried via the api proxy in the frontend.
https://security.microsoft.com/apiproxy/mtp/tvm/analytics/products/product/productUsage?productId=$product_id$&enrichWithHistory=false

I would like to know how i can reach this endpoint from the official api https://api.securitycenter.microsoft.com/api/
I have tried fuzzing around but this should be documented ofcourse.

Can someone from microsoft please provide help here?

To make it easier for you to submit feedback on articles on learn.microsoft.com, we're transitioning our feedback system from GitHub Issues to a new experience.
As part of the transition, this GitHub Issue will be moved to a private repository. We're moving Issues to another repository so we can continue working on Issues that were open at the time of the transition. When this Issue is moved, you'll no longer be able to access it.
If you want to provide additional information before this Issue is moved, please update this Issue before December 15th, 2023.
With the new experience, you no longer need to sign in to GitHub to enter and submit your feedback. Instead, you can choose directly on each article's page whether the article was helpful. Then you can then choose one or more reasons for your feedback and optionally provide additional context before you select Submit.
Here's what the new experience looks like.
Note: The new experience is being rolled out across learn.microsoft.com in phases. If you don't see the new experience on an article, please check back later.
First, select whether the article was helpful:

Then, choose at least one reason for your feedback and optionally provide additional details about your feedback:

Article was helpful
Article was unhelpful

Finally, select Submit and you're done!


Problem with commenting /etc/pacman.conf

Hi,
I have little strange problem. I use Arch Linux, and there is /etc/pacman.conf where you configure option for Arch package manager.
If I do this with
sudo nvim /etc/pacman.conf

or as root
nvim /etc/pacman.conf

And I do gcc it add at start of line ; , like from
#NoUpgrade   =

to
; #NoUpgrade   =

But if I do this with command
sudoedit /etc/pacman.conf

It commenting and uncommenting without problem.
I even nuked my init.lua config to just
-- load plugin manager first
require('plugins._packer')

To be sure, that nothing from my neovim config interrupt with Comment.nvim, but without success.

By default pacman.conf is detected as dosini filetype and commentstring is set to ;. So you need to change the filetype to conf then you won't face any issues.

Add the following to your neovim config
aucmd BufNewFile,BufRead *.conf set ft=conf

I am going to close as this is not related to this plugin :)

Add the following to your neovim config
aucmd BufNewFile,BufRead *.conf set ft=conf

I very appreciate for your fast answer. It didn't work, but I changed it to
vim.cmd([[
    autocmd BufNewFile,BufRead *.conf set ft=conf
]])

And it worked flawlessly. Very much love. <3 Thank you!


Simplify setting up migrator

https://github.com/rom-rb/rom-sql/issues/310

So, how I can build a configuration without any migrator as I could before by passing migrator: nil to ROM::Configuration.new ? It was useful.

@v-kolesnikov oh I haven't thought about it, we should tweak the code to make it possible again


Hi Byran, Can you clarify the license of this code?

Hi Byran, Can you clarify the license of this code? I'd like to use it, but I'd really feel safer if you licensed it somehow.
Suggestions include:

Apache2 - like BSD but more comprehensive
GPL3 - Copyleft

Thanks,
abram

I decided to do BSD. Apache2 requires too much reading, and isn't compatible with the GPL. Hopefully this helps.


ValueError in urllib3 when authenticating

Describe the bug
Authentication fails with error:
File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/util/timeout.py", line 156, in _validate_timeout
    raise ValueError(
ValueError: Timeout value connect was <object object at 0x7f84696d49c0>, but it must be an int, float or None.

Full output
2023-07-14 10:56:27,418|I| ############ Starting IBeam version 0.4.6 ############
2023-07-14 10:56:27,420|I| Secrets source: env
2023-07-14 10:56:27,421|I| Health server started at port=5001
2023-07-14 10:56:27,421|I| Environment variable configuration:
{'INPUTS_DIR': '/srv/inputs/', 'OUTPUTS_DIR': '.', 'GATEWAY_DIR': '/home/pgm/clientportal.gw', 'CHROME_DRIVER_PATH': '/opt/chromedriver', 'GATEWAY_STARTUP': 20, 'GATEWAY_PROCESS_MATCH': 'ibgroup.web.core.clientportal.gw.GatewayStart', 'MAINTENANCE_INTERVAL': 60, 'SPAWN_NEW_PROCESSES': False, 'LOG_LEVEL': 'INFO', 'LOG_TO_FILE': True, 'LOG_FORMAT': '%(asctime)s|%(levelname)-.1s| %(message)s', 'REQUEST_RETRIES': 1, 'REQUEST_TIMEOUT': 15, 'RESTART_FAILED_SESSIONS': True, 'RESTART_WAIT': 15, 'REAUTHENTICATE_WAIT': 15, 'IBEAM_HEALTH_SERVER_PORT': 5001, 'GATEWAY_BASE_URL': 'http://localhost:5123', 'ROUTE_AUTH': '/sso/Login?forwardTo=22&RL=1&ip2loc=on', 'ROUTE_USER': '/v1/api/one/user', 'ROUTE_VALIDATE': '/v1/portal/sso/validate', 'ROUTE_REAUTHENTICATE': '/v1/portal/iserver/reauthenticate?force=true', 'ROUTE_AUTH_STATUS': '/v1/api/iserver/auth/status', 'ROUTE_TICKLE': '/v1/api/tickle', 'ROUTE_LOGOUT': '/v1/api/logout', 'USER_NAME_EL': None, 'PASSWORD_EL': 'password', 'SUBMIT_EL': 'button.btn.btn-lg.btn-primary', 'ERROR_EL': None, 'SUCCESS_EL_TEXT': 'Client login succeeds', 'OAUTH_TIMEOUT': 15, 'PAGE_LOAD_TIMEOUT': 15, 'ERROR_SCREENSHOTS': False, 'MAX_FAILED_AUTH': 5, 'MIN_PRESUBMIT_BUFFER': 5, 'MAX_PRESUBMIT_BUFFER': 30, 'MAX_IMMEDIATE_ATTEMPTS': 10, 'IBKEY_PROMO_EL_CLASS': 'ibkey-promo-skip', 'TWO_FA_EL_ID': 'twofactbase', 'TWO_FA_NOTIFICATION_EL': 'login-step-notification', 'TWO_FA_INPUT_EL_ID': 'chlginput', 'TWO_FA_HANDLER': None, 'STRICT_TWO_FA_CODE': True, 'TWO_FA_SELECT_EL_ID': 'sf_select', 'TWO_FA_SELECT_TARGET': 'IB Key'}
2023-07-14 10:56:27,450|I| Gateway not found, starting new one...
2023-07-14 10:56:27,450|I| Note that the Gateway log below may display "Open https://localhost:5000 to login" - ignore this command.
2023-07-14 10:56:27,450|I| Starting Gateway as Linux process with params: ['bash', 'bin/run.sh', 'root/conf.yaml']
running
 runtime path : root:dist/ibgroup.web.core.iblink.router.clientportal.gw.jar:build/lib/runtime/*
 config file  : root/conf.yaml
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by io.netty.util.internal.ReflectionUtil (file:/home/pgm/clientportal.gw/build/lib/runtime/netty-common-4.1.15.Final.jar) to constructor java.nio.DirectByteBuffer(long,int)
WARNING: Please consider reporting this to the maintainers of io.netty.util.internal.ReflectionUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
 -> mount demo on /demo
Java Version: 11.0.19
****************************************************
version: a27ed42161ad96c53e715ca5c5e3e3fa4cff5262 Mon, 24 Apr 2023 15:41:53 -0400
****************************************************
This is the Client Portal Gateway
for any issues, please contact<EMAIL_ADDRESS>and include a copy of your logs
****************************************************
https://www.interactivebrokers.com/api/doc.html
****************************************************
Open http://localhost:5123 to login
App demo is available after you login under: http://localhost:5123/demo#/
2023-07-14 10:56:28,489|I| Gateway started with pid: 3397449
2023-07-14 10:56:29,180|I| Gateway connection established
2023-07-14 10:56:29,429|I| No active sessions, logging in...
2023-07-14 10:56:29,430|I| Loading auth webpage at http://localhost:5123/sso/Login?forwardTo=22&RL=1&ip2loc=on
2023-07-14 10:56:30,497|E| Error encountered during authentication
Traceback (most recent call last):
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/ibeam/src/authenticate.py", line 253, in authenticate_gateway
    driver = start_driver(base_url, driver_path)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/ibeam/src/authenticate.py", line 467, in start_driver
    driver = new_chrome_driver(driver_path)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/ibeam/src/authenticate.py", line 66, in new_chrome_driver
    driver = webdriver.Chrome(driver_path, options=options)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__
    RemoteWebDriver.__init__(
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 319, in execute
    response = self.command_executor.execute(driver_command, params)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py", line 374, in execute
    return self._request(command_info[0], url, body=data)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py", line 397, in _request
    resp = self._conn.request(method, url, body=body, headers=headers)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/_request_methods.py", line 118, in request
    return self.request_encode_body(
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/_request_methods.py", line 217, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/poolmanager.py", line 432, in urlopen
    conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/poolmanager.py", line 303, in connection_from_host
    return self.connection_from_context(request_context)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/poolmanager.py", line 328, in connection_from_context
    return self.connection_from_pool_key(pool_key, request_context=request_context)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/poolmanager.py", line 351, in connection_from_pool_key
    pool = self._new_pool(scheme, host, port, request_context=request_context)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/poolmanager.py", line 265, in _new_pool
    return pool_cls(host, port, **request_context)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/connectionpool.py", line 196, in __init__
    timeout = Timeout.from_float(timeout)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/util/timeout.py", line 190, in from_float
    return Timeout(read=timeout, connect=timeout)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/util/timeout.py", line 119, in __init__
    self._connect = self._validate_timeout(connect, "connect")
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/urllib3/util/timeout.py", line 156, in _validate_timeout
    raise ValueError(
ValueError: Timeout value connect was <object object at 0x7f84696d49c0>, but it must be an int, float or None.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/pgm/.conda/envs/ibkr/lib/python3.10/site-packages/ibeam/src/authenticate.py", line 447, in authenticate_gateway
    raise RuntimeError('Error encountered during authentication') from e
RuntimeError: Error encountered during authentication
2023-07-14 10:56:30,500|I| Cleaning up the resources. Display: <pyvirtualdisplay.display.Display object at 0x7f8466cf41c0> | Driver: None
2023-07-14 10:56:30,546|I| Authentication process failed
2023-07-14 10:56:30,550|I| Starting maintenance with interval 60 seconds

To Reproduce
Steps to reproduce the behavior:

Download and unpack IB clientportal gateway
Create new conda (miniforge) env, python=3.10
install IBeam and chromedriver
run ibeam_starter.py
See error

Expected behavior
Success authentication
Environment
IBeam version: 0.4.6
Docker image or standalone: standalone
Python version (standalone users only): 3.10.12
OS: Ubuntu 22.04.2 LTS
Additional context
urllib3 version: 2.0.3
selenium version: 3.141.0
Suggest a Fix
ibeam requires selenium version 3.* but it seems that issue is fixed in version 4.9.0
⁉ possibly outdated setup.py

Hey @bellerofonte thanks for sharing your issue in detail 👍
This seems to be related to selenium/chrome/chromedriver versions. Indeed, thanks for bringing the setup.py to my attention, it is outdated. The requirements.txt has the updated packages.
You can see more information about this issue under #140, particularly: https://github.com/Voyz/ibeam/issues/140#issuecomment-1559518308
Let me know if updating the versions helps solving the issue

Hi @Voyz! Thank you for your effort!
After some tries I gave up trying to run standalone version due to different issues related to the dependencies.
However, I successfully launched IB GW using docker image 0.5.0-rc2:
docker run \
    --env IBEAM_ACCOUNT=****** \
    --env IBEAM_PASSWORD=****** \
    --env IBEAM_AUTHENTICATION_STRATEGY=B \
    -p 5000:5000 voyz/ibeam:0.5.0-rc2

happy to hear you got it working otherwise @bellerofonte  👍 if you'd like to, feel free to share your troubles with the standalone version.

Hi @Voyz !
Sorry for a late response.
Here is the issue I am facing to when I run ibeam standalone:
2023-07-20 12:19:26,201|I| Gateway started with pid: 3604566
2023-07-20 12:19:26,967|I| Gateway connection established
2023-07-20 12:19:27,240|I| No active sessions, logging in...
2023-07-20 12:19:27,241|I| Loading auth webpage at https://localhost:5000/sso/Login?forwardTo=22&RL=1&ip2loc=on
2023-07-20 12:19:28,433|E| Error encountered during authentication
Traceback (most recent call last):
  File "/home/pgm/Projects/ibeam/ibeam/src/authenticate.py", line 253, in authenticate_gateway
    driver = start_driver(base_url, driver_path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pgm/Projects/ibeam/ibeam/src/authenticate.py", line 479, in start_driver
    raise e
  File "/home/pgm/Projects/ibeam/ibeam/src/authenticate.py", line 467, in start_driver
    driver = new_chrome_driver(driver_path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pgm/Projects/ibeam/ibeam/src/authenticate.py", line 66, in new_chrome_driver
    driver = webdriver.Chrome(driver_path, options=options)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pgm/.conda/envs/ibkr/lib/python3.11/site-packages/selenium/webdriver/chrome/webdriver.py", line 84, in __init__
    super().__init__(
  File "/home/pgm/.conda/envs/ibkr/lib/python3.11/site-packages/selenium/webdriver/chromium/webdriver.py", line 104, in __init__
    super().__init__(
  File "/home/pgm/.conda/envs/ibkr/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 286, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 378, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pgm/.conda/envs/ibkr/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 440, in execute
    self.error_handler.check_response(response)
  File "/home/pgm/.conda/envs/ibkr/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary

Chrome driver is installed at /opt/chromedriver
I run ibeam via following command:
IBEAM_GATEWAY_DIR=/home/pgm/clientportal.gw \
IBEAM_CHROME_DRIVER_PATH=/opt/chromedriver \
IBEAM_OUTPUTS_DIR=. \
IBEAM_ACCOUNT=****** \
IBEAM_PASSWORD=****** \
IBEAM_AUTHENTICATION_STRATEGY=B \
python3 ibeam_starter.py

I have also tried IBEAM_CHROME_DRIVER_PATH=/opt/ but no luck either.
I have tried to download lates release zip and to checkout the repository - same error in both cases.
May be I have to install some package via apt?

Thanks 👍

What's the path to your chrome?
What's the chrome version?
What's the chromedriver version?

See this: https://stackoverflow.com/questions/50138615/webdriverexception-unknown-error-cannot-find-chrome-binary-error-with-selenium
Do you have /usr/bin/google-chrome present?

🤦♂
I've just installed chrome via latest stable .deb... and it works!
Thank you!

Way to go! Congrats @bellerofonte 👍 So the problem was that you didn't have chrome installed or that it was outdated?

yep, I didn't have chrome installed

Cool, glad that was the problem, and well done figuring it out! 👏

Hey @bellerofonte feel free to close this issue now 👍


Support for the Sx1278.

Hi, is support for the Sx1278 chip planed?

Sx1278 probably works with existing sx1276 driver, in fact the datasheet / user manual actually displays SX1276/77/78/79.
From manual:

The SX1276 and SX1279 offer bandwidth options ranging from 7.8 kHz to 500 kHz with spreading factors ranging from 6 to 12, and covering all available frequency bands. The SX1277 offers the same bandwidth and frequency band options with spreading factors from 6 to 9. The SX1278 offers bandwidths and spreading factor options, but only covers the lower UHF bands: