Uglify not uglifyin in webpack

Hi,
I'm trying to use Webpack with the uglify plugin inside docker to package the Javascript I use ready for release.
There are no errors - but the Javascript just doesn't seem to be Uglified ever.
I have a simple docker box here that contains a simple setup, that I would have expected to produce uglified Javascript output.
I realise that there is a high chance of pebkac, but I would still appreciate someone pointing out what needs to be changed to make it work.
Node version: 7.10.0
OS version from uname -a
Linux 9fe30035f921 4.9.27-moby #1 SMP Thu May 11 04:01:18 UTC 2017 x86_64 GNU/Linux
I would expect the output for the test code from webpack + uglify to look like this:
function really_long_test_function_name(a,p){var d=a+"asdjpajdpoadpsapodjpasojdpoajpdoaspdpasjd";return(d+(d+(d+(d+(d+(d+(d+(p+"asdjpajdpoadpsapodjpasojdpoajpdoaspdpasjd")))))))).length}

The built output/main.js doesn't look minified at all:
***SNIPPED***
function(module,exports){eval('// compress_test.js\nfunction really_long_test_function_name(some_really_long_param_name_1, some_really_long_param_name_2) {\n\n\n    var foo_really_long_var_name_1 = some_really_long_param_name_1 + "asdjpajdpoadpsapodjpasojdpoajpdoaspdpasjd";\n    var foo_really_long_var_name_2 = some_really_long_param_name_2 + "asdjpajdpoadpsapodjpasojdpoajpdoaspdpasjd";\n\n    var foo_really_long_var_name_3 = foo_really_long_var_name_1 + foo_really_long_var_name_2;\n    var foo_really_long_var_name_4 = foo_really_long_var_name_1 + foo_really_long_var_name_3;\n    var foo_really_long_var_name_5 = foo_really_long_var_name_1 + foo_really_long_var_name_4;\n    var foo_really_long_var_name_6 = foo_really_long_var_name_1 + foo_really_long_var_name_5;\n    var foo_really_long_var_name_7 = foo_really_long_var_name_1 + foo_really_long_var_name_6;\n    var foo_really_long_var_name_8 = foo_really_long_var_name_1 + foo_really_long_var_name_7;\n    var foo_really_long_var_name_9 = foo_really_long_var_name_1 + foo_really_long_var_name_8;\n\n\n    return foo_really_long_var_name_9.length;\n}//# sourceMappingURL=*SNIPPED*==')}]);

i.e. the output from webpack just seems to be the original code.

So the problem was using the -d command line option.

Development shortcut -d
Equals to --debug --devtool source-map --output-pathinfo

This apparently blocks the uglyfier plugin from being able to do its job.


nixos/wakeonlan: switch to systemd.link and to nixos/networking

Motivation for this change
Current implementation doesn't work for me, and others. Changes were discussed here: https://github.com/NixOS/nixpkgs/pull/97362#issuecomment-929201299
This will (hopefully only temporarily) remove the secureon:tm: support, it seemed to me like nobody uses it anyway. Systemd didn't really support it and nobody complained for 3 years. I'll be sure to add support again once https://github.com/systemd/systemd/pull/20926 makes progress.
EDIT: it got merged, all that's missing now is that the next systems version releases.
Example from my config:
  networking.interfaces = {
    enp8s0 = {
      useDHCP = true;
      wakeOnLan = {
        enable = true;
      };
    };
  };

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

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

[x] Fits CONTRIBUTING.md.

Shall we add a mkRemovedOptionModule to nixos/modules/rename.nix?

https://github.com/NixOS/nixpkgs/pull/141194


Wrap-up Modal and Sideframe

this pr addresses the following issues:

cleanup modal code
add close functionality to dimmer

note: somehow @vxsx sneaked in here

LGTM

LGTM


Github Actions - Environment as type environment

User Story - Business Need
This change allows us to configure advanced features by environment, such as protection rules and secrets. When a workflow job references an environment, the job won't start until all of the environment's protection rules pass. A job also cannot access secrets that are defined in an environment until all the deployment protection rules pass.

[ ] Ticket is understood, and QA has been contacted (if the ticket has a QA label).

User Story(ies)
As a developer and maintainer of the notification API
I want to explicitly declare type: environment in our GitHub workflow inputs
So that we can move toward continuous deployment with the flexibility this allows.
Additional Info and Resources
Current workflow input example:
on:
  workflow_call:
    inputs:
      environment:
        description: "Deployment environment (dev|perf|staging|prod)"
        default: dev
        required: true

Proposed change:
    inputs:
      environment:
        type: environment
        description: "Deployment environment (dev|perf|staging|prod)"
        default: dev
        required: true

Adding type: environment to our GitHub workflows involves several intricate aspects we need to consider to ensure a smooth transition:

Workflow Compatibility: The change in type from an implicit string to an explicit environment might affect workflows in ways we haven't anticipated. We need to review all workflows that interact with the environment variable to ensure they can handle this new type. This is crucial since any discrepancy can lead to workflow failures.

Downstream Effects on QA Processes: The run-regression.yml file, which utilizes the environment variable as a string, might be particularly impacted. This could necessitate changes in our QA processes, especially if the environment type affects how variables are passed and interpreted in test scripts.

Relevant documentation links:

Workflow Syntax for GitHub Actions
Using Environments for Deployment
Github Action Expressions

Engineering Checklist

[ ] Update GitHub workflow input to include type: environment.
[ ] Ensure compatibility of the new environment type with existing workflows.
[ ] Test and observe any unexpected consequences, especially in run-regression.yml and the called regression in notification-api-qa.

Acceptance Criteria

The environment input in GitHub workflows should now explicitly declare type: environment.

All workflows that use or pass the environment variable should be adjusted and change tested accordingly. This includes the following files in the .github/workflows directory:

db-downgrade.yml
dev_deploy.yml
release_trigger.yml
run-regression.yml
deployment.yml
build.yml
prerelease_trigger.yml
deploy_lambda_dev.yml
lambda-functions.yml
tag_trigger.yml
release.yml
load-test-sms-response-time.yaml (communication with QA on this one)

This ticket does not include the following workflows that are not actively used (as using and testing these workflows is outside the scope of this ticket):

load-test-email-delivery-time.yaml
test-github-actions.yml

The QA repo's environment flag should continue to work correctly after this change.

QA Considerations

[ ] work with developer to understand and mitigate any impacts this may have on triggering the regression
[ ] if needed update the QA repo with any changes needed to facilitate this change; if needed, spin up a new ticket to manage that work.

@ldraney Friendly reminder! Please don't delete sections you don't believe you need like QA considerations. If you want to hide them simply use the comment out option.
Can you please update the Acceptance Criteria referenced below, to detail which workflows will need to be validated and any relevant actions to take related to that which = success?

All workflows that use or pass the environment variable should be adjusted accordingly.

Hey team! Please add your planning poker estimate with Zenhub @cris-oddball @edDocMe360 @EvanParish @k-macmillan @kalbfled @ldraney

Work on the QA workflows first to see if there are additional unknowns that will affect the work on this ticket.

Noting here the changes should essentially be:
Everywhere we cast the environment to a string, we remove the following syntax (except the qa repo call):
  run-deployment:
    needs: [setup-environment, run-build]
    uses: ./.github/workflows/deployment.yml
    with:
      environment: "${{ inputs.environment }}"
      ref: "${{ needs.setup-environment.outputs.git-hash }}"
    secrets: inherit
  run-deployment:
    needs: [setup-environment, run-build]
    uses: ./.github/workflows/deployment.yml
    with:
      environment: inputs.environment
      ref: "${{ needs.setup-environment.outputs.git-hash }}"
    secrets: inherit


Changing default ip to localhost since docker native is now used.

@tariqislam Awesome! 👍 :shipit:

Coverage remained the same at 62.911% when pulling a5c468daf646c9c6b9f048155786d73eabc4cd69 on feature/update_client_demo into a0bb636b95933a39a5217a1161ee25fc060e0135 on develop.


Interface to dftd4

See relevant discussions in
https://github.com/pyscf/pyscf/issues/983
https://github.com/dftd4/dftd4/issues/107

Trying to implement an interface like provided here in https://github.com/awvwgk/simple-dftd3/pull/17, if this works as expected I can implement it for DFT-D4 as well. The linked implementation should provide a drop-in replacement of pyscf.dftd3 when imported as:
import dftd3.pyscf as itrf
dftd3 = itrf.dftd3
grad = itrf.dftd3

Looks interesting - perhaps you might be interested in the upcoming pyscf
developer's meeting (see link on pyscf github page).
On Sat, Apr 30, 2022 at 1:10 PM Sebastian Ehlert @.***>
wrote:

Trying to implement an interface like provided here in
awvwgk/simple-dftd3#17 https://github.com/awvwgk/simple-dftd3/pull/17,
if this works as expected I can implement it for DFT-D4 as well. The linked
implementation should provide a drop-in replacement of pyscf.dftd3 when
imported as:
import dftd3.pyscf as itrfdftd3 = itrf.dftd3grad = itrf.dftd3
—
Reply to this email directly, view it on GitHub
https://github.com/pyscf/dftd3/issues/3#issuecomment-1114046889, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAN5NREROKANYNQOEA6AHUTVHWHSBANCNFSM47AQUI5Q
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Should be usable now, instructions for dftd3.pyscf and dftd4.pyscf are up now. Since the change affects only the Python bindings the latest trunk can be built against the binary distribution from conda-forge for testing.
I can send a patch to forward the DFT-D4 / DFT-D3 integration here or update the pyscf.org webpage to directly point to the upstream repositories. Any preferences?

Since the dftd3 dftd4 pyscf interface is available, can I disable this extension and add a message to redirect to the dftd3 and dftd4 native modules? @awvwgk

I think we still need a wrapper to provide the total energy and grad -- with simple-dftd3 you only get the part from d3. Thus users can do something like mf = to_dftd3(mf). That's what ajz34/vdw do (including wrapper for dftd4).
We are planning to contribute that to pyscf-forge.

This wrappers are already provided in both dftd4.pyscf and dftd3.pyscf by using the energy and grad wrapper:
>>> from pyscf import gto, scf
>>> import dftd3.pyscf as disp
>>> mol = gto.M(
...     atom="""
...          O  -1.65542061  -0.12330038   0.00000000
...          O   1.24621244   0.10268870   0.00000000
...          H  -0.70409026   0.03193167   0.00000000
...          H  -2.03867273   0.75372294   0.00000000
...          H   1.57598558  -0.38252146  -0.75856129
...          H   1.57598558  -0.38252146   0.75856129
...          """
... )
>>> grad = disp.energy(scf.RHF(mol)).run().nuc_grad_method()
converged SCF energy = -149.947191000075

Or are you looking for something else?

