improving the UI of the pages

the cards can be made to be of the same size

@Anushkabh can you add a label "gssoc" label and "level "?

Hi @777advait can you please assign me the issue?

Hello!! @Anushkabh  I am a contributor of GSSoC 24 and I would like to design this page in attractive way. So I request you to please assign me this task thankyou!!

@777advait go ahead!
@sakshiiiii26  @Niranjan5601 @Jamir2412 we assign issues on a first-come, first-served basis. If someone fails to raise a pr within the time frame, then the issue is passed to another person, order-wise

thank you @Anushkabh
i just had one doubt, am i allowed to contribute to only the issues that i've been assigned or i can contribute to any issues with GSSoC tag?

thank you @Anushkabh i just had one doubt, am i allowed to contribute to only the issues that i've been assigned or i can contribute to any issues with GSSoC tag?

your PR will not be accepted if you were not assigned to that issue.

Hi there!
Thank you for opening this issue! 😊
I just wanted to check in and see if you need any help or guidance with this issue. If you have any questions or run into any challenges, please feel free to ask. I'm here to assist you!
Additionally, it's been some time since the issue was opened. If we don't hear back from you within a week, the issue will be closed or made available for someone else to work on.
Happy coding!


Update v2-conformance-statement for leniency

Description
Update v2-conformance-statement for searching attributes with leniency.
We already specify in QIDO, that only latest wins.  QIDO Additional Notes. So there is no update needed.
Related issues
Addresses [issue #].

@mmitrik I think the edit looks fine for now. Let's discuss doing an edit pass on the whole conformance statement. Maintaining technical accuracy will be extremely important, so let's make a plan.


Data loss when using http client

Hello,
we are using the Java client for influx.
We have a multi threaded application, so more threads are posting data to write at the same time.
And we got the problem, that not all data gets saved.
Because the Java client didn't throw any exception i turned on the "write-tracing" property on the influx server.
Here is a short excerpt from the log file: (Everything looks fine in the logs, no errors)
ts=2020-04-14T13:48:07.278589Z lvl=info msg="Write body received by handler" log_id=0MAECh5W000 service=httpd body="\<thousand of entries\>"

[httpd] <IP_ADDRESS> - admin [14/Apr/2020:15:48:03 +0200] "POST /write?db=values&rp=wotan&precision=ms&consistency=all HTTP/1.1" 204 0 "-" "okhttp/3.11.0" 902476d2-7e56-11ea-824c-00ff3bb899f8 3478444

ts=2020-04-14T13:48:07.358193Z lvl=info msg="Write body received by handler" log_id=0MAECh5W000 service=httpd body="\<thousand of entries\>"

[httpd] <IP_ADDRESS> - admin [14/Apr/2020:15:48:05 +0200] "POST /write?db=values&rp=wotan&precision=ms&consistency=all HTTP/1.1" 204 0 "-" "okhttp/3.11.0" 90effd10-7e56-11ea-824e-00ff3bb899f8 2212630

In this case it seems that all entries of the first post request did not get saved. (I only checked a few because there are so many)
And every time I import data, it differs which entries are not saved, so it's not always the same entries. (I tried a few times)
We don't have changed the standard http config properties. Don't know if we should configure there something?
We are using a Windows Server with influx 1.7.7.
Any idea what the problem could be?
Greetings
Michael

@MichaelP89  We need more details to help .. Please provide the following if possible
-Environment
-Steps to reproduce
-Expected Result
-Actual Result
-Visual Proof (screenshots, videos, text)

In this case it seems that all entries of the first post request did not get saved. (I only checked a few because there are so many)

Can you confirm that your data has a unique set of timestamp and tag values? See these help docs for more details about how influx handles overwriting data: https://docs.influxdata.com/influxdb/v1.8/troubleshooting/frequently-asked-questions/#how-does-influxdb-handle-duplicate-points

Hallo,
because it's really hard to give details, i have created a simple Java project to reproduce the problem.
It maybe only happens when updating values, but I'm not sure about that.
In my test case i simply write 3000000 points in three threads at the same time. And simply one field is always updated with a newer timestamp. But most of the time not all values gets updated.
I'm using Manjaro Linux, so in the archive file, is influxdb for Linux included.
I'm using Eclipse, so Eclipse configuration files are included as well in the project folder in the archive.
There is also a example_log.log included from one execution.
To start the influx server run:
./<path to direcotry>/influx-test/src/main/resources/influxdb/influxdb-1.8.0/influxd -config /<path to direcotry>/influx-test/src/main/resources/influxdb/influxdb-1.8.0/influxdb.conf
And then simply run the Java program.
If you have any problems with the java project or any questions, I'm gladly help.
Here is the link to the project:
https://drive.google.com/file/d/12ef11VV2SLX6dQeZx9uxdOcAqBi0Yp1q/view?usp=sharing

I found out the real problem: #24388


Segmentation Fault while make

Hi, I created a docker for Centos8 and installed or-tools, packages in requirement.txt. But there's a Segmentation Fault.  Are there other things need to do before running?
The following is the output of make.
[root@6b8e3c635d7e GRAPHOPT]# make
python main.py --tmode full --net mnist --threads 2 --cir_type psdd
/usr/local/lib/python3.8/site-packages/networkx/init.py
/usr/local/lib/python3.8/site-packages/minizinc/init.py:26: RuntimeWarning: MiniZinc was not found on the system. No default driver could be initialised.
warnings.warn(
total_nodes:  0 , leaf_nodes:  0 , arith_nodes:  0
2023-04-12 10:36:34,887,887 INFO     [graph_analysis.py:108] ###### Target workload: mnist, Target threads: 2 ######
2023-04-12 10:36:34,977,977 INFO     [psdd.py:30] raw graph len: 12777
2023-04-12 10:36:35,052,52 INFO     [psdd.py:37] binarized graph len: 15784
2023-04-12 10:36:35,127,127 INFO     [psdd.py:46] Leaf nodes: 5370
2023-04-12 10:36:35,347,347 INFO     [graph_init.py:76] Critical path length: 26
2023-04-12 10:36:35,349,349 INFO     [graph_analysis.py:159] ####### Generating superlayers #######
2023-04-12 10:36:35,349,349 WARNING  [graph_analysis.py:285] Writing partitions to files
2023-04-12 10:36:35,767,767 INFO     [partition.py:475] Max level: 25
2023-04-12 10:36:35,767,767 INFO     [partition.py:476] Total nodes: 15784
2023-04-12 10:36:35,767,767 INFO     [partition.py:477] Total number of layers: 26
2023-04-12 10:36:35,768,768 INFO     [partition.py:478] nodes_on_each_layer: [8, 64, 220, 478, 816, 1120, 1325, 1351, 1268, 1113, 874, 634, 423, 270, 164, 100, 60, 41, 27, 20, 15, 10, 6, 4, 2, 1]
2023-04-12 10:36:35,793,793 INFO     [minizinc_top.py:264] Using 64 CPU threads for executing Google OR-Tools solver
Using 64 CPU threads for executing Google OR-Tools solver
Trying to map 10128 nodes to 2 threads
2023-04-12 10:36:36,178,178 INFO     [minizinc_top.py:324] Total mapping to curr super layer: nodes: 8468, operations: 8468
2023-04-12 10:36:36,178,178 INFO     [minizinc_top.py:334] Total nodes mapped to superlayers so far: [8468]. Nodes yet to be mapped: 1946
A superlayer is generated
Trying to map 1946 nodes to 2 threads
2023-04-12 10:36:36,434,434 INFO     [minizinc_top.py:324] Total mapping to curr super layer: nodes: 1568, operations: 1568
2023-04-12 10:36:36,434,434 INFO     [minizinc_top.py:334] Total nodes mapped to superlayers so far: [8468, 1568]. Nodes yet to be mapped: 378
A superlayer is generated
Trying to map 378 nodes to 2 threads
2023-04-12 10:36:36,570,570 INFO     [minizinc_top.py:324] Total mapping to curr super layer: nodes: 363, operations: 363
2023-04-12 10:36:36,570,570 INFO     [minizinc_top.py:334] Total nodes mapped to superlayers so far: [8468, 1568, 363]. Nodes yet to be mapped: 15
A superlayer is generated
Trying to map 15 nodes to 2 threads
2023-04-12 10:36:36,572,572 INFO     [minizinc_top.py:324] Total mapping to curr super layer: nodes: 15, operations: 15
2023-04-12 10:36:36,572,572 INFO     [minizinc_top.py:334] Total nodes mapped to superlayers so far: [8468, 1568, 363, 15]. Nodes yet to be mapped: 0
A superlayer is generated
2023-04-12 10:36:36,572,572 INFO     [minizinc_top.py:349] Total super layers: 4
2023-04-12 10:36:36,572,572 INFO     [minizinc_top.py:350] Nodes mapped to individual super layers: [8468, 1568, 363, 15]
2023-04-12 10:36:36,586,586 INFO     [graph_analysis.py:296] edge_crossing : 431
2023-04-12 10:36:36,586,586 WARNING  [graph_analysis.py:309] Writing partitions to files at ./no_backup/superlayers/mnist_TWO_WAY_PARTITION_TWO_WAY_LIMIT_LAYERS_CPU_FINE_2.p
2023-04-12 10:36:36,598,598 INFO     [partition.py:857] layers before combining: 4
2023-04-12 10:36:36,599,599 INFO     [partition.py:884] list_of_combined_layer_list: [[0], [1, 2, 3]]
2023-04-12 10:36:36,599,599 INFO     [partition.py:914] layers after combining: 2
2023-04-12 10:36:36,599,599 INFO     [graph_analysis.py:165] ####### Generating OpenMP code #######
2023-04-12 10:36:37,773,773 INFO     [gen_code.py:722] writing openmp global variables to file: ./no_backup/openmp/mnist_TWO_WAY_PARTITION_TWO_WAY_LIMIT_LAYERS_CPU_FINE_2.c
2023-04-12 10:36:37,773,773 INFO     [graph_analysis.py:185] ####### Executing parallelized DAG #######
2023-04-12 10:36:37,773,773 INFO     [graph_analysis.py:187] Logging results in ./log/run_log_openmp file
make[1]: Entering directory '/GRAPHOPT/src/openmp'
export KMP_AFFINITY=verbose # for threading information
export MKL_NUM_THREADS=24
export OMP_NUM_THREADS=24
export KMP_AFFINITY=granularity=fine,compact,1,0
make[1]: Leaving directory '/GRAPHOPT/src/openmp'
2023-04-12 10:36:37,789,789 INFO     [graph_analysis.py:493] Modifying main openmp file: ./src/openmp/par_for_v2.cpp to include the header file ../.././no_backup/openmp/mnist_TWO_WAY_PARTITION_TWO_WAY_LIMIT_LAYERS_CPU_FINE_2.c
sed -i '8s/./#include "../.././no_backup/openmp/mnist_TWO_WAY_PARTITION_TWO_WAY_LIMIT_LAYERS_CPU_FINE_2.c"/' ./src/openmp/par_for_v2.cpp
make[1]: Entering directory '/GRAPHOPT/src/openmp'
g++ -std=c++11 -fopenmp -march=native -Ofast -fassociative-math  par_for_v2.cpp -o par_for_v2
par_for_v2.cpp: In function ‘int par_for(int, int, int, int, const int, int, const int*, float*, const bool*, const int*, const int*)’:
par_for_v2.cpp:54:1: warning: no return statement in function returning non-void [-Wreturn-type]
}
^
make[1]: Leaving directory '/GRAPHOPT/src/openmp'
2023-04-12 10:36:37,938,938 INFO     [graph_analysis.py:502] Excuting 10k iterations of parallel code...
make[1]: *** [Makefile:21: run_psdd] Segmentation fault (core dumped)
Traceback (most recent call last):
File "main.py", line 130, in
sys.exit(main())
File "main.py", line 127, in main
run(args)
File "main.py", line 19, in run
analysis_obj.test(args)
File "/GRAPHOPT/graph_analysis.py", line 194, in test
par_for_psdd([args.net], [args.threads], log_path, "../../" + self.global_var.OPENMP_PATH, suffix)
File "/GRAPHOPT/graph_analysis.py", line 504, in par_for_psdd
output= subprocess.check_output(cmd, shell=True)
File "/usr/lib64/python3.8/subprocess.py", line 415, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib64/python3.8/subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'cd src/openmp; make run_psdd' returned non-zero exit status 2.
make: *** [Makefile:5: psdd_sample] Error 1

Hi Nimish,
Thanks for your prompt reply.  The file is attached. (change to .txt for upload)
mnist_TWO_WAY_PARTITION_TWO_WAY_LIMIT_LAYERS_CPU_FINE_2.txt

Hi Eric,
The file looks normal, but I do not have the setup at the moment to verify it properly.
Could you please try make sptrsv_sample or make all to see if the other workloads also face the same issue?

I tried both make sptrsv_sample and make all. The output logs are the same as the previous ones. There is no Segmentation Fault. However, the program seems to be stuck here
INFO     [graph_analysis.py:468] Excuting 1k iterations of parallel code...
How long will it usually take?  It runs for almost one hour and still no result. I check that CPU keeps running par_for_sparse

I reinstall minizinc and the problem is solved.  Thanks!


MSID: 97916 Version: 1 DOI: 10.1101/2<IP_ADDRESS>2990

MSID: 97916
Version: 1
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>2990
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=97916
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>2990

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/97916v1
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>2990
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/97916/v1/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!


Scrolling gets cut off in the example on Mac OS X

On your website, if I follow the example ("Follow these easy steps to see the benefits that clusterize.js provides") up to step 4, when clusterize gets initialized, it suddenly cuts the list to 182 entries and then it stops working. Through steps 5 to 8, it stays the same way.
(The same things happends locally with a test size of 1000, it gets cut off at 350).
This happens in Firefox as well as Chrome. The examples below seem to be working fine.

@nilssolanki Thank you, please update to last version

Awesome, thank you for the quick response!


gutentags make the /tmp directory run out of space in fedora 32

When I startup gvim with gutentags enabled the space usage of /tmp grow rapidly.
I'm using Fedora32 64bit in VirtualBox.
I had set g:gutentags_cache_dir = expand('~/.cache/tags')
Gvim version:
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Aug 31 2020 00:00:00)
Included patches: 1-1551

