Text is moved/deleted when moving cursor from inside a comment

Windows 7 64bit / Atom 0.177.0 / atom-jsdoc 0.8.1
I think this might have been introduced with 0.8.1, which I updated to this morning. If I disable this package the problem goes away, and I have also tried leaving it enabled and disabling all other community packages, but the problem remains.
It's easiest to see it in action I think:

Description: In various places, if I highlight text it deletes (and maybe moves) it. Or, if I click inside a comment, then click on the next line (without highlighting) it adds a // where the cursor ends.
This all appears only to happen when the first cursor position was a comment (perhaps only a single line comment). It doesn't happen in all comments but enough to reproduce.
Cheers!

I just noticed this as well. I'll try to get a fix in tonight. I've been sort of scrambling to get the package updated to work with the new atom API's, looks like I didn't test well enough.

Should be fixed now with version 0.9.0. Let me know if you still have any issues.


chore: add COMMIT_SHA to Docker build action

Fixes #347

COMMIT SHA is no longer used in the docker file after #389


Refactored the homekit component

Assignment 1 - Sebin Hwang (S2117072)

Reengineering Task: Refactoring

Component: homekit

Addressed Issues

aidmanager.py

A repetitive logic for handling aid allocation and ID migration, resulting in unnecessary complexity and reduced readability.
Several methods, such as get_or_allocate_aid_for_entity_id and get_or_allocate_aid, contained duplicated checks for allocations and similar functionality, making the code harder to maintain.

diagnostics.py

A repetition in diagnostics gathering, particularly in functions like _get_bridge_diagnostics and _get_accessory_diagnostics, leading to unnecessary complexity and harder readability.

logbook.py

A redundant logic for constructing messages, with an unnecessary intermediate variable (value_msg) and potential formatting issues when the value was empty.

type_locks.py

Lack of fault tolerance in accessing dictionary values could result in potential KeyError exceptions.
A repetitive in configuring the char_current_state and char_target_state.
The log messages were unclear, making tracking the lock's current and target state harder during state updates.

type_remote.py

Redundancy in the service call logic across multiple methods.
The state initialization process was redundant and could be streamlined for better readability.

What has been Reengineered

aidmanager.py

Refactored the get_or_allocate_aid method.
Simplified _migrate_unique_id_aid_assignment_if_needed.
Refined get_or_allocate_aid_for_entity_id.
Improved the delete_aid method.

diagnostics.py

Simplified data construction for dictionary.
Introduced early returns in async_get_config_entry_diagnostics to eliminate nested if statements.
Merged common logic in _get_bridge_diagnostics and _get_accessory_diagnostics.

logbook.py

Simplified the message construction by directly incorporating the conditional formatting into the message string.
Added .strip() to remove any trailing spaces, ensuring clean and accurate message formatting, especially when the value is absent.

type_locks.py

Refactored the repeated calls to configure_char() with similar parameters.
Refined the logging logic to provide more detailed and readable debug messages, specifically regarding the lock's current and target state.

type_remote.py

Extracted the common service call logic into the _call_service() helper method.
Moved the state initialization logic into its own method, _initialize_state().
Centralized the logic for setting the params dictionary in _call_service().

Reengineering Strategy or Approach Used

Identified and refactored redundant code, typically by moving shared logic into helper methods. This approach lowered complexity and enhanced code maintainability. For example, in type_remote.py, the shared service call logic was consolidated into _call_service(), and state initialization was simplified in _initialize_state().
Refactoring efforts improved logical clarity across several methods. In files such as diagnostics.py, early returns were added to reduce nested conditions. Meanwhile, in logbook.py, message construction was streamlined to eliminate superfluous intermediate variables and achieve clean formatting.
Log messages in the files were reorganized for better clarity. For example, type_locks.py now has more precise and easily understandable logging about lock states, whereas type_remote.py features streamlined and more informative debug messages.
In multiple cases, methods performing similar functions were refactored to eliminate redundant code. For instance, in aidmanager.py, the processes for aid allocation and ID migration were combined into more streamlined methods.

Impact of Changes

By decreasing duplication and merging similar logic, the code becomes simpler to maintain and expand. Reusable methods now encapsulate common patterns, making future updates and modifications easier.
The code has become cleaner due to reduced nesting and fewer unnecessary intermediate steps. This enhancement simplifies future developers' comprehension of data flow and logic, which is crucial for effective debugging and collaboration.
Enhancing logic and minimizing redundancy boosts readability while decreasing unnecessary checks and computations, which can result in more efficient code execution.
Clear and informative logging messages make it much easier to trace issues and monitor the system’s behavior, allowing developers and operators to quickly grasp system states.

Good, explanation on the reengineering strategy used could be improve more to relate with what we have covered in class


onTimeout event not triggered on the "onResume" event Cordova / Ionic 2

I'm submitting a ...
[ x ] bug report => search github for a similar issue or PR before submitting
[ - ] feature request
[ - ] support request => Please do not submit support request here, instead see https://github.com/HackedByChinese/ng2-idle/blob/master/CONTRIBUTING.md#getting-help

Current behavior
There are three ways to send an app to the "background" (in general). Only in the first scenario, where the hardware button is pushed, the onTimeout event is triggered correctly.
[ x ] Using the home button; works correctly
[ - ] Switching to another app (double tap home button / switch app button); not working
[ - ] Turning the screen off (clicking the off button shortly); not working
Expected behavior

Peform the "check" on "all" the resume events / three scenario's above. Or (if that doesn't already happen);
Trigger the "check" on a defined event (or be able to define an event on which it needs to be checked), like "resume"
Being able to manually trigger the "check" wheter the users' state is idle. e.g. add some logic to the Cordova / Ionic 2 app, bind to the "resume" event and do something like: this.idle.isIdle() => and act on it.

Minimal reproduction of the problem with instructions
Send an Cordova / Ionic 2 app to the background via either the second or third method.
Please tell us about your environment:

@ng-idle version: 2.@latest

Ionic version: 2.@latest

Language: [ TypeScript@latest ]

I haven't used Cordova or Iconic before, so I'll need an assist on this. However, DEFAULT_INTERRUPTSOURCES is defined as this. So if you are using this, it's only looking for typical touch, mouse, and keyboard events on the document, plus storage events.
You can definitely use your own settings for interrupt sources and even create and use your own. I'm taking a shot in the dark here, but by using what's defined in DEFAULT_INTERRUPTSOURCES plus adding new WindowInterruptSource('focus refresh') (or whatever makes sense in Iconic), you can listen for those events on the window when the app comes back from the background.

Thanks, and sorry for the late reply. After a good closer look, it seemed that the plugin was working just fine. The issue was caused due to a prompt which was presented to the user, but - with the app in the background - was unable to load.


💡 [FEATURE] - Add Web Development(Frontend Resources)

Idea Contribution

[X] I have read all the feature request issues.
[X] I'm interested in working on this issue
[X] I'm part of GSSOC organization

Explain feature request
I want to add a few resources for UI Components and 1 generator resource under the front-end web development tools section
Explain your solution
No response
Any alternative approaches/features
NA
Additional Context
Please assign me this issue under GSSoC'24.

Assigned to you @komal-agarwal5!


Some classes cant be disassembled

Describe the bug

Some classes cant be disassembled.But can be decompiled by Fernflower in IntelliJ IDEA Community Edition

To Reproduce
Steps to reproduce the behavior:

Open sample jar '...' (provide sample download if possible)
[FILE-REMOVED]

see many classes in package com/loader/epsilon can't be disassembled

Exception
If applicable, add the exception/stacktrace.
23:21:19.126 [ForkJoinPool-1-worker-1] DEBUG: Attempting to patch invalid class 'com/loader/epsilon/bo.class'
23:21:19.126 [ForkJoinPool-1-worker-1] WARN : Invalid class "com/loader/epsilon/bo.class" - Cannot be parsed with ASM reader
Adding as a file instead.
23:21:19.127 [ForkJoinPool-1-worker-1] DEBUG: Attempting to patch invalid class 'com/loader/epsilon/d1.class'
23:21:19.127 [ForkJoinPool-1-worker-1] DEBUG: Illegal class patching success!
23:21:19.127 [ForkJoinPool-1-worker-1] DEBUG: Attempting to patch invalid class 'com/loader/epsilon/6y.class'
23:21:19.128 [ForkJoinPool-1-worker-1] WARN : Invalid class "com/loader/epsilon/6y.class" - Cannot be parsed with ASM reader
Adding as a file instead.
23:21:19.128 [ForkJoinPool-1-worker-1] DEBUG: Attempting to patch invalid class 'com/loader/epsilon/7Z.class'
23:21:19.128 [ForkJoinPool-1-worker-1] WARN : Invalid class "com/loader/epsilon/7Z.class" - Cannot be parsed with ASM reader
Adding as a file instead.
23:21:19.128 [ForkJoinPool-1-worker-1] DEBUG: Attempting to patch invalid class 'com/loader/epsilon/I.class'
23:21:19.129 [ForkJoinPool-1-worker-1] WARN : Invalid class "com/loader/epsilon/I.class" - Cannot be parsed with ASM reader
Adding as a file instead.

Screenshots

Can be decompiled by Fernflower in IntelliJ IDEA Community Edition

Do you have permission to upload the "sample jar" to github? Otherwise the owner of the copyright of the file could DMCA strike the whole Recaf repo for hosting it.

