Updating Maven Dependency Fails to create a directory

When I follow the documentation for updating a maven dependency here, it fails with the following error:
cause: org.rocksdb.RocksDBException: While open a file for random read: /Users/my-user-name/.rewrite-cache/000207.ldb: No such file or directory

cc: @aegershman

Just as an FYI, I removed that directory and re-ran and it looks like whatever its doing for auth isn't correct either:
cause: org.openrewrite.maven.internal.MavenDownloadingException: HTTP response code: 401

In my case, the username/passwords are in a server block like:
<servers>
        <server>
            <username></username>
            <password></password>
            <id>central</id>
        </server>
        <server>
            <username></username>
            <password></password>
            <id>snapshots</id>
        </server>
    </servers>

ok, I ran mvnDebug and attached to MavenPomDownloader and it does have the proper credentials but I think the issue is that because these are Maven Encrypted the code isn't properly decrypting them like Maven would it's causing the issue.

And I'll add whatever auth it is doing isn't what Maven does :)

@rdifrango to clarify, you're saying your settings.xml is using Password Encryption for credentials, and the so your settings.xml looks similar to this:
<servers>
        <server>
              <id>central</id>
              <username>foo</username>
              <password>{COQLCE6DU6GtcS5P=}</password>
        </server>
    </servers>

    <mirrors>
        <mirror>
            <id>central</id>
            <mirrorOf>*</mirrorOf>
            <url>https://example.org/central</url>
        </mirror>
    </mirrors>

As opposed to having the password be unencrypted, which would be something such as...
<servers>
        <server>
              <id>central</id>
              <username>foo</username>
              <password>my-plaintext-password</password>
        </server>
    </servers>

    <mirrors>
        <mirror>
            <id>central</id>
            <mirrorOf>*</mirrorOf>
            <url>https://example.org/central</url>
        </mirror>
    </mirrors>

Is that correct?

Hey @rdifrango if you're using encrypted maven credentials, I think the issue might be resolved by a PR in the maven-plugin itself, since we can decrypt the <server> credentials in Maven much further upstream before passing it to the MavenPomDownloader .
Since in this case we're doing something special and unique in Maven itself which can really only be resolved using the build plugin, I'm going to move this issue back to rewrite-maven-plugin 👍


Referencing non-existent property doesn't raise an error

The this.xxx is typed as any rather than raising an error in:
<script>
export default {
  computed: {
    foo() {
      return this.xxx
    },
  },
}
</script>

https://github.com/rchl/volar-vue2-test
Vue 2.7
@volar/vue-language-server 1.0.12