[root@localhost tmp]# df /tmp
Filesystem     1K-blocks  Used Available Use% Mounted on
tmpfs            2011404    16   2011388   1% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks   Used Available Use% Mounted on
tmpfs            2011404 102204   1909200   6% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks   Used Available Use% Mounted on
tmpfs            2011404 669788   1341616  34% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks   Used Available Use% Mounted on
tmpfs            2011404 838948   1172456  42% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks   Used Available Use% Mounted on
tmpfs            2011404 969548   1041856  49% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks    Used Available Use% Mounted on
tmpfs            2011404 1087708    923696  55% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks    Used Available Use% Mounted on
tmpfs            2011404 1256868    754536  63% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks    Used Available Use% Mounted on
tmpfs            2011404 1380004    631400  69% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks    Used Available Use% Mounted on
tmpfs            2011404 1540456    470948  77% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks    Used Available Use% Mounted on
tmpfs            2011404 1898676    112728  95% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks    Used Available Use% Mounted on
tmpfs            2011404 1924772     86632  96% /tmp
[root@localhost tmp]# df /tmp
Filesystem     1K-blocks    Used Available Use% Mounted on
tmpfs            2011404 1924772     86632  96% /tmp
[root@localhost tmp]# ls -l /tmp
total 1924756
drwx------. 2 zoumi zoumi         40 Sep 30 10:36 cscope.5109
-rw-------. 1 zoumi zoumi<PHONE_NUMBER> Sep 30 10:36 tags.kgb57f
drwx------. 2 zoumi zoumi         60 Sep 30 10:36 v8gCgfP

If I remove this line from vimrc, the usage of /tmp doesn't grow.
let $GTAGSLABEL='pygments-parser'

What does $GTAGSLABEL do?
Can you identify the process that fills up the temp directory? (probably a gtags process?) This way you could look at its command line and figure out what it's doing.

@ludovicchabant
gtags will read environment var $GTAGSLABEL to call the correct parser.
For my situation, this problem only happens when I open vimrc in ~/.vim, then gtags will try to generate tags for all plugins under ~/.vim/plugged. So I tell gutentags ignore the path "~/.vim", it does not happen now.
I think it's a bug of gtags, so I will close this issue.
Thank you!

Ok thanks!


Fix formatting errors detailed in #39

Fix #39

@delirious-lettuce Thanks for fixing these. Looks great!

@znation ,
No problem, thanks for your time!


wandb sweep end after first run with RuntimeError('CUDA error: device-side assert triggered')

I am trying to use wandb sweep for hyperparameter search with simpletransformers following this blog post.
It runs perfectly for one run and then stops because of
RuntimeError('CUDA' error: device-side assert triggered')
Here is the code:
model_args = ClassificationArgs()

model_args.max_seq_length = 200
model_args.do_lower_case = True

model_args.n_gpu = len(use_gpus.split(','))
#model_args.train_batch_size = int(train_batch_size)
model_args.per_device_train_batch_size=5
model_args.num_train_epochs = 15
model_args.learning_rate = 4e-5
model_args.adam_epsilon = 1e-8
model_args.warmup_steps = 0
model_args.scheduler = "linear_schedule_with_warmup"
model_args.evaluate_during_training = True
model_args.evaluation_strategy = 'steps'
model_args.evaluate_during_training_steps = len(df_train)//model_args.per_device_train_batch_size//5
model_args.use_early_stopping = False
model_args.labels_list = [x for x in range(23)]
model_args.wandb_project = "Hyperparameter Optimization"
model_args.output_dir = "wandb_sweep/"
model_args.best_model_dir = "wandb_sweep/best_model/"
model_args.cache_dir = "wandb_sweep/cache_dir/"
model_args.reprocess_input_data = True
model_args.overwrite_output_dir = True
model_args.eval_batch_size = 5
model_args.save_model_every_epoch = False
model_args.save_steps = -1
model_args.save_eval_checkpoints = False

sweep_config = {
    "name": "vanilla-sweep",
    "method": "bayes",
    "metric": {"name": "accuracy", "goal": "maximize"},
    "parameters": {
        "num_train_epochs": {"min": 1, "max": 40},
        "learning_rate": {"min": 1e-6, "max": 1e-1},
    },
    "early_terminate": {"type": "hyperband", "min_iter": 6,},
}

sweep_id = wandb.sweep(sweep_config, project="IN simpletransformers WandB sweep")

def train():
    # Initialize a new wandb run
    wandb.init()

    # Create a TransformerModel
    model = ClassificationModel(
        "bert",
        "dbmdz/bert-base-italian-uncased",
        num_labels=len(label_dict),
        args=model_args,
        sweep_config=wandb.config,
    )

    # Train the model
    model.train_model(
        train_df=df_train,
        eval_df=df_val,
        accuracy=lambda truth, predictions: accuracy_score(
            truth, [round(p) for p in predictions]
        ),
    )

    # Sync wandb
    wandb.join()

wandb.agent(sweep_id, train)

I am using:
pytorch 1.7.1
wandb 0.10.27
simpletransformers 0.61.4

@tommasodelorenzo this is because of the way huggingface allocates memory in the process.  You have 2 options.

switch from in process agent, to out of process.    This will start each experiment in a new process and avoid the issue of holding onto GPU memory.
Dereference your model.  I haven't tried this, but if you set model = nil before you call wandb.join(), that *should make python cleanup the previous object.  You may need to manually cleanup the model in the GPU, I'm not sure.

It seems that setting model = init is working, keeping the GPU memory consumption rather constant.
Thanks!


Add and configure font awesome

JIRA

A link to the JIRA ticket

Description

Add and configure font awesome so we can use the icons throughout the project

Created a config directory that we can use for future config. The pattern we'd like to use is create file that exports an object with a configure function. Then in main.js all the included config files will have configure called on them.

Getting the icons working was tricky but this Github issue comment saved the day

Tests

npm install should work. Please let me know if it doesn't b/c I'm trying to figure out how to correctly handle FontAwesome auth without checking our token into the repo.

Reviewer Checklist
This section is to be filled out by reviewers
Testing

[ ] This code was tested by somebody other than the developer. Do not merge until this has been done.

Hrmmm I'm getting this error when trying to npm install:

(FWIW, I am logged into npm, but I'm fairly certain that's not actually the issue even though npm seems to think it is.)

Hrmmm I'm getting this error when trying to npm install:

(FWIW, I am logged into npm, but I'm fairly certain that's not actually the issue even though npm seems to think it is.)

Ohhhh thank you! I was afraid of that. This is super helpful. I'm going to try to figure out how to store our token in an environment variable and not in the repo.


Add the possibility to switch off the tag creation

In some use cases, we could juste want to have the content of the new changelog as an output.
It's not mandatory that that changelog is to be appended to the CHANGELOG.md


Request to review and revise information displayed on https://mendel.bii.a-star.edu.sg/

jbh

thank you


Recreate window

What has been changed
Lwjgl3: Added Lwjgl3RecreateWindowTest to gdx-tests-lwjgl3
Lwjgl3: Added recreateWindow() to Lwjgl3Application; used to apply changes to settings that require a new window to be created
API Addition: Lwjgl3Graphics now has setMSAASamples(), setColorBits(), setDepthBits(), setStencilBits(), setBackBufferConfig() (these use the aforementioned recreateWindow() method) & setIdleFPS()
POSSIBLE [BREAKING CHANGE] Lwjgl3: recreateWindow() instantiates new Gdx.input & Gdx.graphics, which can be a problem for already existing pointers
What does the test do?
Lets the user change the MSAA samples value at runtime, while you'd normally be able to set this option before starting the ApplicationListener.
Why was this done?
It was done because most commercial games let the user change the amount of anti aliasing without asking the user to restart the game.
What platforms has this change been tested on?
LWJGL3 on Windows - I tried to make this work with LWJGL2 but I didn't make it.
I haven't even touched HTML5 and Android / iOS, mostly because this I don't think this feature is really necessary on these platforms. That's why I didn't add the new methods in Lwjgl3Graphics to the Graphics interface; they'd do nothing for 4 platforms out of 5 (counting the LWJGL2 backend).
Notes
If you were to make the recreateWindow(Lwjgl3ApplicationConfiguration) method public you could change absolutely anything about the new window, and while that was the intent originally, I figured out pretty quickly it would cause more issues than what it's worth.
For example, if one were to recreate the window with config.disableAudio=false while it previously would have been true, all Sound & Music objects created before the new window instance would be MockSound & MockMusic, respectively - therefore they wouldn't play despite Gdx.audio not being MockAudio and the setting being false; I would have to have an event in the ApplicationListener to inform the programmer of the window change, and that seemed a little too much.
This exact same problem manifests itself in a different way with Gdx.input & Gdx.graphics - if I were polling for input with a pointer to Gdx.input I obtained before the window change, then after said change the data I'd get would be stuck to however it was before the new window.

I'm not sure this PR is a good idea for many reasons :
What you want is to change MSAA at runtime, and i suspect "most commercial games" to use multisample FBO, which you can easily recreate in your game with different settings including MSAA without messing with the window.
GLFW MSAA settings and many others like depth buffer precision are simply hints and may or may not be used depending on several things (OS window manager, GPU driver, etc). Some users reported issues about very low precision depth buffer (almost unusable) and their solution was to render into a FBO where the depth precision can be perfectly controlled. So there might be some issues with MSAA as well.
Also, you need a GL context to know what MSAA values are acceptable (MAX_SAMPLES) and you can't know that before creating the window, so the first time you create a window, you just pray for the setting to be applyable, which sounds to me almost unusable. It's just a hint after all.
Finally, i see a lot of drawback with this window recreation :

creating a new window with shared context of a window previously closes sounds dangerous, i don't think we have guarantee that it will always work. (i didn't find any info on that in the GLFW doc).
some references to Graphics will be invalid, that's the case for GLProfiler, so users have to care about re-creating some other things.
probably some other thing i didn't see yet, like backend specific code in a game that hold some references to the window or Graphics, and maybe other stuff.