This wrappers are already provided in both dftd4.pyscf and dftd3.pyscf by using the energy and grad functions:
>>> from pyscf import gto, scf
>>> import dftd3.pyscf as d3
>>> mol = gto.M(
...     atom="""
...          O  -1.65542061  -0.12330038   0.00000000
...          O   1.24621244   0.10268870   0.00000000
...          H  -0.70409026   0.03193167   0.00000000
...          H  -2.03867273   0.75372294   0.00000000
...          H   1.57598558  -0.38252146  -0.75856129
...          H   1.57598558  -0.38252146   0.75856129
...          """
... )
>>> grad = d3.energy(scf.RHF(mol)).run().nuc_grad_method()
converged SCF energy = -149.947191000075

Or are you looking for something else?

You are right. I didn't notice that dftd3.pyscf has already provided this wrapper.


add french

I added french as a language and translated from english
I'm a French, Canadian, native speaker. ;)
While it did the trick, OpenAI answered back in French
some part of the interface still in english

Thanks for your contribution!


Update microsoft-azure.md

Replace dead link for Java
http://azure.microsoft.com/en-us/documentation/articles/store-sendgrid-java-how-to-send-email-with-marketing-campaigns/
with
https://docs.microsoft.com/en-us/azure/store-sendgrid-java-how-to-send-email
Description of the change:
Reason for the change:
Link to original source:

Closes #

Hello @dharmendra-lingaiah,Thanks again for the PR! It's HACKTOBERFEST! We want to show our appreciation by sending                                              you some special Hacktoberfest swag. If you have not already, could you please fill out                                              this form so we can send it to you? Thanks!                                             Team SendGrid DX


Feature Request: Redis like persistance

I may have asked this indirectly before but I thought I would reask in a more concrete fashion.
Is there any current (or planned) configuration that allows creating a database that redis like persistence guarantees. Basically I want to have an in-memory map that is flushed to disk "often". In my case I am willing to tolerate the loss of a few seconds of recent data if it means the database can never be corrupted. The closest configuration I could get is using async writes but if my system is shutdown uncleanly the database is toast.
Any thoughts?

There is already mapdb-redis project in half finished state. I will release it once stable 2.0 is out
https://github.com/jankotek/mapdb-redis

I didn't mean I wanted an implementation of the redis API, I was talking really only talking about the "write behind" behavior of redis.

Its on todo list.


Need API endpoints for diary entries.

There are existing API endpoints for basic email-password authentication. Add new endpoints for CRUD operations on diary entries.

@Vikrant-8573 Can i work on it?

Hello, I'd love to work on this. Kindly add me as a collaborator. Thanks.

@zainbinfurqan Sure, you can work on it. If you can add more endpoints other than the basic CRUD ones, you are welcome to do so.

@NAPOLEON039 Sure.

This issue will stay open. Add as many relevant API endpoints as you can. If you can add any for users, you are free to do so.


single instance only

This kind of proposal was already submitted, #42, however, single instance with process name can be makeshift.
Mutex-based would be more useful, I think.

@0x00000FF Thanks for your contribution!
Reading the Mutex reference, it seems like we need to call ReleaseMutex(), but is it unnecessary?
What are you referring to for implementation?

Oh I forgot that, sorry! 😅
But actually the mutex will be released automatically when the process exited, but that would be more desirable.
So I added a commit, please check it out!

@0x00000FF
LGTM🎉


add typo-ci file to ignore python files

Description
add .typo-ci.yml file to root of project to configure how Typo CI will behave
Related Issues
https://github.com/threefoldtech/js-sdk/issues/1717

Codecov Report

Merging #1726 (507c1aa) into development (85c97f2) will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff              @@
##           development    #1726   +/-   ##
============================================
  Coverage        32.36%   32.36%
============================================
  Files              134      134
  Lines            12842    12842
============================================
  Hits              4156     4156
  Misses            8686     8686

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 85c97f2...507c1aa. Read the comment docs.


넓다 (opacity😂 -- the coda tensifies the following consonant before being deleted)

Describe the bug
The /p/ in 넓다 /nʌlpdɑ/ should tensify the following /d/. Currently it returns [nʌldɑ].
Expected behavior
Enter 넓다 (i.e., /nʌlpda/), get [nʌld*ɑ].

Rule ordering issue?
Apparently, Complex Coda Simplifacation applies before Tensification but the ordering should not be like this. (Who wrote this code! 😫)
CCS (lines 159 - 172)
https://github.com/stannam/hangul_to_ipa/blob/35954535fcd4eface578f23b28adb029fff22d22/src/worker.R#L159-L172
... should be run after...
Tensification (lines 193 - 199)
https://github.com/stannam/hangul_to_ipa/blob/35954535fcd4eface578f23b28adb029fff22d22/src/worker.R#L193-L199

Commit 54b9c5cb49bc552d5334c0b8b5cb1b32b866951c solved this issue


Persist demo site

What?
Persist storage and DB of the demo-site.
Why?
To use the demo-site

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

Needs approval from an approver in each of these files:

OWNERS [d-hayashi]

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


Generate and publish API docs for our iOS platform integration

Similar to https://docs.flutter.io/javadoc/ but for our iOS platform integration APIs.
Thanks!

Who needs docs when there is great example code. ;)

...but seriously, may be good to add some comments and white space into the example code because it's pretty, um, dense.

FYI @mit-mit in case this touches anywhere near the current plugin work.  Otherwise I suspect @xster or @cbracken will look eventually. :)

Duped by https://github.com/flutter/flutter/issues/2100

Assigning to @mit-mit to help drive this to completion.

Is this still on target for M2 (this Friday)?

It is not. But I also don't think this is crucial. We have documented the APIs on flutter.io.
Punting to milestone 3.

Done in #10905


Support update of progress messages.

As far as I understand from Tsetsko, this is needed in order to update the CTS_RETURN code.


Content index

Any plans to add a plug in system or similar to allow to hook up readers to allow content indexing?

no plans for this right now, but please contribute to the project if you have time.

The latest version of diskover includes plugin support to add python plugins. Please see the wiki for how-to.


Remove cookieWorks toggle and conditions

Go through repo and remove toggle_cookieWorks conditions, make it the default behaviour.

Deployed to prod


Secondary sidebar does not have move commands

Testing #145634
Given that we show moving actions in the activity bar, primary side bar, and panel, I expect to see it here:

Examples:

hmm interesting, since it is only a function of the primary side bar, I did not add this. Do you think we should do something like "Swap Primary/Secondary Side Bar Positions" in both?

I think for consistency it should be the same, using "swap" might confuse users

I was suggesting "Swap Side Bar Positions" in both, so it would be consistent. But, I can see that might cause some confusion, so just "Move Secondary Side Bar "Left/Right" then?


Poor AudioADC performance whenever AudioDAC or any DAC channels are enabled.

Hi,
I was looking at the auadc_audac_loopback example, and noticed that the quality of AudioADC decreases dramatically upon initializing the AudioDAC(!)
Apparently, this problem is associated with the setting of GPDAC_CH_A and / or GPDAC_CH_B.
Specifically, the following lines of code in bflb_audac.c are causing the audac to change its behavior(!?) :
if (config->output_mode & AUDAC_OUTPUT_MODE_GPDAC_CH_A) {
/* gpdac enable ch-A */
regval = getreg32(reg_base + GLB_GPDAC_ACTRL_OFFSET);
regval |= (GLB_GPDAC_A_EN | GLB_GPDAC_IOA_EN);
putreg32(regval, reg_base + GLB_GPDAC_ACTRL_OFFSET);
}
    if (config->output_mode & AUDAC_OUTPUT_MODE_GPDAC_CH_B) {
        /* gpdac enable ch-A */
        regval = getreg32(reg_base + GLB_GPDAC_BCTRL_OFFSET);
        regval |= (GLB_GPDAC_B_EN | GLB_GPDAC_IOB_EN);
        putreg32(regval, reg_base + GLB_GPDAC_BCTRL_OFFSET);
    }
}

It seems that by setting GPDAC_CH_A/B the AudioADC precision decreases from 16 its to 12 bits, and the pga gain is not effective.
Same issue appears whenever enabling any of the DAC Channels, for example using:
bflb_dac_channel_enable(dac, DAC_CHANNEL_A);
bflb_dac_channel_enable(dac, DAC_CHANNEL_B);
Any ideas?

I forgot to mention that I am using BL616


Expand the test coverage of jQuery challenge

Pre-Submission Checklist

[x] Your pull request targets the staging branch of FreeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm test. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Closes currently open issue (replace XXXX with an issue no): Closes #11826

Description
This PR expands the test coverage for the Challenge "Remove an Element Using jQuery" to cover the possibility of users commenting out or deleting the #target4 element, and ensures that the user's code contains the statement $("#target4").remove()

Tested and works well. Thanks for contributing! 🎉 🌮 👍


Unable to open database files?

PDA version
0.4.1
Python version
3.0
Steps to Reproduce
name: pdns-admin
image: powerdnsadmin/pda-legacy
env:
- name: OFFLINE_MODE
  value: "true"

resources:
requests:
  memory: "128Mi"
  cpu: "200m"
limits:
  memory: "512Mi"
  cpu: "500m"
volumeMounts:
- mountPath: /data
  name: pdns-admin-pv

