Complex typing

Description
After integrating xstate into our project we have experienced a quite significant editor slowdown. After having upgraded to typescript version 3.8.2 we have also started to get type erros / warnings about these matters.

Expected Result
We would, ideally, expect no difference to the editor / compilation speed.
Actual Result
Slowdown to the editor.
Reproduction
To come, currently this is meant as a heads up and a chance to discuss typing.
Additional context

"skipLibCheck": true
Visual Studio Code
Typescript 3.8.2

We use xstate in a reasonably sized application. Developer productivity is a concern, and it seems that typescript has been a bit too liberal on the type constructs they allow with speed as the trade off.
We use other libraries (cough, style components) that also expose complex type constructions. Individually, this might not be a problem, but it doesn't take many of these libraries to impact the overall editor experience.

Thanks for reporting. We're currently working on V5 and types will be overhauled and simplified, which should (hopefully) mitigate these issues. Using skipLibCheck: true is a good idea.
Also, it seems that others downgrading TS to an earlier 3.7.* version alleviated the problem, as a workaround.
For reference, TypeScript has an arbitrary limit (50 I believe) for recursive types, which causes this error. https://stackoverflow.com/questions/60265325/using-recursive-type-alias-in-generic-results-in-error

We'll track this here: https://github.com/davidkpiano/xstate/issues/1015#issuecomment-592508668


Fix issue on Client plugins refactor merge

Reverts listen1/listen1_chrome_extension#530
IMPORTANT: NOT READY FOR MERGE

Thanks for resubmit.
The most difficult part of split library to one without angular is how to use these library in angular and let angular know varibles in these library (or we can call it state) changes. If these changes are not detected by angularjs, some weired problem happend (such as github status are not shown, playlist is not updated).
I still don't have a clear answer to this question, so I'm reading angularjs docs to find some best practise. If anyone has some clues, please comment.

The $scope of angularJS components is isolated namespace. The only way to access external variables is by creating a reference of them in the $scope.
The data binding is a similar sense. The angular only watch changes of varibles in the $scope.

Ready for Review

please make sure function working before reviewing, at least test related process to avoid mistake.


Remove examples from pybind wrapper

Is there a reason to remove these? They are kind of our only documentation of the Python API at the moment.
I would suggest leaving  python/examples/basic.py until we have more documentation.

@postrational this is to avoid confusion for the users as to which examples to run. We can keep basic.py but maybe we can have it in a dir called something else and not examples just to avoid the confusion. We can remove mnist as it was added just to test some basic wrapper functionalities.

@postrational added back examples/basic.py


support windows-gnu toolchain.

dynamic linking only (WebView2Loader.dll and webview.dll)

Great work. Thank you :)


[ci skip] adding user @weiji14

Hi! This is the friendly automated conda-forge-webservice.
I've added user @weiji14 as instructed in #5.
Merge this PR to add the user. Please do not rerender this PR or change it in any way. It has [ci skip] in the commit message to avoid pushing a new build and so the build configuration in the feedstock should not be changed.
Please contact conda-forge/core to have this PR merged, if the maintainer is unresponsive.
Fixes #5

Hi @lucidrains, I'm volunteering to be a feedstock maintainer here to get some more recent versions of vit-pytorch>=1.6.0 on conda-forge, seeing as the last update was about a year ago.

@conda-forge/core, would it be possible to merge this since the maintainer has not responded in 2 weeks? Thanks.


Use external-dns image from docker hub & bitnami.

Not sure who or what zalan.do is...
at any case https://zalan.do/ shows a cert error... which is probably not good.
So switching the image source to docker hub and bitnami.
https://hub.docker.com/r/bitnami/external-dns/tags

/assign @bigkraig

/lgtm
/approve
/ok-to-test


mosquitto + nodered + pubsubclient +nodemcu callback function doesn't work anymore

hi
I used mqtt (mosquitto) and nodemcu(esp12-e) and node-red for my iot project .
i used  3 devices for connecting to node-red and everything was great and realtime .
but today when i try to uploading my code(old code that worked fine before),  received some exceptions on serial monitor and then i couldn't subscribe my commonds to esp  (callback function didn't work).
they are that codes i used & dint work :
`
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = "server";
const char* password = "123456789";
const char* mqtt_server = "<IP_ADDRESS>";
WiFiClient device1 ;//can change
PubSubClient client(device1);
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("WiFi connected - ESP IP address: ");
Serial.println(WiFi.localIP());
}
void callback(String topic, byte* message, unsigned int length) {
Serial.print("Message arrived on topic: ");
Serial.print(topic);
Serial.print(". Message: ");
String messageTemp;
for (int i = 0; i < length; i++) {
Serial.print((char)message[i]);
messageTemp += (char)message[i];
}
if(topic=="room/lamp"){
Serial.print("Changing Room lamp to ");
if(messageTemp == "on1"){
digitalWrite(14, HIGH);
Serial.print("On 1");
char* lamp1 = "light 1 is on";
  client.publish("light/status", lamp1);

  }
  if(messageTemp == "on2"){
    digitalWrite(12, HIGH);
    Serial.print("On 2");
            char* lamp2 = "light 2 is on";

  client.publish("light/status", lamp2);

  }
  if(messageTemp == "on3"){
    digitalWrite(16, HIGH);
    Serial.print("On 3");
            char* lamp3 = "light 3 is on";

  client.publish("light/status", lamp3);

  }
  else if(messageTemp == "off1"){
    digitalWrite(14, LOW);
    Serial.print("Off 1");
    char* light1 = "light 1 is off";
    client.publish("light/status", light1);

  }
  else if(messageTemp == "off2"){
    digitalWrite(12, LOW);
    Serial.print("Off 2");
    char* light2 = "light 2 is off";
    client.publish("light/status", light2);

  }
  else if(messageTemp == "off3"){
    digitalWrite(16, LOW);
    Serial.print("Off 3");
    char* light3 = "light 3 is off";
    client.publish("light/status", light3);

  }

}
Serial.println();
}
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Create a random client ID
String clientId = "ESP8266Client-";
clientId += String(random(0xffff), HEX);
// Attempt to connect
if (client.connect(clientId.c_str())) {
Serial.println("connected");
// Once connected, publish an announcement...
  // ... and resubscribe
  //client.subscribe("room/lamp");
} else {
  Serial.print("failed, rc=");
  Serial.print(client.state());
  Serial.println(" try again in 5 seconds");
  // Wait 5 seconds before retrying
  delay(5000);
}

}
}
void setup() {
pinMode(14, OUTPUT);
pinMode(16, OUTPUT);
pinMode(12, OUTPUT);
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server,1883);
client.setCallback(callback);
}
void loop() {
if (!client.connected()) {
reconnect();
}
if(!client.loop())
client.connect("ESP8266Client");
char* m ="54";
char* s = "32";
client.publish("room/temperature", m);
client.publish("room/humidity", s);
delay(500);
//
}
on the top worked greatly for  1 month :| and this
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
// Update these with values suitable for your network.
const char* ssid = "server";
const char* password = "123456789";
const char* mqtt_server = "<IP_ADDRESS>";
WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];
int value = 0;
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
randomSeed(micros());
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void callback(String topic, byte* message, unsigned int length) {
Serial.print("Message arrived on topic: ");
Serial.print(topic);
Serial.print(". Message: ");
String messageTemp;
for (int i = 0; i < length; i++) {
Serial.print((char)message[i]);
messageTemp += (char)message[i];
}
if(topic=="room/lamp"){
Serial.print("Changing Room lamp to ");
if(messageTemp == "on1"){
digitalWrite(14, HIGH);
Serial.print("On 1");
char* lamp1 = "light 1 is on";
  client.publish("light/status", lamp1);

  }
  if(messageTemp == "on2"){
    digitalWrite(12, HIGH);
    Serial.print("On 2");
            char* lamp2 = "light 2 is on";

  client.publish("light/status", lamp2);

  }
  if(messageTemp == "on3"){
    digitalWrite(16, HIGH);
    Serial.print("On 3");
            char* lamp3 = "light 3 is on";

  client.publish("light/status", lamp3);

  }
  else if(messageTemp == "off1"){
    digitalWrite(14, LOW);
    Serial.print("Off 1");
    char* light1 = "light 1 is off";
    client.publish("light/status", light1);

  }
  else if(messageTemp == "off2"){
    digitalWrite(12, LOW);
    Serial.print("Off 2");
    char* light2 = "light 2 is off";
    client.publish("light/status", light2);

  }
  else if(messageTemp == "off3"){
    digitalWrite(16, LOW);
    Serial.print("Off 3");
    char* light3 = "light 3 is off";
    client.publish("light/status", light3);

  }

}
Serial.println();
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Create a random client ID
String clientId = "ESP8266Client-";
clientId += String(random(0xffff), HEX);
// Attempt to connect
if (client.connect(clientId.c_str())) {
Serial.println("connected");
// Once connected, publish an announcement...
client.publish("outTopic", "hello world");
// ... and resubscribe
client.subscribe("inTopic");
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}
void setup() {
pinMode(BUILTIN_LED, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server, 1883);
//client.setCallback(callback);
connectmqtt();
}
void connectmqtt()
{
String clientId = "ESP8266Client-";
clientId += String(random(0xffff), HEX);
client.connect(clientId.c_str());
{
Serial.println("connected");
// Once connected, publish an announcement...
  // ... and resubscribe
  client.subscribe("inTopic");
   client.publish("outTopic", "hello world");

   if (!client.connected())

{
reconnect();
}
}
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
delay(1000);
long now = millis();
if (now - lastMsg > 2000) {
lastMsg = now;
++value;
snprintf (msg, 75, "hello world #%ld", value);
Serial.print("Publish message: ");
Serial.println(msg);
client.publish("outTopic", msg);
}
}
`