Of course, the multisample FBO solution requires GLES 3.1 (in core OpenGL since 3.0) so for desktop, i don't think that's an issue. However we'd need to have #6945 merged priori to implementing it. I already have an implementation for that ready to PR and i have a working POC that allows to change MSAA at runtime flowlessy, which does exactly what you want. Another advantage is that it's not backend specific, so it should also work with Lwjgl2 and Android backends, and also HTML backend (when we'll support WebGL 2).
I don't want to ruine all your work and the reviews, i just wanted to inform you guys that there may be some more elegant solution for the original need.

Changing antialiasing at runtime would be my use for this. I might also use it to toggle the transparent framebuffer option - I have yet to test if having that set to true when rendering stuff with an opaque background has any drawbacks (performance, most likely). Changing the preferences directory at runtime could be useful for some, but it's not something I'm interested in and that has nothing to do with the rendering window itself.
So if we can get antialiased FBOs, I'd just do that instead. In fact, I'd really like antialiasing in FBOs regardless of changing settings at runtime, since they're just so handy. On systems where OpenGL 3.0 isn't available, I'd just forego antialiasing, though I'd only want to do so in the case of hardware limitations rather than software (if WebGL 2.0 for libGDX never arrives).

I don't want to ruine all your work and the reviews, i just wanted to inform you guys that there may be some more elegant solution for the original need.

Don't worry, it's understandable. I was thinking that perhaps some form of anti-aliasing could be implemented through this shader I found
https://www.geeks3d.com/20110405/fxaa-fast-approximate-anti-aliasing-demo-glsl-opengl-test-radeon-geforce/3/
If I understood correctly it's also really easy to implement. I could probably subclass the FrameBuffer for this.
I'm going to close the PR

@aretecorp we already have that for libgdx (FXAA) works like a charm, see https://github.com/crashinvaders/gdx-vfx

Just remembered that toggling vsync and/or frame rate limits at runtime could be useful. For example, a 3D game's benchmark could run with an uncapped frame rate, then actual gameplay could be capped.


Could you support mobile platforms?

Idea
As custom js and custom css are available on mobile platforms, I think there may be a way to use this cool theme on it although it may be complicated.

AwesomeUI mostly does desktop re-layouting. With lot of JS. with collab with others plugins (Agenda, Tabs).
UI on mobile totally different from desktop. Plugins not available. So which part of Awesome UI you are expecting to see on mobile?
I suggest:

there are some styles left and not transferred yet to "Awesome Content" (have you tried it?) plugin (which is mobile-ready), such as page bottom icons (linked/unlinked/hierarchy)... Point me to these items and i will
OR you are confused and talking about Awsome Styler? ))

Sorry I didn't know that Awesome Content is mobile-ready as I'm confused about what each module is for. I just then fell in love with it and wanted to try it on mobile.

I think I would like to have a full experience on my computer and when I switched to my mobile devices, some basic style would apply.

https://github.com/yoyurec/logseq-awesome-content#css-for-mobile-app

that's why "content related" stuff were moved to own plugin - to be without UI stuff, which is not needed and not applied on mobile

If I set a special icon for a property, does it show on mobile device?

icon? isn't icons is an "Awesome Props" plugin? )) which is not ready (yet) for mobile?
https://github.com/yoyurec/logseq-awesome-props/issues/15

Is there a prospect that by using custom.js, the theme setting set on the computer can also apply to the mobile devices like icons in awesome props?

continue in own repo plz https://github.com/yoyurec/logseq-awesome-props/issues/new/choose

I mean that not only icons, but also styles set in Awesome Styler and etc can apply to the mobile


Cleaning the cache could be done in the background

On Gradle < 6.5, it can take several minutes for gradle to clean the cache. Could this done in the background ?

@stephanenicolas Are you using --no-daemon? That would cause the cleanup to happen in the foreground.

Do you see this cleanup on your machine? I wonder why your build cache got so big so it takes so long to clean it up. One option to reduce the cleanup time would be to reduce the time entries are kept in the local cache: DirectoryBuildCache.DirectoryBuildCache:removeUnusedEntriesAfterDays
Moving the cleanup in the background would mean that the daemon is not useable until the cleanup is finished. So starting a new build would cause starting a new daemon. You can start a new build on the project from a new terminal window, though I suppose that is not very convenient.


Increase in number of connections for Redis when updating from 0.3.4

0.3.4 is super old version but when updating one of our stacks to latest version ~=0.9.0 we've noticed a huge increase on number of connections to the cache. On top of my head there are three things to check in order to investigate the issue:

Wrong pattern implemented when migrating to 0.9.0. In old versions there was no cache manager yet so maybe there is something we are not doing correctly when migrating.
There is a bug in the code and we are creating more connection pools to redis than we are supposed to.
The code to retrieve a connection https://github.com/argaen/aiocache/blob/master/aiocache/backends/redis.py#L14 is wrong somehow and in previous versions maybe we had connection reusage? Need to check old code...

To investigate this, it would be ideal to have a snippet to reproduce the behavior we have in PROD and see how number of connections is increasing

I've corrected a bad usage of caches in our stack but still seeing an increase in connections. Next step is to try to debug from which services/flows the connections are coming from...

PS: note the initial increase is "expected" in the sense that now there is no pool reusage anymore, so its normal that there is an increase. The problem is the linear growth in the number of connections after initial peak.

After some more modifications in the production stack, I was able to reduce the increase on the number of connections but still saw a pattern where it is increasing very slowly...
The problem was that a new cache instance was being created per request. aiohttp creates a new instance of each view on each request. Still, garbage collector should be cleaning old instances of caches when the view is not used anymore. Need to explore a bit more because if the old instances are not being destroyed, it means there is still a reference to it somewhere..

I am experiencing the same issue you are seeing. If you are using decorators, I think the curl pit is here: https://github.com/argaen/aiocache/blob/master/aiocache/decorators.py#L72-L81
The underlying cache object is being created upon every request passing through the decorator. This is growing the number of connection opened and rapidly filling up the max number redis connected clients.

With decorators, you have a cache instance per function you decorate unless you use an alias, which then reuses the same instance identified by that alias.
Anyway the problem doesn't come from there because we are not using decorators but the instances directly with caches.get or caches.create. With the latest modifications the usage pattern is correct but it is still slightly increasing.

I think the cause maybe a race condition somewhere but haven't had time to explore further...

The aliasing is giving me problems.. There is an error pickling _treading.locks. I will try to investigate and report back as soon as I have some time.


Do not redirect to github home page.

Clicking on the page icon (with this PR) always takes you to the same page, even if the notification count is 0.
Fixes #43.

Fixed in https://github.com/sindresorhus/notifier-for-github-chrome/pull/51.


Django-split-settings and settings type inference

Hi!
First of all, thanks for creating this @sobolevn 🎉
I've just implemented django-split-settings and have run into one small issue: it messes up type inference of django.conf.settings a little bit.
Just to be clear: I'm more than happy to accept that this is a trade-off I make when using the package. I just wanted to ask if you knew of a way to resolve either of these. If you don't, no problem 👏
First issue: Pycharm (semi-resolved)
After splitting settings, Pycharm fails to understand the type of any attribute loaded only with include. This makes sense, since these attributes are not discovered when loading the module. To resolve this I've just done this:
# myproj.settings.__init__.py

from myproj.settings.settings import *  # this contains my django-split-settings code

if TYPE_CHECKING:
    from myproj.settings.components.auth import *
    from myproj.settings.components.celery import *
    from myproj.settings.components.credentials import *
    from myproj.settings.components.database import *
    from myproj.settings.components.i18n import *
    from myproj.settings.components.logging import *
    from myproj.settings.components.sentry import *
    from myproj.settings.components.staticfiles import *

After this, Pycharm is back to normal.
Second issue: Mypy (unresolved)
In my project I have a bunch of properties like this:
@property
def attribute_name_setting(self) -> dict[str, str]:
    return settings.SOME_SETTING['attribute-name']

After implementing split-settings, mypy gets angry, and I honestly don't know exactly how to interpret the errors:

Do you have thoughts about the way we resolve the first issue, or any idea about how to resolve the second? If not, I'll just ignore them 👍

Hi!
Thanks a lot for the warm feedback 😊

I just wanted to ask if you knew of a way to resolve either of these

No, I don't know any specifics. But, I still want to share my thoughts on this.

First issue: Pycharm (semi-resolved)

Great hack! I will keep it in mind.

Second issue: Mypy (unresolved)