a kubernetes PV is mounted /data.
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file
(Background on this error at: http://sqlalche.me/e/13/e3q8)

Expected Behavior
can start up normally
Observed Behavior
can't start up

I'm seeing this too. I'm using longhorn and it works fine with emptyDir or setting the accessMode to RWX.

I got this working by adding this (at the pod level, not the container level):
securityContext:
  fsGroup: 101

Same thing happened to me. The id inside container is runner as UID 100. So for example, to my bind mounted folder i had to do chown -R 100 <bind mount folder> for it to be accepted.
reference: https://stackoverflow.com/a/40510068


Merge implementations from "missing SSE implementations" to NEON

http://www.alfredklomp.com/programming/sse-intrinsics/ has a great list of implementations of "missing"  SSE instructions.
Unlike SSE, NEON isn't missing a lot of this functionality, so we should steal that code and use it to implement parts of the NEON API.  For example:

_mm_cmple_epu8 → vcleq_u8 (see 5906cc923b5ba8044e49d9cadb66373550e58758)
_mm_cmpge_epu8 → vcgeq_u8
_mm_cmpgt_epu8 → vcgtq_u8
_mm_min_epu16 → vminq_u16
_mm_absdiff_epu8 → vabdq_u8
_mm_bswap_epi16 → vrev16q_u16/vrev16q_s16

We can also use the same techniques for a bunch of other functions which that page doesn't explicitly include (e.g., vcleq_u16/vcleq_u32/vcleq_u64 can all use the same technique as _mm_cmple_epu8, though 16/32-bit versions require SSE4.1 and 64-bit requires AVX-512VL).
Many of the same implementations could also be used in WASM (wasm_u8x16_le, wasm_u8x16_ge, wasm_u8x16_gt, wasm_u16x8_min, etc.).
There are also a few functions which are present in later versions of SSE, but can be emulated with earlier versions.  We should make sure our implementations of SSE also have these versions, too.
As an example, 5906cc923b5ba8044e49d9cadb66373550e58758 implements vcleq_u* using the code from _mm_cmple_epu8.

__m128i sse2_min_epu16 (__m128i a, __m128i b) {
	return _mm_sub_epi16(a, _mm_subs_epu16(a, b));
}

__m128i sse2_max_epu16 (__m128i a, __m128i b) {
	return _mm_add_epi16(_mm_subs_epu16(a, b), b);
}

These are missed optimizations in gcc, but clang has them.
AFAIK,  both compilers automatically use a blend for the 32-bits versions.

Here is another one:
__m128i sse2_subs_epi16(__m128i a, __m128i b) {
	__m128i t;
	t = _mm_xor_si128(_mm_set1_epi16(0x7FFF), _mm_cmpgt_epi16(b, a));
	a = _mm_sub_epi16(a, b);

	/* return _mm_blendv_ps(a, t, a ^ t) */
	t = _mm_xor_si128(t, a);
	return _mm_xor_si128(a, _mm_and_si128(t, _mm_srai_epi16(t, 15)));
}

Nice, thanks.  Those would be great for vminq_u16, vmaxq_u16, and vqsubq_s32 ☺.
There are tons of these floating around the internet, and I'd like to try to get as many as possible merged into SIMDe.  Sometimes they are for missing functions, sometimes for emulating a newer instruction using an older extension (like the min/max functions you mentioned).  Both are very useful to us.

Better lowering:
__m128i sse2_cmpgt_epu16 (__m128i x, __m128i y) {
	x = _mm_subs_epu16(x, y);
	return _mm_adds_epu16(x, _mm_sub_epi16(_mm_setzero_si128(), x));
}

__m128i sse2_cmpgt_epu32(__m128i x, __m128i y) {
    return _mm_xor_si128(_mm_cmpgt_epi32(x, y),
                         _mm_srai_epi32(_mm_xor_si128(x, y), 31));
}

Might help with min_u32.

collection so far:
__m128i sse2_cmpgt_epu8 (__m128i a, __m128i b) {
    a = _mm_subs_epu8(a, b);
    return _mm_adds_epu8(a, _mm_sub_epi8(_mm_setzero_si128(), a));
}
__m128i sse2_cmplt_epu8 (__m128i a, __m128i b) {
    return sse2_cmpgt_epu8(b, a);
}
__m128i sse2_cmpge_epu8 (__m128i a, __m128i b) {
    return _mm_cmpeq_epi8(_mm_min_epu8(a, b), b);
}
__m128i sse2_cmple_epu8 (__m128i a, __m128i b) {
    return _mm_cmpeq_epi8(_mm_max_epu8(a, b), b);
}

__m128i sse2_cmpgt_epu16 (__m128i a, __m128i b) {
    a = _mm_subs_epu16(a, b);
    return _mm_adds_epu16(a, _mm_sub_epi16(_mm_setzero_si128(), a));
}
__m128i sse2_cmplt_epu16 (__m128i a, __m128i b) {
    return sse2_cmpgt_epu16(b, a);
}
__m128i sse2_cmpge_epu16 (__m128i a, __m128i b) {
    return _mm_cmpeq_epi16(_mm_subs_epu16(b, a), _mm_setzero_si128());
}
__m128i sse2_cmple_epu16 (__m128i a, __m128i b) {
    return _mm_cmpeq_epi16(_mm_subs_epu16(a, b), _mm_setzero_si128());
}

__m128i sse2_cmpgt_epu32(__m128i a, __m128i b) {
    return _mm_xor_si128(_mm_cmpgt_epi32(a, b),
                         _mm_srai_epi32(_mm_xor_si128(a, b), 31));
}
__m128i sse2_cmplt_epu32(__m128i a, __m128i b) {
    return sse2_cmpgt_epu32(b, a);
}
__m128i sse2_cmpge_epu32(__m128i a, __m128i b) {
    ??
}
__m128i sse2_cmple_epu32(__m128i a, __m128i b) {
    ??
}

__m128i sse2_min_epi8 (__m128i a, __m128i b) {
    ??
}
__m128i sse2_min_epu8 (__m128i a, __m128i b) {
    return _mm_min_epu8(a, b);
}
__m128i sse2_min_epi16 (__m128i a, __m128i b) {
    return _mm_min_epi16(a, b);
}
__m128i sse2_min_epu16 (__m128i a, __m128i b) {
    return _mm_sub_epi16(a, _mm_subs_epu16(a, b));
}
__m128i sse2_min_epi32 (__m128i a, __m128i b) {
    __m128i m = _mm_cmpgt_epi32(b, a);
    return _mm_or_si128(_mm_and_si128(a, m), _mm_andnot_si128(m, b));
}
__m128i sse2_min_epu32 (__m128i a, __m128i b) {
    __m128i m = sse2_cmpgt_epu32(b, a);
    return _mm_or_si128(_mm_and_si128(a, m), _mm_andnot_si128(m, b));
}

__m128i sse2_max_epi8 (__m128i a, __m128i b) {
    ??
}
__m128i sse2_max_epu8 (__m128i a, __m128i b) {
    return _mm_max_epu8(a, b);
}
__m128i sse2_max_epi16 (__m128i a, __m128i b) {
    return _mm_max_epi16(a, b);
}
__m128i sse2_max_epu16 (__m128i a, __m128i b) {
    return _mm_add_epi16(_mm_subs_epu16(a, b), b);
}
__m128i sse2_max_epi32 (__m128i a, __m128i b) {
    __m128i m = _mm_cmpgt_epi32(a, b);
    return _mm_or_si128(_mm_and_si128(a, m), _mm_andnot_si128(m, b));
}
__m128i sse2_max_epu32 (__m128i a, __m128i b) {
    __m128i m = sse2_cmpgt_epu32(a, b);
    return _mm_or_si128(_mm_and_si128(a, m), _mm_andnot_si128(m, b));
}

__m128i sse2_absdiff_epi8 (__m128i a, __m128i b) {
    __m128i m = _mm_cmpgt_epi8(b, a);
    a = _mm_sub_epi8(a, b);
    a = _mm_add_epi8(a, m);
    return _mm_xor_si128(a, m);
}
__m128i sse2_absdiff_epi16 (__m128i x, __m128i y) {
    return _mm_sub_epi16(_mm_max_epi16(x, y), _mm_min_epi16(x, y));
}
__m128i sse2_absdiff_epi32 (__m128i a, __m128i b) {
    __m128i m = _mm_cmpgt_epi32(b, a);
    a = _mm_sub_epi32(a, b);
    a = _mm_add_epi32(a, m);
    return _mm_xor_si128(a, m);
}

__m128i sse2_absdiff_epu8 (__m128i x, __m128i y) {
    return _mm_or_si128(_mm_subs_epu8(x, y), _mm_subs_epu8(y, x));
}
__m128i sse2_absdiff_epu16 (__m128i x, __m128i y) {
    return _mm_or_si128(_mm_subs_epu16(x, y), _mm_subs_epu16(y, x));
}
__m128i sse2_absdiff_epu32 (__m128i a, __m128i b) {
    ??
}

__m128i sse2_subs_epu32 (__m128i a, __m128i b) {
    __m128i m = sse2_cmpgt_epu32(a, b);
    return _mm_and_si128(m, _mm_sub_epi32(a, b));
}
__m128i sse2_subs_epi32(a, b) {
    __m128i t;
    t = _mm_xor_si128(_mm_set1_epi32(0x7FFFFFFF), _mm_cmpgt_epi32(b, a));
    a = _mm_sub_epi32(a, b);
    t = _mm_xor_si128(t, a);
    return _mm_xor_si128(a, _mm_and_si128(t, _mm_srai_epi32(t, 31)));
}

__m128i sse2_adds_epu32 (__m128i a, __m128i b) {
    __m128i t = _mm_add_epi32(a, b);
    return _mm_or_si128(t, sse2_cmpgt_epu32(b, t));
}
__m128i sse2_adds_epi32 (__m128i a, __m128i b) {
    // https://stackoverflow.com/q/29498824
}

Avoids generating/loading constants which may not be desirable.
cc @aklomp

return _mm_xor_si128(_mm_cmpgt_epi32(x, y),
                     _mm_srai_epi32(_mm_xor_si128(x, y), 31));

https://godbolt.org/z/T73MbPEnh
I agree, the throughput isn't quite as good, but the latency on that mov is painful, plus the memory to store the data…
I'll go through your last comment soon, but I think I've got most of them in place (though not merged yet).  Thanks for putting them together ☺

FWIW, my "missing SSE intrinsics" project is now canonically hosted at https://github.com/aklomp/missing-sse-intrinsics.


The plugin does not work in release mode

The plugin does not work in release mode for Flutter Web. In debug mode everything is ok. How can I solve it?

I encountered the same problem, @patricknicolosi  did you solve the issue? How?


CORGI-156: Handle sourceless builds

This puts in some safeguards around processing builds that may be missing source URLs. It also removes processing of build types that we can't analyzed (yet), e.g. "maven".

LGTM


Solving issue 74

Creation of button “Burn image again”.
Modification of restart() function

now can receive the image as parameter
if image is passed, means that the button “Burn image again” was
clicked

Thank you very much for the PR! A couple of comments:

It's considered a good practice to squash commits that include very minor changes, review fixes, or commit updates. You can find more information here: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html.

I noticed you put the number of the issue this PR fixes in the title. You can make GitHub understand, and automatically close the references issue once the PR is merged by adding it like this: Fixes: #74 (see https://help.github.com/articles/closing-issues-via-commit-messages/). It's also nice to add a descriptive message, like "Add Burn image again button to completion screen. Fixes #74".

Would you also mind attaching a screenshot of the updated completion screen here, so we more easily evaluate design-wise?

@jviotti Here is the screenshot of how it looks like now...

@fedealconada The completion screen design still needs some work, but I'd really like to get the main functionality merged. Let's focus on https://github.com/fedealconada/resin-etcher/commit/b2a37c400b619deda64d4debf582dd7015437928 and we'll create another PR for the design.

@fedealconada I merged the commit successfully: https://github.com/resin-io/resin-etcher/commit/6331ee4aa1062133d62159af176e521c65f97c90!
Sadly GitHub doesn't seems to detect this and mark the PR as merged automatically, so I'm closing it myself!
Thanks a lot for the contribution!
I'd be great if you can open a new PR to address the styling (don't forget to sync your fork first: https://help.github.com/articles/syncing-a-fork/)!


go-micro v3 update grpc default server client

Change go-micro DefaultServer and DefaultClient to grpc
#2348

It's currently a discussion point, we're not actually actively doing it. @xpunch and I are discussing the right long term approach in an issue which you can comment in.

Same as other issue


Nanopolish -minimap2: no results

Hi!
I am trying to run nanopolish and I am stucked in this process. I don't understand why I don't get any output after running this code:
> $ ./minimap2 -ax map-ont -t 8 R18_finalrun_polishedracon.fasta r18_guppy_combine.fastq | samtools sort -o 1reads.sorted.bam -T 1reads.tmp samtools index 1reads.sorted.bam
Usage: samtools sort [options...] [in.bam]
Options:
  -l INT     Set compression level, from 0 (uncompressed) to 9 (best)
  -m INT     Set maximum memory per thread; suffix K/M/G recognized [768M]
  -n         Sort by read name
  -t TAG     Sort by value of TAG. Uses position as secondary index (or read name if -n is set)
  -o FILE    Write final output to FILE rather than standard output
  -T PREFIX  Write temporary files to PREFIX.nnnn.bam
      --input-fmt-option OPT[=VAL]
               Specify a single input file format option in the form
               of OPTION or OPTION=VALUE
  -O, --output-fmt FORMAT[,OPT[=VAL]]...
               Specify output format (SAM, BAM, CRAM)
      --output-fmt-option OPT[=VAL]
               Specify a single output file format option in the form
               of OPTION or OPTION=VALUE
      --reference FILE
               Reference sequence FASTA FILE [null]
  -@, --threads INT
               Number of additional threads to use [0]
[M::mm_idx_gen::3.398*1.00] collected minimizers
[M::mm_idx_gen::3.747*1.46] sorted minimizers
[M::main::3.747*1.46] loaded/built the index for 40 target sequence(s)
[M::mm_mapopt_update::3.978*1.43] mid_occ = 92
[M::mm_idx_stat] kmer size: 15; skip: 10; is_hpc: 0; #seq: 40
[M::mm_idx_stat::4.140*1.41] distinct minimizers: 7590427 (93.50% are singletons); average occurrences: 1.216; average spacing: 5.337

Thanks in advance!

Hi,
The end of your minimap2 command is incorrect:
[...] samtools sort -o 1reads.sorted.bam -T 1reads.tmp samtools index 1reads.sorted.bam

samtools sort and samtools index are two distinct steps:
[...] samtools sort -o 1reads.sorted.bam -T 1reads.tmp
samtools index 1reads.sorted.bam


Connector silkscreeen missing on RevB

The labels for the connectors are missing - probably on a layer that wasn't seen as silkscreen.
Note: This applies to the Rev B PCB.

Not really an issue. It was because the option to plot 'values' was not checked when plotting the gerber files (I was following the jlcpcb gerber production guide and didn't think about the effect it would have)
A silly mistake to make - need to pay more attention when running files thru the gerber viewer before pulling the pin on PCB manuacture!


Question: Unit testing SSL_set_tlsext_host_name in the user code, client side.

I have a piece of user code that invokes  SSL_set_tlsext_host_name on SSL*, client side. Is there a way for me to write a unit test that gets the value of the hostname set previously, on the client side? SSL_get_servername is for the server side only, isn't it?

As of #10018 SSL_get_servername() is documented to fulfil this purpose.
Sorry for the very slow reply on this one.


how to build library.xml

was it created manually?

If you use the library-scraper script to download libs, the library.xml files are auto-generated.
If you want to create a library profile for any other library you have to create the library.xml manually (you can use the assets/library.xml template for this)


Add the Missing Descriptions of the Streaming Module in API Docs

Description:
We need to add the below missing descriptions of the Streaming Module in API Docs.

https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/records/SnapshottableStreamEvent.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/Average.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/CompoundPatternProcessor.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/Count.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/DelayWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/DistinctCount.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/ExternalTimeBatchWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/ExternalTimeWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/HoppingWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/LengthBatchWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/LengthWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/LinkedList.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/Max.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/MaxForever.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/MergeSort.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/Min.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/MinForever.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/Node.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/NotOperatorProcessor.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/OperandProcessor.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/OrderBy.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/OutputProcess.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/Scheduler.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/records/SnapshottableStreamEvent.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/Average.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/CompoundPatternProcessor.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/Count.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/DelayWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/DistinctCount.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/ExternalTimeBatchWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/ExternalTimeWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/HoppingWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/LengthBatchWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/objects/LengthWindow.html
https://ballerina.io/v1-1/learn/api-docs/ballerina/streams/records/SnapshottableStreamEvent.html

Steps to reproduce:
Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Closing since the "Streaming" module is removed in the 1.3.0 release.


Added documentation on string interpolation to Animations doc

Motivation
I saw that Clearer documentation on how to animate string properties had the Good First Task label so I thought I'd take a crack at it. My only change is to the Animations doc, where I added a few sentences and an example based on @JedWatson's comment in the issue.
Test plan (required)
I wrote a small example app that contains the code snippet from the docs and ran it in the ios simulator and on a Nexus 5X. You can see it here.
I also looked at the docs and the formatting seemed fine:

I got the "colors as well as values with units" part from a comment in the source. The comment makes it sound slightly more open ended than the line I added in the docs, but wanted to avoid implying that it works for any arbitrary string values.

Closes #2246

@facebook-github-bot shipit


Design new basic interaction palette for PathVisio

remove arrow and tbar without semantic meaning and implement new basic interaction palette based on existing standards (MIM/SBGN/etc) for simple applications. Based on work by Anwesha.

develop proposal for palette to be presented and discussed in conference call

Check this googledoc for the planning + description of 8 suggested interactions.
Check this spreadsheet for the overview of the mapping (previous work of Anwesha).

And update documentation here and update the WPs academy when palette is done.

Fixed with https://github.com/PathVisio/pathvisio/pull/121


Feature request : Show the full track from the begining when a user connect afterwards

Hi,
I got almost 90% of my users who gave me the same feedback so I think it would be useful to share it.
Most of my users click to the link when they see it (sharing it to SMS / Element / Email) and they may connect a couple minutes/hours after my share link is active / me already walking/running for a couple of minutes/hours.
When you connect you start seeing the red line from the time you connect but you don't see the track from the beginning, it would be nice to have the option in preferences to keep the historical data to present to the user when they connect afterwards, or even when GPS/GSM connectivity is lost.
Thanks for the great software!

You can set the number of past points in config

@licaon-kter many thanks ! Argh I forgot to take a look on config... do you think about "max_shown_pts or maybe "max_cached_pts" I am still trying to understand the last one..

max_cached_pts is the number of coordinate pairs that the server stores in memory. Whenever someone opens a Hauk link, the server sends that much location history to initialize the map. The default is 3, which means that only the last 3 points are stored, which in turn means that with a share interval of one second, only the last three seconds of data is usually stored before it's erased.
max_shown_pts is the number of points that are drawn on the map client-side. This number is equal to or greater than max_cached_pts. With the default config, when a user loads the map, the last three locations are displayed, and the "tail" of movement history will grow until it reaches 100 past locations, before the end of the tail starts getting erased. If the user then reloads the map, only the last three (max_cached_pts) will be drawn on the map again, and whichever other 97 points were on the map before the reload are now lost (well, until the tail builds back up).
You can ensure your users get more historical data initially by increasing max_cached_pts. You should also increase max_shown_pts to at least match it, because it doesn't make sense to send more data than the map is willing to display. Keep in mind that setting very high numbers may affect the map performance (sluggish map panning etc.) but I don't know exactly where a reasonable limit goes for most devices.
For example, if you set max_cached_pts to 5000, and you share your location with an interval of 3 seconds, the tail on the map will show your location for the past 15000 seconds = 4 hours and 10 minutes.
Hope this can help :-)

@bilde2910 many thanks it is very clear! I will test with 5000 and increase it if I don't see any performance issue... very cool parameters I think it is exactly what I was missing


Not redirected perfectly, if  redirected URL specified in window.location.href

Hi team,
While getting the page source of this url 'http://www.suedfargesa.com', I can't get the perfect one.
Here, The script tag contains "window.location.href='http://suedfargesa.com/web/'" .So that it should be redirected to 'http://suedfargesa.com/web/' page. But it hasn't.
have sharing the resposne screen shot. The Second redirected URL request has been blocked.

Please help me to resolve this issue.

Hi team,
Even If redirected URL present is meta tag like "<meta http-equiv="refresh" content="0;URL=/cgi-sys/defaultwebpage.cgi">", It won't be redirected.
Few example ULRs http://www.aussiemumnetwork.com , http://www.nextlevelprinters.com
We can use meta tag attribute to redirect the page source :: https://mediatemple.net/community/products/dv/204645160/how-do-i-redirect-my-site-using-a-meta-tag
Please have a look on this ...
Thanks in advance.

@scrapinghub-ci @TEAM can anyone help me to solve this?


I have the solution for your problem

my username is jordan69420 and I have the solution for your problem just hire me on gitcoin

Please keep this to the original issue, thanks.


Fixed deprecated root call

Changes
Fixed deprecated call with Symfony >= 4.3
The "Symfony\Component\Config\Definition\Builder\TreeBuilder::root()" method called for the "jwt_auth" configuration is deprecated since Symfony 4.3, pass the root name to the constructor instead.

Changing this in a backward/forward-compatible way would require something like the following:
https://github.com/sensiolabs/SensioFrameworkExtraBundle/blob/master/DependencyInjection/Configuration.php#L35-L40

@vfalduto - Our master branch is only Symfony 3 support at the moment. We have another base going for v4 called symfony-4-dev. If the target is v4, can you make your PR off of that branch? It will allow the CI to run properly.
Thank you!

Ran snyk test locally and everything passed.


Provide a dev service for git

A bit portion if the jgit functionality does require access to a remote server.
Using own accounts on github, gitlab or similar is dangerous in so many different ways:

accidents can happen
credentials can leak

It would be so much better / easier for users to have a dev service they can use.
This can also make sense for other extensions using quarkus-jgit and their own dev services do require access to a git server (e.g. quarkus-backstage or quarkus-argocd). See:

https://github.com/quarkiverse/quarkus-backstage/issues/15

Alterntives (?)
An alternative could be setting up bare repositories. This is something that could work for unit testing etc.
I am not really sure however, if this would be well respected for integration with other extensions, as they may not accept paths etc.
Implementation ideas
Maybe we could use something like:

gitea
gogs
gitbucket

We could use something like https://testcontainers.com/modules/git/, which starts a Git server and is a TestContainer module already


RG353V retroarch menu button key not working properly

Hi,
everytime I change my rg353v hotkey retroarch menu button, it works for the first time, but everytime I quit retroarch and back again, the hotkey button is not bring me to the menu instead quitting the retroarch. This is not happen on rg353m
Regards,

I need more information.  What version of ArkOS are you running?  What key are you trying to change the retroarch hotkey to?

Hi,
I’m using the latest version on this github.
I try to bind it to select + start.
and once it got problem, I try to bind it to L1+R1, but still same.
Like I said, the first time it’s working, once I restart the device the hotkey going for quit retroarch

Are you using the ozone menu driver?  If so, have you done an OTA update yet? The version of ArkOS you should be on now is v2.0 (12102022)

Yes I'm using ozone, I just done the OTA update and now it fixed. Thanks.


fix: bump to core 3

What does this PR do?
bumps to sfdx-core@3
removes unused files
fixes jsdocs
refactors a few unnecessary variables
What issues does this PR fix or reference?
@W-11092409@

@WillieRuemmele do you want to release this as minor v3 or as telemetry v4? Make sure to manually bump the version if v4.

QA notes:
Checkout https://github.com/salesforcecli/plugin-telemetry/pull/282 and yarn link this PR:
✅ lib respects SFDX_DISABLE_INSIGHTS=true
❌ lib respects disableTelemetry=true setting
❌ when telemetry is disabled, ./bin/run telemetry | sfdx telemetry prints the ID as undefined

With telemetry enabled:
✅ lib respects SFDX_TELEMETRY_DEBUG and can run the uploader manually, also looked at the log and all the event props are properly populated:

✅ lib respects SFDX_TELEMETRY_PATH:

✅ lib respects SFDX_TELEMETRY_DISABLE_ACKNOWLEDGEMENT when the ack file doesn't exists (first run):

QA notes:
With oclif/core PR linked:
✅ plugin-telemetry respects disableTelemetry setting:
disableTelemetry=true

disableTelemetry=false

QA notes:
With oclif/core PR linked
✅ plugin-telemetry respects disableTelemetry setting:


While {} busy waits

Just a suggestion: there are quite a few places where there's a while ..some bit condition.. {} loop.
Sometimes it would be helpful if in debug builds these loops would time out and panic if the condition doesn't get hit in some sane amount of time, i.e. u16::MAX would be usually plenty.
I ran into a thing where RTC::new() was trying to call enable_lse(), which hangs forever if your devel board crystal isn't running properly for some reason. The issue is of course easy enough to find in this case, but in some other situations might save a bit of headache.
Perhaps a busywait function that takes the condition as closure ? I.e. something like
fn busywait<F>(f: F) where
    F: FnOnce() -> bool + Copy {

    let mut countdown = u16::MAX;
    while f() && (countdown != 0) {
        countdown-=1;
    };
    if countdown == 0 {
        panic!("timeout");
    }
}

which can then be called like this
busywait( || self.rb.csr.read().lserdy().bit_is_clear() );

The backtrace when it fails points right at the source of the problem.
One could of course add #[cfg(not(debug_assertions))] path here to eliminate the counter from release builds.
Does this sound like a good change ? If yes, I'll be happy to PR it

That sounds very sensible. I think even in cases where you know that such a loop shouldn't deadlock, it makes sense to have such a mechanism to detect wrong assumptions and bugs (hardware and software).
I'm somewhat concerned about different behavior between debug and release builds though (even though there's precedent for that). Maybe we should add a Cargo feature (default-off at first) to make that more explicit? If we do that, should we enable it by default at a later date?
Another concern is the initial value for countdown. You say u16::MAX should be plenty, and that makes sense to me, but it wouldn't hurt to think this through a bit more, on a case-by-case basis.
But all of those are details. I'd definitely merge this, if it's activated via Cargo feature and defaults to off.