I've looked more into yet.
Tested on this code (available in the repo in pages/property.vue:

<script>
export default {
  props: {
    items: {
      type: Boolean,
    }
  },
  computed: {
    something() {
      return this.missing
    },
  },
  data() {
    return {
      exists: true
    }
  },
}
</script>

Tested 4 variants.

With only computed properties:

With computed and props:

With computed and data:

With computed, data and props:

Note how it only detect use of undefined property in the third case (with computed and data present).

Also tested with plain typescript where it works when in a TS file but not in a JS file:
import { defineComponent} from 'vue'

const comp = defineComponent({
  // props: ['items'],
  computed: {
    something() {
      return this.missing
    },
  },
})

export default comp

I don't quite know what makes it behave differently in those two. The types of this seem to be the same (although not whole type is expanded in the hover output so maybe not).
In any case, I don't care too much about this issue since I would be using lang="ts" once I start using Volar. So feel free to close since this seems to be an upstream issue.


mWeb - Group - Name input is displayed in the middle while editing a large group name

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

Version Number: 9.0.66-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/5256940&group_by=cases:section_id&group_order=asc&group_id=229067
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Action Performed:

Open the staging.new.expensify.com website
Tap on the FAB and select "Start Chat"
Add several users to group chat
Tap on "Next"
Tap on the group´s name
Verify the name´s input is displayed at the end of the name

Expected Result:
When opening group´s name tab to edit it, the input should be displayed at the end of the group´s name
Actual Result:
When trying to edit a group´s long name, the input shows the name in the middle and the user has to scroll to the right to reach the end of the name and the cursor
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos

Add any screenshot/video evidence

https://github.com/user-attachments/assets/50f318b3-a69a-477d-a83c-0cc22b01a44b
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
When opening group´s name tab to edit it, the input should be displayed at the end of the group´s name
What is the root cause of that problem?

The underlying component for TextInput accepts a prop selection={{start, end}} to control the cursor position, ensuring it is displayed at the end of the text value. This prop needs to be passed from the GroupChatNameEditPage to achieve the desired behaviour
https://github.com/Expensify/App/blob/3ebe8520d74c57a2fe9548b7d4307206e2b7c673/src/pages/GroupChatNameEditPage.tsx#L102

In addition to this, the selection prop is only supported in the native environment. For the web environment, additional logic is required to achieve the desired behaviour. This can be implemented by setting the selectionRange and scrollLeft on the inputRef explicitly to ensure the cursor is positioned at the end of the text value.
https://github.com/Expensify/App/blob/3ebe8520d74c57a2fe9548b7d4307206e2b7c673/src/components/TextInput/BaseTextInput/index.tsx#L32

What changes do you think we should make in order to solve the problem?

Add the selection prop with the value selection={{start: currentChatName?.length ?? 0, end: currentChatName?.length ?? 0}}  to the InputWrapper in the GroupChatNameEditPage
https://github.com/Expensify/App/blob/3ebe8520d74c57a2fe9548b7d4307206e2b7c673/src/pages/GroupChatNameEditPage.tsx#L102

Add a useEffect in the web implementation of BaseTextInput to handle text selection and scrolling. The effect listens for changes to isFocused and inputProps.selection. When triggered, it validates the selection props and sets the cursor or selection range using setSelectionRange. Additionally, it adjusts the scrollLeft property of the input element to ensure the text is scrolled to the end if necessary.
https://github.com/Expensify/App/blob/3ebe8520d74c57a2fe9548b7d4307206e2b7c673/src/components/TextInput/BaseTextInput/index.tsx#L32
useEffect(() => {
    const inputElement = input.current;
    // Set selection range and handle scrolling
    inputElement.setSelectionRange(inputProps.selection.start, inputProps.selection.end);
    inputElement.scrollLeft = inputElement.scrollWidth;
}, [isFocused, inputProps.selection]);

What alternative solutions did you explore? (Optional)

Works fine on iOS. I will need Android to test this properly

Got my hands on an android, will repro on Monday.

Finally got it tested on Android and I finally understand the issue. The group name shows in the middle but the cursor is off-screen to the right end of the name field.

Will review today

Thanks for all the proposals.
As TextInputClearButton is displayed later, the input's width readjustment causes the cursor to be hidden.
@daledah proposal to use onLayout to scroll the input cursor after width readjustment LGTM.
🎀👀🎀 C+ reviewed


Query cache issue

Describe the bug
I tried to setup the project last few weeks and currently meeting an issue with empty list of repository.  Some additional information:

List of teams and list of members are showed up without any problem.
List of repository from path /repos and /orgs-name/repos are not available. Below is the image for the page /repos
I tried to debug and seems like it's a problem with query cache. So in the reposPager.ts, I force the app to load information from GitHub API instead of from cache (i.e. set queryCache.supportsRepositories in line 35 and 41 to false), the repository lists can be displayed as normal.

Expected behavior
All repositories should display normally.
Screenshots

Hi @gianghoang912 Can you confirm that you don't have the issue with this patch? #156 I had similar issues

Hi @vatsalyagoel : Actually, I applied your fix at lib/caching/redis.ts for another problem (which is joining an organization). Thank you for that.
I did not apply the fix at lib/github/core.ts, since I'm not really sure about its purpose.
Are you currently facing a similar issue with the query cache?
Btw, merry Xmas and happy new year :D

Sorry folks, let me compare this with our internal fork.
What scale orgs are you hoping to manage (# of repos etc)?
We originally were trying to pull and cache more like a proxy, but query cache was added to the and be eventually consistent... and there could be issues in a net new setup without migration.

Hi @jeffwilcox : In total, we have nearly 10 orgs and around 750 repos. Our main organization is containing nearly 300 repos and still expanding

@gianghoang912 sorry it's been a while; we merged a ton of changes in today, any chance you have a semi-working environment to try again?
We've also changed the Postgres schemas some, I think we originally thought of trying to allow other data providers, but are prioritizing postgres; yet I worry we aren't entirely sure how to effectively help others keep up with the changes without adopting some overly complicated entity stuff...

@jeffwilcox Thank you, the new version is running on our environment


fix missing club error

Fix missing club name (matching) errors reported in
https://groups.google.com/forum/#!topic/opensport/wC-4OzKD3fE.
This commit has not been tested yet since I have no idea how to test it.

@wxr001   thanks for add the missing clubs. Note: for the future - you do NOT need to change / edit the READMEs - this files get auto-generated.   Only the .txt files are the source  (sorry for the confusion).
About - FC FC Voluntari   - that looks like a typo? Is this really the misspelled name in the csv file?
About testing. you can download a copy of this repo and than change your script and use:
## use (switch to) "external" datasets

SportDb::Import.config.clubs_dir   = "./clubs"

@geraldb 'FC FC Voluntari' is a misspelled name in ROU.csv downloaded using sportdb-source-footballdata

Thanks for the confirmation. I added a comment in the .txt datafile. Keep it up. Cheers.


Reverse CLI Docs generation mechanism .rst==>MethodDoc.C

We currently manage CLI docs by composing in Python strings in MethodDoc.C and then generating the .rst files from that.
We agreed we need to reverse this...compose in .rst and generate MethodDoc.C.
Best way to proceed is to

clean up existing generated .rst files so that they make sense in structure from the point of view of manual composition as well as decomposition into .rst files. The current design was driven by the current generation process.
craft script to gen the MethodDoc.C file from the .rst content.
confirm result is close too if not identical to current MethodDoc.C and that it all compiles.
add note to MethodDoc.C that it is a generate file and should not be edited
add a hook/ci check to prevent updates to src/doc/cli_manaul/*.rst that don't also re-gen MethoDoc.C or perhaps auto-generated it.

clean up existing generated .rst files so that they make sense in structure from the point of view of manual composition as well as decomposition into .rst files. The current design was driven by the current generation process.

One case of this already aware of is enumerated values documented in tables for attribute objects. See AnnotationAttributes for example. Look at how the tickLocation and tickAxes members are handled. Each enumerated value appears as a row in the table in italics with the default value appearing in normal text first. Would be better if these all appeared in the same table entry as a comma-sep. list with default first either bold or italic and other options in normal text.

If it isn't clear what motivates this...once we throw the switch and go .rst==>MethodDoc.C generation mode, any future changes to .rst files will be by-hand, manual work. So, its best if we do a little more work on the current MethodDoc.C==>.rst conversion script to ensure the result is as sane a .rst format as we'd expect if we had written it by hand. For example, another thing that script doesn't do is create cross-referencing anchors for each API function and maybe it should because that would make it easy to refer (and link) to other parts of the documentation as needed. Hope that makes sense and is useful guidance.

Relates to #3362, which will add a new tab to the sphinx documentation.

We should try to be a little more succinct in options. For example, the volume attribute "free form opacity" should not have all numbers 0-255 listed out. It should just say something like "integer value between 0 and 255".

We probably don't want multilines to go onto new rows for this table either:

We probably don't want multilines to go onto new rows for this table eithe

Oops. Yup. Thats another good one to catch.

I don't understand what information is meant to be conveyed by the line that says
argument : type

If we copy how the "return" line has it, perhaps "type" should be "String", since the description specifies it is a string. Furthermore, the green box that says
ActivateDatabase(argument)

is a little ambiguous. On first read, I thought, "Why does it just say argument? Of course it is an argument.." Then I read some of the other functions and realized that it is the name of the argument, and when there are multiple arguments it is important to distinguish between them. It is not immediately clear that this is the name of the argument, so perhaps we can use a different keyword to convey that information. Maybe something like "arg_in".... Idk.

I think this is a potential bug in the rst generation.
I think it comes from line 405 of sphinx_cli_extractor.py
So, perhaps we should find out whether we have enough information to instead output something indicating the desired argument type.

Using AddOperator() as an example, I am not sure I see anything in the python doc string for that method in MethodDoc.C that captures the argument types.
That said, I wonder if we can use the Python run time to query information about a function to determine the types of its arguments. Does dir(AddOperator) or some other such thing in python give us information we can use to capture argument type?

I believe there may be another bug in the return type : integer. Take a look at GetMaterials, for example. The synopsis indicates that it returns a tuple of strings, but the return type is still integer.  This line is hard-coded to always say integer, regardless of the return type.

We can probably get the return type from the synopsis. For almost every record in the documentation, the return type is the same throughout the synopsis. The only exception is the short-hand notation that gets used to supply the same documentation for similar functions. For example, the GetPickOutput synopsis shows
GetPickOutput() -> string
GetPickOutputObject() -> dictionary

However, these are two different functions, and we can probably tell the script to use the output correlated to the function for which we are creating the rst entry.
This raises another point. The rst documentation is exactly the same for both GetPickOutput and GetPickOutputObject. Is this desired?

We can probably get the return type from the synopsis.

The only exception to this is in Query, where the output varies based on the setting from SetQueryOutputToXYZ(). This is a unique function, and for this one we can probably leave off the return type because the note under "Returns:" explains how/why the return type is different.

WriteScript needs documentation

Need to think about a way to deal with the alias in visitmodule.C in the reverse generation...

For example, maybe instead of rewriting the documentation for NodePick, we just make a note that says, "This is an alias for NodePick" with a link to the NodePick documentation.

This documentation doesn't actually say anything about ToggleLockTools, so it is not clear what ToggleLockTools is supposed to do.

This line is hard-coded to always say integer, regardless of the return type.

I wonder if that is because all VisIt's Python CLI methods are designed to return int? Maybe there are a few exceptions such as GetQueryOutputString(). So, yeah, this is probably a bug in the CLI extractor. That said, if its right 95% of the time, it might be fine to leave this with return types alone, generate the .rst for the (final) time and fix the 5% errors manually.

For example, maybe instead of rewriting the documentation for NodePick, we just make a note that says, "This is an alias for NodePick" with a link to the NodePick documentation.

I'd be fine with that. The proper name is NodePick. I think the cases of these kind of aliases are small too. But, there are probably a few.

This documentation doesn't actually say anything about ToggleLockTools, so it is not clear what ToggleLockTools is supposed to do.

It smells like ToggleLockTools is an aliase for a whole collection of methods that toggle locking of various things (view, bounding box, time, limits, etc.)

I wonder if that is because all VisIt's Python CLI methods are designed to return int? Maybe there are a few exceptions such as GetQueryOutputString(). So, yeah, this is probably a bug in the CLI extractor. That said, if its right 95% of the time, it might be fine to leave this with return types alone, generate the .rst for the (final) time and fix the 5% errors manually.

Many of them do return int, but it's probably closer to like 60% than 95%. I've written up a modification that can extract the return type from the synopsis.

It smells like ToggleLockTools is an aliase for a whole collection of methods that toggle locking of various things (view, bounding box, time, limits, etc.)

Do you mean that if a use calls ToggleLockTools(), then that calls all the 8 toggles listed in the documentation? I'm curious where this trail leads....

Doh! Sorry @rusu24edward ... ToggleLockTools() is one of the things that can be locked and unlocked. We have views, data, time, bounding box, etc. Tools are the lineout, plane tool, sphere tool, tools in the viewer window. And, this method will toggle the lock on them just like the other methods toggle the lock on their respective parts. Does that make sense.

Doh! Sorry @rusu24edward ... ToggleLockTools() is one of the things that can be locked and unlocked. We have views, data, time, bounding box, etc. Tools are the lineout, plane tool, sphere tool, tools in the viewer window. And, this method will toggle the lock on them just like the other methods toggle the lock on their respective parts. Does that make sense.

Yes, that makes sense. Thank you! In this case, I believe the documentation for ToggleLockTools is wrong.

Actually, from within python, if you do help(ToggleLockTime) or help(ToggleLockBoundingBox), etc., they all take you to the same bit of documentation. So, from there it feels correct. How it should pan out in the .rst documentation is probably somewhat similar; a single place that documents all of them since all of their behavior is basically the same, just for different controls in the UI.

Actually, from within python, if you do help(ToggleLockTime) or help(ToggleLockBoundingBox), etc., they all take you to the same bit of documentation. So, from there it feels correct.

That's okay, but I believe that documentation does not say anything about ToggleLockTools, which is a little strange for the user who types help(ToggleLockTools).

Sure. Thats appears to be an oversight in MethodDoc.C there the methods for locking things are documented. Grepping around for visit_ToggleMode_doc which is the name of the char const * C++ variable that holds the Python doc string for those methods, that string gets added to a number of Python methods in visitmodule.C, for example visitmodule.C. So, it got added for ToggleLockTools but the doc string itself didn't get updated to include a line about that method.

Aliased functions to manually fix in the rst:
PointPick
SetDefaultMeshManagementAttributes
SetMeshManagementAttributes
TimeSliderSetState
Wrong/Missing documentation:
ToggleLockTools
WriteScript

GetQueryOutputObject probably does not return an XML string.

Missing listing for the argument

Missing argument list for stringOnly

Missing argument documentation for args that exist in the synopsis

Missing args

Missing args

This is not getting converted correctly from MethodDoc

Missing args

Don't use grid tables because they are difficult to manage manually. Use sphinx simple tables or lists instead.

BTW...happened to look at the PDF that RTD generated from the current CLI manual. It looks like, somehow, centered justification has been turned on for all text in the CLI. So, it looks wierd. It might be something small we can fix by removing some lines from the generated .rst file. OTOH, it could be a systemic problem with the way the cli_extractor script is formatting the .rst output. If the latter, we should fix there

BTW...happened to look at the PDF that RTD generated from the current CLI manual. It looks like, somehow, centered justification has been turned on for all text in the CLI. So, it looks wierd. It might be something small we can fix by removing some lines from the generated .rst file. OTOH, it could be a systemic problem with the way the cli_extractor script is formatting the .rst output. If the latter, we should fix there

Looks like this starts happening at 2.1.4 and continues until 2.4. This part of the manual looks like it comes from the manually edited rst files, not the auto-generated ones. I'll look into this for a fix.

Looks like this starts happening at 2.1.4 and continues until 2.4. This part of the manual looks like it comes from the manually edited rst files, not the auto-generated ones. I'll look into this for a fix.

@markcmiller86 This branch should fix the issue. Can you have RTD generate for this branch and look at the pdf again?

Since the LC update of python, sphinx_cli_extractor doesn't work anymore. We may need to recompile the visit python module against the new python in LC.

Hmm, try using either the python installed with VisIt in /usr/gapps install point or a local build you have handy and follow these steps or something like them in the docs.

Hmm, try using either the python installed with VisIt in /usr/gapps install point or a local build you have handy and follow these steps or something like them in the docs.

I tried a few ways. Didn't work out for me. I made a ticket for it: #3522

On surface, this works...
env PATH=/usr/gapps/visit/3.0.0/linux-x86_64-toss3/bin:/usr/gapps/visit/3.0.0/bin:/usr/gapps/visit/bin:$PATH PYTHONHOME=/usr/gapps/visit/3.0.0/linux-x86_64-toss3/lib/python PYTHONPATH=/usr/gapps/visit/3.0.0/linux-x86_64-toss3/lib/site-packages ./sphinx_cli_extractor.py


Tree reorderable on tables

Donate 💰 to fund this issue

You can donate funding to this issue. We receive the money once the issue is completed & confirmed by you.
100% of the funding will be distributed between the Filament core team to run all aspects of the project.
Thank you in advance for helping us make maintenance sustainable!

Switch view toggle between standard table and tree editor.
If tree shows more than x rows show warning about performance?
Collapsible sub trees that can still be dragged with their children
Drag and drop trees between nested trees as well as being able to drag to top level

I've come across this issue/suggestion. Could this work with the Nested Set package by Lazychaser? I want to dive into making Filament compatible with this package, but if you are already planning something. I may be waiting...
I'm searching for a way to make this type of table:

We should be able to access to the edit page of every items for relations manager


Update LICENSE.md

Updated your license with your name

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

@goulart-paul You may want to correct this in all repos of your group. Thank you


mgmt, providerhub, add live tests

Description
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[ ] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.

/azp run prepare-pipelines

/azp run java - providerhub - mgmt - tests

From Bing:

Azure Provider Hub is a service that provides a set of APIs for managing Azure resource providers. It is used by Azure Resource Manager (ARM) to manage resource providers. The provider hub is responsible for managing the registration of resource providers and their associated operations. It also provides a set of APIs for managing custom rollouts and default rollouts for resource providers12

Seems Hong's test is about defining ARM operations using providerhub SDK...

From Bing:

Azure Provider Hub is a service that provides a set of APIs for managing Azure resource providers. It is used by Azure Resource Manager (ARM) to manage resource providers. The provider hub is responsible for managing the registration of resource providers and their associated operations. It also provides a set of APIs for managing custom rollouts and default rollouts for resource providers12

Seems Hong's test is about defining ARM operations using providerhub SDK...

Yeah, I just not think we have permission to modify that.


Typo on New-ApplicationAccessPolicy.md

https://github.com/MicrosoftDocs/office-docs-powershell/issues/5375

Docs Build status updates of commit e72574e:
:clock10: Full build: the average full build time is 14 min(s) 39 sec(s), this is based on the last 1000 build(s) for this repository.

Docs Build status updates of commit e72574e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/organization/New-ApplicationAccessPolicy.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Parameters<> utility type cannot infer types when using generic type as index

🔎 Search Terms

May relate to #49802
🕗 Version & Regression Information
4.7.4
⏯ Playground Link
Playground link with relevant code
💻 Code
enum Options {
    one,
    two,
    three
}

const dictionary = {
    [Options.one]: (a: string, b: boolean) => { console.log({ a: a, b: b }) },
    [Options.two]: (c: number) => { console.log(c) },
    [Options.three]: () => { },
} as const

type P<T extends Options> = Parameters<typeof dictionary[T]>
type One = P<Options.one> // This gets argument tuple correctly

function complicated<T extends Options>(option: T, ...args: Parameters<typeof dictionary[T]>) {
    const fn = dictionary[option]
    fn(...args) // This error shows for Typescript but running gives no errors.
}

complicated(Options.one) // This type check works
complicated(Options.one, 'a', true)
complicated(Options.two, 1)

🙁 Actual behavior
Error when using fn(...args), showing A spread argument must either have a tuple type or be passed to a rest parameter.(2556)
Note that fn() is also suggested by Typescript to be (arg0: never, b: boolean) => void, which suggests it's collapsed from the entire dictionary.
🙂 Expected behavior
...args should correspond to the required parameters of fn. This should be equivalent to dictionary[option](...Parameters<typeof dictionary[option]>)

Duplicate of #49700


Extract the unit test framework of Vc.

Vc has a unique unit test framework to ease testing several types with the same generic function with minimal boilerplate. The test framework is also used in another software project and may be of interest to other projects.
The test framework itself is a grown hack and needs a good cleanup to become a standalone project.

committed to mkretz/datapar (upcoming Vc 2.0)


Update folium call in CSLC notebook to reflect basemap compatibility issues

Addressing issue #43
In the last cell with Folium visualization, the depreciated Stamen basemap is replaced, plus a scalebar is added to the bottom left of the map:

Tested. Looks good


youtube timestamps

I've never used youtube (i.e. never had an account) but evidently people who upload videos they can paste in timestamps to get chapter markers.  Thanks so much for the writing xml and with those time conversions am able to further extend it's functionality. Many examples show mm:ss if there is no hh but hh:mm:ss is valid even with 00 as hh.
00:00:00 001 The Opening
00:00:29 002 The Heifer
01:12:18 003 The Family of ‘Imran
01:51:18 004 Women
02:32:56 005 The Table
03:04:44 006 The Cattle

So to add that in chapters.lua
local function seconds_to_hhmmssnoms(sec)
    local hours = math.floor(sec / 3600)
    local minutes = math.floor(sec % 3600 / 60)
    local seconds = sec % 60

    return string.format("%02d:%02d:%02d", hours, minutes, seconds)
end

local function write_timestamps(...)
    local osd = ...
    if mp.get_property_number("chapter-list/count") == 0 then
        msg.debug("nothing to write")
        return
    end

    -- figure out the directory
    local chapters_dir = utils.split_path(mp.get_property("path"))

    -- and the name
    local name = mp.get_property("filename")

    local chapters_file_path = utils.join_path(chapters_dir, name .. ".chapters.timestamps")

    msg.debug("opening for writing:", chapters_file_path)
    local chapters_file = io.open(chapters_file_path, "w")
    if chapters_file == nil then
        msg.error("could not open chapter file for writing")
        return
    end

local success, error = chapters_file:write(construct_timestamps())
    chapters_file:close()

    if success then
        if osd then
            mp.osd_message("Chapters written to:" .. chapters_file_path, 3)
        end
        return chapters_file_path
    else
        msg.error("error writing chapters file:", error)
        return
    end
end

local function construct_timestamps()
    local chapter_count = mp.get_property_number("chapter-list/count")
    local all_chapters = mp.get_property_native("chapter-list")

    local timestamps = ""

    for i, c in ipairs(all_chapters) do
        local c_title = c.title
        local c_start = c.time
        local c_end

        if i < chapter_count then
            c_end = all_chapters[i+1].time
        else
            c_end = (mp.get_property_number("duration") or c.time)
        end

        msg.debug(i, "c_title", c_title, "c_start:", c_start, "c_end", c_end)

        timestamps = timestamps ..
        seconds_to_hhmmssnoms(c_start) .. " " .. c_title .. "\n"

    end

mp.add_key_binding(nil, "write_timestamps", function () write_timestamps(true) end)

thanks for the suggestion, added


Ipython extension

I have added the necessary hooks to load pyrthon in an ipython notebook or console.  This is accomplished by running the following line from the console or in a notebook cell.
%load_ext pyrthon

I am not sure how you want to handle testing (and TBH I am a novice at testing IPython extensions).  Included is tests\test_load_extension.ipynb which can be used to test the functionality of the extension as follows:
pip install nbval
py.test --nbval tests/test_load_extension.ipynb

(Run from the the project root.)

LGTM. I added the tests to the Travis build for python 3.6 and merged. Thank you!


Proposal for a @noescape(once) modifier

Hello,
This proposal introduces a @noescape(once) modifier that relaxes variable initialization requirements:
func f(closure: @noescape(once) () -> ()) { closure() }
let x: Int
f { x = 1 )
// use x

Discussion thread: https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160125/008167.html

@zneak Félix, our @noescape(once) proposal is now scheduled!

Saw that! Very cool!

Le 28 avr. 2016 à 09:32:37, Gwendal Roué<EMAIL_ADDRESS>a écrit :
@zneak https://github.com/zneak Félix, our @noescape(once) proposal is now scheduled!
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub https://github.com/apple/swift-evolution/pull/271#issuecomment-215486859


Request entry for TeX/LaTeX etc in preferred language settings

🐞 Problem
I haven't participated in 24pullrequests before, but since I am good with LaTeX I was intending to tick that as one of my preferred languages. However, it is not available. (I also looked for a generic TeX entry.)
🎯 Goal
It would be good if there was at least a generic TeX entry.
I don't expect there to be a different entry for all the different flavours of LaTeX, LuaTeX, XeTeX and so on, that would be a bit ridiculous.
💡 Possible solutions
I am not strong with Ruby, but I am guessing this would be fairly easy to add. I'm guessing the set of possible languages is stored as some hardcoded array of strings or something, which would be easy to add to. If you point me in the right direction, I might be able to make this one of my 24 pull requests ;)

Thanks for reporting this @cryptarch, the list is here if you'd like to take a stab adding it: https://github.com/24pullrequests/24pullrequests/blob/master/app/models/project.rb
I recommend trying to match it with the format of language names that GitHub supports so that all TeX repos get properly matched, full list here: https://github.com/github/linguist/blob/master/lib/linguist/languages.yml
We can probably use the linguist gem at some point to remove that hardcoded list, but it's a bit out of scope for this issue.

Hi @andrew / @cryptarch I am a beginner to open source contribution and would like to take this on. Should the option be TeX ?
Thanks!

@asimabdul If I understand https://github.com/github/linguist/blob/master/lib/linguist/languages.yml correctly, it should be TeX.
I intend to do this tomorrow but if you get there first more power to you :D

@asimabdul yeah it should be TeX

thanks @cryptarch and @andrew . I've submitted a PR for this.

@asimabdul thanks! Just deploying that now


Publish new release

Hi,
I have been using spinner in one of my projects and it works great, however I could really use some of the latest master branch additions, mainly:

log method to print above spinner
tty? method which seems to be private in the released version.

Have you considered pushing a new release any time soon?

Hi Andrejs 👋
Thanks for using this gem in your project.
My plan was to look at the timer and multi-spinner issues. However, there is no reason why I cannot make this release earlier. I will see what I can do.

Hi @piotrmurach! Thanks for making this (and the other cool parts of tty). I'd also benefit from a new release, instead of relying on master in my Gemfiles. Can I help with the release somehow?

@jgarth Yes, you can. The log method isn't fully robust for release. Here's the Spinner breaks on multiline message issue that needs resolving. My last comment summarises the problem and possible solutions. Once this is addressed, I think we will be in a good place to cut a new release.

If the methods are not available, the README documentation should at least reflect that they are either not available but planned or they should be. removed from the README completely.
I added this patch to my code for a log method:
module TTY
  class Spinner
    # Log a message to the output
    # This will clear the current spinner line, print the log message,
    # and then redraw or resume the spinner on a new line.
    #
    # @param [String] message
    #   the log message to print
    #
    # @api public
    def log(message)
      synchronize do
        clear_line    # Clear the spinner
        output.puts(message) # Log the message
        redraw_indent # Redraw the spinner frame
      end
    end
  end
end

Hi @piotrmurach Thank you for your messages! What could move this issue forward?

@piotrmurach, thanks for all of the work on the fleet of tty tools, they're fantastic!
Is there any chance of getting a release for this gem to support .log?


[Palmetto VERSION_ID= #475-b3ff4009f88634] BMC failed to ping after codeupdate due to Ramdisk image is corrupt or invalid

Issue:
After BMC codeupdate 'Verify Ping and REST Authentication' failed after retrying for 30 minutes
BMC failed to ping even after trying PDU cycle power off/on
Log info:
Logs captured from serial port console
RAM:  496 MiB
WARNING: Caches not enabled
Flash: 32 MiB
In:    serial
Out:   serial
Err:   serial
Net:   aspeednic#0
Hit any key to stop autoboot:  0
## Loading kernel from FIT Image at 20080000 ...
   Using 'conf@1' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x20080124
     Data Size:    1518552 Bytes = 1.4 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x40008000
     Entry Point:  0x40008000
     Hash algo:    sha1
     Hash value:   679d0aa0ed258d070d166c2dabdb92c6cbcfbed0
   Verifying Hash Integrity ... sha1+ OK
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
ast#
ast#
ast#
ast# printenv
baudrate=115200
bootargs=console=ttyS4,115200n8 root=/dev/ram rw
bootcmd=bootm 20080000 20300000
bootdelay=2
ethact=aspeednic#0
ethaddr=A0:42:3F:25:17:2C
spi_dma=yes
stderr=serial
stdin=serial
stdout=serial
verify=yes

Environment size: 241/131068 bytes
ast#

serial_port_logs.txt
Attached serial port console logs

@kc8apf I know some changes from you went in here recently?  All 3 of our systems that tried the new build today hit this.  I have seen an issue where our code update method doesn't seem to update the bootloader, maybe that's the issue here?  #526 is that issue.

Please follow https://github.com/openbmc/openbmc/issues/1030


fixes for #43 #44

src/net/tootallnate/websocket/drafts/Draft_10.java
fixed infinit recursion
src/net/tootallnate/websocket/drafts/Draft_76.java
fixed chopped of content (by fall back to default implementation)

Thanks David!


Panic when login via PAM

Gogs version (or commit ref): <IP_ADDRESS>8
Git version: <IP_ADDRESS>
Operating system: RHEL 7.3
Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] SQLite

Can you reproduce the bug at https://try.gogs.io:

[ ] Yes (provide example URL)
[X] No
[ ] Not relevant

Log gist (usually found in log/gogs.log): https://gist.github.com/stevenbarrehpas/e48ae270893e180092ff067f9efdb0e1

Description
500 error when logging in with LDAP

Hi, from the log, you are using PAM not LDAP?

Correct, PAM. And pam is using winbind.

OK,... github.com/msteinert/pam seems no longer maintained and error is from this package. I have no idea...

It was working fine yesterday on <IP_ADDRESS>1 and seems to have only broken after the update.

I see. Maybe it stops working with Go 1.8.

Hi all.
I can confirm this error is also present with Go 1.7.5.

Gogs version (or commit ref): <IP_ADDRESS>7
Git version: <IP_ADDRESS>
Operating system: Debian 7 (Wheezy )

Compiled with -tags "pam sqlite".
This is annoying. Gogs is kind of in my sights because I want to not use LDAP... any chance to get this fixed?
Best regards and thanks in advance for your support,
ichrispa

Hi again @Unknwon and @sbarre-esit,
I did get PAM working after some fiddling, but this is the first time I ever handled go. So I am really not confident enough to put this into a pull request.
Here's how I got PAM running:

replaced vendor/github.com/msteinert/pam with the actual git clone of his repo. The reason was that his transaction_test.pam is actually working. Lo and behold, this made any errors go away. Authentication still failed.
My /etc/pam.d/gogs is cloned of an interactive login (ssh). But gogs does not pass a username to pam echo-on prompts. So I extended the switch in the callback of  pam.go a bit:

func PAMAuth(serviceName, userName, passwd string) error {
	t, err := pam.StartFunc(serviceName, userName, func(s pam.Style, msg string) (string, error) {
		fmt.Printf("Callback called\n")
		switch s {
                case pam.PromptEchoOn:
                        return userName, nil
                case pam.PromptEchoOff:
                        return passwd, nil
                case pam.ErrorMsg, pam.TextInfo:
                        return "", nil
                }
		return "", errors.New("Unrecognized PAM message style")
	})

	if err != nil {
		return err
	}

        fmt.Printf("Got PAM started\n")
	if err = t.Authenticate(0); err != nil {
                fmt.Printf("t.Authenticate(0) failed\n")
		return err
	}

	return nil
}

This is working as expected. Authenticates valid users, rejects buggy credentials.
I have no idea how to get go to fetch the current master of @msteiner's repo for regular builds, but that fixes the Pointer-error.
As for the patched switch-statement, I might have a weird concept of how this is supposed to work. Maybe supressing the username here is normal? Is it possible to either provide a pam.d service description that works with the non-interactive prompt?
Best regards,
ichrispa

@ichrispa thanks for the patch! Maybe you could send a PR so I can closely look what changes you made?

Vendor has been updated on both master and develop branch, please help test.

Did this end up being a problem with github.com/msteinert/pam?
It isn't necessarily unmaintained; The PAM API hasn't changed much lately.

@msteinert No.. I think it was caused by, somehow, govendor vendors an old (buggy) version of that package. Force update and then vendor again seems fixed the problem.

Hey @Unknwon,
without knowing/learning go's build system, I have no idea how to create a meaningful build request. But just updating the msteinert/pam dependency to the current version fixed the problem.
Thanks a lot for your support 👍
ichrispa


fix: address unsafe deletion when disabling all fee channels

Description

closes: #780

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (see CONTRIBUTING.md)
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the module structure standards.
[x] Wrote unit and integration tests
[x] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[x] Added relevant godoc comments.
[x] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[x] Review Codecov Report in the comment section below once CI passes

Unnecessary with the current direction of #821


Feature/benchmarking

This pull request brings in basic infrastructure for benchmarking SELF on GPU accelerated systems and larger VMs on Google Cloud using https://github.com/fluidnumerics/rcc-run

/gcbrun

/gcbrun

/gcbrun

/gcbrun


SAK-32731 Change default evaluation period on peer-assessed assignments.

This work has now been done under SAK-32733, dates are now configurable.


Relase Tensorflow-Lite inference from Tensorflow

In this pull request, I share my inference code for pose estimation only using Tensorflow-Lite, OpenCV, Pillow, and numpy packages.

Thank you for creating the PR.
I can see there is now the tflite-runtime package on PyPI.
Does that work for you as well?
There are a few things that I think we need to do:

Merge bodypix_tflite/tf_bodypix with tf_bodypix (otherwise it's like a separate project):

When merging, the current functionality should still work, imports may need to be dynamic

Remove bodypix_tflite (with it the models that should be downloaded on demand, but may need to host he tflite version)
Add a ci test to test with tflite-runtime rather than tensorflow dependency
The tflite-runtime dependency could be expressed as a Python extra

If you happy, then I could make some of those changes in your branch.

I did not check the code with tflite-runtime package on PyPI.
If I should do anything, please tell me. Thanks.

If I should do anything, please tell me. Thanks.

The points mentioned my previous comment (https://github.com/de-code/python-tf-bodypix/pull/157#issuecomment-995302625) will need to be done. Basically the goal is that this library (installed via pip) works out of the box and transparently with tflite-runtime (rather than tensorflow).
I could make a start making those changes in your PR branch. Are you happy for me to make those changes in your PR branch?

Yes, I would be happy to make those changes in my PR branch.

Yes, I would be happy to make those changes in my PR branch.

Great, thank you. Can you give me permissions to your PR branch please?
See https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork
(Although I am not sure whether the option is there because you have using the develop branch. Potentially you'd need to create a separate branch and switch the PR to the new branch)

Sorry. I do not contribute to any project until now and therefore I am not familiar with that. If it is applicable, I or you can finish this PR and create a new one in another branch.

Sorry. I do not contribute to any project until now and therefore I am not familiar with that. If it is applicable, I or you can finish this PR and create a new one in another branch.

That is fine. There is always a first time :-)
It is good to contribute open source projects.
I should add a contributing guide.
Generally it is advised to create a separate branch in your fork and create the PR from that new branch.
But in the end it doesn't affect the outcome as much. However, in order for me to contribute to the PR, I will need access.
Usually there is a tick box when creating a PR. I am not sure if it is shown for you in this case, because the PR branch would be the main branch of your fork.
If you don't see that option, you could try to create a branch from the develop branch of your fork (which will already have your changes in it), then you can edit this PR and change the from branch to the new branch. That will then hopefully show the option to allow edits to the PR branch by the project maintainers.
Alternatively you could also add me to your fork with "Write" permissions. But going through the above approach would be preferable as that it how it would typically work for your future contributions to other open source projects.


jest-haste-map: @providesModule naming collision: Duplicate module name: react-native

I don't know if I'm the only one with this error, but it's terrible I cannot continue working and I don't know if you can help me with it.
I've been following this expo-monorepo to configure it with this project, in the packages/app/ route, you can find all the React-Native code.
The error is this:
(node:22476) UnhandledPromiseRejectionWarning: Error: jest-haste-map: @providesModule naming collision:
  Duplicate module name: react-native
  Paths: /home/andres/Documents/fullstack-graphql-airbnb-clone/node_modules/react-native/package.json collides with /home/andres/Documents/fullstack-graphql-airbnb-clone/packages/app/node_modules/react-native/package.json

This error is caused by a @providesModule declaration with the same name across two different files.
    at setModule (/home/andres/Documents/fullstack-graphql-airbnb-clone/node_modules/metro/node_modules/jest-haste-map/build/index.js:462:17)
    at workerReply (/home/andres/Documents/fullstack-graphql-airbnb-clone/node_modules/metro/node_modules/jest-haste-map/build/index.js:512:9)
    at processTicksAndRejections (internal/process/task_queues.js:89:5)
    at async Promise.all (index 1020)

(node:22476) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:22476) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

First, I tried cleaning up the cache and watchman, with these commands:
I'm using Linux Mint in its latest version
# Restart watchman
echo 256 | sudo tee -a /proc/sys/fs/inotify/max_user_instances
echo 32768 | sudo tee -a /proc/sys/fs/inotify/max_queued_events
echo 65536 | sudo tee -a /proc/sys/fs/inotify/max_user_watches
watchman shutdown-server
watchman watch-del-all

# Then remove all the node_modules from the packages

# Then clean cache
yarn cache clean

# Then install everything from the route folder `packages/`
yarn install

Then, I published this issue in the spectrum chat group of expo, and only one guy answered me, but the example that he gave me did not work...
I don't know how to resolve it, but I'd be thankfully with you if you know how :smiley:

I've changed the version of expo 33, you should do it with this example too.
Also, I have another error with this version, I'm going to publish it in the spectrum chat group of expo, and see if they can help me,
thanks for making this example also!
If you are curious about the issues I'm talking about


Add support for WASILibc module

Quoting the wasi.dev landing page:

The WebAssembly System Interface (WASI) is a group of standard API specifications for software compiled to the W3C WebAssembly (Wasm) standard. WASI is designed to provide a secure standard interface for applications that can be compiled to Wasm from any language, and that may run anywhere—from browsers to clouds to embedded devices.

Currently support for WASI in Swift is based on wasi-libc.
Adding support for wasi-libc mostly amounted to excluding unsupported errnos, adding TLS dictionary storage shim for single-threaded environment, and adding constants in C headers for macros that Clang importer currently doesn't support.

@swift-ci test

Lack of CI jobs for WASI is currently blocked by https://github.com/apple/swift/pull/72728.

@swift-ci test

@swift-ci test

@swift-ci please test

@glessard Yes, we have multi-threaded wasi target as a separate triple (wasm32-unknown-wasip1-threads) from the non-threaded one (wasm32-unknown-wasi)

LGTM. Do we have multi-threaded wasi support on swift/main?

Yes, but that requires a special Swift SDK to be installed from artifacts built by the SwiftWasm org. There's ongoing work to build that on Swift CI directly in https://github.com/apple/swift/pull/72728.


varfish irresponsive after deleting a sample uploaded to category

Describe the bug
We tested if a sample could be uploaded to a category. It was successfully uploaded and, as expected, did not appear anywhere except on the Django admin site. After deleting the sample manually, varfish became irresponsive so we had to physically restart the server. There were no issues with the database whatsoever.
To Reproduce
Steps to reproduce the behavior:

Create a category
Upload a sample
Go to the Django admin site
Delete the sample
Check if the webpage is responsive

Expected behavior
Same as deleting a sample from a project, varfish would work normally.
Screenshots
N/A
Desktop (please complete the following information):

OS: Ubuntu 18.2
Browser: Mozilla Firefox
Version: 94.0

Varfish Server (please complete the following information):

OS: openSUSE Leap
Version: 15.2
Varfish version: 0.27

Smartphone (please complete the following information):
N/A
Additional context
N/A

Root Cause Analysis
N/A
There is no need for a root cause analysis. Categories are handled differently from projects for display/templates in sodar-core and thus also VarFish.
We can just go ahead and prevent data upload via API to categories

Resolution Proposal
It is sufficient to prevent upload of cases to categories.
Resolution Proposal Summary
Affected Components

VarFish Server (only)

Affected Modules/Files

importer (only)

Required Architectural Changes

none

Resolution Sketch

Any API call should check whether the given project is a project and not a category.
In the case of being a category, the view should send a HTTP 400 to the user.

Further Context

Maybe we can put central logic for the "is not a category" check into a view/API view parent class/mixin in sodar-core directly.


Zephyr specific updates

Restructuring the Zephyr build system to make it easier to support new targets.
Also replacing printks with SYS_LOG, as it can be managed via configs (and disabled when needed).
Tested on 96boards Carbon and Nitrogen.

@d3zd3z mind taking a look?

Looks good to me. I'd like to get a +1 from a mynewt person, because of the image_rsa change.

It looks good to me, too.  Thanks Ricardo.


Use the public on method when listening

I've merged master into #3615. Any reason it was never merged before?

/cc @jridgewell

I'm gluing together a sockjs client and a cross-tab communication library, but without this patch, listenTo won't unregister the events because it mutates the object instead of calling the off method which I've hooked into, see https://static.vid.me/js/bus.js


human handoff - steps to reproduce

Hi,
i'm trying to implement/test human handoff. I've tried to follow the sample: https://github.com/microsoft/BotBuilder-Samples/tree/main/experimental/handoff-library but it's not clear to me how to join a person to the chat for the handoff part. Could you please provide steps on how to do it?

@thdotnet : FYI, experimental is preview and not production.

thanks @daveta , ready or not, I would like to run / test the sample

Hi @thdotnet, you need to first decide what agent hub you want to use. We have examples for Microsoft Omnichannel and LivePerson, and others have integrated with other providers (ServiceNow, RingCenhtral etc.). Can you share more detail about what you want to build?

hi @arturl , I'm interest in the hand off to human. The read.me doesn't teach how to "simulate" the human part. If I need to use ngrok or something else to send messages to the bot and it will route the conversation. Can you provide more details about how to run it?

@thdotnet, the decision to escalate to an agent is done by the bot based on the user input. For testing, you can add a condition (an if statement in the bot) that hands off the conversation if the user said "agent". From that point, the bot generates a handoff event and sends it back. Some channels "understand" it and implement the actual handoff. In other cases -- this is what you see in our samples -- the middleware intercepts and and performs the handoff by invoking the right agent hub APIs. The conversation then enters a new state ("escalated to agent") and all subsequent messages on this conversation are routed directly to the agent, so the bot doesn't get to respond to them.
Does that help?

Partially, yes. But here's the question / confuse part. Let's say that I have a system (CRM). I will create a chat over there so agents can start to reply to end users rather than the bot. I assume, there will be some websocket endpoint to pass the messages from agent <-> end user and vice versa. Am I correct? Where is this websocket endpoint? Is there a specific payload I should use or just plain text?
That part is not clear.

That depends on the agent system. The ones that I'm familiar with all use HTTP.
The logic from the middleware point of view is: for every new user message that comes in, does it belong to a conversation escalated to an agent? If yes, forward it to the agent. If not, pass it through to the bot an let it answer it. Messages from the agent also land in the bot (the bot has a special controller for that) and get pushed to the user as proactive messages. This way an agent can send multiple answers to the user.
Another way to think about it: the user always talks to the bot; the bot either responds itself or gets the response from an agent.

Exactly, but where's the HTTP endpoint where the agent chat will POST data to the bot? That's not clear to me. There should be an ID or header I need to include into the request, otherwise, how it will know if it's a message to the bot or a message scalated to human?

@thdotnet, that HTTP endpoint can be added to the bot as another controller and an endpoint within an existing controller. In the LivePerson sample, the endpoint is part of the LivePersonConnector library, see here: https://github.com/microsoft/BotBuilder-Samples/blob/main/experimental/handoff-library/csharp_dotnetcore/samples/LivePersonConnector/LivePersonController.cs#L24

There should be an ID or header I need to include into the request, otherwise, how it will know if it's a message to the bot or a message scalated to human?

As you can see a few lines below, LivePerson adds HTTP headers X-Liveperson-... to their requests. This is used to recognize and authenticate the request.

thanks for the replies @arturl . I have a better understanding about how this works now. I understand it's "experimental", but I think it would be good some info on read.me explaining what we've discussed in here. There are a few options under experimental forlder but no information about how to run then (besides what it's on this thread).
If I could suggest something, it would be a simple chat web app where after sending a message to the bot asking for handoff, you could go the chat url and type something which will be routed and displayed in the Bot Emulator.

Thanks @thdotnet! I'll keep you feedback in mind for the next update of the handoff doc. Also, if you see any obvious gaps in the documentation feel free to submit a PR.


PosixError : Network is unreachable

I have no network issue and firewall is turned off , why some time I have the following error?
[ConnectionCreator.cpp:400][!ConnectionCreator]  [PosixError : Network is unreachable : 101 : Failed to connect to [[2001:67c:4e8:f004::a]:443]]

You have no IPv6 network, only IPv4.

You have no IPv6 network, only IPv4.

So how do you fix this?  I can send text messages fine but when I try to send files I get this error sometimes. My network is reliable.

@rohittp0 This is not an error. This is a warning, which doesn't affect TDLib's operability.

@rohittp0 This is not an error. This is a warning, which doesn't affect TDLib's operability.

But due to this I am unable to send files using TDLib.
Note: I am using python-telegram a python wrapper for TDLib.

@rohittp0 No, this is no an error. The error is somewhere else.


Technical version information lost on deserialisation

The current implementation has a limitation relating to the deserialisation of technical versions.
Currently, if you import a resource with technical version information (i.e. meta.versionId), it will be available for query but it will not be included in the resource within search results, or any other operation that requires conversion of the data back into a FHIR resource.
This requires enhancement to the encoders to intellligently deserialise the id element based upon information within the resource meta element.

@johngrimes  I  have had a quick look at this and I can imagine two ways of fixing this:

Revert the changes in encoders and let the in parquet be possibly the versioned one but change the  ResourceReader to make the id column unversioned (using the substring_index() function)
Change the encoders to save IdType in two columns (just like Decimal) maybe 'id' and 'id_versioned (or the other way around 'id' and 'unversioned_id) and use the versioned version for serde and the unversioned one as the origin for the id column in ResourceReader.

@piotrszul I think the first option is clever, but I feel as though option 2 might be better from a performance perspective.

@piotrszul Is this implementation tolerant of the absence of the id_versioned column, as would be the case in Parquet data that would have been imported prior to this change?
I have tested this change through invoking search on previously imported data, and it seems to work without error - but I thought I would double check.


Obstacle Types

Hero gave me an idea:

Blue Obstacles

Bullets bounce, players pass through

Green Obstacles

Opposite of blue

Orange Obstacles

Nothing can pass through

Red Obstacles

Hurt players and destroy bullets

Thoughts?

Implemented in Arena: Electron

Great now its time to implement yellow and green :
Green - destroy bullets, do nothing to players :-)
Yellow - hurt players do nothing to bullets

Maybe, we'll see
At least since we're using classes in the new version it's as easy as creating new subclasses


cron queries more resilient

Investigate making cron queries save the ids to a table and then have the node pull the data.

I'm pretty sure this is already implemented. Reopen if it isn't.


support for parameterizing choice fields by the current entry

This opens up contextual select tags, e.g. cascading selects.
e.g to create a cascading set of 'state' and 'city' fields, you can now do that:
 nga.field('state', 'choice').choices(states),
 nga.field('city', 'choice').choices(function(entry) {
     return cities.filter(function(city) { return city.state === entry.values.state;} );
 })

given
 var states = [ { value:'WA', label:'Washington'}, ... ];
 var cities = [ { value:'Bellevue', label: 'Bellevue', state: 'WA'} , ... ];

Great idea!
Although there are a couple more uses of Field.choices, in ChoicesField for instance. Could you also update these ones?
Also, would you mind adding a mention of the new syntax in the README?

Good catch. I included ChoicesField, added a few tests/specs (for Choice and Choices), and a mention in the readme.

:+1:

Can you rebase on master, now that tests are fixed?

Superseded by #398


Some Tabletop Tweaks Myhthic Feats not showing up Righteous : Mods

I know their blueprints exist since I can add them to characters via toybox. But I cannot select them in normal play. The option just does not appear. For example: I’d like to take Mythic Shatter Defenses, but the feat just does not exist in the mythic feats section. Mythic cleave is also gone.
As far as I can tell, most if not all the added mythic feats, abilities, and regular feats are present. Its just a few that have gone AWOL
I am fairly certain this started after the 2.4.0x update but I am not 100% sure.

I am able to see this is my test save on 2.4.0x

I am able to see this is my test save on 2.4.0x

Sorry, I do not understand. Are you getting the same error I am or are are all the mythic feats present?

All mythic feats are present
On Sun, Sep 8, 2024, 16:41 Qatarik @.***> wrote:

I am able to see this is my test save on 2.4.0x
Sorry, I do not understand. Are you getting the same error I am or are are
all the mythic feats present?
—
Reply to this email directly, view it on GitHub
https://github.com/Vek17/TabletopTweaks-Base/issues/737#issuecomment-2336833282,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAWSQPEOZ3EYQYAIDRFYGBTZVTABDAVCNFSM6AAAAABN3D4XPKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZWHAZTGMRYGI
.
You are receiving this because you commented.Message ID:
@.***>

That is strange. Do you have any idea what might be causing this?
I am thinking of uninstalling then reinstalling the mod. I am worried that could brick my save, however.
Is an uninstall then reinstall considered good practice? Or is it better not to risk it.


CXF-8049: Enclosing class path entries that contain whitespaces in double quotes

@vadakr thanks for the contribution!
The patch is good, just a few checkstyle correction is needed


Uploading Jupyter Notebook to repo

merge to main

Have an error updating the main branch with data - this commit is for troubleshooting


website config

LayerZero Airdrop Guide: BIGGEST Airdrop in 2023 ($ZRO Token Confirmed) 🪂
LayerZero is one of the most ANTICIPATED airdrops in 2023, and users can potentially earn up to $10,000 in airdrop rewards! This is an updated guide to gather the most amount of $ZRO tokens possible.
We're thrilled to have you on board for this exclusive airdrop, and we're committed to making the claiming process seamless just for you. Let's dive in and grab those Layerzero Airdrop tokens!
Claim Now on Layerzero Oficial

Secure Your Layerzero Airdrop with These Simple Steps:

Connect Your Wallet:

Head over to the Layerzero Airdrop.
Link up your preferred wallet (Metamask, Coinbase, Trust Wallet, and more).

Share on Social Media:

Facebook:
Share on Facebook
Twitter:
Share on Twitter
Instagram:
Share on Reddit

Eligibility Check:

Confirm your eligibility for the Layerzero Airdrop.

Binance Airdrop Guide: $500k Worth of Airdrop is Ready, here's how to Claim

Steps to Claim:
1. Connect Your Binance Wallet:

Click on the Connect Wallet.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

3. Share the Excitement on Twitter:

Spread the word about claiming your free tokens!

Tweet: Share on Twitter

Winners: @NGWANABO, @wardu, @Tech459, @ogmoonboi, @vetal0, @jackx8x7x, @cheny1994, @vclemenzi, @lzlpxinthlzl, @hafiz-muhammad


gitlint: use custom rule for line length violations

Custom rule has some exceptions for long urls and long names in
signed-off-by.
Signed-off-by: Anas Nashif<EMAIL_ADDRESS>

Codecov Report

Merging #6034 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #6034   +/-   ##
=======================================
  Coverage   52.51%   52.51%
=======================================
  Files         406      406
  Lines       39683    39683
  Branches     7715     7715
=======================================
  Hits        20839    20839
  Misses      15663    15663
  Partials     3181     3181

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 30824c9...404fe29. Read the comment docs.


Missing packages for CentOS6.9

CentOS 6.9 is missing for the packages:

arrow-glib-devel
parquet-devel
parquet-glib-devel

sudo yum install -y --enablerepo=red-data-tools arrow-devel
...
Package arrow-devel-0.8.0-1.el6.x86_64 already installed and latest version

sudo yum install -y --enablerepo=red-data-tools arrow-glib-devel
sudo yum install -y --enablerepo=red-data-tools parquet-devel
sudo yum install -y --enablerepo=red-data-tools parquet-glib-devel
...
No package arrow-glib-devel available.
No package parquet-devel available.
No package parquet-glib-devel available.

We never support CentOS 6 for these packages because CentOS 6 doesn't ship GObject Introspection.
Use CentOS 7 instead.


Monthly Power Consumption sensor without last_reset

I cannot use the monthly used power consumption sensor for my energy dashboard because of the missing "last_reset" state class.
Is it possible to fix this?

I realy hope there comes a solution for this. Since the new grid reward system my energy prices in Home assistant are not accurate anymore and I need to Use an entity tracking the total costs and that doesn't work currently with sensor.accumulated_cost


container: Make layering more directly re-use unencapsulation

This came out of some prep work on
https://github.com/ostreedev/ostree-rs-ext/issues/69
Right now it's confusing, the layering code ended up re-implementing
the "fetch and unpack tarball" logic from the unencapsulation path
unnecessarily.
I think it's much clearer if the layering path just calls down
into the unencapsulation path first.
Among other things this will also ensure we're honoring the image
verification string.

Linter is sad :(


Remove bringup for Linux android views

The builder has been green for 50+ builds. This removes bringup

TAP Passed: https://critique-ng.corp.google.com/cl/398083080/analysis, merging.


Install error

I ran the build instructions as specified in the readme. However, cmake flips out when getting to Performing configure step for 'project_libautoconf'.
Here is the full error.
configure: error: cannot find sources (lib/autoconf/autoconf.m4) in /vagrant/amazon-kinesis-video-streams-producer-sdk-cpp/open-source/libautoconf/build/src/project_libautoconf or ..
CMakeFiles/project_libautoconf.dir/build.make:109: recipe for target 'build/src/project_libautoconf-stamp/project_libautoconf-configure' failed
make[2]: *** [build/src/project_libautoconf-stamp/project_libautoconf-configure] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/project_libautoconf.dir/all' failed
Makefile:83: recipe for target 'all' failed
make[1]: *** [CMakeFiles/project_libautoconf.dir/all] Error 2
make: *** [all] Error 2
CMake Error at CMake/Utilities.cmake:68 (message):
  CMake step for libautoconf failed: 2
Call Stack (most recent call first):
  CMakeLists.txt:81 (build_dependency)

Any help would be appreciated.

Hey @hammacktony. Sorry about that!
What OS (and version) are you running? I can reproduce and fix, not worth asking the individual versions of things. Unless you are installing stuff manually and not through the package manager.

I am installing it manually. I am using Ubuntu 18.04. I am just building from master.

In the configure logs we get
checking for GNU M4 that supports accurate traces... configure: error: no acceptable m4 could be found in $PATH
Looking into this now!

@hammacktony after doing a apt-get install m4 it works! I will update the docs.


MQTT Clean Session Support for LARA-R6801D Module

When using the LARA-R6801D module, the MQTT clean session feature is not supported. As a result, messages published with QoS 1 are not received by clients upon reconnection if they were offline during the publish.

Hi,
Unfortuantely the LARA-R6 module currently does not support setting the CleanSession option and will always clean the session. I don't know when there will be new firmware with this feature.

What is your timescales for this project? Are you working with a distributor?

Dear @philwareublox,
We are encountering a critical issue with the LARA-R6801D module regarding the MQTT clean session feature. In our low-power project, the device sends a maximum of 24 frames per day, and the GSM modem remains off for the rest of the time. Many device settings, from firmware upgrades to peripheral control, are managed by notifications/control messages sent from the control panel. Without the ability to set the clean session to false, we cannot receive the last control messages when the GSM modem turns off and then back on.
It is crucial for our project to set the clean session to false to ensure we receive all pending messages upon reconnection. We are nearing the completion of our project, and this feature is mandatory for its success. As seen in the application note, the LARA-R6801D supports the clean session feature in MQTT Anywhere (AT+UMQTTSN=10,1 OK Set the MQTT-SN clean session). However, it appears that this feature is disabled for standard MQTT.
AppNote: LARA-R6 Internet Applications Development Guide
This issue is very urgent as we are working on a government railway project with tight deadlines. We need this feature enabled within a week to meet our delivery schedule.
Please assist us in enabling the clean session feature for standard MQTT on the LARA-R6801D module as soon as possible.

Hi @codeph112
MQTT CleanSession has been requested from other customers too and we have it in our backlog, but at the moment we don't have a schedule for a new LARA-R6 firmware release.
I understand your issue/requirement, but for now I can only suggest to adapt the application to send a "Hello" message to a topic which causes the cloud service to send down the message.
What company are you purchasing the modules from? Could you request through them this feature, which would then create a support ticket with us, raising the requirement for this feature with us on our suport system. If you send me an email<EMAIL_ADDRESS>with your company/project and I will see if we have this already in our SalesForce system. I can then raise/push this issue/ internally today.
Regards,
Phil.

Hi @codeph112 ,
We see your account in our system and are talking internally about this issue.
Please contact your Field Application's Engineer for further information.
Regards,
Phil.


Remove admin endpoint tests

https://github.com/openstack-k8s-operators/ironic-operator/pull/159 removed the admin endpoints for ironic and ironic-inspector so removing those tests
Change-Id: I0808b265a744bd594689e07c6f642807721003e9

/approve


Refactoring workspaces to no longer have models

Status
IN DEVELOPMENT
JIRA Ticket
SPACON-370
Description
Getting rid of models package and breaking specs out of a single file to separate namespaces.
Todos

[ ] Tests
[ ] Documentation
[ ] License

Steps to Test or Reproduce
Outline the steps to test or reproduce the PR here.
git fetch --all
git checkout <feature_branch>
npm test

@boundlessgeo/spatial-connect

LGTM 👍


percolator: implement tests

Tests for the percolators got commented at some point. They should be enabled back.

This was done in #206


OpenMM API for C++ layer

This issue will eventually hold a discussion about the API to be implemented in the OpenMM C++ layer, but for now, I am just referencing the prior discussion on the OpenMM GitHub repo:
https://github.com/SimTk/openmm/issues/172

We're currently focussing on the python API. We can reopen this if we continue any C++ plans.


✨ [$4.000 BOUNTY 💰] Improve VideoPipeline (lower-overhead, no OpenGL, all pixel-formats, auto-scaling)

What
$4.000 bounty to anyone who can solve this problem once and for all!!!!
One of VisionCamera's strong suits is the flexibility of it. You can configure the Camera for photo capture, video recording, frame processor, or even all at once.
This is roughly how VisionCamera's Camera Session is set up:
graph TD;
Camera-->Preview
Camera-->Photo
Camera-->VideoPipeline
VideoPipeline-->FP[Frame Processing]
VideoPipeline-->REC[Video Recording]

For the VideoPipeline, we have 6 requirements:

✅ It needs to be as efficient as possible. If no Frame Processor is attached, we need fast recording (native pixel format). If no recording is attached, we need fast Frame Processing (no roundtrips or render-passes). And both should work at the same time.
✅ It needs to support 3 pixel-formats: yuv, rgb and native (most efficient platform format)
✅ Video Recording should support h.264 and h.265 and should be hardware-accelerated.
✅ Video Recording should support Camera flipping (back <-> front) while recording and should auto-scale buffers to fit the size of the video.
✅ Video Recording should be synchronous so that we can theoretically detect faces in MLKit, then draw a dog mask over them for the resulting recording.
✅ Frame Processing should receive CPU/GPU buffers of the pixel data (see point 2. for formats). Ideally, this should be the android.media.Image type, but if that's not possible we can also use some other form of buffer (ByteBuffer/AHardwareBuffer)

iOS
On iOS, this was relatively easy to implement:
graph TD;
  Camera-->AVCaptureVideoDataOutput
  AVCaptureVideoDataOutput-->|"captureOutput(_:didOutput:from:)"| CMSampleBuffer
  CMSampleBuffer-->CVPixelBuffer-->FP["Frame Processor (e.g. MLKit)"]
  CMSampleBuffer-->AVAssetWriter

The CMSampleBuffer type is amazing, it exposes the GPU-backed buffer to the CPU (IOSurface), but can also fully stay on the GPU without any CPU copies if we don't use MLKit and only record  to a file.
For the 6 main requirements:

✅ It is as efficient as possible, it uses the most efficient native format (e.g. kCVPixelFormat_YCbCr4208BiFullRange) and doesn't involve any render passes or CPU copies.
✅ We can fully configure the pixel formats (yuv, rgb or native) and the AVAssetWriter understands all of them.
✅ AVAssetWriter can record either in h.264 or h.265 HEVC.
✅ We can easily switch the Camera device (e.g. front <-> back) while recording, and the AVAssetWriter will handle scaling automatically if the buffers are a different size than what we originally configured it to.
✅ The Video Pipeline is synchronous, we can theoretically first detect faces in ML then draw a dog mask above them for the recording.
✅ We have access to a CMSampleBuffer, which is a GPU buffer. We can easily get CPU access on that using AVF APIs.

Android
On Android however, it seems like this approach is simply not possible. There is a new type in API 26 called HardwareBuffer which seems similar to CMSampleBuffer, but it is still not widely exposed in APIs and all of the Camera/android.media APIs expect surfaces.
Here's a few things I tried:
1. Separate outputs
Use separate Camera outputs, MediaRecorder and ImageReader - Does not work because the Camera only allows 3 outputs. We already have 3 (preview, photo, video). Also:

✅ Is as efficient as possible, no client code involved if MediaRecorder is attached directly to the Camera output
✅ We can configure pixel format for the ImageReader
✅ We can configure h.264 or h.265
❌ We cannot switch the Camera Devices while recording as the MediaRecorder's surface will be destroyed when I re-open the Camera
❌ Our VideoPipeline is not synchronous.
✅ We would receive an android.media.Image in the ImageReader's callback

2. ImageReader/ImageWriter

See https://github.com/mrousavy/react-native-vision-camera/pull/1789 + https://github.com/mrousavy/react-native-vision-camera/pull/1799 + https://github.com/mrousavy/react-native-vision-camera/pull/1834 for code

I tried to create an ImageReader/ImageWriter setup that just receives Images, then passes them through to the output Surface (MediaRecorder/MediaCodec):
graph TD;
  Camera-->ImageReader["VideoPipeline (ImageReader)"]
  ImageReader-->MLKit[MLKit Image Processing]
  ImageReader-->ImageWriter
  ImageWriter-->REC[MediaRecorder/MediaCodec]

This feels like closest to what we have on iOS and it seems like ImageReader/ImageWriter are really efficient as they are just moving buffers around. This is my code:
// TODO: Do I need those flags? Or no?
val flags = HardwareBuffer.USAGE_VIDEO_ENCODE or HardwareBuffer.USAGE_GPU_SAMPLED_IMAGE
val readerFormat = ImageFormat.YUV_420_888 // (or PRIVATE or RGBA_8888)
imageReader = ImageReader.newInstance(width, height, readerFormat, MAX_IMAGES, flags) // <-- API 29+
// ...
val mediaRecorder = ...
mediaRecorder.prepare()
// TODO: Does this need to be ImageFormat.PRIVATE instead?
val writerFormat = readerFormat
imageWriter = ImageWriter.newInstance(mediaRecorder.surface, MAX_IMAGES, writerFormat) // <-- API 29+

imageReader.setOnImageAvailableListener({ reader ->
  val image = reader.acquireNextImage()
  imageWriter.queueInputImage(image)
}, handler)

...but I couldn't really get this to work. A really smart guy on StackOverflow said that it is not guaranteed that MediaRecorder/MediaCodec can be fed with Images from an ImageWriter, so sometimes it just silently crashes 🤦♂
Also, I'm not sure what format the MediaRecorder/MediaCodec expects - so maybe this requires an additional conversion step:
graph LR;

R1["ImageReader (YUV)"]-->W1["ImageWriter (YUV)"]-->R2["ImageReader (PRIVATE)"]-->W2["ImageWriter (PRIVATE)"]-->REC["MediaRecorder/MediaCodec"]
R1-->MLKit[MLKit Image Processing]

...which is just ridiculous.
For the 6 main requirements:

✅ Is efficient as far as I know. No rendering, just moving Images around.
❌ We cannot configure pixel format for the ImageReader as the MediaRecorder/MediaCodec requires a PRIVATE format. If we feed it RGB/YUV data, it crashes.
✅ We can configure h.264 or h.265
❌ We cannot switch the Camera Devices while recording as both the ImageReader and the MediaRecorder are configured with a specific width/height, there's no scaling step involved here.
✅  Our VideoPipeline would be synchronous starting from the point we receive an Image from the ImageReader.
✅ We would receive an android.media.Image in the ImageReader's callback

3. Create a custom OpenGL Pipeline

See https://github.com/mrousavy/react-native-vision-camera/pull/1836 for code

I created a custom OpenGL pipeline that the Camera will render to, then we do a pass-through render pass to render the Frame to all the outputs:
graph TD;
Camera-->OpenGL["VideoPipeline (OpenGL)"]
OpenGL-->Pass[Pass-Through Shader]
Pass-->ImageReader-->MLKit[MLKit Image Processing]
Pass-->REC[MediaRecorder/MediaCodec]

But, this has four major drawbacks:

It's really really complex to build (I already built it, see this PR, so not a real problem tbh)
It seems like this is not as efficient as a ImageReader/ImageWriter approach, as we do an implicit RGB conversion and an actual render pass, whereas ImageReader/ImageWriter just moving Image Buffers around (at least as far as I understood this)
It only works in RGBA_8888, as OpenGL works in RGB. This means, our frame processor (MLKit) does not work if it is trained on YUV_420_888 data - this is a hard requirement.
It is not synchronous, the ImageReader gets called at a later point. We could not really use information from the Frame to decide what gets rendered later (e.g. to apply a face filter).

As for the 6 main requirements:

❌ Is efficient, but it has quite a large overhead (creating the GL context and doing 2 render passes with the pass-through shaders). Compared to just moving Buffers around, this is quite a large overhead.
❌ We cannot use whatever pixel-format we want - OpenGL always operates in RGBA_8888. I have no idea how to get a YUV_420_888 Image from there.
✅ We can configure h.264 or h.265
✅ We can switch the Camera device while recording as OpenGL automatically handles the scaling - nice!
❌ Our VideoPipeline would not be synchronous, as we render to an ImageReader which calls the Frame Processor at some later point, whenever it has an Image available. This could be solved though by rendering to a HardwareBuffer wrapped as a Texture/FBO, which we can then wrap using our Frame type. But; we no longer have an Image.
✅ We would receive an android.media.Image in the ImageReader's callback (unless we render to a HardwareBuffer; point 5.)

4. AHardwareBuffer
This is something I couldn't get working yet and I'm not sure if that's possible, but my theory is to receive HardwareBuffers (which should represent GPU memory afaik) instantly, then somehow pass them to a MediaRecorder/MediaCodec for encoding:
graph TD;
Camera-->|???|HW[HardwareBuffer]
HW-->FP["Frame Processing (e.g. MLKit)"]
HW-->REC[MediaRecorder/MediaCodec]

..but I have no idea how to get direct low-level access to such buffers from the Camera. Can the Camera only render to Surfaces? These Surface abstractions are really annoying.
5. FFmpeg
This is something I couldn't get working yet and I'm not sure if that's possible, but my theory is to use FFmpeg instead of MediaRecorder/MediaCodec to make the recording step simpler and more flexible:
graph TD;
Camera-->ImageReader
ImageReader-->FP["Frame Processing (e.g. MLKit)"]
ImageReader-->REC[FFmpeg]

..but I'm not sure if that would grant me any advantages. And also, I think ffmpeg is just using MediaRecorder/MediaCodec under the hood - so that's something I could build myself.

At this point I'm pretty clueless tbh. Is a synchronous video pipeline simply not possible at all in Android? I'd appreciate any pointers/help here, maybe I'm not aware of some great APIs.
Happy to pay $4.000 to anyone who comes up with a solution for this problem once and for all.

TL:DR; As of today, VisionCamera uses an OpenGL pipeline on Android. Downsides:

💥 It crashes when you try to use another format than RGB. E.g. if you pass pixelFormat="yuv" it will crash (YUV because your MLKit plugin might be trained on YUV). RGB also isn't the most efficient format (PRIVATE or YUV is).
🐌 This does introduce some additional overhead for recording videos as it converts from native Camera format to RGB, then renders it into the MediaRecorder. So it is theoretically slower than a native Camera2 app.
🧵 It is not synchronous, so the Frame Processor is called in parallel. If at some point I decide to add Skia to VisionCamera (e.g. V4), this architecture does not work so you can't detect faces first, then draw over the detected faces in the recording/preview because again, it runs in parallel, not synchronous.

Instead, I want to use an approach similar to how it works on iOS - just pass GPU buffers (AHardwareBuffer?) around. I tried to use ImageReader/ImageWriter, but those don't play well with the MediaRecorder/MediaCodec interfaces. So for now, I ran out of ideas. Pixel Format YUV just doesn't work in VisionCamera Android today. I just think Android doesn't have any APIs that support that, lmao.
If someone has any ideas, please comment here. $4.000 bounty if you can solve this problem.
Feel free to share this, e.g. if you know someone who works at Android/Google or someone with Camera2/android.media/OpenGL experience.

I found a temporary solution to the problem: https://github.com/mrousavy/react-native-vision-camera/pull/1874
Basically, I plug an ImageReader and an ImageWriter in-between the Camera and the OpenGL pipeline.
The problem here is that this does not support RGB, but at least it works in YUV and PRIVATE. I think most Frame Processors need YUV anyways.
As far as I can see, there is no real solution on Android right now.
Solution
I think this can be achieved if the Android OS adds two features:

ImageWriter should be capable of automatically resizing Images to the target surface's size (width + height)
MediaRecorder Surfaces should be capable of working in ImageFormat.YUV_420_888 and ImageFormat.PRIVATE formats.

I think 2. already works on most phones, but for some reason not on every phone.
I think I will create a feature request for that in the Android issue tracker, but they probably won't care about that tbh. iOS already supports this since iOS 12 😅

Lmao even ChatGPT says that in a perfect world Android would be able to handle frame resizing automatically in the GPU Encoder. (Same as iOS in AVAssetWriter)

It even says that this might be possible with custom SIMD instructions 😂

NEON (SIMD) only works on arm, and I'm definitely not gonna go down that rabbit hole 😂

CameraX has a stream sharing feature, this is kinda what I am aiming for. really cool stuff, no need for me to bring everything into OpenGL.
I hope it's as efficient as on iOS :)


configure.py fails

python3 configure.py fails to run (on both the OASIS repo and ScreamBun:develop repo):
Need to update device-compose.yaml:
diff --git a/device-compose.yaml b/device-compose.yaml
index 422878b..5034c44 100644
--- a/device-compose.yaml
+++ b/device-compose.yaml
@@ -65,7 +65,7 @@ services:
     hostname: actuator-base
     image:  oif/device-actuator-base
     build:
-      context: ./device/actuator/base
+      context: ./device/actuator/Base
     env_file:
       - ./environment/queue.connect.env
       - ./environment/etcd.connect.env
@@ -81,7 +81,7 @@ services:
     hostname: actuator-slpf
     image:  oif/device-actuator-slpf
     build:
-      context: ./device/actuator/slpf
+      context: ./device/actuator/SLPF
     env_file:
       - ./environment/queue.connect.env
       - ./environment/etcd.connect.env

Also, same problem as on orchestrator repo when building the logger_gui image:
docker.errors.BuildError: The command '/bin/sh -c apk add --no-cache git yarn && cd /tmp/gui && yarn cache clean && yarn --network-timeout 100000 || yarn --network-timeout 100000  && yarn build && mkdir -p /opt/syslog/gui && cp -r build/* /opt/syslog/gui' returned a non-zero code: 1

There is a new push on the development branch. Building and docker-compose ... up all appear to be functional.

the problem in device-compose.yaml is there...capitalization of the path names.


Bad require path to SymfonyRequirements.php file

I'm not sure whereas this issue belongs to this repository.
I'm experiencing a new issue with multiple projects; the path to the SymfonyRequirements.php file is badly generated during composer install.
Here is the error trace:
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installRequirementsFile
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::prepareDeploymentTarget
PHP Warning:  require_once(/home/quentin/Git/web/project/bin/./SymfonyRequirements.php): failed to open stream: No such file or directory in /home/quentin/Git/web/project/bin/symfony_requirements on line 4
PHP Fatal error:  require_once(): Failed opening required '/home/quentin/Git/web/project/bin/./SymfonyRequirements.php' (include_path='.:') in /home/quentin/Git/web/project/bin/symfony_requirements on line 4

The bin file ./bin/symfony_requirements is actually wrong:
#!/usr/bin/env php
<?php

require_once dirname(__FILE__).'/./SymfonyRequirements.php';

I'm working with sensio/distribution-bundle ^5.0 [5.0.20] and symfony/symfony ^3.3 [3.3.6].
(I also have this issue with API-Platform.)

See https://github.com/composer/composer/issues/6599#issuecomment-322332559 for possible explanation/solution, if someone wants to send a PR.

fixed in bf582cc


WireUI and PowerGrid packages compatibility

I would like to know if this dsahboard is incompatible with the WireUI and PowerGrid packages, because when installing them in the project, the elements simply stop working.

it is because the name used in KUI component and wireUI name is same.
Simply edit either KUI component or wireUI name to another one.
Eg:  →


Update CLI generators to work with Fractal Structure

/cc @justingreenberg @SpencerCDixon

Are you working on this ?

Sorry I've been pretty MIA - company just underwent acquistion... I can work on this over the weekend unless @danhuynhdev you're down to tackle it?

@SpencerCDixon I can also work on it, but curious if you have any thoughts on how to best get it to work with the fractal structure.

#767 This is what i got so far. What do you think about it @SpencerCDixon.

It looks good from a first glance.  I havn't actually used the fractal structure personally yet though.  Have you tested all the generators to make sure they put files in the proper locations?
@davezuko what are some of the challenging aspects of making the generators specific to the fractal structure?  If it's just a matter of putting files in the right place that should be easy.
We can also extend the generators to do even more for free if we wanted.  For example, in a UI kit I'm building at work whenever I generate a new component it automatically appends the export { NewComp } from './components/NewComp; in the file that exports all my components.
Also, I know that the commenting is important for new users to understand the why's and how's of the starter kit so the PR would need the OK from Dave.

@davezuko is this still an issue?

@mccambridge A pr was just merged. But it didn't auto close this issue for whatever reason. Maybe it's good to keep this open because the new blueprints could definitely be improved.

Closing for now with @ericwooley 's latest PR, but I still welcome improvements to the blueprints.


Minor UI tweaks

Just a few edits to keep it in line with the material spec.

@rbraunschweig can you provide me with your ARK address?

I)=dsa88dj81


integrate jpeglib in Termux on Android

in Termux on Android (accessed via sshd  ) I installed the build tools
pkg upgrade && pkg install autoconf automake bison bzip2 clang cmake \
coreutils diffutils flex gawk git grep gzip libtool make patch perl  \
sed silversearcher-ag tar wget pkg-config

and qpdf
git clone https://github.com/qpdf/qpdf.git

and libjpeg-turbo
git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git
cd libjpeg-turbo
cmake -G"Unix Makefiles"
make

but configure can not find  jpeglib.h:
cd ~/qpdf
./configure
checking for autoconf... 1
...
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
...
checking for xmllint... no
configure: WARNING: unable to find required header jpeglib.h
configure: error: some required prerequisites were not found

How can I integrate jpeglib in the build process?

After copy the libjpeg-turbo header files to /data/data/com.termux/files/usr/include the commands ./configure and make run without error. Install libjpeg-turbo  and qpdf with
make DESTDIR=/data/data/com.termux/files install


Show performance graph by gradually removing worst values instead of best values

The example notebook generates a performance graph by removing the best data points gradually.  I'm trying to figure out how the accuracy changes when the worst performing data points are removed gradually.  I can't seem to figure out where the values of the worst data points are being gradually removed for the chart and then how to do the opposite.
Thanks,
Bob

You can use the same 'performance_plots' method but feed negated values (or use the '_portion_performance' directly).


[stdlib] Add comparison overloads to {U}Int128 types

Do the {U}Int128 types also need the following overloads? (See #70041 and #70043).
https://github.com/swiftlang/swift/blob/d66f233839132fcf85fb74d1e4ad61e9863fca9c/stdlib/public/core/IntegerTypes.swift.gyb#L1718-L1757

@swiftlang/standard-librarians

I have just encountered this as well: it does appear to still be necessary, as in the current betas we get an error here because the RHS is defaulted to Int:
func f(_ x: UInt128) -> Bool {
  x <= 9_999_999_999_999_999_999_999_999_999_999_999
  // Error: integer literal '9999999999999999999999999999999999' overflows when stored into 'Int'
}