Do you use django-stubs? Or just plain mypy?
We think about adding settings provider support to djangp-stubs, but no work has been done yet.

Yes this is with django-stubs (and drf-stubs) 🙂 if it's helpful I could try and create a demo project to replicate the issue

I was able to resolve my second issue by adding annotations to the setting I was returning.
In one of my components I had
from decouple import config  # python-decouple

SOME_SETTING = {
    'demo': {
        'API_KEY': config('API_KEY'),
        ...
    },
}

When I added correct annotations, all 40 errors resolved
SOME_SETTING: dict[str, dict[str, str]] = {
    'demo': {
        'API_KEY': config('API_KEY'),
        ...
    },
}

In other words, this might not even have anything to do with splitting the settings 🙂 I wasn't able to reproduce easily, so think this might have just been a random error that just happened to surface when I was implementing split-settings 🤷
Thanks 👏


Fix: #53010

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #XXXXX

Fixes: #53010


Protect Service Accounts Against Deletion/Remedy Deletions

By @vlerenc: Customers may break their own clusters by deleting service accounts, which were created by the API server. Without an API server restart, these service accounts won't come back, so we either need to monitor them and either recreate them (without duplicating what the API server is doing) or restart the API server when we see somebody tampered with them.

@vlerenc  which ServiceAccounts are you referring to? Every service account created by the kube-addon-manager will be recreated automatically.

The ones I wrote above: the ones created by the API server implicitly (not by the addon-manager).

We have seen a case where a user deleted the standard/default APIService resources. This is related to this issue (cc @ialidzhikov) - there are resources managed by the Kubernetes components that are worth to be protected.
Though, to me it's not clear how we could implement this if we don't want to "hard-code" the resources that shall be protected.

/close as there are a thousand ways to break the cluster and we cannot provide remediation for each of them. Given that the issue is open since a very long time with no attention and no activity, it's unlikely that it'll be picked up anytime soon.


Add consumption example to documentation

This is an awesome and very, very, very useful bit of code that I'm glad to have.
Unfortunately, while the data is definitely getting exported to an AngularJS file, I have no clue how to actually consume it.  I imagine someone who has already done a lot of work with Angular could get there quickly -- I am not that person.  Not yet.  A little bit more documentation would be... very helpful.

Hi @rlugge, take a look at this blog post.
http://mindthecode.com/how-to-use-environment-variables-in-your-angular-application/#using-the-config-file-in-your-app
It's about grunt, but after generating the file the section on how to use it in your app is the same.
Hope this helps.


unixodbc-dev install returns a 404

Hi, when installing the unixodbc-dev package it fails with:
E: Failed to fetch https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/u/unixodbc/unixodbc-dev_2.3.7_amd64.deb  404  Not Found [IP: <IP_ADDRESS> 443]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
It seems the above repo no longer exists, how else can the sql header files be downloaded?
Thanks
Darrell

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

ID: 0fc3da20-7ab2-d20f-4d29-4664d3183b57
Version Independent ID: 986d25d9-5d2e-5154-39ea-3b683faf2264
Content: Install the Microsoft ODBC driver for SQL Server (Linux) - ODBC Driver for SQL Server
Content Source: docs/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server.md
Product: sql
Technology: connectivity
GitHub Login: @David-Engel
Microsoft Alias: v-daenge

This is very likely related to this issue: https://github.com/dotnet/core/issues/6381. So will close this and track that.


assetlibrary: updating a device or group doesn't always apply all attributes

Aws Connected Device Framework Affected Module(s):

assetlibrary (full)
I'm submitting a ...

[x] bug report
[ ] feature request

Description:

When doing a PATCH on a device or a group, if one of the elements you are trying to update is set to null (so it gets removed), then all the other elements in the request that come AFTER the null element will not be applied to the update.
Current behavior:

Only the elements prior to (and including) the null element get updated
Expected behavior:

All attributes in the request get updated
Steps to reproduce:

Create a device or group with a template that includes a null-able attribute.
Send a PATCH to update that object with a few attributes in the order of

non-null attribute
null attribute
non-null attribute

See that the first and second attribute get updated but the third does not

Additional Information:

Here's an example of a test device:
{
    "attributes": {
        "serialNumber": "2021900135",
        "macAddress": "7C:9E:BD:C7:0A:3D",
        "thingName": "7C:9E:BD:C7:0A:3D_7C:9E:BD:C7:0A:3D",
        "pairedState": "NO_LONGER",
        "manufacturedAt": "2018-01-01T00:00:00.000Z",
        "userConfig_friendlyName": "Test1",
        "userConfig_timezoneName": "America/NewYork",
        "userConfig_schedule": "",
        "hasMfgDeviceUpload": true,
        "hasMfgShiftUpload": false,
        "qrUrl": "",
        "qrWifiSsid": "",
        "qrWifiPw": "",
        "pairedAt": "2018-01-01T00:00:00.000Z"
    },
    "groups": {
        "is_model": [
            "/device/robot/2859/28596"
        ],
        "manufactured_by": [
            "/supplier/silverstar"
        ]
    },
    "category": "device",
    "templateId": "2859",
    "connected": false,
    "deviceId": "7c:9e:bd:c7:0a:3d_7c:9e:bd:c7:0a:3d",
    "state": "unprovisioned"
}

When submitting this PATCH to update the device like this:
PATCH to /devices/7C:9E:BD:C7:0A:3D_7C:9E:BD:C7:0A:3D
with body:
{
    "attributes": {
        "userConfig_friendlyName": "Test2",
        "pairedAt": null,
        "userConfig_timezoneName": "America/Chicago"
    }
}

Now the device looks like this:
{
    "attributes": {
        "serialNumber": "2021900135",
        "macAddress": "7C:9E:BD:C7:0A:3D",
        "thingName": "7C:9E:BD:C7:0A:3D_7C:9E:BD:C7:0A:3D",
        "pairedState": "NO_LONGER",
        "manufacturedAt": "2018-01-01T00:00:00.000Z",
        "userConfig_friendlyName": "Test2",
        "userConfig_timezoneName": "America/NewYork",
        "userConfig_schedule": "",
        "hasMfgDeviceUpload": true,
        "hasMfgShiftUpload": false,
        "qrUrl": "",
        "qrWifiSsid": "",
        "qrWifiPw": ""
    },
    "groups": {
        "is_model": [
            "/device/robot/2859/28596"
        ],
        "manufactured_by": [
            "/supplier/silverstar"
        ]
    },
    "category": "device",
    "templateId": "2859",
    "connected": false,
    "deviceId": "7c:9e:bd:c7:0a:3d_7c:9e:bd:c7:0a:3d",
    "state": "unprovisioned"
}

Notice, pairedAt is removed (good) and userConfig_friendlyName is updated to "Test2" (good), but userConfig_timezoneName is not updated.

I think this has to do with the .drop() step happening here:
https://github.com/aws/aws-connected-device-framework/blob/8cf2705cd71a5c41dde7b0dffa63a9e706133a8f/source/packages/services/assetlibrary/src/devices/devices.full.dao.ts#L268-L277
According to the docs, .drop() is a filter step, so anything after the .drop() won't apply.
Maybe we need to break this up into multiple steps? Do the .drop()'s independently from the updating?
Something like
try {
  const updateTraversal = conn.traversal.V(id);
  const dropTraversals = [];

  for (const key of Object.keys(n.attributes)) {
    const val = n.attributes[key];
    if (val !== undefined) {
      if (val === null) {
        dropTraversals.push(conn.traversal.V(id).properties(key).drop());
      } else {
        updateTraversal.property(process.cardinality.single, key, val);
      }
    }
  }

  await updateTraversal.iterate();
  for(const dropTraversal of dropTraversals){
    await dropTraversal.iterate();
  }
} finally {
  await conn.close();
}

Whatever fix we put in place here will also need to be applied to the groups here:
https://github.com/aws/aws-connected-device-framework/blob/8cf2705cd71a5c41dde7b0dffa63a9e706133a8f/source/packages/services/assetlibrary/src/groups/groups.full.dao.ts#L174-L183


install latest infernal

The workflows needs to be updated.

@bgruening This still needs work or can we merge and close?


[Bug]: ResizeObserver is not defined