Add Handling Data Source Request Errors

Resolves: #135

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 99.75%. Comparing base (342b39e) to head (bb89dc9).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #140      +/-   ##
==========================================
- Coverage   99.76%   99.75%   -0.01%
==========================================
  Files         160      159       -1
  Lines        2508     2494      -14
  Branches      538      537       -1
==========================================
- Hits         2502     2488      -14
  Misses          6        6

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Command - Create flux actions

Create a command that can create flux actions with some code in it.
Depends on moo-cli architecture and also make it able to output files given an argument.

Yes :)
Wait for my next PR. Its almost done LOL

Done. Its on PR #48


Fix typo in datastore.py

nonexistant -> nonexistent

Thanks! I’ve put it in https://github.com/google/vizier/commit/cfbd63ede683bccbecd3506ac9fc52fd3e6fb922
(Our codebase’s source of truth currently lives internally in Google and I needed to push it out.)


No FetchXml examples and documentation confusing

Hi,
With regards to the retrieveMultipleRecords (Client API reference) page:

The page makes 3 references to the use of fetchXml attribute but doesn't provide any examples
One reference specifically states: "When you specify a FetchXML query for the options parameter, the query should not be encoded.", and yet every user post I have found through online searches makes use of encodeURIComponent(fetchXml). This is really confusing.