nodered code :  [{"id":"f0908e5b.28b11","type":"ui_switch","z":"fd5b6e22.3567e","name":"سبز","label":"سبز","group":"730bfc99.f2e8a4","order":0,"width":"0","height":"0","passthru":true,"decouple":"false","topic":"room/lamp","style":"","onvalue":"on1","onvalueType":"str","onicon":"","oncolor":"","offvalue":"off1","offvalueType":"str","officon":"","offcolor":"","x":316,"y":100,"wires":[["928540ee.1eeb6"]]},{"id":"928540ee.1eeb6","type":"mqtt out","z":"fd5b6e22.3567e","name":"room","topic":"room/lamp","qos":"2","retain":"","broker":"a5845f19.97c75","x":718.9999961853027,"y":136.99999809265137,"wires":[]},{"id":"19c1353a.13352b","type":"ui_switch","z":"fd5b6e22.3567e","name":"آبی","label":"آبی","group":"730bfc99.f2e8a4","order":0,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"room/lamp","style":"","onvalue":"on2","onvalueType":"str","onicon":"","oncolor":"","offvalue":"off2","offvalueType":"str","officon":"","offcolor":"","x":319,"y":164,"wires":[["928540ee.1eeb6"]]},{"id":"8ce4a14a.c8ada","type":"ui_switch","z":"fd5b6e22.3567e","name":"قرمز","label":"قرمز","group":"730bfc99.f2e8a4","order":0,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"room/lamp","style":"","onvalue":"on3","onvalueType":"str","onicon":"","oncolor":"","offvalue":"off3","offvalueType":"str","officon":"","offcolor":"","x":204.99999618530273,"y":233.00000190734863,"wires":[["928540ee.1eeb6"]]},{"id":"730bfc99.f2e8a4","type":"ui_group","z":"","name":"اتاق ۱","tab":"47a3867e.7be6b8","order":1,"disp":true,"width":"5","collapse":false},{"id":"a5845f19.97c75","type":"mqtt-broker","z":"","name":"","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"47a3867e.7be6b8","type":"ui_tab","z":"","name":"کنترل وسایل","icon":"lightbulb_outline","order":2}]

You need to be more specific, and isolate what the actual problem is before asking for support.
You can't expect contributors or developers to go through every part of your code & flow looking for possible problems, without getting some pointers what the problem is, or where the problem may originate.
What does your mosquitto log show?

hi
thank u for ur response .
sorry I'm novice  in asking question.
also used id for multiple devices .
1533766087: mosquitto version 1.4.10 (build date Fri, 22 Dec 2017 08:19:25 +0000) starting<PHONE_NUMBER>: Config loaded from /etc/mosquitto/mosquitto.conf.<PHONE_NUMBER>: Opening ipv4 listen socket on port 1883.<PHONE_NUMBER>: Opening ipv6 listen socket on port 1883.<PHONE_NUMBER>: New connection from <IP_ADDRESS> on port 1883.<PHONE_NUMBER>: New client connected from <IP_ADDRESS> as mqtt_c56b960f.3a9468 (c1, k60).<PHONE_NUMBER>: New connection from <IP_ADDRESS> on port 1883.<PHONE_NUMBER>: New client connected from <IP_ADDRESS> as ESP8266Client-4469 (c1, k15).<PHONE_NUMBER>: Client mqtt_c56b960f.3a9468 disconnected.

also i used this site for all program except id for multiple devices (that was here)

`Connecting to server
....
Exception (0):
epc1=0x60000600 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
ctx: sys
sp: 3ffffdc0 end: 3fffffb0 offset: 01a0

stack>>>
3fffff60:  4022ae00 3ffee778 3ffee7a0 60000600
3fffff70:  0022613d 3ffee7a0 3ffee778 4022ae0d
3fffff80:  4022ae52 3fffdab0 00000000 3fffdcb0
3fffff90:  3ffee7b0 3fffdab0 00000000 40204dc7
3fffffa0:  40000f49 40000f49 3fffdab0 40000f49
<<<stack<<<

ets Jan  8 2013,rst cause:1, boot mode:(3,6)
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v4ceabea9
~ld`

update the espcore frome 2.4.0 to 2.4.2 and exception fixed


Failed to load PDF document

Hello,
I see no error but browser ends with:
Failed to load PDF document
only in /var/log/apache2/myweb.error.log:
[Tue Jun 14 14:27:22.109808 2016] [:error] [pid 6456] [client <IP_ADDRESS>:40370] PHP Warning:  Cannot modify header information - headers already sent by (output started at /var/www/myweb/pdf/phpwkhtmltopdf/vendor/mikehaertl/php-tmpfile/src/File.php:76) in /var/www/myweb/pdf/phpwkhtmltopdf/vendor/mikehaertl/php-tmpfile/src/File.php on line 68, referer: http://<IP_ADDRESS>/index.php/de/186
but I think it is not the problem why the PDF is not loaded

Seems like you call the send() method a second time. Because the error is thrown in line 68, and it complains that the output started in line 76 which comes later. So this must be from a previous call.

I am sorry...it was my mistake!
I forgot to pass a php value of variable which is called inside html for rendering.


Allow sorting of fields in Volumes page

Oops, that commit shoudn't be associated with this. I keyed the issue number in incorrectly! That commit is for gh-726.


Refactor controlled terms in the store

Right now, we're handling controlled terms for discrete categories (e.g. "sex", "diagnosis") as simple strings - specifically as human comprehensible labels. However, a controlled term needs an IRI / identifier, and can also have a human label. Like so:
{
"identifier": "https://neurobagel.org/vocab/myControlledTerm",
"label": "My specific term"
}

instead of myTerm = "My specific term"
Mid-term, we will need to treat controlled terms as objects with identifier+label. In the short term, we can decide whether we handle them as simple strings in the app, and then only turn them into objects with identifiers at the end, when we create the data dictionary to download.
Affected parts of the annotator
Here is what I can see would be impacted by a complete refactor:

store

state

categoricalOptions

getters

getCategoricalOptions (should now return both label and identifier?)

mutations

selectCategoricalOption
setHeuristic

components

annot-categorical

expects categorical choices to be a list of strings, but would have to now handle objects with identifier + label
fires selectCategoricalOption mutation and passes the string-label of the controlled term, but would now also have to pass an identifier to make this unambiguous

To a lesser extent, this would also be a concern for the annot-continuous workflow where a transformation heuristic could (should ?) have an identifier in the future.
I think it makes sense to deal with this now, the required changes shouldn't be very extensive. Here's a list of things that need to happen:

[x] change state.categoricalOptions to be an array of objects with label and identifier each, hard-coded in the store
[x] update components using getters.getCategoricalOptions to handle 1) objects with label and identifier instead of the current string, 2) handle empty arrays
[x] update components using mutations.selectCategoricalOption to handle objects being passed around now instead of strings.

@surchs I'm a little unclear about the timelines you mentioned. what do you mean by short-term (while we're in the refactoring phase of annotation tool?) and mid-term (after the refactoring is done or when we have a mechanism for uploading data to the graph)?
what do you mean by refactoring now (as part of phase 2) and later (after phase 2 or some other time)?

Thanks for the question @rmanaem! You're right, wasn't clear: to me

short term: right now as part of Phase 2 refactor
mid term: immediately after phase 2 refactor (possibly mixed in with the next round of features)

Also decided not to work on the handling of the continuous value transformation heuristics now, because there is a much lower need to be explicit about the identifiers / handle them separately from the label we show the user.


ZTF Matchfiles (DR) ingestion - Little more safety

This PR adds:

Possibility to provide checksums, used to verify the downloaded files.
If not provided, will now at least try to open and close the files with pytables to see if they are corrupted
When ingesting matchfiles, after each batch, now queries the DB to verify that all the documents have been ingested. If not, retries a few times.

Number 3 needs to be tested, so the GA and production are the best way to verify that this works. In a previous PR we also added a try/except that wraps the whole ingestion of a file, and logs to a csv like format all the files which ingestion has failed, why it failed, and makes sure not to delete them. Then we can reference that csv when rerunning the ingestion to only try and reingest the failed files.

Thanks for the review @mcoughlin ! I addressed your comment, and I'll merge once green.


Remove debugging console.log

The console.log was printing all the action of the Localize Provider

Sorry totally missed the PR, but this fix has been pushed and published in v3.0.2


Feature Request: Search for media within duration range

I'd like to be able to search for tv episodes that have a duration between 20-30 minutes. I don't believe that is possible right now?

This query should do the trick: type:episode AND minutes:[20 TO 30].

That does it! Thanks!


feat: Added additional printer columns

Changes:

added additional printer columns when running kubectl get scheduledvolumesnapshots
the columns are pvc, retention, frequency and snapshot class name

@ryaneorth can I get review and will a version bump be required?

This is great! Thank you for your contribution. I've released v0.14.0 which contains these changes

@ryaneorth your project is amazing thank you for it!!!


Running Asyncio during NAS search

I am working in the Argonne conda/2022-07-01 environment on ThetaGPU. The issue involves running over multiple nodes using MPI, I am running into an error with Asyncio.
The exact error is
ValueError: Set of coroutines/Futures is empty.
The error file is provided below which includes the traceback. The output file is also provided which shows that it is completing the previous steps in the code successfully.
At this point the main goal is to complete this NAS search and from what I can tell most of the pieces should be in place once this issue is fixed.
10097925.error.txt
10097925.output.txt
transformer_NAS_mpiadj.txt

Hello @OliVandy could you please provide the submission script used to launch the transformer_NAS_mpiadj.py

Absolutely! It is these two scripts.
activate-dhenv.txt
transformer_NAS_mpisc.txt

Hello @OliVandy, I found the source of the issue. It is due to a bad handling of the timeout criteria for the random-search inside the deephyper code. I fixed it and sent the commit to develop branch d18d760fe15c86c1b4d9b1242f8bf2a427252c9f. This update will not directly be updated on ThetaGPU has I need to perform more tests. In the mean time, you can use the search.search(max_evals=100) instead of timeout it should work this way and you don't need to change your current installation/setup.

Hello @OliVandy can you let me know if this resolved the problem?


Add macos grpc_distribtests_python and grpc_distribtests_ruby

Add the "single-job" distribtests for python and ruby on macos. The main motivation is to prepare ground for running artifact build  & packages build & distribtests in a single-stage build (for which the green/red status is easily visible, unlike the 3 stage chained build artifact -> packages -> distribtests we currently have). This is to simplify the release process.

somewhat counterintutively, I'm adding the "distribtest" jobs for python and ruby on macos despite the fact that these languages currently don't define any macos distribtests. This is mostly to make things consistent with other "single-job" distribtest jobs. Also, at some point the distribtests could easily be added and these new jobs would make that simple.
by splitting the artifact & distribtest into per-languages, it will eventually be possible to get rid of the "macos/build_artifacts" job (which is one of the slowest macos jobs we have). The per-language jobs will be much faster  since each of them will do less (and will need to install fewer prerequisites).
this PR also fixes some typos in already existing grpc_distribtest_* jobs.

TODO: remove the "DO NOT MERGE" commit before merging.
TODO: post green adhoc runs of both new jobs before merging.

Passing distribtests_python job: https://source.cloud.google.com/results/invocations/77d2ef13-42af-4725-bca4-854d74c6dd57/targets (obtained by kidnapping an existing PR job).

I added the ad-hoc test result link above and removed the DO NOT MERGE commit. This should now be ready to merge (once you LGTM).


release a new version of the gem???

The last release was 4 years ago.  The project seems to be actively maintained, so just wondering if there is a reason for no release?