Description
Using with nuxt 3 i got this problem. ResizeObserver is not defined
it should support ssr.
temp fix i use ClientOnly component  to wrap MasonryWall
ResizeObserver is not defined
  at setup (file://./.nuxt/dist/server/server.mjs:34622:28)
  at callWithErrorHandling (./node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:157:22)
  at setupStatefulComponent (./node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6977:29)
  at setupComponent (./node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6933:11)
  at renderComponentVNode (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:198:17)
  at Module.ssrRenderComponent (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:629:12)
  at ssrRender (file://./.nuxt/dist/server/server.mjs:28073:31)
  at renderComponentSubTree (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:269:13)
  at renderComponentVNode (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:214:16)
  at renderVNode (./node_modules/@vue/server-renderer/dist/server-renderer.cjs.js:310:22)

Reproduction
none
Additional context
No response
Preferences

[ ] I want to be assigned to and work on this issue myself

Hi,
this library does already support SSR, but it requires a simple dummy implementation of ResizeObserver during the SSR build. I didn't add it to this library directly to reduce bundle size and keep it simple.
For example, I created Vite-plugin-ssg-utils to provide a dummy implementation for vite-ssg.
I'm pretty sure Nuxt 3 has similar hooks that are only executed during SSR/SSG builds.
See https://github.com/DerYeger/vite-plugin-ssg-utils/blob/6c82c70cf5f2a08e329be57080aff0b23346b402/src/index.ts#L28 for the dummy.

Hi, the Nuxt authors answered: https://github.com/nuxt/framework/discussions/4482
I'll try, but so far it doesn't work

I just released v3.0.38 that should fix the issue without requiring the above workaround.


Question - How to prevent VFX sharing?

Hello, I have a question to ask. I've been working on some overhauls for summoner at lower levels and I've stumbled into a problems.
Emerald/topaz/ruby ruin 3(and 2) share VFX with each other. Bellow level 54 SMN also shares a VFX with SCH with Ruin 2.
My goal is to give elemental properties to lower level summoner skills, for example using aero II VFX for Emerald Ruin 3. Using Fire 3 VFX for Ruby Ruin 3.
Could someone help me circunvent this problem please?

Pretty sure you can't because those skills pull the VFX from the same file path.
Unless 0ceal0t can create a logic in his editor that work similarly to metadata editing in TexTools, this is something you probably will be unable to change.


Cannot read properties of undefined (reading 'MakeWebGLCanvasSurface')

Hi, I tried to test Skia in my react native app but this "Cannot read properties of undefined (reading 'MakeWebGLCanvasSurface')" issue constantly shows up.

My code is really as simple as a brand new RN project with an example copied from the documentation:

And here is what my package.json look like, which is also very simple:

I wonder if you can provide any solutions?

We haven't documented how to use Skia on an expo web project web but you would need to do the following at the moment:

Make the wasm file available by copying node_modules/canvaskit-wasm/bin/full/canvaskit.wasm in web/static/js
Update the index.web.js to only load your app component once Skia is loaded:

import { LoadSkia } from "@shopify/react-native-skia/lib/module/web";

export default function App() {
  const MyApp = React.lazy(async () => {
    await LoadSkia();
    return import("./src/MyApp");
  });
  return (
    <Suspense fallback={<View style={styles.container}>
    <Text>Loading Skia</Text>
  </View>}>
      <MyApp />
   </Suspense>

  );
}

If reanimated 2 is not installed, a warning will appear in webpack. To get rid of it, you
need to update the config to the following:

const newConfig = {
...currentConfiguration,
externals: {
"react-native-reanimated": "require('react-native-reanimated')",
"react-native-reanimated/lib/reanimated2/core":
"require('react-native-reanimated/lib/reanimated2/core')",
  },
};

I hope this helps.


Makefile: Improved MacOS compatibility

Description
In this PR I want to improve the Makefile compatibility with MacOS:
sed command in MacOS has a different behavior from the GNU one, in particular when it is used with the -i flag it needs a suffix for the name of the "backup" original file.
With this little fix it automatically selects the right sed syntax checking the running OS

lgtm

/rebase test=true

/merge


Installation Instructions don't work with 5.4, and composer support?

Seems the installation instructions need some update, they don't fit Laravel 5.4 and the latest branch any more.
And I wonder, why
composer require franzose/closure-table
is not supported, I tried it, and it downloaded a bunch of files, but failed to install them properly.
Thx, Armin.

Sorry for bugging you, the issue was fixed, my Laravel project structure was messed up. ClosureTable installed fine on a fresh project.


Gura parser for Dart

Hello! I have created a Gura parser for Dart and wanted to see if you'd like to add it to the list of implementations.
The source is available here:
https://github.com/zajrik/gura-dart-parser
and the package is available here:
https://pub.dev/packages/gura
This is largely a port of the official TypeScript parser but I've done a lot of cleaning up, refactoring, and internal documentation to help myself better understand the inner mechanics, as well as make some things work in Dart that can't translate directly from TS/JS.
I look forward to hearing from you.

Hi!
Thank you so much for your work! Your library has been added to the Library Implementations list in the Gura official repo! I will be taking a look at the fixes you mentioned in your project to see if I can learn and improve existing implementations. There are implementations in Rust and, I hope, other languages coming in the next few weeks.
Thanks for helping Gura grow!
Best regards!

I'd be happy to discuss changes/improvements sometime if you're up for it. Do you guys have a Discord or some other chat available?

We're happy to listen all your proposals! Gura is a little community righ now, so we don't have a Discord channel. If you want to, you can get in touch with us:

Opening a RFC in this repo as explained in Contributing section
Via Discord with direct message to my personal account (Gena#2812)
Sending an email to our official email<EMAIL_ADDRESS>
I hope we have an official channel in the near future :D

Sounds good. I've sent a friend request on Discord. I have a lot of experience configuring/maintaining Discord servers thanks to all the time I've spent developing Discord bots and frameworks, and I'd be happy to help set up a server if you'd like.


How to center text?

Hi, I have the Ulanzi clock and so far so good! One question: how do I center the text? For example if I want to display the temperature, 40°, it shows it left aligned next to icon. I'd rather it centered. Thoughts?

This will come in the next release

In the upcoming 2023.4.0 version short text will be centered automatically. With this small grid centering isn't that perfect, but i think a bit nicer than left aligned.

Looking forward to it, thank you!


Run python in window mode

Changes

Changed run.bat to run script using pythonw which doesnt show console
Auto insert batch file directory

:)


Software Security Supply Chain - Working Group Meeting

Date
Thursday 20 Jun 2023 - 09:00 EST / 14:00 UK
Untracked attendees

Name
Firm
Comment

Meeting notices

FINOS Project leads are responsible for observing the FINOS guidelines for running project meetings. Project maintainers can find additional resources in the FINOS Maintainers Cheatsheet.

All participants in FINOS project meetings are subject to the LF Antitrust Policy, the FINOS Community Code of Conduct and all other FINOS policies.

FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact<EMAIL_ADDRESS>with any questions.

FINOS project meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.

Agenda

[ ] Convene, roll call, welcome new people
[ ] Approve previous meeting minutes
[ ] Review working group project board
[ ] Slides from FINOS Member Meeting Roundtable

https://groups.google.com/a/finos.org/g/devops-mutualization/c/JrUVAV_rKUI
FINOS Member Meeting Roundtable Slides

[ ] AOB, Q&A & Adjourn (5mins)

Decisions Made

[ ] Decision 1
[ ] Decision 2
[ ] ...

Action Items

[ ] Action 1
[ ] Action 2
[ ] ...

Zoom info
Join Zoom Meeting

https://zoom.us/j/95521041942?pwd=dHgwREU2TzBsS242ak1zYWZsUW9OUT09
Meeting ID: 955 2104 1942
Passcode: 443820
Find your local number: https://zoom.us/u/aesEqmNODb

Github Repo: https://github.com/finos/devops-automation/
Project Board: https://github.com/orgs/finos/projects/33
Mailing List: Email<EMAIL_ADDRESS>to subscribe to our mailing list

Peter Smulovics / Morgan Stanley 🏦

Amol Shukla / Morgan Stanley

Joss Poupeney / FINOS

Maurizio Pillitu / FINOS

Bruno Navert / Morgan Stanley

Adrian Bele / Red Hat

Jon Meadows (Citi)

Rhyddian Olds @ Citi

Rob U: top 1000 open source projects used in FS? We have limited resources - are we willing to contribute actual resources to this? Will we commit to using output?

Jonathan Meadows: can we use the output of the FSI threat intelligence group fsisac.com - 50K banks - connected to openssf
* what is the work product? Created top 100 list of open source libraries

Financial Services Information Sharing and Analysis Center (FS-ISAC)

Rob U: between FS-ISAC and this group - do we need to exist?
James: can we still pull learning from other groups into larger devops automation group?
Rhyddian: if there are gaps, let's examine the gaps
Rob M: are there introductory docs we can point people to

Decision: for orgs that haven't signed a CLA, they can contribute issues, which project leads then convert into cards on the project board

I am interested in building a view on what the state of the art looks like - these are the docs we want for osr.finos.org.  If that helps drive out an understanding of the gaps, then that's great. Happy to work on these docs with the group.

nitin semgrep

Gaps to discuss: lack of common industry-standard solutions to address software end-of-life in financial services


Tutorial Env Vars

Is your feature request related to a problem?
We would like to be able to teach people technologies like Supabase with this tool.
Describe the solution you'd like.
We need to store private variables and have them not exposed to repo pushes, etc. Making a file extension that could store the variables locally along the lines of the .env file would work if that were added to the .gitignore.
Describe alternatives you've considered.
The alternative is a containerized package with VSCode reaching into the container.
Additional context
No response

Hey @sosensible! A tutorial for Supabase sounds really interesting! 🤩🤩
TutorialKit uses astro under the hood and everything mentioned in their docs regarding environment variables should work.
Could you provide more details on what you tried or want to achieve?

This should work, not sure why my search missed that. Kudos for the gracious response.

No problem! Let us know how writing your tutorial goes! 😃


Dependency conflict php roles

Learning Ansible, so not sure how to deal with this. While running the tasks that install and configure PHP, this error appears:
TASK [geerlingguy.php : Ensure PHP packages are installed.] ********************
failed: [<IP_ADDRESS>] (item=[u'php', u'php-cli', u'php-common', u'php-devel', u'php-fpm', u'php-gd', u'php-imap', u'php-ldap', u'php-mbstring', u'php-opcache', u'php-pdo', u'php-pear', u'php-pecl-apc', u'php-xml', u'php-xmlrpc']) => {"changed": true, "failed": true, "item": ["php", "php-cli", "php-common", "php-devel", "php-fpm", "php-gd", "php-imap", "php-ldap", "php-mbstring", "php-opcache", "php-pdo", "php-pear", "php-pecl-apc", "php-xml", "php-xmlrpc"], "msg": "Error: php-pecl-zendopcache conflicts with php-pecl-apc-3.1.9-2.el6.x86_64\n", "rc": 1,
I'm Running Ansible <IP_ADDRESS> and Vagrant 1.8.1

@pieterjanvandenberg - Which example are you running when that error occurs—also, which OS are you using? (CentOS 7, or Ubuntu 14.04... or something else?)

Host OS is Ubuntu 14.04, same as the guest OSes. Running the lamp-infrastructure example.
Op 29 apr. 2016 03:55 schreef Jeff Geerling notifications@github.com:@pieterjanvandenberg - Which example are you running when that error occurs—also, which OS are you using? (CentOS 7, or Ubuntu 14.04... or something else?)
—You are receiving this because you were mentioned.Reply to this email directly or view it on GitHub

I'm retesting the example now. The DigitalOcean portion will also need some updating due to the new v2 API in Ansible 1.9.5/2.0+

This may have been a temporary issue with some of the role versions that were out in April; I can't reproduce this issue now—and I'll likely be updating more of the example in the next major book revision, so closing this issue for now.


Is it possible to implement Search/Seek methods?

Is it theoretically possible?
Example:
comp := intcomp.compress([10,20,30])

// get number by value
incomp.Search(comp, 10) // 1
incomp.Search(comp, 20) // 2
incomp.Search(comp, 30) // 3

// find value >= v
incomp.Seek(comp, 8) // 10
incomp.Seek(comp, 10) // 10
incomp.Search(comp, 17) // 20
incomp.Search(comp, 21) // 30
incomp.Search(comp, 31) // -1

Perhaps, it would be helpful to have an iterating method (like (sync.Map).Range), so that reslicing, searching, seeking, etc... is possible in streaming way (without allocating a full decompressed list). Though, performance might be not great compared to specialized functions.

Having way for stream-style iteration - useful feature (and for me also).
But I did mean another thing: to do Search/Seek without touching/decompress all previous values.
Use case: imagine I do store very large compressed immutable list in MMAP file. As less places in compressed form I will touch - less disk reads (and RAM) will happen. So, in this case - iterator is the worst case (It will brude-force touch all compressed bytes and read them from disk).
In my use-case I have many (>> RAM) such lists (actually it's lists of offsets in some files).
FYI: Now we using some made-by-us implementation of EliasFano encoding.

Right now the compression scheme doesn't allow decoding at an arbitrary position in the compressed buffer.
So it's not really possible to implement a binary search.
I am considering modifying the compression logic in order to force the creation of new blocks at fixed positions in the compressed buffer. This has a small cost as a few bytes may be wasted at the end of the blocks, but it will allow decompression at arbitrary position.
I have updated the README with next steps in this direction.


Fix taint, fixes #232

Should fix #232

Current coverage is 68.87% (diff: 100%)

Merging #233 into master will not change coverage

@@             master       #233   diff @@
==========================================
  Files             4          4
  Lines          1134       1134
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            781        781
  Misses          263        263
  Partials         90         90

Powered by Codecov. Last update b7587a6...d2368df

Also, the unit kube-node-taint-and-uncordon.service keeps failing on coreos stable because of rkt deletion not working :
+ echo done.
00112] hyperkube[5]: done.
00436] hyperkube[5]: + echo uncordoning this node
00742] hyperkube[5]: uncordoning this node
01102] hyperkube[5]: + /kubectl --server=http://<IP_ADDRESS>:8080 uncordon ip-10-0-2-7.eu-west-1.compute.internal
28793] hyperkube[5]: node "ip-10-0-2-7.eu-west-1.compute.internal" already uncordoned
46965] hyperkube[5]: + echo done.
47198] hyperkube[5]: done.
 pod resources.
 ; PWD=/ ; USER=root ; COMMAND=/bin/rkt rm --uuid-file=/var/run/coreos/taint-and-uncordon.uuid