Please update the documentation. I think that it's been out of date for some time now.
Thanks,
Kaine

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

ID: f0c196bb-4bbb-80e2-0bba-42d130621024
Version Independent ID: 56d1575c-1868-34c6-992d-e3797024e413
Content: retrieveMultipleRecords (Client API reference) in model-driven apps - Power Apps
Content Source: powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-WebApi/retrieveMultipleRecords.md
Service: powerapps
GitHub Login: @Nkrb
Microsoft Alias: nabuthuk

Thanks for reaching us. We have updated the docs and pushed it live. Closing the issue. If you need further help, please reopen or create a new issue.


OHIF Viewer doesn't properly handle lack of permission to read Google Health Data Store

Environment: Using the latest from Github and connecting to the Google Health APU using the CLIENT_ID environment variable.
Describe the Bug
I have a dataset in the Google Health for which I have all of the appropriate IAM permissions. The dataset contains 2 data stores, one of which I have Healthcare Dicom Viewer Role for and one of which I don't. When I select the data store I have the role for the expected behavior occurs.  But when I select the data store for which I don't have the proper role, I see nothing but a blank screen in the Viewer and in fact I can't even hit the back button and return to the data store screen. Looking at the console I see:
request failed:
XMLHttpRequest { onreadystatechange: onreadystatechange(), readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "https://healthcare.googleapis.com/v1beta1/projects/xxxxxx/locations/northamerica-northeast1/datasets/dataset--xxxxx/dicomStores/xxxx-c2/dicomWeb/studies?limit=25&offset=0&fuzzymatching=false&includefield=all&StudyDate=19520513-20201023", status: 403, statusText: "Forbidden", responseType: "json", response: (1) [\u2026] }
app.bundle.d04f1cff6549aeffafdc.js:95856:15
Error: request failed
Stack trace:
onreadystatechange@http://localhost:3000/app.bundle.d04f1cff6549aeffafdc.js:95857:27
app.bundle.d04f1cff6549aeffafdc.js:95861:15
Array [ {\u2026} ]
app.bundle.d04f1cff6549aeffafdc.js:95862:15
Error: request failed
Stack trace:
onreadystatechange@http://localhost:3000/app.bundle.d04f1cff6549aeffafdc.js:95857:27
StudyListRouting.bundle.9cf23067351c88a2044c.js:2232:17
request failed:
XMLHttpRequest { onreadystatechange: onreadystatechange(), readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "https://healthcare.googleapis.com/v1beta1/projects/xxxxxx/locations/northamerica-northeast1/datasets/dataset--xxxxxx/dicomStores/xxxxxxx--c2/dicomWeb/studies?limit=25&offset=0&fuzzymatching=false&includefield=all&StudyDate=19520513-20201023", status: 403, statusText: "Forbidden", responseType: "json", response: (1) [\u2026] }
app.bundle.d04f1cff6549aeffafdc.js:95856:15
Error: request failed
Stack trace:
onreadystatechange@http://localhost:3000/app.bundle.d04f1cff6549aeffafdc.js:95857:27
app.bundle.d04f1cff6549aeffafdc.js:95861:15
Array [ {\u2026} ]
app.bundle.d04f1cff6549aeffafdc.js:95862:15
Error: request failed
Stack trace:
onreadystatechange@http://localhost:3000/app.bundle.d04f1cff6549aeffafdc.js:95857:27
StudyListRouting.bundle.9cf23067351c88a2044c.js:2232:17
The responseURL has a reasonable status text of "Forbidden" as I don't have the required permissions, but I would like the app to return to the list of data stores and display the error rather than just show a blank screen.
Any thoughts on this would be greatly appreciated.  If someone can give me a few pointers, I'd be happy to spend a little time trying to code a fix. But I suspect this might be obvious to someone familiar with the code.
Thanks
Howard

It looks like any network errors causes the screen to go blank.

Could be.  Any chance of a fix?

I added a feature request #2173.

Great! Thanks
Howard

From: Eric<EMAIL_ADDRESS>Sent: Monday, November 16, 2020 5:33 PM
To: OHIF/Viewers<EMAIL_ADDRESS>Cc: Lander, Howard Michael<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [OHIF/Viewers] OHIF Viewer doesn't properly handle lack of permission to read Google Health Data Store (#2133)
I added a feature request #2173https://github.com/OHIF/Viewers/issues/2173.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/OHIF/Viewers/issues/2133#issuecomment-728370341, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAJUNLL7DWHEDT4UO37UGFLSQGSCVANCNFSM4S47B6YA.

Please review the latest code in the master branch. I am confident that this issue has been resolved. If it persists, kindly reopen the issue with updated details.
Try viewer-dev.ohif.org instead of viewer.ohif.org
Our viewer.ohif.org is deployed from release branch while viewer-dev.ohif.org is our master  branch
Read more about branch explanations here https://docs.ohif.org/development/getting-started#developing

I'm glad you have fixed this, but I won't be able to review the fix as the project it occurred in is longer extant.  But I'm sure if I saw this bug others would have also seen it so thank you for fixing it.


support NTLM Authorization Proxy Server

The current http_proxy environment variable setting does not work with a proxy server using NTLM protocol. Can we add support to this?

close this issue since it is the same as https://github.com/cloudfoundry/cli/issues/577

I think this won't work with the default Go http transport (proxy returns 407, doesn't support multiple http rounds).
You will need to extend Go's net/http/transport.go file, e.g. WIP:
https://gist.github.com/gogolok/018443687392ea4682bd82ac8712b363


Add new MESH xrefs

This PR adds 81 new cross references to MESH that I curated (see https://github.com/biopragmatics/biomappings/pull/91). I created a table of these mappings for easier review, here: https://github.com/bgyori/cell-ontology/blob/0dc794baec0521e410a0726ce290f47b91d30ebb/cl_mesh_new.tsv.

@shawntanzk , @matentzn
Is the ROBOT diffs check failing, because it is running on a forked branch? Can I ignore it?

Can I ignore it?

yeah its failing cause of github token thinggy I think, no worries at all, just ignore it unless you really need the robot diff :)

Can I ignore it?

yeah its failing cause of github token thinggy I think, no worries at all, just ignore it unless you really need the robot diff :)