@spovich I did fork the gem and apply all the pull requests here:
https://github.com/ipaddress2-gem/ipaddress_2
Released it as a gem: ipaddress_2

@Adam21e great, thank you!  Giving it a look now.

It would be great if a new version of this gem can be released... it's unusable at this point because of Issues like https://github.com/ipaddress-gem/ipaddress/issues/107 or https://github.com/ipaddress-gem/ipaddress/issues/110 where you must tweak stuff to get this gem properly working. Frustrating!

Tracking this here: https://github.com/ipaddress-gem/ipaddress/issues/132
Closing this issue, as I'm going through and cleaning up some outstanding issues.


Remove trailing whitespaces from some issue templates

Describe the pull request

What does your PR fix?
Remove trailing whitespaces from PR/ other bug/ build failure templates

Does your PR follow the maintainer guide?
Yes

Thanks for your contribution. :)

Thanks!


ES6 export doesn't work with module export plugin

The module exports plugin does not work with the current index.js like this:
import * as hooks from './hooks';
import service from './service';

export { hooks };
export { service };
export default service;

The plugin only seems to work with a single export default. This basically means that nothing will work as documented in a non ES6 setup. The tests that verifies this in the other db adapters is:
it('is CommonJS compatible', () => {
  assert.equal(typeof require('../lib'), 'function');
});

Which is missing here. Changing the index file to
import * as hooks from './hooks';
import service from './service';

service.hooks = hooks;
// for backwards compatibility
service.service = service;

export default service;

should fix it.

Actually, the tests was there but wrong. expect(typeof require('../lib').default).to.equal('function'); should be expect(typeof require('../lib')).to.equal('function'); this will still work as the default with ES6.


[NEEDS REPRO] Empty report preview with $0 shows up

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

Version Number:
Reproducible in staging?: needs reproduction
Reproducible in production?: needs reproduction
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @luacmartins
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1706197156247149
Action Performed:

create money request with workspace chat
Observe the report preview

Expected Result:
Should display report details
Actual Result:
empty report preview with $0 shows up
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

View all open jobs on GitHub

Unable to repro, have asked Carlos for more info

Carlos thinks it's related to: https://github.com/Expensify/App/issues/34948

Hi @marcochavezf - going to assign this one to you as well as Carlos thinks the 2 are related!

The other issue also was not reproducible too 😄 I'm going to apply the retest-weekly

Hey @marcochavezf do I ened to do anything here? Does Applause test this?

Seems that only the label is needed for Applause to retest it. If it's not reproducible in three weeks the issue is closed https://expensify.slack.com/archives/C01SKUP7QR0/p1705698135329489, I will move it to weekly again

Moving to weekly again since the retest-weekly is added

Issue not reproducible during KI retests. (First week)

Issue not reproducible during KI retests. (Second week)

I think we can close this. Please reopen if the issue happens again.

Removed Upworks job


Add optional testDomains field to AE-likes

Closes #15632

I can't think of better, and including all domains is likely to introduce problems. domains instead of testDomains might also communicate the wrong message.


Follow-up from "workspaces via sourcecache 1" - workspace.init_workspace should raise a SourceError

See original issue on GitLab
In GitLab by [Gitlab user @traveltissues] on Sep 19, 2019, 11:40
The following discussion from !1563 should be addressed:

[ ] [Gitlab user @danielsilverstone-ct] started a discussion:  (+6 comments)

Again, I wonder if we need this any longer -- wouldn't this only be called if you tried to open a workspace which was already open?

In GitLab by [Gitlab user @traveltissues] on Oct 9, 2019, 18:16
mentioned in merge request !1637

In GitLab by [Gitlab user @traveltissues] on Oct 9, 2019, 18:16
mentioned in merge request !1637

In GitLab by [Gitlab user @traveltissues] on Oct 11, 2019, 18:30
mentioned in merge request !1640

In GitLab by [Gitlab user @traveltissues] on Oct 11, 2019, 18:30
mentioned in merge request !1640

In GitLab by [Gitlab user @marge-bot123] on Oct 16, 2019, 18:30
closed via merge request !1640

In GitLab by [Gitlab user @marge-bot123] on Oct 16, 2019, 18:30
closed via merge request !1640

In GitLab by [Gitlab user @marge-bot123] on Oct 16, 2019, 18:30
mentioned in commit<PHONE_NUMBER>c27e7760a575b9a8b2f2cc3ce46b98

In GitLab by [Gitlab user @marge-bot123] on Oct 16, 2019, 18:30
mentioned in commit<PHONE_NUMBER>c27e7760a575b9a8b2f2cc3ce46b98


Document ngrok usage

We are using smee.io for testing but it might be a good idea to allow using Ngrok for production workload.
I don't think we need much but some documentation just to state that it actually works would be nice.

Could we also add zrok.io? It's open source and built on OpenZiti. While OpenZiti does not have a quarkus integration module, we have created a vert.x - https://github.com/openziti/ziti-sdk-jvm/tree/v0.24.0/ziti-vertx. We could wrap this into zrok to make it a native capability.

How do you envision this?
Here is the current situation:

for production, we expect the service to be available on the Internet and accessible from GitHub servers.
for development, we simply connect to an Smee.io channel and we get the events from there.

I could see Ngrok and equivalents as used for:

production maybe? If it's stable enough. I know for some people it's not easy to get a GitHub App exposed on the Internet and having a stable proxy could help.
development

What I wouldn't like though is to add a ton of dependencies to actually connect to these.
I can make this extension a bit more flexible but I would prefer if we keep the dependencies as they are. Note that we could optionally wire things if additional extensions/dependencies are around.
If you're interested in prototyping what you have in mind with zrok.io, I can certainly help. Even pseudo code or basic Java code could help, no need to wire things for now.

Something like that yes. We will add it onto our backlog to create some documentation on using zrok with the quarkus github app

@gsmet The zrok.io give you easy access to the private server.  It is free to sign up and test what you need.  You can even self-host the service if you don't want to use the generally available server ziti is hosting. Please let me know if I can help you to get you what you need to be.

@gsmet ngrok "just works" but would be great if security checks could be enabled in devmode so actually get the benefits.
@jlin-nf @philipleonardgriffiths  if i understand right something like quarkus-zrok extension would make sense similar to how we have https://github.com/quarkiverse/quarkus-ngrok support.


Review multiple snapshots at once?

I'm using insta in a project, and it seems like when I add multiple assert_yaml_snapshot (maybe just in the same method), I have to run cargo insta review and then rerun cargo test after I update each snapshot (I'm guessing insta panics after the first failure in a given method?)
Is there a way to get around this?

If you run cargo insta test it will force snapshots to pass which lets you review multiple at once.  You can also run cargo insta test --review to run test and review after each other.


Tesseract thresholding eliminates text on bright background colors

Environment

Tesseract Version: 4.0.0-rc1-8-g1bee homebrew build
Platform: macOS High Sierra

Current Behavior:
When tesseract is run on the attached image, the text on highlight backgrounds is missing from output.

tesseract -c tessedit_write_images=true  _.png stdout
Not highlighted text

The thresholder blacks out the text (this is tessinput.tif):

Expected Behavior:
Thresholder should treat highlights as background so that Tesseract recognizes all of the text.

I wonder why tesseract use its own otsu binarization and not leptonica's one.
You might want to test this image with leptonica's binarization options.
It also possible that your issue is cause by some filter done before or after the binarization.

I used gimp for image thresholding and gave the binary image to tesseract.
Output:
Not highlighted text

Highlighted text

Highlighted background

related: https://github.com/tesseract-ocr/tesseract/issues/242#issuecomment-191994220

Here's Tesseract's otsu:
https://github.com/tesseract-ocr/tesseract/blob/57970443b42b/src/ccstruct/otsuthr.cpp

@amitdo Could you show me how to use gimp to change image thresholding? thanks

Gimp is a GUI tool. You might want to try imagemagick which is command line tool instead.

CC: @jbreiden

I wonder why does tesseract use its own otsu binarization and not leptonica's one.

https://github.com/DanBloomberg/leptonica/blob/master/src/binarize.c
 *  ===================================================================
 *  Image binarization algorithms are found in:
 *    grayquant.c:   standard, simple, general grayscale quantization
 *    adaptmap.c:    local adaptive; mostly gray-to-gray in preparation
 *                   for binarization
 *    binarize.c:    special binarization methods, locally adaptive and
 *                   global.
 *  ================================================================


Fixed errors running person detector Google Colab

I had some errors on the person_detector notebook. Specifically with the config file anchors, some training variables missing, and a spelling mistake in augmentation.
This worked for me running in Google Colab but not sure if it creates any other issues making these changes?
One other issue is there didn't seem to be a kmodel file output, only a tflite model.
I'm not a coder, so only just learning this process. Let me know if I'm not following the right procedure here as well?

This should be fine. The notebook wasn't update to YOLOv3.

I'm having trouble figuring out why I can't get the kmodel file to output. I've tried the person_detector and the pascal20_detector but only the tflite model is output. So I can troubleshoot, do you know if any of the notebooks in the resources folder are outputting the kmodel file in either YOLOv3 or v2?

Can you share you notebook with outputs?

What's the easiest way to share with outputs? Like this:
https://colab.research.google.com/drive/1oEGBkgzcorqgs1el9Z2sLMWSNyhn_Hfx?usp=sharing

I think it was failing because of the path to either converter/dataset or the model. I'm guessing you had some problems downloading the dataset from GDrive, so you changed the path.
I did a few modifications and it works now.

Another things is that MobileNet7_5 does not work with 240-320 YOLOv3 for K210, so you can scale it down to MobileNet5_0.

Updated the notebook in master.


mangaitem tabs

reorganize page into 2 tabs
see wireframe layouts:
https://wireframe.cc/1N4IWO
https://wireframe.cc/g0hdkD

#67 implements this feature


BufRead, BufWrite traits

Part of the se/deserialize API.
Should just require to_bufferfish() and from_bufferfish() fns.
Typescript should have analogous interfaces.

After 870f49c38303ff5b173011386e8913bd7e6f37ba, #[derive(Serialize) can now be used on structs to attempt serialization. Current support is a bit limited, as wrapper types and types which would impl Into where T is a supported primitive that can be serialized will fail.

Still need support on the TypeScript side for something like this. Not really sure how I will do this yet, though.

With 1688fc6d6eb5f1d03168d6d5e823c67d108f85d3, deserializers are generated on the TypeScript side when using the generate macro.
There are some minor issues to be addressed (generated field names should be camelCase), and there's still no reverse (serialize on the client, deserialize on the server) yet.
Also, currently the type handling is fairly primitive - only supporting the numeric types, strings, and bools. Arrays (Vec) absolutely need support, as that's a common field type.