: session opened for user root by (uid=0)
le to remove pod "5fa9f552-8c77-4095-a0cb-818c77dc5b8c": remove /var/lib/rkt/pods/exited-garbage/5fa9f552-8c77-4095-a0cb-818c77dc5b8c/stage1/rootfs: device or resource busy

It means that even if the node is cordon manually for some reason, the unit keep restarting and uncordon it.

Hi @ArchiFleKs! Thanks for spotting this, luckily already patched by PR #199. Both the = and the fault with rkt rm are sorted out by the #199 PR.


implemented add() override for CGridLayout

I provided CGridLayout with an add() implementation. This hopefully makes additions to QGridLayouts more explicit in cases where widgets span multiple rows and/ or columns.
before:
with CGridLayout(self) as layout:
    layout.addWidget(mywidget, 0, 0, 1, 2)

after:
with CGridLayout(self) as layout:
    layout.add(mywidget, 0, 0, rowspan=1, colspan=2)

Does this support calling using the old convention AND the new convention? What about only using one named param and one positional param?

All of the following work and are equivalent:
layout.add(mywidget, 0, 0, rowspan=1, colspan=1)
layout.add(mywidget, 0, 0)
layout.addWidget(mywidget, 0, 0)

I was gonna make you jump through some hoops, but I think I'll merge this and get the tests working so I can show you what I'm thinking about.


Update sbt-mdoc to 2.3.0

Updates org.scalameta:sbt-mdoc from 2.2.24 to 2.3.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "sbt-mdoc" } ]

labels: sbt-plugin-update, early-semver-minor, semver-spec-minor, commit-count:1

This PR conflicts with https://github.com/typelevel/keypool/pull/335. Please consider reviewing/merging that one instead. Thanks!


设置中文参数翻译结果是英文

排除了文件的格式的问题，用自己的epub和animal farm都试了，同样的结果。
还请帮忙查看是什么问题，感谢。
(base) iMac:bilingual_book_maker-main-1 $ python3 make_book.py --book_name test_books/animal_farm.epub --model gpt3 --test  --no_limit --language 'zh-hans'
/Users/gang/opt/anaconda3/lib/python3.9/site-packages/ebooklib/epub.py:1395: UserWarning: In the future version we will turn default option ignore_ncx to True.
  warnings.warn('In the future version we will turn default option ignore_ncx to True.')
  0%|                                                                                | 0/10 [00:00<?, ?it/s]Animal Farm: A Fairy Story
George Orwell
Cover illustration by Eric Seat (www.ericseat.com)
 30%|████████████████████████████▏                                                                 | 3/10 [00:09<00:22,  3.17s/it]This e-book was created for MobileRead (www.mobileread.com).
The text is based on the Project Gutenberg Australia [PGA] version of “Animal Farm” (eBook No. 0100011). The two prefaces come
from www.orwell.ru. The Signet Classic edition available at Google Books was used to check formatting and possible errors. This
e-book does not reproduce any particular printed edition, but has gone through its own editing process.
 80%|███████████████████████████████████████████████████████████████████████████▏                  | 8/10 [00:11<00:02,  1.25s/it]This book was first thought of, so far as the central idea goes, in 1937, but was not written down until about the end of 1943. By
the time when it came to be written it was obvious that there would be great difficulty in getting it published (in spite of the
present book shortage which ensures that anything describable as a book will “sell”), and in the event it was refused by four
publishers. Only one of these had any ideological motive. Two had been publishing anti-Russian books for years, and the other had
no noticeable political colour. One publisher actually started by accepting the book, but after making the preliminary
arrangements he decided to consult the Ministry of Information, who appear to have warned him, or at any rate strongly advised
him, against publishing it. Here is an extract from his letter:
This kind of thing is not a good symptom. Obviously it is not desirable that a government department should have any power of
censorship (except security censorship, which no one objects to in war time) over books which are not officially sponsored. But
the chief danger to freedom of thought and speech at this moment is not the direct interference of the MOI or any official body.
If publishers and editors exert themselves to keep certain topics out of print, it is not because they are frightened of
prosecution but because they are frightened of public opinion. In this country intellectual cowardice is the worst enemy a writer
or journalist has to face, and that fact does not seem to me to have had the discussion it deserves.
Any fairminded person with journalistic experience will admit that during this war official censorship has not been particularly
irksome. We have not been subjected to the kind of totalitarian “co-ordination” that it might have been reasonable to expect. The
press has some justified grievances, but on the whole the Government has behaved well and has been surprisingly tolerant of
minority opinions. The sinister fact about literary censorship in England is that it is largely voluntary.
Unpopular ideas can be silenced, and inconvenient facts kept dark, without the need for any official ban. Anyone who has lived
long in a foreign country will know of instances of sensational items of news – things which on their own merits would get the big
headlines – being kept right out of the British press, not because the Government intervened but because of a general tacit
agreement that “it wouldn’t do” to mention that particular fact. So far as the daily newspapers go, this is easy to understand.
 But the same kind of veiled censorship also operates in books and periodicals, as well as in plays,
films and radio. At any given moment there is an orthodoxy, a body of ideas which it is assumed that all right-thinking people
will accept without question. It is not exactly forbidden to say this, that or the other, but it is “not done” to say it, just as
in mid-Victorian times it was “not done” to mention trousers in the presence of a lady. Anyone who challenges the prevailing
orthodoxy finds himself silenced with surprising effectiveness. A genuinely unfashionable opinion is almost never given a fair
hearing, either in the popular press or in the highbrow periodicals.
At this moment what is demanded by the prevailing orthodoxy is an uncritical admiration of Soviet Russia. Everyone knows this,
nearly everyone acts on it. Any serious criticism of the Soviet régime, any disclosure of facts which the Soviet government would
prefer to keep hidden, is next door to unprintable. And this nation-wide conspiracy to flatter our ally takes place, curiously
enough, against a background of genuine intellectual tolerance. For though you are not allowed to criticise the Soviet government,
at least you are reasonably free to criticise our own. Hardly anyone will print an attack on Stalin, but it is quite safe to
attack Churchill, at any rate in books and periodicals. And throughout five years of war, during two or three of which we were
fighting for national survival, countless books, pamphlets and articles advocating a compromise peace have been published without
interference. More, they have been published without exciting much disapproval. So long as the prestige of the USSR is not
involved, the principle of free speech has been reasonably well upheld. There are other forbidden topics, and I shall mention some
of them presently, but the prevailing attitude towards the USSR is much the most serious symptom. It is, as it were, spontaneous,
and is not due to the action of any pressure group.
The servility with which the greater part of the English intelligentsia have swallowed and repeated Russian propaganda from 1941
onwards would be quite astounding if it were not that they have behaved similarly on several earlier occasions. On one
controversial issue after another the Russian viewpoint has been accepted without examination and then publicised with complete
disregard to historical truth or intellectual decency. To name only one instance, the BBC celebrated the twenty-fifth anniversary
of the Red Army without mentioning Trotsky. This was about as accurate as commemorating the battle of Trafalgar without mentioning
Nelson, but it evoked no protest from the English intelligentsia. In the internal struggles in the various occupied countries, the
British press has in almost all cases sided with the faction favoured by the Russians and libelled the opposing faction, sometimes
suppressing material evidence in order to do so. A particularly glaring case was that of Colonel Mihailovich, the Jugoslav Chetnik
leader. The Russians, who had their own Jugoslav protegé in Marshal Tito, accused Mihailovich of collaborating with the Germans.
This accusation was promptly taken up by the British press: Mihailovich’s supporters were given no chance of answering it, and
facts contradicting it were simply kept out of print. In July of 1943 the Germans offered a reward of 100,000 gold crowns for the
capture of Tito, and a similar reward for the capture of Mihailovich. The British press “splashed” the reward for Tito, but only
one paper mentioned (in small print) the reward for Mihailovich: and the charges of collaborating with the Germans continued. Very
similar things happened during the Spanish civil war. Then, too, the factions on the Republican side which the Russians were
determined to crush were recklessly libelled in the English leftwing press, and any statement in their defence even in letter
form, was refused publication. At present, not only is serious criticism of the USSR considered reprehensible, but even the fact
of the existence of such criticism is kept secret in some cases. For example, shortly before his death Trotsky had written a
biography of Stalin. One may assume that it was not an altogether unbiased book, but obviously it was saleable. An American
publisher had arranged to issue it and the book was in print – I believe the review copies had been sent out – when the USSR
entered the war. The book was immediately withdrawn. Not a word about this has ever appeared in the British press, though clearly
the existence of such a book, and its suppression, was a news item worth a few paragraphs.
272it [00:13, 19.97it/s]
(base) iMac:bilingual_book_maker-main-1 $

不加 —language 试试 默认就是中文

(animal_farm_bilingual.epub)

不加 —language 试试 默认就是中文

好的，我试试

还是一样  -_ -

--test 只翻译 10 p tag 应该还没翻译到这儿。。。你翻到第一页看看，或者 --test --test_num 30

--test 只翻译 10 p tag 应该还没翻译到这儿。。。你翻到第一页看看，或者 --test --test_num 30

谢谢这么晚还能及时回复，刚我关了电脑，明天一早再试试。

开头一样是双段英文：

我晚上或者中午研究下哈，抱歉

--language "Traditional Chinese"
我下的是上面的參數，目前都是正常輸出繁體(但部分會是簡體的)

我也遇到同样的问题，两段英文，简体繁体都试过了

不加 —language 试试 默认就是中文

这个方法管用

默认不加—language也试过了，还是不行

我也是同样问题，—language 加与不加，2种情况都是翻译结果为英文。

我也是遇到一样的问题 。好像是有个包deprecated的了。。有没有解决办法。。。

deprecated which ?

大家用测试的命令最简单的试一下？
export OPENAI_API_KEY="your_key"
python3 make_book.py --book_name test_books/animal_farm.epub --test
生成的文件是 animal_farm_bilingual.epub