Thanks @shawntanzk . I have checked the git diffs in the raw owl file and I also did spot checks in Protege. Everything looks fine.

Thanks @bgyori for your contribution to CL.


README: publication update

Reference to the TACAS'24 paper.

@jurajsic Juraj, there are two remaining items in the issue #319 . Can you explain what do you mean by that? I want to finish it off.

@jurajsic Juraj, there are two remaining items in the issue #319 . Can you explain what do you mean by that? I want to finish it off.

graphviz - mention why it is needed in readme, that it is used for showing automata
The coverage - see #142

I will merge this PR and the remaining issues can be resolved in another PR.


OAIHarvest: Fix for call_authorlist_extract

Fixes the error in string formatting cause by the fact that
the ticketid returned from create_authorlist_ticket() is not int.

Signed-off-by: Sebastian Witowski<EMAIL_ADDRESS>

Thanks, amended commit log message, added Jan and yours truly as reviewers, and merged as 3744d6df47902b660ba0863d056cbc836b76d034.


removes code duplication at handling HEAD method

Handling of HEAD method sets content length for JSON body, repeating the measurement logic from response.length. This PR fixes that, removes code duplication and centralising response body length calculation at response.length, also removing external dependency here.
If #1399 will also be merge it will allow to remove is-json dependency completely.

Actually, I probably formulated bad the objective of this PR: I would like to remove body type checking and size calculation from HEAD handling at Application and have it just at one place - at response.length. No extra tests needed as HEAD already covered by existing tests.


Cross System Comparison

One common challenge for SAP customers is finding differences between systems. I occurred to me that abapGit could be great at comparing repos across systems.
I see this similar to how offline repos work. However, instead of uploading the ZIP, we retrieve the ZIP via an RFC connection from another SAP system.
AG can already serialize to ZIP so adding an RFC function to AG to get this ZIP for a given SAP package would get us really close to making this feature happen.

With zip, I guess this is an ad-hoc task? And this feature via zip is borderline git client.
With git, connect the two systems to a git server(abapGitServer?), push from one system, compare in the other system.
Alternatively, download the 2 zips, unzip to local pc, and use a tool like WinMerge to compare.
Plus adding the "compare zips via RFC feature", will require new screens(eg. select RFC destination) and objects, as abapGit works only client <-> server, not client <-> client

So basically integrate this process into the abapGit UI?

Git init
Create ZIP on DEV
Commit
Create ZIP on QAS
Commit
View the diff

SCU0 and /SDF/CD_CCA work quite well for me

if you like, maybe a separate repository under https://github.com/abapGit ?

Are you familiar with transaction SREPO ("Repository Comparison")? I used it several times for finding differences in landscapes.

I'm aware of the standard tools... but they only go so far (and have the look from the 90s)
I got it working in AG 😄 (took <100 lines of code)
It requires AG developer version and one RFC function on the remote system (+authorization to execute it, of course).

In your offline repo, click "import rfc", pick the RFC destination, and the rest works as usual. I haven't tried but it should also work with any table content you include in your repo. And you can pull anything you like from the other system (since we now have selective pull).

that's cool 😁
to me, it seems more like an "import from other system in the landscape" scenario, which is cool, but probably easier using CTS transports. Also the real benefit of using abapGit is having everything versioned in git, which is skipped via RFC.

I was thinking about the other direction: run AG in Dev and import from Q or P (via the RFC). You can revert to the current productive state for example. Since it doesn't depend on CTS transport routes, you could pull from any system reachable via RFC, for example import a package from ERP to BW.
It allows you to do much more with AG esp if your system is completely offline.
With great power comes great responsibility. PR on Monday

import from Q or P: I'd see that as a security risk, a user running abapGit will need some wide authorizations. Instead I'd suggest scheduling a job to mirror the contents to git(ie. no RFC, so safer).
ERP to BW: yea, but why not just version it in git, using abapGitServer, the user will get more features

"Cross system comparison" + "Rollback to previous version" + "Moving/copying objects between systems" are all use-cases which would be nice to have a description of.
They can also be solved in different ways, for abapGit I think the default way to solve these scenarios is using git.
With providing software comes responsibility, I think adding a RFC function module which requires wide authorizations to use can be dangerous if not used properly. And all the scenarios can be solved using git, possibly in a push setup.
I believe that recommending to use git will help users in the long run, having full versioning and a possible setup for performing code reviews.
If the user does not wish to use git, there is classic CTS and SAP standard reports which can already solve some of the scenarios.

Hmm, while it's a nice idea, I'm also a bit sceptical whether this is good practice. Git is an excellent tool and we're potentially bypassing it completely. There may be some niche scenarios where this may be a minor shortcut, but I agree with Lars that they can all still be solved with Git.
I see another danger that we're dumbing down VCS too much, in the sense that it makes it too easy for folks to use it as a shortcut to shuffle things around their landscape and never really learn to use Git or even drop it altogether. I see a scenario where one day things go wrong because someone pulls from QA and accidentally wipes a load of work in progress. Git repository? What Git repository? Oops.
Guess what they'll blame? abapGit. People love blaming tools, my project has completely banned SE16N just because someone misused it to edit a table with some bad consequences.
You can set up automated backups to a Git repo. Several systems can even backup to their own branch in the same repo, giving you a wide range of comparison tools. Then in Dev you can pull from your QA branch and still retain complete history and the ability to revert.

I understand the concerns and who can you use tools and how to use them - custom or SAP standard - is always up for debate. For example, you could also create a transport of copies in Prod and import it into Dev (I have seen worse).
I mentioned before that AG is missing a proper security checks (#3758) but this always ends with "developer has SAP_ALL". So what's the point of talking good/best practices if you don't want to or can't enforce them? (taking away SE16N from a developer? 🙄 ).
The RFC feature is actually different in that sense since it requires extra authorizations. The security team will have a say whether AG users can "Import via RFC" or not. So there's a bit of good practice.
The right thing to do is to document the AG usage scenarios and label them with "best practice", "possible alternative" and "exceptions". Let's talk about it on our next call...
PS: If we follow the "oops, no git repo" argument, then we should remove offline repos altogether.
PPS: I consider it good practice to write-protect all your repos in Dev (and this switch should have an auth check 😉).

"developer has SAP_ALL" yea, that's the current state
BUT, we are crossing some lines by providing and encouraging the use of RFC, it then becomes "please create a RFC user with SAP_ALL in production and/or QA, which can be used for abapGit", which can turn into something really bad for the customer

The way I see it, offline repos fulfil a real need and RFC adds (too much) convenience on top. The effort of Zip files makes Git the preferred alternative. But I feel that a super convenient RFC that is easier to use than a Git repo could be a big temptation given that the majority of ABAP developers are not that familiar with Git.
I agree this would be a great topic to get wider consensus on the next call 👍
Slightly off the topic, SAP_ALL in DEV has become the exception over my last few projects, I don't think it's that common anymore.

Personally I don't think the authorization part is too bad, in addition to the RFC user with RFC authorization it needs S_DEVELOP etc in read mode but shouldn't need much more. For me it would be much more of a problem arguing that abapGit needs to be in a production system or a test system with real application data (even if the RFC user is in a technical client). abapGit being the largest report ever were some unknown people on the internet call the most private APIs of the SAP system and modify SAP standard db tables directly :P

Agree, the number of times AG will be in productive systems will be limited (any volunteers?). So indeed some of what we discuss is hypothetical. However, there are plenty of non-prod systems or systems of other landscapes that share developments. Maybe you want to compare packages from the SAP namespace to see if you applied the same notes everywhere?
Sure, SAP systems are their own category. But times are changing. Open source is everywhere (how many SAP systems are running on Linux?). I predict there will be much more of OSS in the ABAP world, too, also in production.

I think it would be a nice feature but the use cases I would mostly use it for (as you mentioned check notes / compare standard packages in an upgrade project, did any transports get stuck or overtaken) are already covered very well by the standard tooling. You would get the comparison for objects that are not versioned in SAP standard but are in abapGit, which would be nice, but you also "lose" the direct integration with the CTS version history, who changed the object when, which transport was it and what is its description, how much was changed, "only whitespace changes" etc. And of course the standard ALV features. So basically I think the feature would be great but for me it already exists with non-git-related tooling so I don't think it would be worth the effort of adding all this to abapGit to make it the better solution without drawbacks. (And of course CCAPPS works on production systems :P )
But I also agree abapGit in production will be something we see more and more. For example if it's a part of the continuous integration pipeline. Or you could even argue the cloud systems have it preinstalled.

I don't think users will all of a sudden use offline repos with RFC and skip Git. They are smart enough to understand the use cases and benefits of using Git repos.

I think this is where we have different experiences, because I'm coming from the exact opposite angle. For many people abapGit is nothing more than a tool to upload and download code and fetch stuff from the internet. The majority of developers I speak to and work with have barely heard of Git. Not to say they aren't smart, but even once you start working with Git it can take some time to get your head around properly (I still haven't).
Recently I tried to introduce abapGit to some smart systems managers and basis folk as a way to manage parallel development systems, and among the first questions was why we need a Git server, can't we go direct between systems?
And not that long ago I encountered a setup where developers pushed their work to QA via TOCs and STMS, all in the name of avoiding transport conflicts. I hope that explains my more cautious approach... we're already handing people a loaded gun, let's not remove the safety catch :-)
Maybe a compromise is to make RFC readonly?

Happy to discuss more with a broader audience.

Agree. 🙂


tilemap cannot be released for jade

Could not resolve rosdep key 'libjsoncpp' for distro 'utopic':
No definition of [libjsoncpp] for OS version [utopic]
rosdep key : libjsoncpp
OS name    : ubuntu
OS version : utopic
Data: fedora:

jsoncpp
ubuntu:
precise:

libjsoncpp0
saucy:
libjsoncpp0
trusty:
libjsoncpp0
vivid:
libjsoncpp0
wily:
libjsoncpp0v5
xenial:
libjsoncpp1

Ditto for xenial

Well, that's unfortunate.  https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml has the following for jsoncpp-related things:
libjsoncpp:
  fedora: [jsoncpp]
  ubuntu:
    precise: [libjsoncpp0]
    saucy: [libjsoncpp0]
    trusty: [libjsoncpp0]
    vivid: [libjsoncpp0]
    wily: [libjsoncpp0v5]
    xenial: [libjsoncpp1]
libjsoncpp-dev:
  arch: [jsoncpp]
  debian: [libjsoncpp-dev]
  fedora: [jsoncpp-devel]
  gentoo:
    portage:
      packages: [dev-libs/jsoncpp]
  ubuntu: [libjsoncpp-dev]

So libjsoncpp is indeed missing on utopic, although it looks like it's present for xenial.

@evenator , give it another try now.

Is this still an issue or can it be closed?

I don't know. I' have to try it again.

Confirmed that tile_map is building in jade: http://build.ros.org/job/Jbin_uT64__tile_map__ubuntu_trusty_amd64__binary/


Nodemcu isn't detected (COM)

the program doesn't see the com and in device manager it's the same. Nothing is connected. I do have an arduino nano which works perfectly and is detected by device manager. I tried 2 different cables and pressing the flash and reset buttons on the esp8266.
Thanks for helping!

So most likely the reason for this is a driver issue the driver is cp2102 driver esp8266
or here is a link hope this helps
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
just unzip the driver and run the exe and you should start seeing the esp8266

I don't think this will work. The nodemcu was just broken. I bought another one and it worked fine

thanks for the answer though

no problem

I guess issues should be close since it is not a nodemcu problem, but a USB-to-Serial IC problem.
Look at https://github.com/nodemcu/nodemcu-flasher/issues/31
Close issue 29 and issue 31 :-) 👍