Inferred bounds expressions grow exponentially with pipeline size

When constructing a large pipeline with bounds relationships that don't simplify (e.g. downsampling/upsampling), the bounds expressions grow exponentially. This can be fixed by avoiding this substitution: https://github.com/dsharlet/slinky/blob/d75542f687c9d376664c27dd462c3e5f2fd2c0f7/builder/infer_bounds.cc#L134-L143
It would also be great to eliminate the recursive_substitute hack used there too.

https://github.com/dsharlet/slinky/tree/ds/alloc-bounds is a WIP attempt at this. It works except for the fact that it ignores the dim_expr parameters set by the user, e.g. https://github.com/dsharlet/slinky/blob/37d5e66efbe3aa048dc7c4a38bceb7101b725e88/builder/pipeline_test.cc#L445-L447


--query nodeResourceGroup not working

When executing the query for the nodes' resource group I get an empty output. I've checked my spelling twice:
C:\Users\mmisztal
λ az aks show --resource-group user21-aks-rgp --name user21aks -o tsv
        1       azd-aks azd-aks-37d607cb.hcp.westeurope.azmk8s.io       /subscriptions/313f4dc6-014c-4c53-b1db-bda20014e95f/resourcegroups/user21-aks-rgp/providers/Microsoft.ContainerService/managedClusters/user21aks        1.12.6          westeurope      user21aks       Succeeded
user21-aks-rgp          Microsoft.ContainerService/ManagedClusters

C:\Users\mmisztal
λ az aks show --resource-group user21-aks-rgp --name user21aks --query nodeResourceGroup -o tsv

(empty)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7179d4ae-db6e-7f7c-a855-db0e0475dae9
Version Independent ID: 1a6fa0e8-e175-ae4d-a9d6-d170255a598e
Content: Use a static IP address with the Azure Kubernetes Service (AKS) load balancer
Content Source: articles/aks/static-ip.md
Service: container-service
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

Thanks for the feedback! We are currently investigating and will update you shortly.

I tried to reproduce this but I was able to get the result for nodeResource group.
I ran this command:
az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
The output is the node resource group which is in the format: MC_myResourceGroup_myAKSCluster_region
Can you please look for your node Resource group in the Azure portal. Go to resource groups on the left pane in the portal and search for your node resource group.

@mmisztal1980 What version of the Azure CLI are you using. Latest version is 2.0.59. IIRC, the nodeResourceGroup property was exposed around version 2.0.42
Please try updating to the latest version of the CLI, if needed - https://docs.microsoft.com/en-us/cli/azure/install-azure-cli

@mmisztal1980 Any update? Please check your Azure CLI version and update it to the latest.

My version was 2.0.32 I'll update and check once I land (in transit now)

Verified to work with the lastest Azure CLI, thanks guys, sorry about the inconvenience

@mmisztal1980 Glad to know that it worked out for you.


Add XMLStepper.serializeSubElements for streaming serialization

The added XMLStepper.serializeSubElements makes it easy to perform streaming parsing and extraction of sub elements from XML. Usable for things like processing of large OAI-PMH ListRecords responses.

When you fix merge conflicts, its good to go!


Separate ports for app and k8s probes

Currently the app needs to listen on <IP_ADDRESS> because the probes live on the same port as the main app localhost:8888.

Fixed in https://github.com/kashalls/external-dns-unifi-webhook/pull/25


Put failed worker in list before retry

What changes are proposed in this pull request?
add exception throw to avoid reading failed worker again
Why are the changes needed?
If worker is failed during reading local worker, block client will retry this worker without try other workers. In this pr, throw an exception can fix this situation.
Does this PR introduce any user facing changes?
No user-facing changes.
#15169

@lucaspeng12138 I'm fine for this PR, but would you please add some more description or your analysis ideas to help other reviewer know well about how this PR can fix https://github.com/Alluxio/alluxio/issues/15169

acquireBlockWorkerClientInternal

Thank you @lucaspeng12138 for the context!  I will take a look at this PR very soon

@beinan This user is no longer working on this issue. Could you take over?


xorg: improve splicing situtation

Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

There's still a issue with the self splicing in overrides.nix
  xcursorthemes = super.xcursorthemes.overrideAttrs (attrs: {
    nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.xcursorgen ];
    buildInputs = attrs.buildInputs ++ [ self.xorgproto ];
    configureFlags = [ "--with-cursordir=$(out)/share/icons" ];
  });

nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.xcursorgen ];

nix-repl> pkgsCross.aarch64-multiplatform.xorg.xcursorthemes.nativeBuildInputs
[ «derivation /nix/store/qpmjw2z72k8v9gr3g666sdprijdkd7ph-aarch64-unknown-linux-gnu-pkg-config-wrapper-0.29.2.drv» «derivation /nix/store/pvfhi0dhr2g78cpgrc854l1jzzm41783-xcursorgen-aarch64-unknown-linux-gnu-1.0.7.drv» ]

the remaining cross-failures (libFS,libWindowsWM,xf86videoxgi,xf86videotdfx,xf86videor128) are errors like
checking whether malloc(0) returns NULL... configure: error: in `/build/libFS-1.0.8':
configure: error: cannot run test program while cross compiling
See `config.log' for more details

and
xf86-video-xgi-aarch64-unknown-linux-gnu> checking for /nix/store/5bwvj6sr1ckzkjz38inq2s4bvj6fpgic-xorg-server-aarch64-unknown-linux-gnu-1.20.14-dev/include/xorg/dri.h... configure: error: cannot check for file existence when cross compiling

from ~45 failures to ~7, pretty good :)
btw im building with
nix-eval-jobs --flake ".#legacyPackages.x86_64-linux.pkgsCross.aarch64-multiplatform.xorg" 2>/dev/null --impure \
  | jq '.drvPath | select(. != null)' \
  | xargs nix build -v --keep-going --no-link

i'll move
fca2b164c69 xorg.imake: fix cross
17d49dceda6 xorg.xdm: fix cross

to a separate PR so this can go in to master


Allowing negative curve amplitudes

Thanks for this great tool. I would love to be able to see what the spectre looks like with the curves going the other way (i.e. going in where they used to go out and vice versa). It would also be great if we could choose an integer number of half-waves per side, say from 1 to 4) (currently fixed at 2). And fun if we could choose other waveforms besides sine, such as triangle and square, or trapezoid.

This would be nice, but I don't think I'm going to do it. Really you only need something to break reflection symmetry, it doesn't matter what.

what the spectre looks like with the curves going the other way (i.e. going in where they used to go out and vice versa)

I think you just need to adjust the lower limit of the slider to -1 here https://github.com/christianp/aperiodic-monotile/blob/49ea8d55f05d150168e66f662020ac7ad14a709d/interactive.html#L72


[Feature]: Be able to set default selected value for select columns in Tables

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
When using a standalone Select widget, we are able to set a default selected value. This is helpful when creating apps that require users to input data, as they can be prefilled in various ways, saving time. When a column is set as a select in a Table, the default value option is not there. It will be helpful if there is a way to set this similar to standalone select widgets so time can be saved for users.
Why should this be worked on?
Our use case is we are utilizing a table widget for data entry, as it allows us to have scroll-able columns and handles having an unknown amount of rows. The table widget receives the column structure and a few prefilled columns from an API. The two prefilled columns can be edited, and the other 7 columns must be manually entered. For most of these columns the data will be the same across all rows, so it will save our users time if there is a way to auto-fill the subsequent rows after the data is selected in the first row.

@mike-gigs thanks for the feature request! Could you tell us why you aren't using the JSON Form widget for this use case?

Hi @Nikhil-Nandagopal thank you for your suggestion, this may actually be a good solution for us. I will do some testing to confirm this can accomplish everything we need, I appreciate your help

@Nikhil-Nandagopal we followed your suggestion and implemented this with the JSON Form. We had to make some changes from the original design in our application, but satisfied what we were looking to achieve


Add TeslaGateway Class

This PR adds the TeslaGateway class for access to the device configuration and status payloads available from the local Gateway WiFi access point (<IP_ADDRESS>) API (/tedapi).
Requirements:

You must be connected to the local WiFi network of the Powerwall Gateway (e.g. TEG-XXX)
The Gateway Password (found on the Gateway near the QR code)
This module requires the python google.protobuf module.

Example Usage:
from pypowerwall.tedapi import TeslaGateway

# Get GW_PWD from User
gw_pwd = input("Enter Powerwall Gateway Password: ")

# Fetch data from Powerwall
gw = TeslaGateway(gw_pwd)
print("Fetching DIN...")
print(gw.get_din())

print("Fetching Configuration...")
print(gw.get_config())

print("Fetching Status...")
print(gw.get_status())