大家用测试的命令最简单的试一下？
export OPENAI_API_KEY="your_key" python3 make_book.py --book_name test_books/animal_farm.epub --test
生成的文件是 animal_farm_bilingual.epub

用这个简单的命令成功了， 感谢！
MacBook-Pro-2:bilingual_book_maker-main 2 $ python3 make_book.py --book_name test_books/animal_farm.epub --test
/opt/homebrew/lib/python3.9/site-packages/ebooklib/epub.py:1395: UserWarning: In the future version we will turn default option ignore_ncx to True.
  warnings.warn('In the future version we will turn default option ignore_ncx to True.')
  0%|                                                    | 0/10 [00:00<?, ?it/s]Animal Farm: A Fairy Story

《动物农场：一个童话故事》
 10%|████▍                                       | 1/10 [00:06<00:57,  6.40s/it]George Orwell
Internal server error {
    "error": {
        "message": "Internal server error",
        "type": "auth_subrequest_error",
        "param": null,
        "code": "internal_error"
    }
}
 500 {'error': {'message': 'Internal server error', 'type': 'auth_subrequest_error', 'param': None, 'code':
'internal_error'}} {'Date': 'Tue, 07 Mar 2023 07:43:58 GMT', 'Content-Type': 'application/json;
charset=utf-8', 'Content-Length': '166', 'Connection': 'keep-alive', 'Vary': 'Origin', 'X-Request-Id':
'60396944aae3c1ee5696c2edebdcc651', 'Strict-Transport-Security': 'max-age=15724800; includeSubDomains'} will
sleep  60 seconds

乔治·奥威尔
 20%|████████▊                                   | 2/10 [01:22<06:17, 47.24s/it]Cover illustration by Eric Seat (www.ericseat.com)

封面插画由Eric Seat（www.ericseat.com）绘制。
 30%|█████████████▏                              | 3/10 [01:30<03:24, 29.22s/it]This e-book was created for MobileRead (www.mobileread.com).

去掉 test 就可以了 test 只翻译 10 句

好的，谢谢啦。
不指定模型的话，默认的是哪个？发现转换慢了许多。

默认就是简体中文

OK，谢谢大佬。

可以了，感谢


write enormously large buffers async test fails on 14.13.0

I'm getting the following error in the test on Node.js 14.13.0 (same for 14.12.0):
  test: write enormously large buffers async
  stack: |
    SonicBoom.write (index.js:190:16)
    Test.<anonymous> (test.js:689:14)
  type: RangeError
  tapCaught: testFunctionThrow

The failure is probably related with this regression in V8's max supported string length: https://github.com/v8/v8/commit/ea56bf5513d0cbd2a35a9035c5c2996272b8b728
Considering this, the fix should be to reduce the string length by x2 in the test.

Done .. I pushed directly to master.


EventHub event as binary

If only string representation is supported for Event Hubs, how can we access the message body as binary?

Also you can't get the EventData class as a binding which means you don't have visibility to the event properties.

Do you guys have any update on this one with the new .NET 6/Functions Runtime 4 release? Thanks.

I just changed the type of the input binding to byte[][] inputs and it seems to work just fine.
However, the migration story from EventData is terrible. Would have expected a smoother transition.

The documentation for in-process dotnet functions is missing an example for processing binary messages. The Azure documentation should have an example of a byte[][] parameter example on this page:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-hubs-trigger?tabs=isolated-process%2Cfunctionsv2%2Cextensionv5&pivots=programming-language-csharp#example

How about the message key as binary?
Please Az Function team, don't forget about other types of serialization and high-performance scenarios (span, etc) that this approach does not allow.

You should be able to bind an EventHub trigger to string, bytes[] and BinaryData; we also recently added support for EventData (release).
Updated docs: https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-hubs-trigger?tabs=python-v2%2Cisolated-process%2Cfunctionsv2%2Cextensionv5&pivots=programming-language-csharp#usage
If there are any issues binding to these types or if there are any feature requests, please open a new GitHub issue so we can properly triage. Would like to avoid having 1 issue to track multiple topics. Thanks!


Make azure pipeline steps fail on intermediate commands

Summary
The azure pipelines commands were previously using the script directive
which on windows uses cmd.exe to run commands. The return code for the
step process only returns non-zero and exits if the last command in the
script returns non-zero, it will continue running if an intermediate
command fails. This can lead to hard to parse errors because something
failed earlier in the pipeline and we don't catch it until later. For
example pip install stestr failing because of a network issues and then
we get a command not found error when we go to run tests. This commit
fixes this issue by switching all the scripts to explicitly use bash
and then using 'set -e' to set errexit to make sure any failing
command causes the job to fail there.
Details and comments
Related to #2879

It looks like #2889 added a command after stestr to each job which masked test failures. The windows testing is failing because one of the visualization tests that compares output vs a reference image fails. Since these tests are very finicky, especially multiplatform, because of differences with things like fonts this test is skipped. The MacOS jobs were failing because of a bug in stestr which I actually independently encountered and fixed in mtreinish/stestr#255 and mtreinish/stestr#256 (I'll push a release for it shortly).

I can't figure out exactly what's causing the macOS failure. The test runner exits prematurely (like it was killed for some reason) when running test.python.quantum_info.operators.channel.test_kraus.TestKraus.test_circuit_init or test.python.quantum_info.operators.channel.test_stinespring.TestStinespring.test_circuit_init. This results in a line in the log like:
{0} test.python.quantum_info.operators.channel.test_kraus.TestKraus.test_circuit_init [] ... inprogress

which is stestr's way of basically saying the test runner process has exited but it never received an event from the runner for the result of the test. To try and mitigate this I've downgraded the job to use macOS 10.13 instead of macOS 10.14 (which is closer to the version we used on travis 10.12), I also decreased the concurrency from 4 to 2 assuming it might be a memory issue or some other resource issue on the test node caused by overloading it with 4 processes running tests in parallel.


Investigate workflow and start discussion how we can improve it