So most likely the reason for this is a driver issue the driver is cp2102 driver esp8266
or here is a link hope this helps
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
just unzip the driver and run the exe and you should start seeing the esp8266

Worked for me, the COM port was available after installing the driver.


Render preview of documentation in quick navigation

Bug/issue #, if applicable: 104383742
Summary
This updates the layout of the "Quick Navigation" feature introduced by @sofiaromorales to also show a compact preview of the documentation page for the selected result.
Example:

This update currently requires a feature flag to be enabled in theme-settings.json, but I would like to remove that if the feedback for this new UI is generally positive.
Setting: features.docs.quickNavigationPreview.enable (set to true to opt-in)
Testing
Generally, you should be able to just add the feature flag from above to an existing DocC project and try it out using a build of the renderer built from this branch.
Example:

Checkout this branch and build it with npm run build
git clone git@github.com:apple/swift-argument-parser.git
To setup swift-argument-parser repo with swift-docc-plugin and needed feature flag: cd swift-argument-parser; curl https://gist.githubusercontent.com/mportiz08/03193ba981c168697c89c2de1fccdd6f/raw/b6b5886be9d4cc18e8764bd2d90f655a6a22c1c9/add-plugin-and-settings.diff|git apply
Run the preview with env DOCC_HTML_DIR=/path/to/swift-docc-render/dist swift package --disable-sandbox preview-documentation --target ArgumentParser

That's just one example of course—feel free to try out previewing your own example content however you'd like.
Things to test:

preview works for doc pages
preview works for tutorial pages
loading UI should show up if it takes a full second or more to load data
"Preview unavailable" message should show if an error happens when attempting to load data for a page
preview should generally load in a performant manner, even when scrolling results quickly
preview should not show up without feature flag enabling it (normal quicknav experience without it)

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[X] Added tests
[X] Ran npm test, and it succeeded
[X] Updated documentation if necessary

@swift-ci test

@sofiaromorales I can't officially add you as a "Reviewer" to the PR, but I would very much appreciate your review if you have the time to check this out (and also no worries if not). Thanks for your hard work on the original quick navigation feature that this builds on!


No Train button visible on Ubuntu 16.04

There is no button to Train, despite seeing it in screenshots of the UI (A green button).  The only error on install was with an "optional" dependency, fsevent.  Also, I cannot bypass the standards rasa /parse?q= call, per the instructions, as it merely says /parse and /api/parse are not valid.  I looked at the routes and I saw nothing for parse.  It is running on an AWS instance that is running many third party programs.  I am familiar with permissions, port forwarding, etc.
I think the button not showing is due to a series of console warnings related to font-awesome issues?
Image - http://ai.kadho.cn/font-issues.jpg
Rasa port 5000 - Working well
RasaUI port 5001 - Can create agents,entities,intents, but cannot train and cannot use /parse?q= or /api/parse?q=
It would seem the documentation is out of date.

@brianhodge - thanks for pointing this out - I believe the documentation is incorrect ...
Could you try port : 5001/api/v2/rasa/parse?q=

That fixed that particular issue!  Thank you!  Great job by the way, really nice looking app.
As for the green button not showing up in Training, is the button built from any of the failing font libs?  Like simple lines builds a green rect and slaps some text on top?
Thanks again.
My company is working on AI models and integration heavily in two countries and this request came across for RasaUI.  I am the Technical Director and really hoping to solve this ASAP to increase production speed.
<EMAIL_ADDRESS>http://www.kadhosports.com
http://www.kadho.cn

Hi @brianhodge - glad to hear it has been useful!
I dont believe it would be related to the font problem, if you are seeing other icons throughout the app. I think this is a bug. I will look into this and provide a response ASAP.

Thank you very much for your time!

Hi @brianhodge - I can replicate this issue if there are no entities/entity variables and if there is no expression attached to a entity. I would suggest opening up the dev tools in the browser along with the console and see which errors you are getting.

Image of console
Console Error
Are you saying our trained models have an issue, or that there is something in the RASAUI flow i neglected to add?  Please forgive me, I am just trying to get this up for the team with limited knowledge.  I am catching up.
Thanks!
-Brian

im not getting button font and response also has some problem. i will get response object but entities array is empty, intents has only two objects "name" and "text".
("name" as "greet" and "text" as queries typed in text box)

I came across the same issue. Start Training button is visible only when atleast one entity is mapped to an expression for a given agent.


Model management improvements

I'm adding model metadata to a separate file when you download a model. This is stuff the model itself might not know about it (or might lie about) such as when and where it was downloaded from.
I'm storing it as a separate file, and not inside model_info.json, so we don't have to edit that file from inside translateLocally (i.e. not running the risk losing json data that that particular version of translateLocally doesn't recognise) and we can just change the file format whenever we like it.
Todo:

[ ] In the settings window in the model list, show the name of the repository the user chose. Using the repository url as key.
[ ] In the model selection list in the main window, show the same repository name

Possible improvements after this:

Allow users to "favourite" or tag models so they always appear at the top of the list.

Small update on where this is at: it works, but it crashes on a bad memory access. Not sure yet what is happening exactly, it might be something inside a signal handler that listens to the externalRepositories valueChanged() signal.
Steps to reproduce:

Start translateLocally
Go to translator settings
Go to the repository tab, add a new one via "import repository", doesn't matter what you type in
Click "OK" to save
EXC_BAD_ACCESS

Process 5248 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x353)
    frame #0: 0x0000000100053681 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] QArrayDataPointer<QList<QString> >::QArrayDataPointer(this=0x00007ff7bfefc7b0, other=0x0000000000000353) at qarraydatapointer.h:69:19 [opt]
   66  	    }
   67
   68  	    QArrayDataPointer(const QArrayDataPointer &other) noexcept
-> 69  	        : d(other.d), ptr(other.ptr), size(other.size)
   70  	    {
   71  	        ref();
   72  	    }
Target 0: (translateLocally) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x353)
  * frame #0: 0x0000000100053681 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] QArrayDataPointer<QList<QString> >::QArrayDataPointer(this=0x00007ff7bfefc7b0, other=0x0000000000000353) at qarraydatapointer.h:69:19 [opt]
    frame #1: 0x0000000100053681 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] QArrayDataPointer<QList<QString> >::QArrayDataPointer(this=0x00007ff7bfefc7b0, other=0x0000000000000353) at qarraydatapointer.h:70:5 [opt]
    frame #2: 0x0000000100053681 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] QList<QList<QString> >::QList(this=0x00007ff7bfefc7b0, (null)=0x0000000000000353) at qlist.h:100:7 [opt]
    frame #3: 0x0000000100053681 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] QList<QList<QString> >::QList(this=0x00007ff7bfefc7b0, (null)=0x0000000000000353) at qlist.h:100:7 [opt]
    frame #4: 0x0000000100053681 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] SettingImpl<QList<QList<QString> > >::value(this=0x000000000000032b) const at Settings.h:70:16 [opt]
    frame #5: 0x0000000100053681 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] ModelManager::ModelManager(this=0x00006000002207d0)::$_0::operator()() const at ModelManager.cpp:90:52 [opt]
    frame #6: 0x0000000100053673 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ModelManager::ModelManager(QObject*, Settings*)::$_0>::call(f=0x00006000002207d0)::$_0&, void**) at qobjectdefs_impl.h:146:13 [opt]
    frame #7: 0x0000000100053673 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) [inlined] void QtPrivate::Functor<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0>::call<QtPrivate::List<>, void>(f=0x00006000002207d0)::$_0&, void*, void**) at qobjectdefs_impl.h:256:13 [opt]
    frame #8: 0x0000000100053673 translateLocally`QtPrivate::QFunctorSlotObject<ModelManager::ModelManager(QObject*, Settings*)::$_0, 0, QtPrivate::List<>, void>::impl(which=<unavailable>, this_=0x00006000002207c0, r=0x00007ff7bfeff3b0, a=<unavailable>, ret=0x0000000000000000) at qobjectdefs_impl.h:420:17 [opt]
    frame #9: 0x0000000103363a43 QtCore`___lldb_unnamed_symbol1916$$QtCore + 803
    frame #10: 0x000000010000ba38 translateLocally`Setting::valueChanged(this=<unavailable>, _t1=<unavailable>, _t2=<unavailable>) at moc_Settings.cpp:136:5 [opt]
    frame #11: 0x000000010005be45 translateLocally`Setting::emitValueChanged(this=0x00007ff7bfeff3b0, name=<unavailable>, value=<unavailable>) at Settings.cpp:5:10 [opt]
    frame #12: 0x000000010006471f translateLocally`SettingImpl<QList<QList<QString> > >::setValue(this=0x00007ff7bfeff3b0, value=QList<QList<QString> > @ 0x00007ff7bfefca50, behavior=<unavailable>) at Settings.h:80:13 [opt]
    frame #13: 0x0000000100063f9f translateLocally`TranslatorSettingsDialog::applySettings(this=<unavailable>) at TranslatorSettingsDialog.cpp:93:30 [opt]
    frame #14: 0x0000000103363a43 QtCore`___lldb_unnamed_symbol1916$$QtCore + 803
    frame #15: 0x0000000102425992 QtWidgets`QDialog::done(int) + 82
    frame #16: 0x0000000103363a43 QtCore`___lldb_unnamed_symbol1916$$QtCore + 803
    frame #17: 0x00000001023b2311 QtWidgets`___lldb_unnamed_symbol3661$$QtWidgets + 209
    frame #18: 0x0000000103363d32 QtCore`___lldb_unnamed_symbol1916$$QtCore + 1554
    frame #19: 0x00000001022f5ecf QtWidgets`___lldb_unnamed_symbol1800$$QtWidgets + 111
    frame #20: 0x00000001022f5d6c QtWidgets`___lldb_unnamed_symbol1798$$QtWidgets + 236
    frame #21: 0x00000001022f6f59 QtWidgets`QAbstractButton::mouseReleaseEvent(QMouseEvent*) + 185
    frame #22: 0x00000001022170b6 QtWidgets`QWidget::event(QEvent*) + 390
    frame #23: 0x00000001021bf177 QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 247
    frame #24: 0x00000001021c18c6 QtWidgets`QApplication::notify(QObject*, QEvent*) + 6086
    frame #25: 0x00000001033118f9 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 169
    frame #26: 0x00000001021bf93d QtWidgets`QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) + 941
    frame #27: 0x000000010222fc2e QtWidgets`___lldb_unnamed_symbol789$$QtWidgets + 1662
    frame #28: 0x000000010222e98b QtWidgets`___lldb_unnamed_symbol784$$QtWidgets + 251
    frame #29: 0x00000001021bf177 QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 247
    frame #30: 0x00000001021c02f5 QtWidgets`QApplication::notify(QObject*, QEvent*) + 501
    frame #31: 0x00000001033118f9 QtCore`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 169
    frame #32: 0x0000000101681b7a QtGui`QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) + 2426
    frame #33: 0x00000001016d01cb QtGui`QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 427
    frame #34: 0x000000010383226b libqcocoa.dylib`___lldb_unnamed_symbol284$$libqcocoa.dylib + 43
    frame #35: 0x00007ff80e81819b CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #36: 0x00007ff80e818103 CoreFoundation`__CFRunLoopDoSource0 + 180
    frame #37: 0x00007ff80e817e7d CoreFoundation`__CFRunLoopDoSources0 + 242
    frame #38: 0x00007ff80e816898 CoreFoundation`__CFRunLoopRun + 892
    frame #39: 0x00007ff80e815e5c CoreFoundation`CFRunLoopRunSpecific + 562
    frame #40: 0x00007ff8174bd5e6 HIToolbox`RunCurrentEventLoopInMode + 292
    frame #41: 0x00007ff8174bd213 HIToolbox`ReceiveNextEventCommon + 283
    frame #42: 0x00007ff8174bd0e5 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 70
    frame #43: 0x00007ff8112551fd AppKit`_DPSNextEvent + 927
    frame #44: 0x00007ff8112538ba AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1394
    frame #45: 0x00007ff811245f69 AppKit`-[NSApplication run] + 586
    frame #46: 0x0000000103831008 libqcocoa.dylib`___lldb_unnamed_symbol265$$libqcocoa.dylib + 2120
    frame #47: 0x000000010331abe6 QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 470
    frame #48: 0x0000000103311f22 QtCore`QCoreApplication::exec() + 130
    frame #49: 0x000000010000e529 translateLocally`main(argc=1, argv=0x00007ff7bfeff6a0) at main.cpp:58:12 [opt]
    frame #50: 0x0000000100e7d51e dyld`start + 462