@Col-E The problem here is that you are simply parsing module attributes without checking their validity or if they are suitable in this class version (https://github.com/Col-E/CAFED00D/blob/10398acfb2f98e45d6d717456182729e9612b727/src/main/java/me/coley/cafedude/io/ClassFileReader.java#L413).

@x4e yeah, it has a lot of default case handling that is general purpose. Looks like this can be a simple fix.

Also I have edited out the sample jar from the issue. For future reference please try to only upload small samples that you own the rights to.

Oh yeah, you are right. Not sure what it is then. Probably needs some more advanced debugging within CAFED00D specifically.

I put some work into this with 2.19.2 but there is more work in upstream CAFED00D to be done. Let me know if the update yields and better results.

Hi, this is a copyrighted Jar under eridani.club, if any Jar or classes is uploaded please remove as soon as you see it.

It was  removed the day of posting, anyways closing.


Extract UTF-8 decoding into its own file

Consider a header-only library

See utf8.h/utf8.c in myclib


Installation fails with UnsatisfiableError

Installation of bayeslite fails with the following error:
(py2) user@kubuntu:~$ python
Python 2.7.17 |Anaconda, Inc.| (default, Oct 21 2019, 19:04:46)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
(py2) user@kubuntu:~$ conda install -c probcomp bayeslite
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: -
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versionsThe following specifications were found to be incompatible with your CUDA driver:

  - feature:/linux-64::__cuda==10.2=0
  - feature:|@/linux-64::__cuda==10.2=0

Your installed CUDA driver is: 10.2

(py2) user@kubuntu:~$

I have CUDA 10.2.89 installed

@fsaad @Schaechtle any thoughts on what i'm doing wrong?

Hi @suhailshergill.  Thank you for filing this issue.  The issue is possibly due to a wrong version of conda.
Can you please follow the step-by-step instructions listed here? https://github.com/probcomp/iventure/blob/master/docs/conda.md
Let us know if encounter any issues.

@fsaad thanks for pointing me to those docs. Encountered failure at the second step. Looks like I need to enable some different channels (e.g. we need seaborn=0.7 and current channels don't list anything earlier than 0.8)
(bayesdb) user@kubuntu:~/probcomp$ conda install --yes conda=4.6.14 conda-build
Collecting package metadata (current_repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 4.7.12
  latest version: 4.8.3

Please update conda by running

    $ conda update -n base -c defaults conda

# All requested packages already installed.

(bayesdb) user@kubuntu:~/probcomp$ conda create -n probcomp --yes --file ./conda_python2.txt python=2.7
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - ipywidgets=6.0
  - vincent=0.4
  - pytest=2.8
  - seaborn=0.7
  - scikit-learn=0.17
  - cython=0.25
  - sympy=1.0
  - cloudpickle=0.2
  - beautifulsoup4=4.5
  - pandas=0.18
  - scikit-image=0.12
  - matplotlib=1.5
  - numba=0.31
  - scipy=0.17
  - ipython=5.3
  - statsmodels=0.6

Current channels:

  - https://repo.anaconda.com/pkgs/main/linux-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/r/linux-64
  - https://repo.anaconda.com/pkgs/r/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.

(bayesdb) user@kubuntu:~/probcomp$

specifying conda-forge channel I was able to get most of the first set of dependencies for the environment except for pytest and numba. See output below:
(bayesdb) user@kubuntu:~/probcomp$ conda create -n probcomp --yes -c conda-forge -c probcomp -c cidermole -c fritzo -c ursusest --file ./conda_python2.txt python=2.7
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - pytest=2.8
  - numba=0.31

Current channels:

  - https://conda.anaconda.org/conda-forge/linux-64
  - https://conda.anaconda.org/conda-forge/noarch
  - https://conda.anaconda.org/probcomp/linux-64
  - https://conda.anaconda.org/probcomp/noarch
  - https://conda.anaconda.org/cidermole/linux-64
  - https://conda.anaconda.org/cidermole/noarch
  - https://conda.anaconda.org/fritzo/linux-64
  - https://conda.anaconda.org/fritzo/noarch
  - https://conda.anaconda.org/ursusest/linux-64
  - https://conda.anaconda.org/ursusest/noarch
  - https://repo.anaconda.com/pkgs/main/linux-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/r/linux-64
  - https://repo.anaconda.com/pkgs/r/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.

(bayesdb) user@kubuntu:~/probcomp$

@fsaad so I did some tinkering. After a few tries I was able to install bayeslite=<IP_ADDRESS>, and able to confirm by running the test suite (albeit 2 tests failed). A few things to note:

I had to modify some of the steps to get here.

Even if I had been able to follow the steps you shared, I would only have been able to get bayeslite=0.3.2 i.e., a version 2 years old (the latest stable is bayeslite=0.3.3 which is 4 months old). Could you share the recommended steps for bayeslite=0.3.3?

For the record, below are the steps I followed in order to install bayeslite=<IP_ADDRESS>:

I modified the pytest dependency in conda_python2.txt to pytest=2.9.* (I was unable to find version 2.8 in anaconda) and ran the following conda create -n probcomp --yes --file ./conda_python2.txt -c conda-forge -c numba -c sunpy python=2.7

I installed bayeslite by invoking conda install -c probcomp -c cidermole -c fritzo -c ursusest -c conda-forge bayeslite apsw in the newly created environment.

It was interesting that simply installing bayeslite did not pull in the apsw dependency. Is that as intended?

@fsaad made some more progress. So it seems the problematic packages (i.e., the packages that conda has a difficult time with) are bayeslite and loom. The others I was able to install via conda in a very straightforward manner (after including the extra channels you pointed to).
After that, I was able to install bayeslite by building from source via setup.py. I suspect a similar process might work for loom as well.
I am new to conda, but it seems the dependency tracking for bayeslite conda package is messed up. Hope this helps.


Reproduce issue with SetProperty with plugin-publish plugin

Closing since there is a more general reproducer with a fix in https://github.com/gradle/gradle/pull/25770


Retrieve the version from Ballerina add list command

Description:
The add list command ballerina add --list outputs only the name and the organization of module templates that are downloaded.
For a functionality in the Ballerina Integrator VSCode extension, we are in need of retrieving the version of the module template. This option could also be included in the add list command itself since it is a generic use case. The latest version or a list of all versions would suffice.
Affected Versions:
Ballerina 1.0
Suggested Assignees (optional):
@hemikak

Closing this issue since this use case is no longer applicable.


Request for Dataset Access

Thank you for sharing your work and providing the code. I have recently read your paper, ”The Potential of One-Shot Failure Root Cause Analysis: Collaboration of the Large Language Model and Small Classifier”, and found it extremely insightful.
I am currently working on a related project and would greatly appreciate it if you could share the dataset used in your study. Specifically, the AIOps2022  dataset would be immensely helpful for reproducing the results and furthering my research. Since the competition has ended, I am unable to access the data through the link you provided.
If there are any usage restrictions, licensing terms, or guidelines, please let me know, and I will ensure full compliance.
Thank you for your time and consideration. I look forward to your response.
感谢您分享您的工作并提供代码。我最近阅读了您的论文《The Potential of One-Shot Failure Root Cause Analysis: Collaboration of the Large Language Model and Small Classifier》，深感受益匪浅。
我目前正在从事一个相关项目，如果您能分享您研究中使用的数据集，我将不胜感激。特别是AIOps2022数据集对我复现论文结果和推进研究非常重要。由于该比赛已结束，我无法通过您提供的链接获取该数据。
如果数据集有任何使用限制、许可条款或相关指南，请告知，我会严格遵守。
感谢您的时间和帮助，期待您的回复！

<EMAIL_ADDRESS>


Minor updates to the Permissions docs

Signed-off-by: Andre Wanlin<EMAIL_ADDRESS>Hey, I just made a Pull Request!
Just some minor updates to the Permissions docs that I spotted as I was going through them on my permission journey 😄
:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[x] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Thanks! Let's ship it anyway. There's a lot of -next usage out there and we can deal with the questions that may fall out of the env.identity thing. Good callout though

Thanks as always @freben 👍


⚠ Bofrost.fr has degraded performance

In 377b8d9, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1486 ms

Resolved: Bofrost.fr performance has improved in 72cc911 after 9 minutes.


I need to set min or max audio trimming concept.

Hi Intuz-production ,
Thanks Intuz-production, this is really awesome product for audio trimming.
This is not regarding issue.
I want to implement a new feature for audio trimmer. so i need to set max and min time set for both ends. like minimum audio time set must be 10 sec and maximum time set must be like 30 sec.
This is my idea. also i am trying to implement that, if you kindly help me out , it will be helpful for me as well as for this product.
Thanks,
Avik

did u find how to limit marker?

Yes its possible.
currently i am working with it.

Hi Intuz-production ,
Thanks Intuz-production, this is really awesome product for audio trimming.
This is not regarding issue.
I want to implement a new feature for audio trimmer. so i need to set max and min time set for both ends. like minimum audio time set must be 10 sec and maximum time set must be like 30 sec.
This is my idea. also i am trying to implement that, if you kindly help me out , it will be helpful for me as well as for this product.
Thanks,
Avik

Hii,
i to have same requirement
will you please help me to do that.

Yes sure. Already I have done this feature.
let me check from my end, Because I forget right now.
I will send code or file to you.
Thanks man Don't worry.

Thanks for this amazing demo. Want to set minimum audio time to 20 sec.  Waiting for your reply @avik-capitalnumbers .

***Your own class change the method:-
private void resetPositions() {
mStartPos = audioWaveform.secondsToPixels(0.0);
mEndPos = audioWaveform.secondsToPixels(30.0);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*** You have to handle you code here.
@Override
public void markerTouchMove(MarkerView marker, float x) {
    float delta = x - registrationView2.mTouchStart;
    Log.d("delta","::::::::::::::::::::::::"+delta);

    if (marker == registrationView2.markerStart) {

        Log.d("markerEnd.mStartPos",":::"+registrationView2.mStartPos);
        Log.d("markerEnd.mEndPos",":::"+registrationView2.mEndPos);

        Log.d("DISTANCE",":::"+(Float.parseFloat(registrationView2.formatTime(registrationView2.mEndPos)) -
                (Float.parseFloat(registrationView2.formatTime(registrationView2.mStartPos)))));

        if(delta>=0){
            registrationView2.mStartPos = registrationView2.trap((int) (registrationView2.mTouchInitialStartPos + delta));
        }

        if (Float.parseFloat(registrationView2.formatTime(registrationView2.mEndPos)) -
                (Float.parseFloat(registrationView2.formatTime(registrationView2.mStartPos)))<=30.00) {
            registrationView2.mStartPos = registrationView2.trap((int) (registrationView2.mTouchInitialStartPos + delta));
            //registrationView2.mEndPos = registrationView2.trap((int) (registrationView2.mTouchInitialEndPos + delta));
        }

    } else {

        Log.d("markerEnd.mStartPos",":::"+registrationView2.mStartPos);
        Log.d("markerEnd.mEndPos",":::"+registrationView2.mEndPos);

        Log.d("DISTANCE",":::"+(Float.parseFloat(registrationView2.formatTime(registrationView2.mEndPos)) -
                (Float.parseFloat(registrationView2.formatTime(registrationView2.mStartPos)))));

        if(delta<-1){
            registrationView2.mEndPos = registrationView2.trap((int) (registrationView2.mTouchInitialEndPos + delta));
        }

        Log.d("CHECK",":::"+(Float.parseFloat(registrationView2.formatTime(registrationView2.mEndPos)))+"|||"+(Float.parseFloat(registrationView2.formatTime(registrationView2.mStartPos))));

        if ((Float.parseFloat(registrationView2.formatTime(registrationView2.mEndPos)) -
                (Float.parseFloat(registrationView2.formatTime(registrationView2.mStartPos))))<=30.00) {

            registrationView2.mEndPos = registrationView2.trap((int) (registrationView2.mTouchInitialEndPos + delta));
            if (registrationView2.mEndPos < registrationView2.mStartPos)
                registrationView2.mEndPos = registrationView2.mStartPos;

        }else {
            Log.d("markerEnd.mEndPos",":::::::::::WRONG");

            /*if((Float.parseFloat(registrationView2.formatTime(registrationView2.mEndPos)) -
                    (Float.parseFloat(registrationView2.formatTime(registrationView2.mStartPos))))>30.00){
                registrationView2.mEndPos = registrationView2.mEndPos
                        -registrationView2.audioWaveform.secondsToPixels((Float.parseFloat(registrationView2.formatTime(registrationView2.mEndPos)) -
                        (Float.parseFloat(registrationView2.formatTime(registrationView2.mStartPos))))-30);

            }*/

        }

    }

    registrationView2.updateDisplay();
}

Hi, thanks for this wonderful help. But after saving wav file its empty. Could you please help that out?


 This PR adds type checking rules, a bit of comments and fixes several bugs and an incorrect golden test related to missing kind checking. For convenient kind checking I added the kindCheckM function and also simplified kindOf using it.
This doesn't touch constants, because another my PR deals with them. Once both are merged, I'll do appropriate changes.

I think, this is the more conventional formatting (and the style, eg, GHC tends to use). What do you think?

I tried doing this. But that blank like between clauses looked kinda ugly to me, because blank lines is what we use to separate definitions from each other. I think what we have there right now reads slightly easier. But that's not important at all and I can reformat the code.
I guess, I'll reformat the code, we'll look at the result and then decide.

I tried doing this. But that blank like between clauses looked kinda ugly to me, because blank lines is what we use to separate definitions from each other.

I understand, we usually hesitate to separate equations, but in long multiline equations, especially if there are many of them (which is a common situation when traversing an AST in a compiler), I think, it makes sense to adopt this style (and, as I mentioned, there is some precedent and hence familiarity among compiler writers in Haskell).

Comments addressed.
I added some notes about the notation used and also added the typeOfConstant function to simplify typeOf.

I understand, we usually hesitate to separate equations, but in long multiline equations, especially if there are many of them (which is a common situation when traversing an AST in a compiler), I think, it makes sense to adopt this style (and, as I mentioned, there is some precedent and hence familiarity among compiler writers in Haskell).

Do not have any strong feelings, but I liked the previous version slightly more. That's a minor thing.

Check out https://github.com/ghc/ghc/blob/master/compiler/typecheck/TcExpr.hs There are no rules at the equations, but this modules also uses the style with empty lines between equations heavily and IMHO it works very well.

Check out https://github.com/ghc/ghc/blob/master/compiler/typecheck/TcExpr.hs There are no rules at the equations, but this modules also uses the style with empty lines between equations heavily and IMHO it works very well.

It looks much better than when there are equations.

What is with the CI checks. Are they hanging again?

What is with the CI checks. Are they hanging again?

No idea. @iohk-devops, @disassembler, do you know what is with CI?

@effectfully Did the checks pass before you pushed the spec change?

@effectfully Did the checks pass before you pushed the spec change?

I normally do not run all the checks locally, because this requires building, testing and benchmarking everything, which just take too long when you need only a quick sanity check, so I delegate this work to CI. I checked right now, seems fine to me.

(I do not have the rights required to perform the merge myself)

Err, this one should have been squash-merged.

I don't understand these rules at all. Can you explain Rebecca? P
On Thu, 11 Oct 2018 at 07:18, Rebecca Valentine<EMAIL_ADDRESS>wrote:

@psygnisfive commented on this pull request.
In language-plutus-core/src/Language/PlutusCore/TypeSynthesis.hs
https://github.com/input-output-hk/plutus/pull/179#discussion_r224325996
:

-- order to maintain global uniqueness.
--
-- This is all tracked in a state monad, and we simply delete any substitutions
-- once they go out of scope; this is permissible since 'Unique's are globally
-- unique and so we will not delete the wrong thing.
-- | Synthesize the type of a term, returning a normalized type.
typeOf :: Term TyNameWithKind NameWithType a -> TypeCheckM a (NormalizedType TyNameWithKind ())
-typeOf (Var _ (NameWithType (Name (_, ty) _ _))) = normalizeTypeOpt $ void ty
-typeOf (LamAbs _ _ ty t)                         =

TyFun () <<$>> normalizeTypeOpt (void ty) <<*>> typeOf t
+typeOf (Var _ (NameWithType (Name (_, ty) _ _))) =

-- Since we kind check types at lambdas, we can normalize types here without kind checking.
-- Type normalization at each variable is inefficient and we may consider something else later.
normalizeTypeOpt $ void ty
+typeOf (LamAbs x _ dom body)                     = do
-- [check| dom :: *]    dom ~>? vDom    [infer| body : vCod]

-- [infer| lam n dom body : vDom -> vCod]

kindCheckM x dom $ Type ()

Ahhhh interesting. I'm going to add the following judgment-defining rules
to the spec:
-------------- Γ ⊢ α :: K jdg
Γ ⊢ A :: type
Γ ⊢ x : A jdg`
Does this make sense to everyone? Or should I make it slightly less formal
b/c of the risk of weird circularity?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/input-output-hk/plutus/pull/179#discussion_r224325996,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEqfshgjVFe8XT04HidRnsqhIFdWrPelks5ujuK6gaJpZM4XNYwS
.

--
.   \ Philip Wadler, Professor of Theoretical Computer Science,
.   /\ School of Informatics, University of Edinburgh
.  /  \ and Senior Research Fellow, IOHK
. http://homepages.inf.ed.ac.uk/wadler/
Too brief? Here's why: http://www.emailcharter.org/
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

@psygnisfive, that's a nice idea:
--------------
Γ ⊢ α :: K jdg

Γ ⊢ A :: (type)
---------------
Γ ⊢ x : A jdg

jdg is a meta-judgement that defines judgements, right?
However I think this is usually kept implicit like Γ valid, for example. I've never seen meta-judgements being used, but the idea is kinda natural, so maybe we could find a reference?

@effectfully

Err, this one should have been squash-merged.

Did we agree to do this now?

Did we agree to do this now?

Yes, sorry, I just forgot to say about squashing.


Adds callback onWillAcceptWithDetails in DragTarget.

This PR adds onWillAcceptWithDetails callback to DragTarget to get information about offset.
Fixes: #131378
This PR is subject to changes based on #131542
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Filed https://github.com/flutter/flutter/issues/133347 for follow up, this should be clear to land now. :)


Failed on doctrine-extensions

Hello,
composer thanks failed with this error:
  [Composer\Downloader\TransportException]
  Could not resolve to a Repository with the name 'doctrine-extensions'.

Here is my composer.json : https://github.com/sil-project/Platform/blob/master/composer.json

Looks like https://github.com/orocrm/doctrine-extensions has been renamed to https://github.com/oroinc/doctrine-extensions

It work, thank you !


Update program-list.csv

Added Pepperfry.com program

Closing as we've now made this file redundant.


Compile v4 on linux (dirty patch)

Hi,
This is a dirty patch to make the version4 compile and run on linux. It is not meant to be merged, but is just a hint on what didn't pass the compilation.
(I had the opportunity to play a bit with it, it looks promising !)

Thanks a lot! I'll keep your PR open.
It's a pity that ImFileDialog is no longer maintained :-( I already had to make a dirty patch to fix compile errors due to std::u8string issues when activating C++20.

I have been working a lot on version4 and plan to merge it to develop soon. If you are still willing to help, would you please check the gcc compile errors? There is an Ubunti-Ci configured on develop to ensure that it will remain compilable.

您好，您的邮件已收到，我会尽快回复，谢谢。
蔡陈翼

东南大学建筑学院

南京市玄武区四牌楼2号Tel：18652966253

I have fixed the gcc compile errors in the meantime. If there are still problems, feel free to create a new PR.


contextual_model_bert: also return scores with predictions

Main contribution:

_train_doc currently returns (antecedent?) predictions. Modification now also returns the probability of the chosen (most probable) antecedent for the current mention.

Misc contributions:

added evaluate_single method to ControllerBase that evaluates one, given Document
handle Token construction with None msd string.

tyvm :+1:


Auto create table if table not exists when service startup

Is your feature request related to a problem? Please describe.
Relate to issue #1424 #2539
User need to run sql manually to initial tables.
Is it possible to auto create those tables?
Describe the solution you'd like
Auto create tables when config service，admin service，portal startup.
Then user didn't need to run sql manually. That could be make operations and deployment more simpler.
Describe alternatives you've considered
Is hibernate support that? Maybe there are some configuration to support that.
Some problem need to consider

Is it safe? i.e the influence of old data when services update.
How user update their system if table auto create?

Spring Data Jpa can do that, but it is risky to me since the mysql account would have ddl permissions...


List DICOM files in UI

Create a UI in which DICOM files can be listed.

Currently not a priority to be implemented.


!help lists all commands prefixed even if their policy isn't prefixed

Excerpt:
* admin        [!auth] [!blacklist] [!cycle] [!elevated] [!home] [!hostmask] [!join] [!operator] [!part] [!quit] [!reload] [!save] [!set] [!staff] [!summary] [!whitelist] [!whoami]

auth, status, set, summary, cycle etc there are annotated PrefixPolicy.nickname and can't be invoked with !command.

Fixed in https://github.com/zorael/kameloso/commit/7442606fb5d6be91e8f4923c497a50e6379064d2 and surrounding commits.


Update build badges to use Azure Pipeline Badges and links

PR Summary
Update build badges to use Azure Pipeline Badges and links

I also formatted tables

PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Change is not breaking
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

User-facing changes

[x] Not Applicable
OR
[ ] User-facing Documentation needed

[ ] Issue filed - Issue link:

Testing - New and feature

[x] Not Applicable or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] if the change is significant or affects feature tests

@bergmeister If you want to rename the directory, please go ahead.  It won't affect our release process, but please mention me as I'll have to update the build definition is Azure Pipelines to point to the new location.


People.set throwing UnsupportedOperationException

An exception is thrown when calling set on people
SDK version: 6.5.2
Non-fatal Exception: java.lang.UnsupportedOperationException
       at java.util.Collections$UnmodifiableMap.put(Collections.java:1504)
       at org.json.JSONObject.put(JSONObject.java:1056)
       at com.mixpanel.android.mpmetrics.MixpanelAPI$PeopleImpl.set(MixpanelAPI.java:1888)
       at com.mixpanel.android.mpmetrics.MixpanelAPI$PeopleImpl.setMap(MixpanelAPI.java:1875)

In the mean time I tried to bypass by using unset on all properties, then setOnceMap

@badoualy
I also faces same error when setting data on people like below
mixPanel.people.set(JSONObject().apply {
            put("name".addDollar(),user.vName)
            put("email".addDollar(), user.vEmailId)
            put(KEY_MOBILE_NUMBER, user.vMobileNumber)
            put(KEY_INSTALLED_FROM, user.vReferalPlatform)
        })

I get error as below
Caused by: java.lang.UnsupportedOperationException
        at java.util.Collections$UnmodifiableMap.put(Collections.java:1504)

It is crashing only in release build in debug build working fine.
I have already used pro guard for the Mix Panel SDK.
Please let me know if you find any solution for the same.
Thank you

Indeed I forgot to mention it seems to be working fine on debug builds.
@chichi289 FYI I used the following bypass, that seems to work:
    override suspend fun setPeople(properties: Map<String, Any?>) {
        with(mixpanel.people) {
            properties.keys.forEach { unset(it) }
            setOnceMap(properties.filterValues { it != null })
        }
    }

@badoualy Thanks for the suggestions
I imported mix panel library as a module in project and checked the code which causes exception.
@Override
        public void set(JSONObject properties) {
            if (hasOptedOutTracking()) return;
            try {
                final JSONObject sendProperties = new JSONObject(mDeviceInfo);
                for (final Iterator<?> iter = properties.keys(); iter.hasNext(); ) {
                    final String key = (String) iter.next();
                    sendProperties.put(key, properties.get(key));
                }

                final JSONObject message = stdPeopleMessage("$set", sendProperties);
                recordPeopleMessage(message);
            } catch (final JSONException e) {
                MPLog.e(LOGTAG, "Exception setting people properties", e);
            }
        }

   final JSONObject sendProperties = new JSONObject(mDeviceInfo);

Here mDeviceInfo is passed in JSONObject constructure which causes crash as it is constructed as unmodified map as below
mDeviceInfo = Collections.unmodifiableMap(deviceInfo);

So my guess is somewhere it is being modified.
If we remove mDeviceInfo from JSONObject constructor then code is compiled and worked fine in release app.
@zihejia Please look into this and provide solutions for the same
Thank you

Ah indeed, it might be linked to a bad dependency. When checking the code, I had another version of JSONObject that's actually not using the map directly, but adding each entry into its interval map (which wouldn't cause the issue)
    public JSONObject(@NonNull Map copyFrom) {
        this();
        Map<?, ?> contentsTyped = (Map<?, ?>) copyFrom;
        for (Map.Entry<?, ?> entry : contentsTyped.entrySet()) {
            /*
             * Deviate from the original by checking that keys are non-null and
             * of the proper type. (We still defer validating the values).
             */
            String key = (String) entry.getKey();
            if (key == null) {
                throw new NullPointerException("key == null");
            }
            nameValuePairs.put(key, wrap(entry.getValue()));
        }
    }

But I also have this version in my classpath:
    public JSONObject(Map var1) {
        this.map = (Map)(var1 == null ? new HashMap() : var1);
    }

Not sure which one mixpanel is supposed to use. Maybe it's another dependency in our project that's overriding the dependency that mixpanel SDK is using?

@badoualy Yes I have also used socket io library so after removing json from socket io it is working fine
implementation ('io.socket:socket.io-client:2.1.0'){
      exclude group: 'org.json', module: 'json'
  }

Thanks for the help @badoualy

Thanks guys for bringing this up and finding a solution. I've added this issue to the FAQ section of our documentation.


Rework Carla Client

Until now there were two clients: carla_autoware_control and carla_autoware_manual_control.
Both instantiated a Carla client, therefore contained duplicated code.
The new approach is having a single carla-client, name carla_autoware_client.
The manual_control part has moved to carla_autoware_manual_control. This is now completely ROS only (subscribes to sensor topics, e.g. image).

This change is

resolves #27


Subgroups are flattened when Sources paths contain ".." in YAML file

xcodegen 2.2.0
Test setup:
.
├── Sources
│   ├── Subfolder
│   │   └── file2.swift
│   └── file1.swift
└── spec
    └── project.yml

spec/project.yml:
name: MyProject
targets:
  MyFramework:
    type: framework
    platform: iOS
    sources:
      - path: ../Sources

Command: xcodegen --spec spec/project.yml
MyProject.xcodeproj looks like this:

Current: Subfolder is not a subgroup of Sources group
Expected: Subfolder is a subgroup of Sources group
Note: This seems to be triggered when path of Sources in YAML file contains at least one ../

Thanks for the report @nzhuk. This will most likely be fixed by #524

I just checked, but it does not seem to solve this issue.

As an alternative I tried moving the project.yml file one level up and using codegen --project subfolder but then the references in the project are broken:  Build input file cannot be found: '...'

Can you try again in Xcode 2.5.0, now that it includes #550

@yonaskolb The reported issue seems to be fixed in 2.5.0.
xcodegen --spec spec/project.yml produces correct project:

However, if the Xcode project is generated to the parent directory of spec directory, the project is still broken (probably another issue, not sure where it's tracked):
xcodegen --spec spec/project.yml -p .:

(here, "Sources" group refers to invalid folder, thus "test.swift" is not found)

@nzhuk, great I'll close this issue then. I believe the other problem you mention has come up before. I think there are issues with the --project argument. Would you mind opening a new issue, and we can see if we can get it fixed.


Experimental kernel picker to replace server picker

Enhancements to the experimental kernel picker which wil lreplace the jupyter server picker.

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[ ] Has a news entry file (remember to thank yourself!).
[x] Appropriate comments and documentation strings in the code.
[x] Has sufficient logging.
[x] Has telemetry for feature-requests.
[x] Unit tests & system/integration tests are added/updated.
[ ] Test plan is updated as appropriate.
[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed).

Codecov Report

Merging #11918 (b91207d) into main (321aa85) will decrease coverage by 2%.
The diff coverage is 11%.

@@           Coverage Diff           @@
##            main   #11918    +/-   ##
=======================================
- Coverage     62%      60%    -3%
=======================================
  Files        490      490
  Lines      34470    34572   +102
  Branches    5580     5605    +25
=======================================
- Hits       21698    21016   -682
- Misses     10689    11508   +819
+ Partials    2083     2048    -35

Impacted Files
Coverage Δ

src/kernels/jupyter/jupyterUriProviderWrapper.ts
39% <0%> (-3%)
:arrow_down:

src/kernels/jupyter/types.ts
100% <ø> (ø)

...llers/kernelSource/notebookKernelSourceSelector.ts
11% <10%> (-2%)
:arrow_down:

src/kernels/jupyter/finder/remoteKernelFinder.ts
72% <100%> (-15%)
:arrow_down:

...otebooks/debugger/controllers/restartController.ts
10% <0%> (-75%)
:arrow_down:

...ebooks/debugger/controllers/runByLineController.ts
13% <0%> (-68%)
:arrow_down:

src/notebooks/debugger/kernelDebugAdapter.ts
20% <0%> (-65%)
:arrow_down:

src/notebooks/debugger/protocolParser.node.ts
14% <0%> (-65%)
:arrow_down:

src/notebooks/debugger/debuggingManager.ts
30% <0%> (-50%)
:arrow_down:

...ernels/jupyter/session/requestAgentCreator.node.ts
60% <0%> (-40%)
:arrow_down:

... and 71 more

ops, it got auto merged before I pushed the new commit. Will send a new PR.


Lecture 10 Assignments, due Monday 27/2

[x] Create an issue titled "Lecture 10 checklist" to track these checklist items
[ ] Each student has created at least two to five unit tests with matching PRs and code review See comment down below
[ ] Project has at least one of the following types of tests:

Integration tests
Nonfunctional tests (e.g.: performance, capacity)
Property tests

[ ] Code coverage of tests is increased by at least 20%.  List the "starting" and "ending" commits in the "Lecture 10 checklist" issue with the achieved percentage increase.
[x] main is still passing / green. (and should be always from now on!)

Pull request for testing of movement and mapgeneration : #55

#102 Pull Requests for testing the change to godMode in the GetALife method, Also a KillPlayerTest

###Each student has created at least two to five unit tests with matching PRs and code review

[ ] Martin
[ ] Matilda
[ ] Joek
[ ] Lukas
[ ] Felix
[ ] Jacob

Created more unit tests to map generator and separated tests into to different files in PR #108

Starting commit for code coverage: Pull request for testing of movement and mapgeneration : #55

Ending commits for code coverage : Pull request for our final code coverage review : #112 Total Change of code coverage is over 100%. This is because we have added covered projects in unity. Which decrease the total percentage. However the amount of lines is more than doubled!

In conclusion we have increased coverable lines of code to 523 from 124 and we now cover 317 lines of code instead of 124 so we have increased our codecoverage beacause before we didn't include all our code in our code coverage reports.

Fair enough.  :slightly_smiling_face:   Thanks for the detailed explanation and for gathering the data.  :grin:

@MarrisSparrisNilsson, @Stocken99, @JoelScarinius, @McFluffen, @matildaronder and @Lukasydkvist,
The checklist items seem to be complete.  Good job!  :tada:


Add additional className on dropdown component

Added the optional className prop to <Dropdown /> component.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@4f667b9). Click here to learn what that means.
The diff coverage is 100%.

@@            Coverage Diff            @@
##             master     #640   +/-   ##
=========================================
  Coverage          ?   99.72%
=========================================
  Files             ?      261
  Lines             ?     6630
  Branches          ?     1541
=========================================
  Hits              ?     6612
  Misses            ?       18
  Partials          ?        0

Impacted Files
Coverage Δ

src/components/dropdown/Dropdown.tsx
100% <100%> (ø)

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 4f667b9...69f1c49. Read the comment docs.


Header for Grid

Hello
I would like to see the addition of sticky headers on the Grid component. Something like cellRenderer for row and column headers.  It is currently possible to show the headers just as first row / column however if you have a large Grid it gets confusing which cell you are actually editing. FlexTable has a header, maybe code could be reused from there?
My usecase is to show a Grid which is editable and functions as matrix input, which is used for computations and provided by the user. The headers should also be editable which would be possible with an approach like in cellRenderer.

Hi @arddor,
This is the reason why the ScrollSync HOC was created. Have you considered using it?
Here's an example of it being used to create both a fixed header and a fix column:
https://bvaughn.github.io/react-virtualized/?component=ScrollSync
I have no current plans to add fixed-header support to vanilla Grid because I want to keep the interface as simple as possible. This is the reason why I created the ScrollSync HOC.

No I completely overlooked it. This seems to be a better approach as it also allows to sync multiple Grid with scroll.

Fantastic :) Glad to hear it!

Hi bvaughn:
How do i get json data (from AJAX call) and  update the Grid? This virtualized Grid looks really amazing..
Regards
varadhg


Update localization-string-ids.md

Please merge only after https://github.com/MicrosoftDocs/azure-docs/pull/65939 is merged. Thanks!

@stevenxzhou : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@stevenxzhou : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#hold-off Because this update includes a reference to a new image that is not in the repo (it's pending in PR #https://github.com/MicrosoftDocs/azure-docs/pull/65939), we need to wait to merge this PR until either PR #https://github.com/MicrosoftDocs/azure-docs/pull/65939 is merged (pending resizing) or the image in that PR is added to this PR.

@stevenxzhou : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@ktoliver Now the image update is with this PR, plus the resolution is also corrected. Thanks!

Looks great! Thanks. Merging now. I'll close the other PR, also.


Use display number inside plugin when using multiple screens

Is there a way to get the display number inside the plugin in order to show different information on each statusbar when using multiple screens?

Do you mean something like this?

I think your link is about getting the currently focused screen. Instead, I'm trying to display different information in the three status bars of my three displays. For example, the left display should always show network information and the center display should always show system utilization, independent of which of them has the focus.


⚠ Bofrost.at has degraded performance

In 476544a, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1935 ms

Resolved: Bofrost.at performance has improved in 170cd41.


MAPPO code

Hi,
Is it possible to share MA-Mujoco MAPPO/IPPO code with state action reward etc. robustness?

Dear prinshul,
Thank you for your comments.
Here is the code for MAPPO: https://github.com/zoeyuchao/mappo. I hope this will be helpful. If you have any additional comments or suggestions, please feel free to let us know.
Best regards,
Shangding


le coded phy scanning on nRF52811

Hello,
I'm trying to use nRF52811 with apps/blehci as bluetooth controller which is connected via uart hci.
Scan on 1Mbps PHY is OK, but scan on coded phy has problem.
Here is detailed explanation.

Environment:

mcu nrf52811

tool chain gcc version 9.3.1 20200408 (release) (GNU Arm Embedded Toolchain 9-2020-q2-update)

mynewt-core 	1.8.0

mynewt-nimble 1.3.0

mcu is connected to linux host (Linux 29b841b 4.19.118 armv6l) via uart.

syscfg setting
MCU_TARGET: nRF52811
MCU_LFCLK_SOURCE: LFRC
BLE_LL_CFG_FEAT_LE_CODED_PHY: 1
BLE_EXT_ADV: 1

syscfg.vals.BLE_CONTROLLER:
TIMER_0: 0
TIMER_5: 1
OS_CPUTIME_FREQ: 32768
OS_CPUTIME_TIMER_NUM: 5

What I tried:
Following commands was tested with uart tx/rx is monitored by oscilloscope

btattach -B /dev/ttyAMA0 -P h4 -S 1000000
bluetoothctl
scan on

scan start with 1M phy and coded phy (1)

scan off
hcitool cmd 08 31 03 04 04

set default phy coded only

bluetoothctl
scan on

scan start with coded phy (2)

scan off

Expected result:

scan result of (1) contains both of 1M phy devices and coded phy devices
scan result of (2) contains coded phy devices
both of (1) and (2) is extended scan

Actual result:

scan result of (1) contains only 1M phy devices
scan result of (2) contains no devices
both of (1) and (2) is extended scan

I think uart hci communication host and controller, extended scan ,and 1Mbps phy are ok.
I'm wondering if there is bug on coded phy, or I have incorrect configuration.
Thanks.

is this stil an issue with latest version?

@sjanc Thank you for comment.
I have not tested with latest version.
If I get the chance I'd like to try with latest version.


[Improvement] Change email body when new thread added

When the new thread is started in email instead of adding the text as "Added comment" it is displayed as replied comment.

@RakshaKShetty failed to reproduce this. Here is the cases that I found:

User creates a new thread and does not tag anyone in the first comment - no email sent to anyone.
User creates a new thread and tags someone in the first comment - email sent to tagged user with body "... mentioned you in a comment ..."
Any user added a comment to an existing thread - email sent with body "... replied to a comment ..."


chore(master): release 1.1.54

:robot: I have created a release beep boop
1.1.54 (2023-09-01)
Bug Fixes

deps: update dependency wayofdev/laravel-cycle-orm-adapter to v4.0.80 (4b9f615)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/laravel-webhook-client/releases/tag/v1.1.54 :sunflower:


Update lnd 0.17.5 & recommended bitcoin update 27.0

adresses: #4551

OK I tested:

Do a "recommended Bitcoin update to 27.0" - worked OK
Did a minimal image sd card recovery provisioned with these scripts and it recovered OK to Bitcoin 27.0.
Then installed lnd and it installed lnd 0.17.5 OK
... recommend merging.

was using LND 0.17.5 all right, but now LND v0.18.0 is out. Updated ok.

I would not add lnd 0.18.0 as default yet (never go with a .0 ;) .. lnd 018.x is a good candidate for RaspiBlitz v1.12.0

Agreed.


Webapp: Allow users to see live preview of the webapp before they download it

[x] copy everything to dist
[x] add an express path app.get('./dist') in runtime to the live version
[x] open that in a new tab/window for preview

Done


Make use of pyansys-tools-report

Is your feature request related to a problem? Please describe.
PyMAPDL makes use of a custom implementation of the Report class. Since it is a PyAnsys library, it should try to make use of the currently available pyansys-tools-report package
Describe the solution you'd like
Just add as a requirement the pyansys-tools-report package and make use of it instead of the Report class
Describe alternatives you've considered
Leave it as it is
Additional context
Nothing to be added

Now that the pyansys-tools-report package has been updated to also consider CADOE by default, I'll start looking into the implementation. I'll notify you when it's ready @germa89


Typo in influxdb/v1.0/concepts/storage_engine/

URL for relevant page?
https://docs.influxdata.com/influxdb/v1.0/concepts/storage_engine/#compactions
In Compactions > Index Optimization I came across the following sentences:

Before an index iptimization, each TSM file contained points for most or all series, and thus each contains the same series index. After an index optimzation, each TSM file contains points from a minimum of series and there is little series overlap between files.

fixed by https://github.com/influxdata/docs.influxdata.com/pull/725


Feature/Cryptopia

Cryptopia public API implementation.

fetchMarkets()        //Returns all market data
fetchOrderBook()  // Returns the open buy and sell orders for the specified trade pair.
fetchTicker()         //Returns market data for the specified trade pair
fetchTrades()       //Returns the market history data for the specified trade pair.

Awesome! I need a little of time to merge it, will be available very soon!


Add ArtifactPackageProcessor

The artifact packaging logic could be improved by:

Abstracting so that the packaging logic happens for "artifacts", rather than specific types of artifacts as it is now
Refactoring so that the packaging logic happens exclusively at the level of FHIR objects, rather than relying on the IO layer directly

Probably best to build this as new functionality then refactor when it's available.


Banner Plugin problem with minimal theme

Is the bug present when using the default Obsidian theme?
No
Is the bug present when snippets and plugins are disabled?
No
Minimal theme version
5.3.2
Describe the bug

Debug info
SYSTEM INFO:
Obsidian version: v0.15.9
Installer version: v0.15.9
Operating system: Windows 10 Pro 10.0.19044
Login status: logged in
Catalyst license: none
Insider build toggle: off
Live preview: on
Legacy editor: off
Base theme: light
Community theme: Minimal
Snippets enabled: 3
Restricted mode: off
Plugins installed: 56
Plugins enabled: 53
1: Icon Folder v1.3.31
2: Copy button for code blocks v0.1.0
3: Templater v1.14.3
4: Advanced Tables v0.17.3
5: Excalidraw v1.7.22
6: Admonition v9.0.5
7: Minimal Theme Settings v5.3.2
8: LanguageTool Integration v0.3.0
9: Image Toolkit v1.3.1
10: Footnote Shortcut v0.0.9
11: Tasks v1.15.0
12: Ozan's Image in Editor Plugin v2.1.4
13: Paste URL into selection v1.7.0
14: Note Refactor v1.7.1
15: Recent Files v1.3.3
16: Contextual Typography v2.2.4
17: Highlightr v1.2.2
18: Sortable v0.2.6
19: Dataview v0.5.46
20: Copy Block Link v1.0.4
21: Remember cursor position v1.0.7
22: Smarter Markdown Hotkeys v1.16.2
23: Advanced Cursors v0.5.1
24: Code Editor Shortcuts v1.10.0
25: Advanced Mobile Toolbar v1.7.7
26: Obsidian Charts v3.6.3
27: Periodic Notes v0.0.17
28: Imgur Plugin v2.2.1
29: Style Settings v0.4.11
30: Editor Syntax Highlight v0.1.3
31: Kanban v1.4.3
32: Tag Wrangler v0.5.3
33: Obsidian Columns v1.2.0
34: Linter v1.5.1
35: Calendar v1.5.10
36: Hider v1.1.1
37: DB Folder v2.6.7
38: QuickAdd v0.5.5
39: Natural Language Dates v0.6.1
40: Multi-Column Markdown v0.7.3
41: Folder Note Core v1.3.5
42: AidenLx's Folder Note v0.16.4
43: AidenLx's Folder Note - folderv component v1.0.0
44: MetaEdit v1.7.2
45: RTL Support v0.3.0
46: Book Search v0.5.8
47: Charts View v1.1.9
48: Quick Switcher++ v2.0.7
49: Advanced URI v1.28.0
50: File Hider v1.1.0
51: Pane Relief v0.4.0
52: File Explorer Note Count v1.2.0
53: Banners v1.3.3
RECOMMENDATIONS:
Custom theme: for cosmetic issues, please first try updating your theme to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

Please update to Obsidian 0.16 and Minimal 6.0

After chack for updates

The same for minimal theme


Test Conversion Function

Testing

Tested several times to the point where the paid subscription reached its limit.
Had to create a dummy JSON file to fetch a dummy request to test functionality.

Subscription limit is daily and monthly had to be careful with testing.


Added Novatel PwrPak7 installation document

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.cuiiyann seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


initial commit - webdav filemanager

A minimalistic solution for WebDAV support.
The credential storage need some work, maybe someone
has a good idea.
Tested against an ownCloud 8.1 installation.
Other than taking care of CORS headers nothing
special was needed on server side.

Code looks great ... I'll try it out as soon as I can and give feedback or merge...

 I have no idea why this was no issue before..  bugfix is commited. I noticed you would have to include the folder of your db files in the url at the moment. Let me know if i should implement browsing or do a recursive search through all directories.

I really want this!  Alas, it doesn't work for me.  I checked it out of the branch and tried w/ my personal webdav store:

logging in seems to work fine; i get 207s for the PROPFIND
when i click on the CKP icon, nothing shows up in the popup, and the DOM seems to be in flux:

It works for me only if I disable cookies to my nextcloud domain. But if I do this I think it can cause other issues with nextcloud when used from the browser. When cookies are enabled, $http calls send them to the server and server returns a 503 error.

Great work.  Very important functionality for me.  I'm having the same behavior as @ctodobom.  The WebDAV server is owncloud 9.1.0.

Yes CORS headers need to be tended. I just added following lines to the .htaccess file
<IfModule mod_headers.c>
    Header add Access-Control-Allow-Origin "chrome-extension://lnfepbjehgokldcaljagbmchhnaaogpc"
    Header add Access-Control-Allow-Credentials "true"
    Header add Access-Control-Allow-Headers "*"
    Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
    <FilesMatch "\.(css|js)$">
        Header set Cache-Control "max-age=7200, public"
    </FilesMatch>
</IfModule>

FYI - hope to research more later but:
Added CORS headers per @PaddeK above.  No joy.  Apache logs report 401 response.
Note that the options page I see id's itself as "chrome://extensions/?options=lnfepbjehgokldcaljagbmchhnaaogpc" vs. the 'Allow-Orign' described above.  Tried changing that - still no joy.  Tried "*" as Allow-Orign; still no joy.
More later . . .

fwiw I ran into the same issue as @brianharcourt , I noticed an error on the console and blindly 'fixed' it with the following:
`diff --git a/services/settings.js b/services/settings.js
index 5595666..e1fd7f9 100644
--- a/services/settings.js
+++ b/services/settings.js
@@ -327,8 +327,8 @@ function Settings() {
exports.getPasswordListIconOption = function() {
return chrome.p.storage.local.get('showPasswordListIcon').then(function(option) {
return {

                  entry: option.showPasswordListIcon.entry || false,

                  group: option.showPasswordListIcon.group || false

                  entry: false,

                  group: false
          }
  })

}`

After this, I was able to select my db.  Webdav works great for me now hosted on a synology nas.  didn't have to update CORS headers in my case.
The only other slight snag I ran in to was I originally specified the path directly to the db file.  It threw me for a loop for a few mins to realize that it wanted the folder which the db file is in.
Thanks for this!

Looking forward to a merge :+1:

Is it possible to use it with Webdav now ?
I have enable CORS headers, how can I do it, there is a workaround ?


fix ds.relation({}) does not return template

Fix regression of ds.relation built-in no longer returning the template structure when passiong in a null object

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 38.487%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

builtins/edge/ds/relation.go
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
1155

Relevant Lines:
3001

💛  - Coveralls


Improve test data generation

🛠 Changelog

Improves test data generation for local development

More consistent naming
Add actual use cases
Add descriptions of reservation unit properties to its description
Add more descriptive reservation unit types for better searching
Generate better seasonal bookings
Generate some recurring reservations
Make test data generation more configurable for later additions
Add reservation unit and purpose images
Fix reservation unit types for Caisa

🧪 Test plan

Automated tests

🚧 Dependencies

None

🎫 Tickets

TILA-3621
TILA-3587
TILA-3588

@joonatank @vincit-matu Can you check this branch and check the generated test data for any needs? I haven't fixed the pictures yet, but the "bulk" data is now much different and I would like your input.

Fixed caisa not being reservable due to not generating reservable time spans for it.

Added image fetching to test data for reservation units and purposes.

Fixed reservation unit types for Caisa units

Added recurring reservations (past, future and ongoing) with some rejected occurrences, denied and cancelled reservations. Also fixed pricing for non-fixed priced reservations

/ff


Improve search to yield better results

Issue
When searching, if the word is contained within another word, it will not display in the results.
This impacts the discoverability of new packages.
Example

Currently when I search "sql" I get no package results even though there are a few package with sql in the name or description.

Only when I search "postgresql" do I get a package. (note: At hex.pm, searching sql gives "sqlight" but not "gleam_pgo")
Possible Solutions

Check if the searched word is in any part of the title / description. Con: One may get more unrelated packages. ex: search for "form" and get "information".
Add a tagging system to gleam packages as metadata. This would allow package authors to assign specific terms that would be useful when searching. Con: to take advantage of this, older packages would need to be updated. This may not be possible with hex (not sure how hex works). Affects the Gleam code base slightly too.
Allow RegEx as an option when searching. By default search works as is, but with a tick of a button one can specify exactly how they want to search something. Could be useful if one wants just gleam_ or gleam_community_ packages. Cons: RegEx can be expensive to compute depending on the implementation (may be a non issue). Not many use cases for a big change. Note: none of the big package repositories have regex search.
Do nothing. If one wants to discover packages they can use https://gleam-lang/awesome-gleam. This encourages quality packages to be used and showcased. Cons: people generally do not make a pr for their package there often. There seems to be a PR every 1-2 weeks and popular packages such as wisp are not added.

Check if the searched word is in any part of the title / description. Con: One may get more unrelated packages. ex: search for "form" and get "information".

Could be good to try this, though it seems likely there would be too many false positives?

Add a tagging system to gleam packages as metadata.

This would be a feature suggestion for Hex, the packages site is just a frontend for it. I think this would likely be the best solution.

Allow RegEx as an option when searching. By default search works as is, but with a tick of a button one can specify exactly how they want to search something.

Could do, though as this is pretty complex we'd need to do a bunch of UX design work for this first, so it is not too confusing.

If one wants to discover packages they can use https://gleam-lang/awesome-gleam. This encourages quality packages to be used and showcased.

This list of packages is very out of date, many of those listed there no longer compile. I've been considering deleting it, or generating it from the package site in some fashion.

For the past couple of days I did some research on seeing if there could be anything done to improve searching.
Below is all I have found.

Utilizing Full-Text Search FTS5 (Current strategy)

Using a custom SQLite function for fuzzy finding (not possible due to esqlite limitations, could be with contributions to it).
The C-api for SQLite supports adding a custom function which can be used in SQL statements and call functions written in the language of the runtime. In languages like Python, packages are built for this but not for Erlang without modifying the esqlite package.

Get all package names and fuzzy search on that (Possible but could be inefficient due to two queries).
There would be a fuzzy search function in Gleam whose implementation is trivial with the signature fn search(names: List(String), max_distance: Float) -> List(String)'. For every request, SELECT name FROM packages. In Gleam search` is called. A query is constructed and executed with these package names to get its information which is displayed on the website.

Use built in distance functions from PostgreSQL. (Would require migrating back to Postgres)
Postgres provides multiple builtin string distance functions which can be a part of the query. The downside to this would be migrating back to postgres would be work but on the plus side old commits can serve as a starter. Usage with deployment and development may be a bit more work too. But this would provide the best fuzzy searching.

Someone yesterday said one can add fuzzy searching to the SQLite text search. Could be good to look into too.

Just pasting the links they shared on Discord if that can be useful:
https://www.sqlite.org/spellfix1.html
https://blog.ouseful.info/2022/01/24/fuzzy-search-with-multiple-items-table-return-in-sqlite/

Someone yesterday said one can add fuzzy searching to the SQLite text search. Could be good to look into too.

Just pasting the links they shared on Discord if that can be useful: sqlite.org/spellfix1.html blog.ouseful.info/2022/01/24/fuzzy-search-with-multiple-items-table-return-in-sqlite
Also this might be useful! stackoverflow.com/questions/52803014/sqlite-with-real-full-text-search-and-spelling-mistakes-ftsspellfix-together

All these examples use Python which is important since the Python SQLite packages have ways to add extensions and custom functions unlike esqlite.

There is another SQLite package on Hex (although it is written in Elixir) that supports loading extensions (which are just shared libraries [.so, .dylib, .dll, ...]).
Exqlite has 'Exqlite.Basic':load_extension(conn, path), where path would be the path to the file.

We're not going to depend on Elixir in this project unfortunately.

I've done some experimenting with client-side search. Mostly just extracting the necessary infomation from the DOM and then searching through it using Fuse.js There's also winodow.search() but it's not recommended even though it's been supported since forever.
DOM Scraping Code

const select = target =>
    (selector, all = false) =>
        all === true
            ? target.querySelectorAll(selector)
            : target.querySelector(selector);
const packages = document.querySelector("ul.package-list").children;
let searchInfo = [];

for(const packageElem of packages) {
    const $ = select(packageElem);

    let pkgInfo = {
        name: $(".package-name a").textContent,
        description: $(".package-description").textContent,
        repoLink: $(".package-links a", true)[1]?.href,
    };

    searchInfo.push(pkgInfo);
}

// Now you can search through `searchInfo`.

Fuzzy Search Code

// Requires `fuse` in `window`.

// Setup Fuse.js
const fuse = new Fuse(searchInfo, {
    keys: ["description", "name"],
    includeScore: true,
    includeMatches: true,
    threshold: 0.4,
    ignoreLocation: true,
    minMatchCharLength: 1, // Change to 2 or 3 for more strict chrecetr checking
    findAllMatches: true, // I don't know how this changes the quality of the results.
    shouldSort: true, // Sometimes useful, sometimes not. I think it's useful with the current `threshold` and `minMatchCharLength`, but if they change, quality changes.
});

// Search
fuse.search("server")
    .map(val => val.item.name) // Just print the package names

I've gotton the fuzzy earch results to be pretty useful without including too much unrelated stuff. I think changing minMatchCharLength to 2 or 3 might make the results even better (less seemingly random results).

It needs to be server side I'm afraid.

How come? Any specific reasons?

Because otherwise it would only work in a browser, and the database would always need to be a size that can be happily sent over the network entirely on each request.

So just in case there become so many packages that the module list needs to be paginated (or be just the most recently published)?
Also, it appears that esqite has the ability to use the system installed sqlite which might be useful when used with a custom sqlite build. According to the spellfix1 page it's a runtime loadable extension but it looks like you might be able to load it at compile time instead of runtime. Their method of loading at compile time does come with the note that it's the quick and dirty way though.

I did some simple experimenting.
Just by adding case insensitive substring searching to the SQL the results improve.
Current

Substring search by name

Substring search by name and description

This small change would be a big improvement as people usually search for keywords that would be in a package.
I will make a PR by tomorrow.

On top of this, I also attempted (but rejected using) fuzzy searching using Levenshtein Distance and Jaccard Distance. Jaccard showed the best results but I realized other than minor spelling errors, checking if a string contains another string is more than enough for most cases. Additionally, there was no good way to fuzzy search apart from querying the database for a list of names, searching through them in Gleam, and then querying again for the packages whose name matches on of those in the list.


[HIVE-12971] add a hive serde for kudu

Change-Id: I72daf3c3f06ccf67e3fa3039c4afa20f6c075cba

Wow, this was clearly a lot of work. Thanks for doing this.
The Kudu project doesn't merge new code through PRs; we use the gerrit tool to do code review and submission. Could you follow the directions here to adapt this PR into a gerrit change?
I recall leaving a similar note in your other pull request (#20) but didn't hear back. Are you able to submit to gerrit? Are you behind a firewall that prevents access?

@cvaliente posted a gerrit review for this so I'm closing this PR. Thanks!


Arcade app:  The page shows no image in "Cardboard Panel"

Describe the bug
Arcade app:  The page shows no image in "Cardboard Panel"
Steps to reproduce the behavior
1.Download app in https://arcade.makecode.com/offline-app
2.Hardware----->Cardboard Panel------->Show Instructions
Expect behavior
The page shows image in "Cardboard Panel"

Actual behavior
The page shows no image in "Cardboard Panel"

Additional context
1.OS: Windows(rs6)
2.arcade version: 1.3.44
3.Microsoft MakeCode version: 6.8.33

Same issue in "Arcade table" and "Arcade cabinet"

Still repros.


Fixed indent on elasticsearch extraVolumes tpl. Was causing parsing errors.

Fixed indent on elasticsearch extraVolumes tpl. Was causing parsing errors.

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

Updated CLA

Could you post what your configuration looks like for this? We have a test for this which passes with and without this indentation. In the YAML spec both should be and are valid so I would be interested to see what configuration you used to break this (as it might affect other values).
This is the test:
https://github.com/elastic/helm-charts/blob/24ac48ac81c43c137e482c47f3a1bf616f49e40d/elasticsearch/tests/elasticsearch_test.py#L309-L323

jenkins test this please


Only query the specific trace using the provided x-client-trace-id tag

This change should make the trace query more efficient as it should only retrieve the single required trace instance.
cc @kyessenov @nmittler
Signed-off-by: Gary Brown<EMAIL_ADDRESS>

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: sebastienvas
Assign the PR to them by writing /assign @sebastienvas in a comment when ready.
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:

tests/OWNERS

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

Hi @objectiser. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: nmittler
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: sebastienvas
Assign the PR to them by writing /assign @sebastienvas in a comment when ready.
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:

tests/OWNERS

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

/assign @sebastienvas

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: nmittler, sebastienvas
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:

tests/OWNERS [sebastienvas]

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

@objectiser: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-bookInfoTests-v1alpha3.sh
7af900cfd70dc241c0d9a93907d7da854ca116de
link
/test e2e-bookInfo-envoyv2-v1alpha3

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Extension Oracle.faas has provided an invalid tree item.

I am trying to create a new function. After selecting create from template and giving a function name, its not giving the option to select repository.
Its throwing this error
Extension Oracle.faas has provided an invalid tree item.

I am facing same issue for all options, create from sample, create my own function and create from template
Extension Oracle.faas has provided an invalid tree item.


Consider a mode where the UI is "off" during ingestion, in order to limit the UI-specific overhead

This could improve loading time for big dataset such as the air traffic example #5449.
Avenues to consider would be:

rerun big_file.rrd --batch-load which would display the UI only after fully loading the rrd
have the UI display a progress bar with a "Show now" button  for loading recording

Related:

#4298

This should be less important now that we have much faster chunk-based ingestion

The ingestion overhead is now way down, and I rather work on making it faster (or run it in a background thread) than add a special mode to pause the UI until the data is loaded


Refactor and docs

Refactor of

waiters.ts -> waiter-manager.ts
simple-waiter.ts -> test-waiter.ts
promise-waiter.ts
tests
docs

TODO:

[x] Add tests for debugInfo
[x] Add tests for custom waiters
[x] Add test to ensure waiters aren't added with the same name
[x] Add tests for waitForPromise
[x] Correctly export types for public consumption
[x] Determine public/private exports
[x] Guard all executions with a DEBUG check, where appropriate

I've left the prod build config commented out in the travis.yml until we can figure out the root case of its failure. Other than that I think we should be OK to merge this as is. Once it's in we can circle back on any small bits we want to change.

until we can figure out the root case of its failure

sounds good, mind making an issue to keep track of that?

@rwjblue I think this is ready to go.


fix: typo, missing apostrophe

Hi @ms43, thanks for your contribution. We appreciate it and will look into this.

Hi, the issue is resolved, and topic is updated!

Hello everyone, since the issue is resolved, I'm closing this request.


Alphabet conversion from Hugging Faces do not work

Following the tutorial:
from pyctcdecode import Alphabet, BeamSearchDecoderCTC

vocab_dict = {'<pad>': 0, '<s>': 1, '</s>': 2, '<unk>': 3, '|': 4, 'E': 5, 'T': 6, 'A': 7, 'O': 8, 'N': 9, 'I': 10, 'H': 11, 'S': 12, 'R': 13, 'D': 14, 'L': 15, 'U': 16, 'M': 17, 'W': 18, 'C': 19, 'F': 20, 'G': 21, 'Y': 22, 'P': 23, 'B': 24, 'V': 25, 'K': 26, "'": 27, 'X': 28, 'J': 29, 'Q': 30, 'Z': 31}

# make alphabet
vocab_list = list(vocab_dict.keys())
# convert ctc blank character representation
vocab_list[0] = ""
# replace special characters
vocab_list[1] = "⁇"
vocab_list[2] = "⁇"
vocab_list[3] = "⁇"
# convert space character representation
vocab_list[4] = " "
# specify ctc blank char index, since conventially it is the last entry of the logit matrix
alphabet = Alphabet.build_bpe_alphabet(vocab_list, ctc_token_idx=0)

Results in:
ValueError: Unknown BPE format for vocabulary. Supported formats are 1) ▁ for indicating a space and 2) ## for continuation of a word.

I'm trying to use a HuggingFaces model with a KenLM decoding but I can't get past this point. Thanks in advance.

Can reproduce

Thanks for reaching out. Looking at your vocabulary, it doesn't look like it is BPE style, just regular characters. You should be able to instead use Alphabet.build_alphabet. Does that work for you?

The vocabulary presented in the example is exactly the one that shows up in the tutorial. In my code, I tried following similar steps as my vocabulary (a spanish one) follows the same structure. I did make that example work as a BPE Alphabet by changing the line:
vocab_list[0] = ""
# for this:
vocab_list[0] = '▁⁇▁'

With that change I could get into the decoding stage (using build_ctcdecoder and a kenlm model, setting ctc_token_idx=0) but sadly my decoded text output is almost the same the greedy decoder from Transformers library could get without any language model.
As you suggested, I tried passing it as a regular vocab, but I get the error:
ValueError: For non-bpe alphabet only length 1 entries and blank token are allowed.

So I changed the conversion to:
vocab_list[0] = ""
vocab_list[1] = "|"
vocab_list[2] = "|"
vocab_list[3] = "|"
vocab_list[4] = " "

Then I could get it to decode, only to give the same results than before, but this time even without spaces (even if [0] is " ").
Here's some more info on my specific code. It's literally the example code from the huggingface wih a 30seg custom audio, and your "getting started" example for decoding, but if you wish I can share my full code.
# My vocab
{'<pad>': 0, '<s>': 1, '</s>': 2, '<unk>': 3, '|': 4, 'E': 5, 'A': 6, 'O': 7, 'S': 8, 'N': 9, 'R': 10, 'L': 11, 'I': 12, 'D': 13, 'U': 14, 'T': 15, 'C': 16, 'M': 17, 'P': 18, 'B': 19, 'Q': 20, 'Y': 21, 'H': 22, 'G': 23, 'V': 24, 'Í': 25, 'Á': 26, 'F': 27, 'Ó': 28, 'J': 29, 'É': 30, 'Z': 31, 'Ñ': 32, 'X': 33, 'Ú': 34, "'": 35, 'K': 36, 'W': 37, 'Ü': 38, '-': 39}

# My Acoustic model
'https://huggingface.co/jonatasgrosman/wav2vec2-large-xlsr-53-spanish'

# My language model (mls_lm_spanish.tar.gz)
'http://www.openslr.org/94/'

# Output from transformers
predicted_sentences = processor.batch_decode(predicted_ids)
'NO SO FUE PANAMÁ YO LUJER MUARIÓ EL SODECI LE FUECIL YO NUNCA E DISTO LUMIR TODOPORTUÑA BELO NESE CHOUTOMA Y ES VERDAD QUE ESTATOONRATO QUE B HABLA L ALTEADO NO LE PERMANADIYO PERO AELLATLLOMA QUETOLES TODO ECERTÓ DESAGIRAS FÁCIL AENMAJONTI MIYNAUNO QUIL IEN DIRECTO SOLAS ORAS ARECUARENTYSIETE BAJO CON EL ÚLTIMO QUE DICE ASÍ ESTAS TRISTEZAS O PENAS DE LUI MIVEES VERDAD QUE LA MUJER QUE DI EN ARGENTINA ES REALMENTE LA MADRE LUIS MIGUEL Y LO TIENE MUY'

# Output from pyctcdecode build_ctcdecoder, with "bpe" vocab created as we discussed
'NO ESO FUE PANAMÁ YO LUJER MUARIÓ EL SODECHI LE FUECIL YO NUNCA E DISTO LUMIR TODOPORTUÑA BELO NESE CHOUTOMA Y ES VERDAD QUE ESTATOONRATO QUE B HABLA L ALTEADO NO LE PERMANADIYO PERO AELLALOMA QUE TOLES TODO ECERTÓ DESAGIRAS FÁCIL AENMAJONTI MIYNAUNO QUIL IEN DIRECTO SOBLAS ORAS A RECUARENTYSIETE BAJO CON EL ÚLTIMO QUE DICE ASÍ ESTAS TRISTEZAS O PENAS DE LUI MIVELES VERDAD QUE LA MUJER QUE DI EN ARGENTINA ES REALMENTE LA MADRE LUIS MIGUEL Y LO TIENE MUY'

# Output from pyctcdecode build_ctcdecoder, with "regular" vocab created as we discussed
'NOESOFUENPANAMÁYOLUJERMUARIÓELSODECHILEFUECILSYONUNCAHEDISTOLUMIRTODOPORTUÑABELONESECHOUTOMAYESVERDADQUESTATOONRATOQUEBHABLALALTEADONOLEPERMANADIYOPEROAELLATLLOMAQUETOLESTODOECERTÓDESAGIRASFÁCILAENMAJONTIMIYNAUNOQUILIENDIRECTOSASOLASORASARECUARENTYSIETEBAJOCONEL ÚLTIMOQUEDICEASÍESTASTRISTEZASOPENASDELUIMIVEESVERDADQUELAMUJERQUEDIENA ARGENTINAES REALMENTEEALAMADREDALUISMIGUEL YLOTIENEMUY'

# I tried changing alpha, beta values with any luck

I understand this is under development, but I stumbled upon your code some days ago and thought it's very cool and have the features I need, so at least I hope I can contribute this way sharing my experience trying to use it.
Many thanks in advance!

Thanks for catching this, I'll work on updating the BPE alphabet parsing logic. It's a little tricky to make it bullet proof because different tokenizers follow different conventions, so this type of feedback is very helpful.
As for you particular example, I'll have a look at the models and see  what I can do. We've mostly used it for english so far, so i'll have a look in more detail to see what's going on.

In the meantime, let's try to get the "regular" vocabulary to work since this should be the right thing to use here. Also, if you want good results then you should pass a list of unigrams to the language model (this is important to make good beam proposals before scoring them with kenlm). Can you try to follow the below snippet and see what you get?
from pyctcdecode import Alphabet, BeamSearchDecoderCTC, LanguageModel

# make alphabet
vocab_list = list(asr_processor.tokenizer.get_vocab().keys())
# convert ctc blank character representation
vocab_list[0] = ""
# replace special characters
vocab_list[1] = "⁇"
vocab_list[2] = "⁇"
vocab_list[3] = "⁇"
# convert space character representation
vocab_list[4] = " "
# specify ctc blank char index, since conventially it is the last entry of the logit matrix
alphabet = Alphabet.build_alphabet(vocab_list, ctc_token_idx=0)

kenlm_model = kenlm.Model("my_model.bin")
with open("my_word_list.txt") as f:
    unigrams = set(f.read().split())

# build the language model
language_model = LanguageModel(kenlm_model, unigrams)

# build the decoder and decode the logits
decoder = BeamSearchDecoderCTC(alphabet, language_model)
decoder.decode(logits)

Hi Georg, first of all thanks for your support.
I tried exactly what you told me, using the supplied "vocab_counts.txt" in my language model (I'm guessing that what you mean by unigram list is a list of unique words used in the model, or I am understanding it wrong?), but still results are far from even legible:
NOESOFUENPANAMÁ YOLUJEMÓELSODEC FUECILSYONUNCA ISTOLUMIRTOOPORTUÑA BELONESECHOTOM YESVERDADQUE ESTATORTOQUEHABLA LALTEADONOLE PERMANADIOPERO QUETOLESTODOCERTÓ ESAGIRASFÁCIL DIRECTOASOLAORAS RECUARENTYSIETE BAJOCONEL ÚLTIMOQUEDICE ASÍESTASTRISTEZAS OPENASDELUIMIVEE VERDADQUELAMUJER QUEDIEN ARGENTINAES REALMENTE LAMADRE LUISMIGUEL YLOTIENEMUY
I know we are off the original issue now, but I can't seem to find what I'm missing to improve the prediction from the acoustic model.
Here's the full code I'm using:
import torch
import torch.nn.functional as F
import librosa
import os
import kenlm
import faulthandler
from pyctcdecode import Alphabet, BeamSearchDecoderCTC, LanguageModel
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor, Wav2Vec2CTCTokenizer

faulthandler.enable()

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

acoustic_model = "grosman-wav2vec2-large-xlsr-53-spanish"
language_model = "spanish-lm-compiled.bin"

processor = Wav2Vec2Processor.from_pretrained(acoustic_model)
tokenizer = Wav2Vec2CTCTokenizer.from_pretrained(acoustic_model)
model = Wav2Vec2ForCTC.from_pretrained(acoustic_model)

def path_to_rosa_audio(path):
    files = os.listdir(path)
    audio_lst = []
    for f in files[70:71]:
        audio, sampling_rate = librosa.load(f"{path}/{f}", sr=16_000)
        audio_lst.append(audio)
    return audio_lst

path = "prueba_seg_2"
audio_list = path_to_rosa_audio(path)

print("Por setear input")
inputs = processor(audio_list,
                   sampling_rate=16_000,
                   return_tensors="pt",
                   padding=True)

print("Por setear modelo acustico")
with torch.no_grad():
    logits = model(inputs.input_values,
                   attention_mask=inputs.attention_mask).logits

print(logits)
print(logits[0][0].sum())
print(logits.shape)

predicted_ids = torch.argmax(logits, dim=-1)
predicted_sentences = processor.batch_decode(predicted_ids)
print(predicted_sentences)

vocab_dict = tokenizer.get_vocab()
print(vocab_dict)

sort_vocab = sorted((value, key) for (key,value) in vocab_dict.items())
vocab = [x[1] for x in sort_vocab]
print(vocab)

print("Por llamar a decode")

kenlm_model = kenlm.Model(language_model)

vocab_list = vocab
# convert ctc blank character representation
vocab_list[0] = ""
# replace special characters
vocab_list[1] = "⁇"
vocab_list[2] = "⁇"
vocab_list[3] = "⁇"
# convert space character representation
vocab_list[4] = " "
# specify ctc blank char index, since conventially it is the last entry of the logit matrix
alphabet = Alphabet.build_alphabet(vocab_list, ctc_token_idx=0)

with open("mls_lm_spanish/vocab_counts.txt") as f:
    unigrams = set([l.split('\t')[0] for l in f.read().split('\n')])

# build the language model
lm = LanguageModel(kenlm_model, unigrams)

# build the decoder and decode the logits
decoder = BeamSearchDecoderCTC(alphabet, lm)
text = decoder.decode(logits.numpy()[0])
print(text)

Thanks!

Hmm, that's odd. Let me try and help figure this out, it's nice to test this use case. Could you maybe share a google drive link together with a list of unigrams and single audio file example with me? you can try sharing it with pyctcdecode-maintainer [at] kensho.com or if that doesn't work you can use georg [at] kensho...

@flariut for reference, what range of values for alpha and beta did you try?  At first glance this looks a lot like a tuning issue: the n-gram character statistics look correct, but the decoder appears to be falling into the trap of creating long OOVs, suggesting that it might penalizing the word count of the label too strongly.  What do you get by setting beta=0?

Patrick, I've tried the values that show on quick start (a=0.5, b=1), also the above code is using the default values as they're not assigned, and as you say I'm trying now to set it to a range of values from 0 to extreme values like 10. No tuning seems to output correct spanish words or correct spacings. For another reference, here's the same audio transcripted by flashlight's wav2letter and the same language model, with lm_weight (I assume that's beta) = 1.5:
eso panamá y si le fué quien yo no he dicho el vito eso tomaría verdad que te toda la de que habla no le perdona pero ahí está espera no mal dos dos estoica tea tenia alguno que las une vamos por el último que dice así esta tristeza pena de no la verdad y la mujer que die argentina es realmente la madre no miguel y no tiene
as you can see, the phrase also doesn't have any sense, but at least the words are correct spanish
Sorry for being this pragmatic, but I'm working with unlabeled data, and scoring isn't really an issue for me. I just need the model to output correct spanish words with certain degree of legibility.
Georg, let me make some more tests to see if I can sort this out, and I email you.
Thank you very much for your help.

btw make sure that alphabet, acoustic model vocab, unigrams, LM all use the same casing. i noticed that some of your posts are all upper case but the most recent example is lowercase. maybe double check that they are all the same when doing the decoding

Georg, I think that was the culprit of my problem. After some tests now I can confirm the language model is being applied and the alpha and beta settings change a lot the results, so it's up to my particular use case to test and tune. Thanks a lot for your time and hope my little inconvience at least serves to refine the tutorials :)

no worries, glad it's working for you now. I'll make sure to add some warnings to detect if there is a mismatch!

adding extra protection in #4


Fix using default hotbars

Partially reverts https://github.com/lensapp/lens/pull/3178
3178 deletes default hotbar creating when hotbar configs are empty. This change breaks lens.
Fixes #3210

For some reason, in 5.x beta versions hotbar store file can contain no information about hotbars, which causes an app crash at line https://github.com/lensapp/lens/blob/master/src/common/hotbar-store.ts#L97. This prevents some users upgraded from beta versions to start Lens 5.0.0 properly. This PR fixes the issue.

Thanks @pashevskii for fixing this!


Swap out nginx as the edge-router for a proxy that allows dynamic dns lookups

See #185.
Nginx wouldn't query the dns dynamically. It only queries once upon startup. There are a few supposed hacks to get it to work, but I found it to be super flakey. It would work a few times then 502, when the service was still there and accessible.
Look at alternatives.
If we don't do this, then the dns lookup for the front-end is only performed once when nginx starts. If the front-end dies and/or starts on another ip address, it will 502. What's more, if we try and start new services, I don't think the front end will ever talk to the new services, because it's still stuck using the old dns entry.

See also: https://github.com/microservices-demo/microservices-demo/issues/233
I think there's a solution that avoids replacing NGINX entirely.

We are not waiting any longer.

Problem fixed by replacing nginx with traefik. I also tested it by taking down the front-end container and bringing up with a new ip. Traefiks picks it up and things continue to work from then on.