One note here: We can collect all the artifacts for a release such as docker images and npm packages within the GitHub release (i.e. https://github.com/connext/vector/releases/tag/v0.1.15-beta.11). This should be doable using GitHub actions.

Config improvements: https://github.com/yargs/yargs/blob/master/docs/advanced.md#building-configurable-cli-apps


Update dg formatting

Codecov Report

Merging #359 (b810ecd) into update-dg (f00a518) will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             update-dg     #359   +/-   ##
============================================
  Coverage        55.92%   55.92%
  Complexity         657      657
============================================
  Files              130      130
  Lines             2825     2825
  Branches           352      352
============================================
  Hits              1580     1580
  Misses            1112     1112
  Partials           133      133

Continue to review full report at Codecov.

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


Update Lambda Handler

Update lambda handler to be compatible with lambda zip folder structure.

Pull Request Test Coverage Report for Build 2560

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 95.829%

Totals

Change from base Build 2551:
0.0%

Covered Lines:
850

Relevant Lines:
887

💛  - Coveralls


Py3 heronpy

I am thinking this may be all it takes to get Python3 topologies running, as it builds a universal package which can be included in a .pex, so I imagine it will just work if the workers have the same interpreter as the .pex is built for; I'll go on and manually test uploading a Python3 .pex some time in the next few days.
This includes the six library which could be used to replace the try/except imports.

[x] make heronpy a universal package
[x] test a python3 PEX locally
[ ] include python3.6 in the executor
[ ] test a python3 PEX on Kubernetes
[ ] update documentation

python3 support
python3 PEX generation
note about PEX pinning to a specific (major, minor) version

Once this does work locally, it'll need support on the schedulers, which I think is to update the executor image to include Python3. I will look into making .pex files pin to more generic interpreters (python3 vs. python3.6), as otherwise that will be a pain causing you have to rebuild your PEXs every time the executor image's python 3 minor version increases.

Sounds good @Code0x58

As an update, I was waiting for changes around ./docker/ to happen before I go changing things in there for the executors. I'll probably use the first official Apache release as my trigger to get back on this.

@Code0x58 - the docker changes are merged I think.

Just getting into heron and am excited about the prospect of python 3 support. It looks like you've made some progress on this. Anything I can do to help push it forward?

@Code0x58 How does this PR relate to #3431 ? Is this still needed or can it be closed?

It looks like that PR and its parent exclusively do python 2 to 3 changes on scripts, then set the python interpreter in those scripts to python 3. I did a very quick rebase and look around, and I'm not sure that the goals of this PR have been met by give given PR (or previous merges) - but they probably help a great deal and may unblock work on this.
I think around the time I lost steam on this there was a fairly big issue where you could only use one version of python with Bazel, which may still be the case, but if python3 is being used in the workspace then this could probably continue. I probably won't have time to get back into this project for a while, but if python3 is confirmed as the one being in use in the workspace then that would probably coax me in sooner.

Maybe I can continue the effort and leverage you for help as needed? I haven't really used Python before. Currently working through #3438. Once I complete that I can take a look at this. Have tests failing due to "not proper python names".

That sounds great to me! I think as long as you can publish a heronpy that works with python3 and build a python3 pex which you can run in the executor docker image, that's job done (especially if python2 support is dropped).
As a heads up, you may find that the PEX uses an overly specific interpreter (e.g. python3.8 rather than python3) which will cause issues if you have a version mismatch or don't have the specific version on the PATH.

Closing as superseded by #3522


add sort arrow buttons

on the column headers on the tables on the frontpage
reporter avers that they didn't realize it was sortable

fixed https://github.com/newsdev/foialawya/commit/232ae7e8e136f4051840137a6f26fe6ae53d3bde


BUG: Build fails - gmake: *** [Makefile:114: all] Error 2 - Fedora based OS.

Most of the build seems to run and near the end I see the following:
[ 88%] Building ASM object CMakeFiles/ProofOfSpace.dir/src/b3/blake3_sse41_x86-64_unix.S.o
[ 91%] Building ASM object CMakeFiles/chiapos.dir/src/b3/blake3_sse41_x86-64_unix.S.o
gmake[2]: *** [CMakeFiles/ProofOfSpace.dir/build.make:82: CMakeFiles/ProofOfSpace.dir/src/cli.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:150: CMakeFiles/ProofOfSpace.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/RunTests.dir/build.make:82: CMakeFiles/RunTests.dir/tests/test-main.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[1]: *** [CMakeFiles/Makefile2:123: CMakeFiles/RunTests.dir/all] Error 2
[ 94%] Linking CXX shared module ../lib.linux-x86_64-3.8/chiapos.cpython-38-x86_64-linux-gnu.so
[ 94%] Built target chiapos
gmake: *** [Makefile:114: all] Error 2
Traceback (most recent call last):
File "setup.py", line 203, in
setup(
File "/usr/lib/python3.8/site-packages/setuptools/init.py", line 144, in setup
return distutils.core.setup(**attrs)
File "/usr/lib64/python3.8/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib64/python3.8/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/lib64/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib64/python3.8/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/usr/lib64/python3.8/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib64/python3.8/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "setup.py", line 38, in run
self.build_extension(ext)
File "setup.py", line 70, in build_extension
subprocess.check_call(
File "/usr/lib64/python3.8/subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j', '6']' returned non-zero exit status 2.
error: Bad exit status from /var/tmp/rpm-tmp.rhA1XY (%build)
Any thoughts or anything you need me to provide? I am quite sure I meet all the dependencies.

I tried this again on the 1.0.0 release and same occurs

same on 1.0.1,  using cmake-3.19.7-2.fc35.x86_64

do you see any output before the part you posted that looks like errors? I would expect gmake would also print the actual output from the compiler.

The only other errors that appear prior are as follows:
[ 27%] Linking CXX static library libuint128.a
[ 27%] Built target uint128
Scanning dependencies of target RunTests
[ 30%] Building CXX object CMakeFiles/RunTests.dir/tests/test-main.cpp.o
In file included from /usr/include/signal.h:315,
from /home/ss/rpmbuild/BUILD/chiapos-1.0.1/tests/../lib/include/catch.hpp:8034,
from /home/ss/rpmbuild/BUILD/chiapos-1.0.1/tests/test-main.cpp:16:
/home/ss/rpmbuild/BUILD/chiapos-1.0.1/tests/../lib/include/catch.hpp:10822:58: error: call to non-‘constexpr’ function ‘long int sysconf(int)’
10822 |     static constexpr std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ;
|                                                          ^~~~~~~~~~~
In file included from /usr/include/bits/sigstksz.h:24,
from /usr/include/signal.h:315,
from /home/ss/rpmbuild/BUILD/chiapos-1.0.1/tests/../lib/include/catch.hpp:8034,
from /home/ss/rpmbuild/BUILD/chiapos-1.0.1/tests/test-main.cpp:16:
/usr/include/unistd.h:630:17: note: ‘long int sysconf(int)’ declared here
630 | extern long int sysconf (int __name) __THROW;
|                 ^~~~~~~
In file included from /home/ss/rpmbuild/BUILD/chiapos-1.0.1/tests/test-main.cpp:16:
/home/ss/rpmbuild/BUILD/chiapos-1.0.1/tests/../lib/include/catch.hpp:10881:45: error: size of array ‘altStackMem’ is not an integral constant-expression
10881 |     char FatalConditionHandler::altStackMem[sigStackSize] = {};
|                                             ^~~~~~~~~~~~

Not seen in 1.0.2


Implement inverse function for duration

Refs: https://github.com/metarhia/common/issues/156
Closes: https://github.com/metarhia/common/issues/156

Landed in acd81c4


Error Message "The given export path doesn't exist: exports" for Export All/Release to MacOS

Godot version:
3.2.2 Stable
OS/device including version:
Mac OSX Sierra

Issue description:
Using Mac OSX Runnable export template 3.2.2 stable
Project -> Export ->  Export All -> Release
Correctly creates the dmg file but produces popup that says
"The given export path doesn't exist: exports"
The created dmg file is correctly located in the export path folder
So I get the desired outcome .. a working dmg .. but this message is strange. Not a showstopper but just confusing
Note it is an old project which I have hacked so it might be a pre 3.2.2 issue. New projects don't
Steps to reproduce:

Minimal reproduction project:

What is the configured "Export Path" for all three presets?

I'll close this as nobody else has been able to reproduce this recently. Please comment (with the issue template filled) if you can still reproduce this.


✎ Improve general sentence structure and fix grammatical errors

Just a few things I noticed while going through the guide. ❤

❤


Update Reason
AssemblyPartRelationship should be deprecated to be replaced by new model SingleLevelBomAsBuilt to match our naming convention from BomAsPlanned and other BoMs.
MS1 Criteria

[ ] The model that should be deprecated exists and is not deprecated already
[ ] The respective model does not affect existing use cases (aspect is either used in higher versions or replaced by a different aspect)
[ ] A shared aspect, which will be deprecated, is not used by any released aspect model

as discussed #75 models will be deprecated.


The sound played by the solar2d audio and this module for the same file sounds different in volume.

Hi, I got a weird bug when playing sound with this module compare to the solar2d audio api.
Here is the test example:
test_soloud_audio.zip
I tested it on MacOS-simulator-3690.

Hi! Thanks for the sample code, that helps a lot!
Did some testing and confirmed there’s a slight difference in volume between Solar2D’s current audio lib and SoLoud in macOS.
The best answer that I can provide at the moment is that this is technically not a bug, it’s just a difference in backend.
Although, this is something not related to this module, there is one thing that can be done to leverage it; you can do M.setVolume(1.5) to effectively set SoLoud’s “global volume” higher. This is more or less like a master volume, though separate from individual audio channels, it affects them altogether.


Motivation for compression parameters selection?

One thing I noticed about this script is just how insanely high the quality/effort settings are. It's not about -d 1, since that one (arguably) is the best option for the already-lossy comics.
Does it actually make sense to use --effort=9 here? There's been something of a comparison between effort settings on Reddit, which found out that after -e 7 the encode time scales by x2-4 for each level, while the output files' size stays within 100kB of -e 7. Considering we may have huge collections of books with hundreds of pages, is it worth it to waste that much time for so little gain?
Same goes for brotli_effort - what was your motivation for setting that one to max as well? As far as I could find, it's not even documented yet, same as modular_nb_prev_channels.
Granted, none of this matters for JPEG source files (which must be the majority for comics, I guess), since --lossless_jpeg 1 doesn't transcode them at all: it just repacks them, saving about 20% of the original size for -e 7, and around few percent extra for -e 9. E.g. on one test subject I shrank a CBR from the original 209MB to 163MB and to 156MB, with effort at 7 and 9, respectively, while the latter setting took whole lotta more time.

My point is - why did you choose the defaults that you chose? If you did some sort of benchmarking, it'd be interesting to see.

Really the only reason is that it was fast enough for me and I wanted to compress more. I guess I can make the defaults more sane.
-E/--modular_nb_prev_channels used to be popular on reddit, but strangely enough cjxl -v -v -v -h does not mention it now 0.9.1
I don't think I will support any configuration files, you can make a shell alias.

I think the only reason it's fast enough for you is due to --jpeg_lossless=1, which means there's actually no re-encoding done on top of JPEG, only re-packing. Even my ancient 2-core Phenom II X2 executes those in a few seconds per page max. Once you set -j 0 the sky's the limit for how long it'll take.
-E/--modular_nb_prev_channels is shown with cjxl -h -v -v -v -v under "Modular mode options". Seems like leaving it up to the encoder itself would be best.

I actually want to try and benchmark a few settings with different comics of different styles and then do a comparison of size/encoding speed/relative quality for lossy encoding. I've tried a few, using the SSIMULACRA2 tool bundled with libjxl. So far d 0.5 looks promising, yielding a score close to 90 ("visually indistinguishable at 1:1") and around 2/3 or half the size of the original.

I do also have a bunch of manga encoded with the modular mode, source being png. For me it still was fast enough.
I wasn't aware they made it so now -v has to be passed 4 times
I'll make the default -d 0 -j 1, I definitely don't want it to be destructive by default, even if it outputs to a separate directory.

I guess for the rest of the flags I'll not talk about the default in the help section, since it could change with the encoder.

@JinEnMok if you are interested in benchmarking, for best performance you should really do what my program does, compress one image per thread with --num_threads 1.
I run one such test:

Options
Elapsed
User CPU
System CPU
CPU Used
Max Memory
Minor Page Faults
Major Page Faults

-e7 -t1
0:53.76
65.08
13.41
146%
233880 KB
745727
0

-e7 -t16
0:07.74
92.57
9.05
1311%
203040 KB
613805
13

-e9 -t1
13:45.37
884.28
14.74
108%
233820 KB
1358308
0

-e9 -t16
1:30.86
1179.72
9.59
1308%
203212 KB
1169031
0

Data collected with bsd time.
Max memory does not seem correct, probably since it checks my program's memory and not cjxl's. I imagine page faults are similarly wrong, but I'm not sure.
The test file consisted of 64 png images, 1000x1500, compressed with -d 0:
test_images.zip
If you intend to run it with my program, rename the extension to .cbz.

@JinEnMok  On one manga now -e7 and -e9 --brotli_effort 11 -E3 was a difference between 211 MiB and 179 MiB. Original size 233 MiB. Modular encoding. It does make a difference.


CAD Disconnects from API and wont go back up randomly

What version of Node.js are you using?
Latest
What version of npm are you using?
Latest
What operating system are you using?
Windows Server 2019
What version of SnailyCAD are you currently using?
v1.32.0 e7d1382
Describe the Bug
[0] upstream image response failed for https://api.enemyofthestaterp.com/static/units/cl2jkvoqd181261mwtmhmtk91le.png 404
[1] DiscordAPIError[50035]: Invalid Form Body
[1] embeds[0].fields[1].value[BASE_TYPE_REQUIRED]: This field is required
[1]     at SequentialHandler.runRequest (C:\nginx\html\snaily-cadv4\node_modules\@discordjs\rest\src\lib\handlers\SequentialHandler.ts:497:11)
[1]     at processTicksAndRejections (node:internal/process/task_queues:96:5)
[1]     at async SequentialHandler.queueRequest (C:\nginx\html\snaily-cadv4\node_modules\@discordjs\rest\src\lib\handlers\SequentialHandler.ts:198:11)
[1]     at async REST.request (C:\nginx\html\snaily-cadv4\node_modules\@discordjs\rest\src\lib\REST.ts:343:20)
[1] yarn workspace @snailycad/api generate && yarn workspace @snailycad/api start exited with code 1

Expected Behavior
CAD randomly shuts down at times and if I look at the console I see the above
To Reproduce
No response

Has this happened multiple times before, Or only this one time?

Please see previous comment @ViolentMinds :)

Please see previous comment @ViolentMinds :)

Strangely it happened only 3 times. I don't know if its maybe if someone tries to upload an image for their character? I'm just guessing I have no idea because suddenly people start telling me CAD is down for some reason lol. It hasn't done it in a while. Very strange? We can close this for now maybe? I'm not sure. What do you think.

tbh, I don't know where it comes from either. The error message doesn't list a cause deep enough for me to debug :/. If it happens again let me know ASAP (via Discord)


File transport with maxFiles doesn't seem to behave as expected

I have following usage of winston with file transport:
this._log = new(winston.Logger)({
transports: [
new(winston.transports.File)({
name: 'file_transp',
level: 'debug',
showLevel: false,
filename: 'test.log',
dirname: './',
maxsize: 1024,
maxFiles: 3,
}
})
]
});
When writing to it and exceeding the maxsize, new files are created just as expected. However, the number of files saved is not limited to 3 (I got to 28).
looking at transports/file.js, func _checkMaxFilesIncrementing, line 557.
557:  target = path.join(this.dirname, basename + (oldest === 0 ? oldest : '') + ext);
558:  fs.unlink(target, callback);
It seems to me that it should be oldest !== 0 (verified to work with the parameters I've written above).

Closed with pull request 578.