Hi Jason - tried testing this without success.... any ideas?
Does it definitely work with the normal gateway password or need installer password/access (which I don't have)?
There could also possibly be a setup issue with my test system. I often seem to have issues with getting the google protobuf module installed and working.
Tesla Powerwall Gateway API Decoder
Connect to your Powerwall Gateway WiFi.
Enter Powerwall Gateway Password: XXXXX
Fetching DIN...
Error fetching DIN: 403
None
Fetching Configuration...
Error fetching DIN: 403
Traceback (most recent call last):
  File "/home/admin/.venv/lib/python3.11/site-packages/google/protobuf/internal/python_message.py", line 696, in field_setter
    new_value = type_checker.CheckValue(new_value)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.venv/lib/python3.11/site-packages/google/protobuf/internal/type_checkers.py", line 184, in CheckValue
    raise TypeError(message)
TypeError: None has type <class 'NoneType'>, but expected one of: (<class 'bytes'>, <class 'str'>)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/admin/jasonacox/pypowerwall/tedtest.py", line 15, in <module>
    print(gw.get_config())
          ^^^^^^^^^^^^^^^
  File "/home/admin/jasonacox/pypowerwall/pypowerwall/tedapi.py", line 106, in get_config
    pb.message.recipient.din = self.din  # DIN of Powerwall
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/admin/.venv/lib/python3.11/site-packages/google/protobuf/internal/python_message.py", line 711, in setter
    field_setter(self, new_value)
  File "/home/admin/.venv/lib/python3.11/site-packages/google/protobuf/internal/python_message.py", line 698, in field_setter
    raise TypeError(
TypeError: Cannot set tedapi.Participant.din to None: None has type <class 'NoneType'>, but expected one of: (<class 'bytes'>, <class 'str'>)

@mcbirse Thanks for checking on this. I'll need to rethink how we set this up for 0.8.0.
The password is the one that is on the QR code sticker on the Powerwall that the Installer would use. Do you have that one?

The password is the one that is on the QR code sticker on the Powerwall that the Installer would use. Do you have that one?

Ahah - thanks @jasonacox - I should have checked that. I was using the last 5 characters of the password from the sticker, when it needed to be the full password.
It gets my DIN now, but crashes after that. I have not had a chance to check why.
Tesla Powerwall Gateway API Decoder
Connect to your Powerwall Gateway WiFi.
Enter Powerwall Gateway Password: XXXXXXXXXX
Fetching DIN...
XXXXXXX-XX-X--XXXXXXXXXXXXXX
Fetching Configuration...
Traceback (most recent call last):
  File "/home/admin/jasonacox/pypowerwall/tedtest.py", line 15, in <module>
    print(gw.get_config())
          ^^^^^^^^^^^^^^^
  File "/home/admin/jasonacox/pypowerwall/pypowerwall/tedapi.py", line 121, in get_config
    config = json.loads(tedapi.message.config.recv.file)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/json/__init__.py", line 339, in loads
    raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not ConfigString

@mcbirse Thanks for checking on this. I'll need to rethink how we set this up for 0.8.0.

I was hoping that I would be able to get vitals/alerts back for my system (and temps would be good, if they are there somewhere).
If it worked, ideally it would nice to add the tedapi vitals call into pypowerwall proxy for those on the new firmware.
And since I have bridged <IP_ADDRESS> onto my LAN, then it would be easy to add the "/alerts/pw" (vitals) call to be fetched via the direct IP address, either within the one instance of the proxy (i.e. specify a different IP address to the gateway for vitals/alerts calls), or by running another instance of the proxy just for this (noting I still have the gateway hardwired via ethernet as well and obviously that is best to use for the majority of calls).

If it worked, ideally it would nice to add the tedapi vitals call into pypowerwall proxy for those on the new firmware.

That was my thought as well.

It gets my DIN now, but crashes after that. I have not had a chance to check why.

Make sure you have the latest protobuf  library.  I moved to a different laptop and it wasn't working. It turned out I needed to upgrade protobuf.
Check the command line version too: https://github.com/jasonacox/pypowerwall/tree/main/tools/tedapi

Closing this - Moving this class into tedapi


GH-43060: [C++][Parquet] Optimize memory usage in buffering parquet::ReaderProperties::GetStream

Rationale for this change

See https://github.com/apache/arrow/issues/43060 . This patch optimize memory-usage for column is not so large and buffering is enabled.
What changes are included in this PR?

Change buffer-size in parquet::ReaderProperties::GetStream and making it not greater than column-chunk size.
Are these changes tested?

Covered by existing
Are there any user-facing changes?
No

GitHub Issue: #43060

How about instead handling this in BufferedInputStream::SetBufferSize? Something like (untested):
diff --git a/cpp/src/arrow/io/buffered.cc b/cpp/src/arrow/io/buffered.cc
index c53b3d223d..18d1009427 100644
--- a/cpp/src/arrow/io/buffered.cc
+++ b/cpp/src/arrow/io/buffered.cc
@@ -286,6 +286,11 @@ class BufferedInputStream::Impl : public BufferedBase {
     if (new_buffer_size <= 0) {
       return Status::Invalid("Buffer size should be positive");
     }
+    if (raw_read_bound_ >= 0) {
+      // No need to reserve space for more than the total remaining number of bytes.
+      new_buffer_size = std::min(new_buffer_size,
+                                 bytes_buffered_ + (raw_read_bound_ - raw_read_total_));
+    }
     if ((buffer_pos_ + bytes_buffered_) >= new_buffer_size) {
       return Status::Invalid("Cannot shrink read buffer if buffered data remains");
     }

They both LGTM. This parquet::ReaderProperties::GetStream is used for each column chunk ( with known io-range). Handling this in BufferedInputStream::SetBufferSize is also LGTM and have same syntax here. ( Though final buffer of BufferedInputStream might also use more memory than expected, I think that scenerio doesn't matters me now)

I'll draft another pr for BufferedInput, you can decide which to merge. These two are both LGTM

Doing it in BufferedInputStream::SetBufferSize would address all uses of BufferedInputStream instead of making it a Parquet-specific fix.

I've issue another pr here: https://github.com/apache/arrow/pull/43064


Firewall: Add Policy Usage

Nice addition!

A useful addition, thank you. It would be nice to see it merged in.

Thanks, it is planned for next release...


Response parsing?

How to parse response?
i got
"result": {
"source": "agent",
"resolvedQuery": "welcome",
},
"fulfillment": {
"messages": [
{
"type": 0,
"speech": "Hey!"
},
{
"type": 0,
"speech": "How may I help you?"
}
]
}
}
i want to parse "speech" from "messages"
i tried --List reply= result.getFulfillment().getMessages().getSpeech();
but getSpeech() is not suggest. how can i get speech value?

Hi
Did you find any solutions ? I am also facing the same issue .


[WIP] Plutus core/cgp 224

Adds the CK machine as specified (or will be).

I'll add the tests, sure.

This can be merged, but I've made a rather big change recently which needs polishing and proper documentation, so the work is not finished yet. But the code should be alright for the master branch.
CI fails, though:
CallStack (from HasCallStack):
  die', called at libraries/Cabal/Cabal/Distribution/Simple/Configure.hs:948:20 in Cabal-<IP_ADDRESS>:Distribution.Simple.Configure
  configureFinalizedPackage, called at libraries/Cabal/Cabal/Distribution/Simple/Configure.hs:470:12 in Cabal-<IP_ADDRESS>:Distribution.Simple.Configure
  configure, called at libraries/Cabal/Cabal/Distribution/Simple.hs:570:20 in Cabal-<IP_ADDRESS>:Distribution.Simple
  confHook, called at libraries/Cabal/Cabal/Distribution/Simple/UserHooks.hs:67:5 in Cabal-<IP_ADDRESS>:Distribution.Simple.UserHooks
  configureAction, called at libraries/Cabal/Cabal/Distribution/Simple.hs:174:19 in Cabal-<IP_ADDRESS>:Distribution.Simple
  defaultMainHelper, called at libraries/Cabal/Cabal/Distribution/Simple.hs:119:27 in Cabal-<IP_ADDRESS>:Distribution.Simple
  defaultMain, called at /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs:2:8 in main:Main
Setup: Encountered missing dependencies:
value-supply -any
builder for '/nix/store/0gdwil5a3zd01mawfmnk7wwk8lwpq3hb-language-plutus-core-<IP_ADDRESS>.drv' failed with exit code 1

I have no experience in nix, so I do not understand the problem here. Whom should I ask?

@vmchale Could you please help @effectfully fix the CI breakage?

@effectfully If you have nix installed locally, you can run ./pkgs/generate.sh and commit the changes. That should add value-supply as a dependency.
It requires a little bit of setup so if you'd like I can do it.

I've fixed the missing dependency, but now I'm getting another error:
test/Spec.hs:18:1: error:
    Could not find module `Evaluation.Constant.All'
    Use -v to see a list of the files searched for.
   |
18 | import           Evaluation.Constant.All
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
builder for '/nix/store/8pykgx429hyfhi809nm11ygg3q8c6qg0-plutus-hedgehog-tests.drv' failed with exit code 1

This missing file is in the language-plutus-core/test/Evaluation/Constant/ folder (by the way, should I prefix that with Language.PlutusCore?). It's listed in the cabal file. It compiles by stack. What is nix trying to communicate?

@effectfully This is very strange. You could think that nix doesn't like the combo of hs-source-dirs and other-modules in the test-suite component, but Cardano SL does use the same in their tests, which (as I understand) are also run via nix.
@vmchale Any idea?

That's quite strange. I'm getting similar errors on my branch as well.

@disassembler Do you understand why the nix build is failing, where a local stack builds seems to succeed; c.f.,

I've fixed the missing dependency, but now I'm getting another error:

test/Spec.hs:18:1: error:
   Could not find module `Evaluation.Constant.All'
   Use -v to see a list of the files searched for.
  |
18 | import           Evaluation.Constant.All
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
builder for '/nix/store/8pykgx429hyfhi809nm11ygg3q8c6qg0-plutus-hedgehog-tests.drv' failed with > exit code 1

This missing file is in the language-plutus-core/test/Evaluation/Constant/ folder (by the way, should I prefix that with Language.PlutusCore?). It's listed in the cabal file. It compiles by stack. What is nix trying to communicate?

please rebase on master: https://github.com/input-output-hk/plutus-prototype/pull/28

rebase on master to fix tests.

Done. Still the same?

@disassembler, I've done a merge, does that count?

Ok, all looks good to me now.


how can i read the devices that are connected outside the container

im trying to run test against real device, appium is running inside container
the device is connected to local device farm, which mean device is connected to the adb sever on the host machine, so to make it visible for adb inside the container i have to disconnect it from adb in the host machine.
So i was wondering if there way to connect adb in container to adb server in host, so i dont have to manually intervene and kill-server then again allow access

@vbanthia


charm went offline and has network connection errors

I deployed mysql-k8s to EKS from 8.0/edge on 21 of November as part of Charmed Kubeflow bundle and the charm went into Maintenance with message offline and stayed there for a while. Eventually, it went to active by itself again but I took a look at the logs and saw a bunch of "log-sender" manifold worker returned unexpected error errors there.
Before that happens, I had scaled down the cluster (during the night) and scaled it up again.
Steps to reproduce

Unfortunately, I haven't found a way to reproduce this.
Expected behavior
Stay active and being able to respond to requests.
Actual behavior

I think that as a result of the above, one of our charms fails to contact mysql-k8s in that cluster with the following error
Ping to Katib db failed: dial tcp <IP_ADDRESS>:3306: connect: connection refused

Versions

Operating system: Ubuntu 22.04

Juju CLI: 3.1/stable

Juju agent: unknown

Charm revision: deployed 8.0/edge on 21st of November

EKS: 1.25
Log output

Logs are from after I scaled up the cluster.
juju debug-log.txt
k8s logs.txt

Additional context

A user of CKF reported similar logs with revision 99 on juju 2.9 and microk8s 1.24. They had disabled and enabled their microk8s too and I think these logs are after re-enabling microk8s.
db-logs.txt
P.S. Feel free to rename this issue, was not sure what the title should be.

Hi @orfeas-k , were you scaling back up from 0 units?

@orfeas-k that's probably it. We do have known issues when scaling from zero nodes, and a solution is under discussion and unfortunately will not come quickly.
I've also could not quite reproduce your issue due not being able to bootstrap juju on gke - there's a bug on it, and btw how are you working around it?


remove subprocess32

It is only imported on dependened on upstream for py2 and CF no longer builds python2 artifacts.
Also added setuptools to the host dependencies while I was touching the file.

Checklist

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

@conda-forge-admin, please rerender

xref https://github.com/conda-forge/subprocess32-feedstock/issues/17

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found some lint.
Here's what I've got...
For recipe/meta.yaml:

❌ noarch: python recipes are required to have a lower bound on the python version. Typically this means putting python >=3.6 in both host and run but you should check upstream for the package's Python compatibility.

For recipe/meta.yaml:

ℹ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.

For the host section of the recipe, you should usually use python {{ python_min }} for the python entry.
For the run section of the recipe, you should usually use python >={{ python_min }} for the python entry.
For the test.requires section of the recipe, you should usually use python {{ python_min }} for the python entry.
If the package requires a newer Python version than the currently supported minimum version on conda-forge, you can override the python_min variable by adding a Jinja2 set statement at the top of your recipe (or using an equivalent context variable for v1 recipes).

ℹ PyPI default URL is now pypi.org, and not pypi.io. You may want to update the default source url.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12508221557. Examine the logs at this URL for more detail.

The linter will be satisfied when the CFEP migration bot hits this PR.


feat(root): introduce schema-seed

Statement data and schema seed is the same at the moment.
We need to split them in order to be able to run different data flow on the same schema

I don't immediately see why splitting is a must. Could you elaborate?

I don't immediately see why splitting is a must. Could you elaborate?

Say you want to change payload, but keep the schema, in current implementation you have to provide a schema file.
Better solution would be to have split schema seed from payload seed, which allow you to pick schema by schema-seed and pick payload by payload-seed.
As of now we use global Rand instance from rnd to generate it, changing it's seed, which is not straightforward and could be unexpectedly accidentially poisoned.
This PR changes schema generation code to use local instance of rnd.Rand and intrduce --schema-seed command line option.

If there is an option to provide schema file then I guess it will be different than one generated by seed, so no need to be compatible here.
I think the problem is subtle, and solving it needs to take concurrency into consideration

If there is an option to provide schema file then I guess it will be different than one generated by seed, so no need to be compatible here.

Not exactly, when gemini starts it outputs schema it generated, you can take it and feed to the gemini to get the same schema.
Not quite get compatibility issue, could you please elaborate?

I think the problem is subtle, and solving it needs to take concurrency into consideration

Agree, it is not major issue.
There is no concurency in the schema generation.

You can but why would you do it? If you want to achieve the same behaviour you need to provide the same seed. In such case you don't need to provide any file because generated schema will be the same anyway.

You can but why would you do it? If you want to achieve the same behaviour you need to provide the same seed. In such case you don't need to provide any file because generated schema will be the same anyway.

Ahh, 100% agree, but there is one problem - if we change way schema is generated, change order of rnd.Rand methods or add additional things there, then same schema seed will give different schema, while schema file gives you persistent result.

Such changes are breaking and need to be announced (once generation is stable, now it doesn't matter much). And you won't achieve the same result if you've changed something the requests likely also will be different.
Moreover this can be alleviated by pinning version of gemini to test run, and it would a solution covering more cases.

Such changes are breaking and need to be announced (once generation is stable, now it doesn't matter much). And you won't achieve the same result if you've changed something the requests likely also will be different.
Moreover this can be alleviated by pinning version of gemini to test run, and it would be a solution covering more cases.

Agree.
schema file is option to have persistent schema from version to version
schema seed is option to have persistent schema, but it's persistence could be violated when you move from version to version
but question is how to drag same schema from version to version, and anwer is schema file.


Fixing built jar location in readme

JAR location in readme is incorrect.

Can one of the admins verify this patch?

I signed it!

@jart ptal

@tensorflow-jenkins test this please
then i will merge it either way since it just a readme change....


disableOutsidePointerEvents in Dialog

Feature request
Overview
I need to remove disableOutsidePointerEvents feature in Dialog component but it seems impossible  https://github.com/radix-ui/primitives/blob/main/packages/react/dialog/src/Dialog.tsx#L241.
Additional context
Such option is already exists in DropdownMenu.Content component, would be useful to have it in Dialog as well.

Hi @Avizura,
I don't think it would make sense to allow that for our Dialog primitive as it's a modal dialog.
What is your use case?

Hi @benoitgrelard !
I need to able to click on other cards while dialog with details of current card is opened. But now I have doubts that sidebar on the right is actually a dialog 😅

Yeah so if you need to be able to interact with what's behind, that would probably be considered a non-modal dialog.
I don't think our Dialog primitive currently supports this well so there may be something there.
Popover lets you create non-modal things, but then here it's not really what you need as you don't need the whole positioning thing.
I'm currently re-writing bits of our focus scope logic so it's kinda good timing actually haha.
Let me consider your use case a little bit and discuss with @jjenzz as well and we'll figure something out.

I see, thanks a lot for this lib guys

Hi @Avizura I just wanted to come back to you to say that we think we will be making changes to our components such as Dialog, Popover, etc to add the concept of modality. This should then resolve your issue here.
Not sure what timeframe that will be released but I will update you once that's done.

@benoitgrelard Hi, cool, thanks!

@Avizura Sorry for the delay on an update here.
We're hoping to release this week with a new modal prop for Dialog. Setting it to false would allow you to achieve the UI you posted 🙂

I see, thanks again for your amazing work @jjenzz

@Avizura thanks but it was @benoitgrelard and @andy-hook who did this work so I cannot take credit I'm afraid 🙂


moved item purchases form COMBATLOG to actions

fixes #1445
In opendota starting items aren't shown if they were bought before the start of the game (this may happen in all pick when player picked his hero, for example). Right now, opendota gets purchases from combat_log, but combat log events appear only after beginning of the match. However, events with type of "actions" exists during picks too, so i suggest moving purchase tracking from combat log to actions. This pull request changes processExpand, so that it generate purchase events from actions events, not from combat_log.
However:

I tested it on json generating, but not on whole project
It doesn't get hero name by slot as i don't know how to do this, but it isn't needed, is it? (you get slot by hero name anyway)
  const slot = ('slot' in e) ? e.slot : meta.hero_to_slot[e.unit];
Right now odota/parser doesn't get which item was purchased in onSpectatorPlayerUnitOrders, so i made pull request fixing it https://github.com/odota/parser/pull/11

Note I applied a quick fix to prevent the purchases in the actions object from being counted value times since the default behavior is to increment the object value by value if it exists.
https://github.com/odota/core/commit/84f2fd1b9921f60ee17194d621cdaf225971e9a5


build script: fails when the path contain spaces

Example:
/Users/david/My Company/myapp/node_modules/zookeeper/deps/zookeeper
Gives an error:
/bin/sh: /Users/david/My: No such file or directory

Workaround:
CFLAGS=-Wno-error=format-overflow npm install

Looks like return process.cwd().replace(' ', '\\ '); in scripts/env.js should do the trick :wink:

What looked like an easy task took me much more time than I would like to admit... However this issue cannot be fixed. node-gyp itself does not support directories with spaces, see nodejs/node-gyp#65, @tensorflow/tfjs#711.
File "/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py", line 970, in WriteActions
    "Spaces in action output filenames not supported (%s)"  % output)
AssertionError: Spaces in action output filenames not supported (/home/bienko/dev/projects with space/node-zookeeper/build/zookeeper.node)

@jbienkowski311 Thank you very much for taking time and finding the root cause of the issue!


Initial experience allow storage account setup on account configuration

Allow storage/container creation for account setup
When configuring a new account setup an optional --create parameter exists which will create the provided storage account and the container as part of the azurectl account configuration
References: https://trello.com/c/q09teezP/122-azurectl-better-initial-experience

I have not tested if a new sequence of storage account plus container causes a race condition in Azure. Maybe we have to wait for the calls to succeed. Would be nice if we can do a real live test. However I was not sure which account I could use to spawn creation of new storage accounts
Thanks

I'll do some live testing...

Thanks

I have added a cleanup step if one of the storage account or container creation steps fails.
However there is no rollback if e.g the storage account was created but the container creation failed for some reason, we will not delete the formerly created storage account.
I would say this is ok, otherwise we need a global transaction concept and rollback which I think would a little bit too much :smile:

I have done many real live tests with account configuration/deletion plus storage account and container setup and I think we are good to merge


App folder for MacOs has incorrect created date: Currently 12/31/1979

Azure Data Studio Version: 1.27

Steps to Reproduce:

Unzip deliverable package.
Examine Date Created property of parent App folder.

Closing as duplicate of https://github.com/microsoft/azuredatastudio/issues/12787


Modernize Python 2 code to get ready for Python 3

Make the minimal, safe changes required to convert the repo's code to be syntax compatible with both Python 2 and Python 3. There will definitely be more work required to complete the port to Python 3 but this is a minimal, safe first step.
Run: futurize --stage1 -w **/*.py  # done in zsh for ** globbing
See Stage 1: "safe" fixes http://python-future.org/automatic_conversion.html#stage-1-safe-fixes
$ pip install future
$ git checkout -b modernize-python2-code
$ futurize --stage1 -w **/*.py  # done in zsh for ** globbing
$ git commit --all -m "Modernize Python 2 code to get ready for Python 3"
$ git push --set-upstream origin modernize-python2-code

Probably need to have the tests passing before this can be merged... For details see https://travis-ci.org/apple/ccs-calendarserver/builds/278927382


Add option to disable any kind of formatting on the output

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context
The CI platform that we are using, Buildkite, supports grouping if the logs have the following format:
--- this is a group
# then something else is printed
# and another thing
--- and this is another group
# with some logs inside

However, when we use Fastlane, our groups lines get prefixed with the ▸ character and coloured with a magenta color. As a result, the grouping doesn't work.
Description
I've added a new environment variables, FASTLANE_DISABLE_OUTPUT_FORMAT that disables any kind of formatting on the output.

Nice PR.
Aren't there already some ENV variables or config options to disable colors and such?

@janpio

colors

Yes, we have for colors. FASTLANE_DISABLE_COLORS

Do you think it makes sense to group the two flags or should we use a new flag for this?

Is there anything missing to get it merged?

@pepibumur This is awesome 🎉
Thanks @janpio @KrauseFx for the review.


Consolidate Italy into two outcomes in marriage-abroad

Trello card: https://trello.com/c/4IPj3ndU
Motivation/User need
The outcomes for Italy are very similar to each other.
User research has also shown that, rather than accepting the answer given for their particular set of circumstances, users are going back through the flow and selecting different answers to questions so that they can see "all" of the information.
So rather than having content designers making a changes to 18 templates it is easier if they only have to work with two (same-sex and opposite-sex). This way the content can be designed to present all of the information to users at once, so that they don't feel that they are missing something important.
The flow for Italy needs to be changed to only ask users two questions:

Where do you want to get married?
Is your partner of the opposite sex, or the same sex?

Factcheck
same-sex
opposite-sex
Expected flow changes
If Italy is selected in question 1, the user is taken straight to question 4.
Old URLs on GOV.UK:

https://www.gov.uk/marriage-abroad/y/italy/ceremony_country/partner_british/opposite_sex
https://www.gov.uk/marriage-abroad/y/italy/ceremony_country/partner_british/same_sex
https://www.gov.uk/marriage-abroad/y/italy/ceremony_country/partner_local/opposite_sex
https://www.gov.uk/marriage-abroad/y/italy/ceremony_country/partner_local/same_sex
https://www.gov.uk/marriage-abroad/y/italy/ceremony_country/partner_other/opposite_sex
https://www.gov.uk/marriage-abroad/y/italy/ceremony_country/partner_other/same_sex
https://www.gov.uk/marriage-abroad/y/italy/third_country/partner_british/opposite_sex
https://www.gov.uk/marriage-abroad/y/italy/third_country/partner_british/same_sex
https://www.gov.uk/marriage-abroad/y/italy/third_country/partner_local/opposite_sex
https://www.gov.uk/marriage-abroad/y/italy/third_country/partner_local/same_sex
https://www.gov.uk/marriage-abroad/y/italy/third_country/partner_other/opposite_sex
https://www.gov.uk/marriage-abroad/y/italy/third_country/partner_other/same_sex
https://www.gov.uk/marriage-abroad/y/italy/uk/partner_british/opposite_sex
https://www.gov.uk/marriage-abroad/y/italy/uk/partner_british/same_sex
https://www.gov.uk/marriage-abroad/y/italy/uk/partner_local/opposite_sex
https://www.gov.uk/marriage-abroad/y/italy/uk/partner_local/same_sex
https://www.gov.uk/marriage-abroad/y/italy/uk/partner_other/opposite_sex
https://www.gov.uk/marriage-abroad/y/italy/uk/partner_other/same_sex

The new URLs for Italy will be:

https://www.gov.uk/marriage-abroad/y/italy/same_sex
https://www.gov.uk/marriage-abroad/y/italy/opposite_sex

Expected content changes
Before

After

Thanks @chao-xian. I've updated the commit message. You can see it in d712e1e

Updating this PR with changes from PR  #2873


Implement expression syntax

Implement expression syntax in parser.
Syntax types:

Literals
Identifiers and member access
Invocation

Ask ChatGPT how to test.

The mentioned syntaxes are now implemented, but parser is a hack. Needs testing.

Kind in Binary Expr syntax should be set on the Green Node.


Feature: [Bookmark Plugin] Support third-party browsers and let users choose from multiple installed browsers.

First
The default packed BookmarkPlugin only supports Firefox, chrome and the official build chromium. Since most third-party chromium browsers have similar mechanism storing bookmarks like chrome, in a JSON file named Bookmark in the User Data folder. I took a look into the source code and found this block, just need to add the path to User Data, this plugin will support third-party chromium browsers. Maybe it is better to let users configure their browser's user data path rather than hardcoded. The same as third-party Firefox-based browsers.
Second
It is usual to have multiple browsers installed on one computer, it is better to let users choose to search in which one or which ones browsers.
Sorry for I know little about C#. Could someone help? Or maybe I'll see what I can do later.

See a comment here https://github.com/jjw24/Wox/issues/32#issuecomment-568324241.
First, use other tool to gen a json file, Then, parse the json file using C#, python or else. Finally, develop it as a plugin.
Here is a plugin I used to put in my Wox.
https://github.com/HsunGong/Wox.Plugins/tree/master/Wox.Plugin.ChromeSearcher
But it is so slow compared to the plugin developed by jjw24.

Hey how's it going. Sorry for the late feature add.
Browsing of Chromium Edge has been added to Flow Launcher https://github.com/Flow-Launcher/Flow.Launcher/pull/121
The second issue will be transferred to Flow's repo and worked on later. :)

Closing this issue. For progress please visit the mentioned issue.


HD Streams of C210 and C100 stopped working

Description
The HD streams of my C210 and C100 stopped working yesterday. I do not get an image, SD stream and changing settings is still working.
RTSP is also still working.
Looks like they got a firmware update.
Reproduction Steps
Opening the camera does not show any picture. HD streams are also getting unavailable.
Expected behavior
Being able to watch HD footage from the cameras.
If applicable, add error logs.
No response
Device Firmware
1.3.6 Build 230426 Rel.48373n(4555) on C210 --- 1.3.4 Build 230613 Rel.39355n(4555) on C100
Using stream component
Yes
Does camera work via official integrations?
Yes
Camera has all attributes filled out in developer tools
Yes
HASS Environment
HASS OS on generic hardware
Search for similar issues
Yes
Additional information
No response

No problem with integration, it just passes rtsp link to ha.
Make sure your authentication data is correct, you have not disabled camera entities, camera is not overloaded and try restarting it.


Improve https://cukes.info/reference styles

Current problems:

[ ] Titles should link to themselves. Click title and have it scroll to top of screen.
[ ] Style the left nav menu better
[x] New colour scheme for syntax highlighting. Align with style guide?
[ ] More narrow main div - it's a bit wide now

Old. Closing.


Misleading Godoc documentation

Need to fix the misleading explanation in the godoc (go.dev)  for v2
Eg

Resolver will resolve all the passed connection first DB connection is the primary-writer connection (RW), the rest connection will be used for RO connection

This is not relevant anymore

fixed in #15


Detect whether user selected time or not

Hi!! How can I know when user selected time or not?
Can someone tell me? Thank you!!

Hi, you can create own optional variable for selected date and assign it using onDateTimePicked closure, so if created variable is nil it means user didn't pick the time.
var selectedTime: Date?
timePickerView.onDateTimePicked = { [unowned self] time in
   self.selectedTime = time
}

Hi!! How can I know when user selected time or not?
Can someone tell me? Thank you!!

Thank you so much, Toure!!


installation error

npm install
npm start

bundles ./node_modules/intersection-observer/intersection-observer.js → public/_elderjs/static/intersection-observer.js...
created public/_elderjs/static/intersection-observer.js in 982ms
bundles src/layouts/*.svelte, src/routes/**/*.svelte, src/components/**/*.svelte → ___ELDER___/compiled...
[!] TypeError: [conf.input].flat is not a function
TypeError: [conf.input].flat is not a function

Make sure you're using node v12+. Just tested the template and it works as expected. No upstream deps seem to be causing this.

Yes, installing v14 node solved the problem. Thank you!


(Feature) display max contribution limit for a whitelisted user in contribution page

Closes #1027

Added max contribution limit in a " human-readable " way in the contribution section

@mariano-aguero
Contribution page - Minted, no whitelist:  min contribution value didn't changed after purchase

@dennis00010011b
Currently that value does not change, depending on the business rule should it change?
Is it a value that only serves to inform the user and should remain constant?
If it should change then I suggest creating another issue since it has nothing to do with the original, and
please specify how that field should change (A real example will help)
Thanks

@dennis00010011b
As it currently works, the min contribution applies to all transactions, if that is not the case, another issue should be created and we must change that.
Regards

@mariano-aguero
The min contribution is not  applied to all transactions, only to first transaction for each account.
It is current implementation in branch 2.0

@mariano-aguero
Currently that value (min contribution) does not change, depending on the business rule should it change?
Is it a value that only serves to inform the user and should remain constant?

Min contribution field should display current min contribution value for given account( both whitelisted or minCap case )
Example: minCap =13
1.Account hasn't bought yet ,  min contribution field  = 13
2. Account has bought  amount =13,  min contribution field  = 0.000001 (real value depends of decimals).

@mariano-aguero
Dutch Auction:

min contribution field is not changed after purchase
Minor GUI issue in field max contribution

Thanks @dennis00010011b for your explanation. I really appreciate it

Minor GUI issue in field max contribution

Moved the block down, long data placed horizontally bring these kinds of problems

min contribution field is not changed after purchase
I change the function that calculate the min contribution field, use the old one right now

@mariano-aguero
I think fields max contribution and min contribution should be the same  and contains the text "You are not allowed"   when user is not allowed to buy

@dennis00010011b

I think fields max contribution and min contribution should be the same and contains the text "You are not allowed" when user is not allowed to buy

Done

@mariano-aguero
Steps:

Create Minted crowdsale with  1 whitelist address
As  whitelisted investor buy maximum amount in first transaction
Refresh page

Black Duck Security Report
Branch 2.0 has no Black Duck results, and could not be compared to #1050. Analyze branch 2.0 to get a change comparison.
Removed Components
Medium Risk: 2
Clean:       1496
Click here to see full report

Hi @dennis00010011b
I added a function to check if a crowdsale is really end for the logged user, is used to validate the appearance of the suggested text.
Regards

@mariano-aguero please resolve merging conflicts

@mariano-aguero I approved. But in the future let's consider to reuse data from currentTierInfo, currentTierStatus etc. We make multiple calls to the same functions in smart-contracts for a single page.


Roll engine 252da4808277..1fa5fe6a0063 (1 commits)

https://github.com/flutter/engine/compare/252da4808277...1fa5fe6a0063
git log 252da4808277..1fa5fe6a0063 --no-merges --oneline
1fa5fe6a0 Roll src/third_party/skia eb0bb732f43f..f7c723c93d26 (3 commits) (flutter/engine#6118)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Trybots failed. These were the failed builds: https://flutter-dashboard.appspot.com/build.html

Commit queue failed; closing this roll.


Memory limit on a table somewhere?

Context of the issue.
I have a big data set and can't get past the loading part of training. From searching I think there is a table somewhere (with possibly the directory of images/folders?) which is (probably) a native lua table (thus subject to the luajit object limit). I'm looking into the issue myself now but I thought I'd make a post here in the case that someone knows where this might be. So I can replace it with a c hash table.
Expected behavior.
Should load any sized dataset
Actual behavior.
When a dataset becomes sufficiently large there is a memory PANIC error similar to this:
http://stackoverflow.com/questions/27015150/how-to-get-past-1gb-memory-limit-of-64-bit-luajit-on-linux
OS and hardware information.
64gb RAM, 4 nvidia titans, linux

FYI this fix works for hash tables (replacing a lua table almost completely interchangeable syntax wise):
tds = require 'tds'
local tbl = tds.Hash()

I'm guessing it's in this part of training/dataset.lua. This can easily surpass the luajit memory limit for large datasets. Also I think this is unnecessarily slow (as tableFind I believe makes this O(N^2)).
-- find class names
self.classes = {}
local classPaths = {}
if self.forceClasses then
for k,v in pairs(self.forceClasses) do
self.classes[k] = v
classPaths[k] = {}
end
end
local function tableFind(t, o) for k,v in pairs(t) do if v == o then return k end end end
-- loop over each paths folder, get list of unique class names,
-- also store the directory paths per class
-- for each class,
for _,path in ipairs(self.paths) do
local dirs = dir.getdirectories(path);
for _,dirpath in ipairs(dirs) do
local class = paths.basename(dirpath)
local idx = tableFind(self.classes, class)
if not idx then
table.insert(self.classes, class)
idx = #self.classes
classPaths[idx] = {}
end
if not tableFind(classPaths[idx], dirpath) then
table.insert(classPaths[idx], dirpath);
end
end
end
I made some changes (mostly using the tds hashmap above). I'll comment back if this fixes the issue.

Interesting, thanks! This seems reasonable and I'll take a PR fixing it. I've never had access to a dataset large enough to have this problem. :-)
Also you might be able to speed up the loading process by removing
an extra dataset load that's mentioned in #117 if you're hacking
around in the data loading code.
-Brandon.

Yeah it seems that each "donkey" does the entire loading process.
So it's (N = classes, M = photos per class, K = donkeys) ~O(KN^2) runtime for number of classes N, and at least O(KNM) memory. That memory crashes luajit for large N/M due to native object limits, and it takes over a day to load the dataset.
The memory limit can be fixed by switching to all tensors and tds.Hash tables, as these are not native luajit objects.
I'll play around with making it faster. Surely the file loading need only occur once. I also don't see the need to write all these to disk and load them back to stream them to another file on disk as disk is very expensive, especially with the overhead of many identities (one file per identity in the current code). I believe file lists can fit in memory. Maybe writing to disk is good for resuming training however. This should only require one write.

I just runned into the same issue during the last 2 days. My dataset has 7500 persons and 250000 faces. With a GPU i am running out of memory after a couple of hours. The only output I see:
Argument parsing and import libraries took 52.7680699825 seconds.
Loading the dlib and OpenFace models took 28.5321800709 seconds.
Loading embeddings.
Training for 7782 classes.

I am very interested in solving this problem. I noticed that with smaller datasets (eg. 500 persons with 10000 faces) the training of the classifier goes fairly quick and without problems.

This is probably not the same issue. My issue is with loading the dataset paths (e.g. in dataset.lua). Training commences fine. If you are running out of memory in training you might need to change the batch parameters.
I attached my modified dataset.lua. it cuts loading time from 26 hours to 5 minutes for me, and removes the memory issues I had. I'll send a pull request once I test it some more.
dataset.lua.zip

@neuraldomi - let's continue this discussion on another thread if you want (please copy/paste these messages if you start one), but I never intended for the classification demo (which doesn't use dataset.lua) to be used at that scale. For better performance you should add minibatch support to the Python interface, add some garbage collection calls to openface_server.lua, add cudnn support to openface_server.lua, and investigate better Python-based classifiers for this scale (potentially neural net-based). Would be happy for PRs with these.
@aaronnech - awesome! Great improvement. Let me know how testing goes.

Testing seems to be fine so far--So I think. I'm running my modified code now. The average loss seems to be sitting around 0.2 (slightly decreasing as hours roll by (think 0.205 to 0.201), I'm on epoch 20 now. Is this normal, or is something up?)
Is an "Epoch" in your implementation a pass over the entire dataset? It seems to be randomly sampling up to some arbitrary N. Is it not the case, then, that some identities can be favored more than others in training? If I had many identities would it constantly be using identities yet to be seen? (maybe explaining the slow moving loss above?)
Is there any restrictions on just copying one of my intermediate models (e.g. model_15.t7) and benchmark it on LFW?
Thanks!

Great, the loss doesn't go down at the beginning since we don't include easily satisfied triplets, but you should see the LFW accuracy going up. Also an 'epoch' in the training code isn't actually a pass over the data set. It's just defined as the number of iterations that testing and saving the model occurs. You can probably define a pseudo-epoch based on the random sampling and triplet selection if you're interested.
-Brandon.

Strange, my LFW score is still at 50% when I follow your proceedure here: https://cmusatyalab.github.io/openface/models-and-accuracies/
I do the following:

Copy the latest epoch model (~100 currently, so work/5/model_100.t7) to openface/models
Complete the procedure above, passing my model in for batch-representation

Is this correct? The dataset I'm training on has many identities, but ~6-10 photos per identity. It has been aligned, etc. 50% is random guessing so I'm sure there's an error somewhere? It isn't throwing any errors, simply happily training away. Output looks like this:
Epoch: [103][279/500]   Time 0.738      tripErr 2.00e-01

(nTrips, nTripsFound) = (258, 258)
Epoch: [103][280/500]   Time 0.721      tripErr 2.00e-01
(nTrips, nTripsFound) = (65, 65)
Epoch: [103][281/500]   Time 0.474      tripErr 2.00e-01
(nTrips, nTripsFound) = (282, 282)
Epoch: [103][282/500]   Time 0.741      tripErr 2.00e-01
(nTrips, nTripsFound) = (76, 76)
Epoch: [103][283/500]   Time 0.480      tripErr 2.00e-01
(nTrips, nTripsFound) = (259, 259)
Epoch: [103][284/500]   Time 0.720      tripErr 2.00e-01
(nTrips, nTripsFound) = (317, 317)
Epoch: [103][285/500]   Time 1.490      tripErr 2.00e-01

Any ideas?

Sure, that looks correct. Also, test.lua should be automatically testing on the LFW after every 'epoch'.

Also I wasn't sure if you were going to send in a PR so I just committed your changes. I've started training a new model on my dataset to make sure your changes here are working well.

Awesome. I made a comment on your commit. I think I'm a version or two behind (from when the automatic LFW training scheme was implemented). I'll try updating and training again.
Thanks for all the information!

Also what model are you using? For your scale of data, nn4 or nn2 instead of OpenFace's small variants might work better. But I'd still expect you to do better than 50% LFW accuracy.

Also I noticed you're using 4 GPUs, but the current OpenFace code just uses 1 GPU. @melgor and I have been thinking about adding multi-GPU support in issue #106 if you're interested in contributing some code for faster training. Neither of us are actively working on this.

I see--Yeah multiple GPUs could be utilized for sure. On the original dataset.lua change: Were you able to get reasonable accuracies? I'm training on LFW to rule out an issue with loading my data.

Something is still wrong. Fresh install leads to 50% accuracy on LFW after 10 epochs training on... LFW.
Any ideas?

I got an error re-training that I think is being caused by this update. For now, I've reverted dataset.lua and am re-training with the old code just to make sure this was causing this.
/home/bamos/torch/install/bin/luajit: /home/bamos/torch/install/share/lua/5.1/threads/threads.lua:264:
[thread 2 callback] ...mos/torch/install/share/lua/5.1/graphicsmagick/Image.lua:333: magick.Image: error loading image: Unable to open file (/home/bamos/openface/data/casia-facescrub/aligned/FlorianHenckelvonDonnersmarck/13.png/home/bamos/openface/data/casia-facescrub/aligned/LaurenHolly/15.png) (ExceptionType=430)
stack traceback:
        [C]: in function 'error'
        ...mos/torch/install/share/lua/5.1/graphicsmagick/Image.lua:333: in function 'magick_error'
        ...mos/torch/install/share/lua/5.1/graphicsmagick/Image.lua:400: in function 'load'
        /home/bamos/openface/training/donkey.lua:34: in function 'sampleHookTrain'
        /home/bamos/openface/training/dataset.lua:395: in function 'samplePeople'
        /home/bamos/openface/training/train.lua:59: in function </home/bamos/openface/training/train.lua:58>
        [C]: in function 'xpcall'
        /home/bamos/torch/install/share/lua/5.1/threads/threads.lua:231: in function 'callback'
        /home/bamos/torch/install/share/lua/5.1/threads/queue.lua:65: in function </home/bamos/torch/install/share/lua/5.1/threads/queue.lua:41>
        [C]: in function 'pcall'
        /home/bamos/torch/install/share/lua/5.1/threads/queue.lua:40: in function 'dojob'
        [string "  local Queue = require 'threads.queue'..."]:15: in main chunk
stack traceback:
        [C]: in function 'error'
        /home/bamos/torch/install/share/lua/5.1/threads/threads.lua:264: in function 'synchronize'
        /home/bamos/torch/install/share/lua/5.1/threads/threads.lua:198: in function 'addjob'
        /home/bamos/openface/training/train.lua:56: in function 'train'
        ./main.lua:44: in main chunk
        [C]: in function 'dofile'
        ...amos/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:145: in main chunk
        [C]: at 0x00406670

training(master)$ cat work/002/test.log
lfwAcc
 5.1880e-01
 5.4630e-01
 5.2730e-01

Moved your dataset changes to dataset-issue-132.lua. Can you check out the latest version of the code and commit further changes here and send in a PR?
I've also added TDS to the Dockerfile so when we move this back to dataset.lua, the Travis build should pass.

Also, training's working well with the old dataset code on my dataset:
training(master)$ cat work/001/test.log
lfwAcc
 7.0320e-01
 7.5700e-01
 7.7550e-01
 7.6080e-01
 8.1830e-01
 8.1150e-01
 8.1480e-01
 7.8850e-01
 8.2980e-01
 8.3920e-01
 8.5170e-01
 8.7100e-01

Is python3 a requirement for lfw.py? I'm running python2. I'm wondering if this is the cause of the strange accuracy. I'm now attempting to train on LFW (which should in theory get amazing results when testing on LFW) with the original dataset code.
I think the error you got above is a tensor layout problem due to the size of the entries in the tensor (maxLength). Since it concatenates two adjacent paths when pulling one string out. I think adding 1 was incorrect, I now believe you should add 2 (to accommodate a null terminating character).

I run the LFW script with Python 3, but I don't think it would give wrong accuracies if you run it with Python 2.

I'm running it with Python 2 and everything works ok.
niedz., 8.05.2016 o 21:07 użytkownik Brandon Amos<EMAIL_ADDRESS>napisał:

I run the LFW script with Python 3, but I don't think it would give wrong
accuracies if you run it with Python 2.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/cmusatyalab/openface/issues/132#issuecomment-217739998

Interesting. Well it does seem this is a separate (very critical) issue. I'll play around with my setup some more and open a new issue.
Did adding 2 instead of 1 to maxPathLength fix the concatenated path error you experienced?


Added Channel field to Event

When subscribing to multiple channels with the same event name, channel name in an emitted message from each channel is useful to determine the origin of that message. In Bitstamp case if one tries to listen to multiple channels at the same time (arbitrage bot), events with the same name cannot tell us for which market they were emitted (data for orders, trades for trades...). Adding Channel field to Event struct solves the problem.

thx ;)