I can confirm the issue. Also seems PCRE2 build has changed so that also needs to be figured out.

Also, something to do about existing installations on first run?
Could not parse model meta file "/home/dheart/.config/translateLocally/enes.student.tiny11-1645387947/.modelMeta.json" : file cannot be opened for reading
Could not parse model meta file "/home/dheart/.config/translateLocally/enbg.student.tiny11-1645371395/.modelMeta.json" : file cannot be opened for reading
Could not parse model meta file "/home/dheart/.config/translateLocally/bgen.student.tiny11-1645371287/.modelMeta.json" : file cannot be opened for reading
Could not parse model meta file "/home/dheart/.config/translateLocally/eng-fin.transformer-tiny11-jointvocab-1645622852/.modelMeta.json" : file cannot be opened for reading
Could not parse model meta file "/home/dheart/.config/translateLocally/ende.student.tiny11-1645387908/.modelMeta.json" : file cannot be opened for reading
Could not parse model meta file "/home/dheart/.config/translateLocally/esen.student.tiny11-1645387941/.modelMeta.json" : file cannot be opened for reading
Could not parse model meta file "/home/dheart/.config/translateLocally/encs.student.tiny11-1645458204/.modelMeta.json" : file cannot be opened for reading
Could not parse model meta file "/home/dheart/.config/translateLocally/deen.student.tiny11-1645387921/.modelMeta.json" : file cannot be opened for reading
Could not parse model meta file "/home/dheart/.config/translateLocally/eten.student.tiny11-1645622541/.modelMeta.json" : file cannot be opened for reading

I've spent a bit of time looking into this. Beforehand, I believe the codepath taken was https://github.com/XapaJIaMnu/translateLocally/blob/4473caa3a2d48c755e021cc13ca07c69ffd98434/src/settings/Settings.h#L87
AppendToValue, and RemoveFromValue as opposed to setValue.
However, even if I completely remove the code that modifies the value_ the crash still happens when trying to emit the QList<QStringList>. Emiting the the new updated list, as opposed to the one saved in settings (value) also results in a crash.

This is a workaround. Since valueChanged already carries it's necessary information.
diff --git a/src/inventory/ModelManager.cpp b/src/inventory/ModelManager.cpp
index 81fd009..542056f 100644
--- a/src/inventory/ModelManager.cpp
+++ b/src/inventory/ModelManager.cpp
@@ -86,8 +86,8 @@ ModelManager::ModelManager(QObject *parent, Settings * settings)

     // Update RepoManager with data from settings (also reload on update of setting)
     repositories_.load(settings->externalRepos.value());
-    connect(&(settings->externalRepos), &Setting::valueChanged, [&]{
-        repositories_.load(settings->externalRepos.value());
+    connect(&(settings->externalRepos), &Setting::valueChanged, this, [&](QString name, QVariant value){
+        repositories_.load(qvariant_cast<QList<QStringList>>(value));
         fetchRemoteModels(); // Are we sure we want to do this on update?
     });

Everything here screams "Race condition" to me. We update the QSetting backing and we immediately read out of it, however QSetting documentation says it is re-entrant and it shouldn't really have half committed....

 Thank you! You might also solve this by using [=] as capture I suppose?

Yeah capturing by value should also work, HOWEVER, i find it a bit confusing to have a constructor to take Settings and not make it a member. I will leave it up to you to decide how to solve it, I don't feel too strongly about it. Also, since I read how QSettings backing works, I find that our SettingImpl is over-complicated. Writing a new Value to a QSettings field always overrides the previous, you can't append to it or remove elements from it efficiently. As such, I find that having a member T value_ is redundant since its only purpose is to go to the backing value. Thus I have simplified it to:
/**
 * SettingImpl<T>:
 * Class that represents an individual setting. Similar to QProperty in Qt6.
 */
template <typename T>
class SettingImpl : public Setting {
private:
    QString name_;
    QSettings& backing_;

public:
    SettingImpl(QSettings &backing, QString name, T defaultValue = T())
    : name_(name),
      backing_(backing){}

    T value() const {
        return qvariant_cast<T>(backing_.value(name_));
    }

    void setValue(T newvalue, Behavior behavior = EmitWhenChanged) {
        if (behavior == EmitWhenChanged && newvalue == value())
            return;

        backing_.setValue(name_, QVariant::fromValue<T>(newvalue));
        emitValueChanged(name_, backing_.value(name_));
    }

    // Alias for value() to make Settings make look more like a normal Qt class.
    T operator()() const {
        return value();
    }
};

Here is the diff:
diff --git a/src/settings/Settings.h b/src/settings/Settings.h
index 9c68cbe..890c152 100644
--- a/src/settings/Settings.h
+++ b/src/settings/Settings.h
@@ -48,58 +48,23 @@ template <typename T>
 class SettingImpl : public Setting {
 private:
     QString name_;
-    T value_;
+    QSettings& backing_;

 public:
     SettingImpl(QSettings &backing, QString name, T defaultValue = T())
-    : name_(name) {
-        if constexpr (std::is_same_v<QList<QStringList>, T>) {
-            value_ = backing.value(name, QVariant::fromValue<QList<QStringList>>(QList<QStringList>())).value<QList<QStringList>>();
-        } else {
-            value_ = backing.value(name, defaultValue).template value<T>();
-        }
-        // When the value changes, also store it in QSettings
-        connect(this, &Setting::valueChanged, &backing, &QSettings::setValue);
-    }
+    : name_(name),
+      backing_(backing){}

     T value() const {
-        return value_;
-    }
-
-    void setValue(T value, Behavior behavior = EmitWhenChanged) {
-        if  constexpr (std::is_same_v<QList<QStringList>, T>) {
-            // Don't emit when the value doesn't change
-            if (behavior == EmitWhenChanged && value == value_)
-                return;
-
-            value_ = value;
-            emitValueChanged(name_, QVariant::fromValue<QList<QStringList>>(value_));
-        } else {
-            // Don't emit when the value doesn't change
-            if (behavior == EmitWhenChanged && value == value_)
-                return;
-
-            value_ = value;
-            emitValueChanged(name_, value_);
-        }
+        return qvariant_cast<T>(backing_.value(name_));
     }

-    void appendToValue(QStringList entry, Behavior behavior = EmitWhenChanged) {
-        if  constexpr (std::is_same_v<QList<QStringList>, T>) {
-            value_.append(entry);
-            emitValueChanged(name_, QVariant::fromValue<QList<QStringList>>(value_));
-        } else {
-            Q_ASSERT_X(true, "appendToValue", (std::string("Developer error: Attempted to append a setting entry to a non-appendable type: ") + std::string(typeid(T).name())).c_str());
-        }
-    }
+    void setValue(T newvalue, Behavior behavior = EmitWhenChanged) {
+        if (behavior == EmitWhenChanged && newvalue == value())
+            return;

-    void removeFromValue(int index, Behavior behavior = EmitWhenChanged) {
-        if  constexpr (std::is_same_v<QList<QStringList>, T>) {
-            value_.removeAt(index);
-            emitValueChanged(name_, QVariant::fromValue<QList<QStringList>>(value_));
-        } else {
-            Q_ASSERT_X(true, "removeFromValue", (std::string("Developer error: Attempted to remove a setting entry to a non-removable type") + std::string(typeid(T).name())).c_str());
-        }
+        backing_.setValue(name_, QVariant::fromValue<T>(newvalue));
+        emitValueChanged(name_, backing_.value(name_));
     }

     // Alias for value() to make Settings make look more like a normal Qt class.

The main behavioural difference is that writing to the QSettings backend_ now happens in the main thread, as opposed to delegating it to a signal, but it should be instantaneous, and is more intuitive?

So, is this ready for review?

I think it is ready for review now. But please do poke it quite a bit.

Suggested improvement, can go in a different pr
settings.externalRepos -> repos with our default repositories part of the default constructors.
settings.externalRepos QList<QStringList> -> QMap<QString, Repository> with proper  plumbing so that we can serialise it. (Not sure if this is worth it it tbh, but it doesn't look like that much extra code: https://stackoverflow.com/questions/18144377/writing-and-reading-custom-class-to-qsettings )
That will allow us to remove the temporary repositories_ inside modelManager.

I say merge this for now, merge the other open PR and then make small incremental changes.

Gonna go with this 👍