Proposal: Add ModifiedAt field to docker state metadata

After reading through everyone's feedback on https://github.com/docker/docker/issues/8664, I propose adding to docker the metadata equivalent of a "time last-modified" metadata common on filesystems. This wouldn't require additional logging or filtering.
The current state metadata is like this:
"State": {
    "ExitCode": 0,
    "FinishedAt": "0001-01-01T00:00:00Z",
    "Paused": false,
    "Pid": 19967,
    "Restarting": false,
    "Running": true,
    "StartedAt": "2014-10-20T10:53:50.649532096Z"
},

So with my proposal here, we could have a new state datapoint for "ModifiedAt":
"State": {
    "ExitCode": 0,
    "FinishedAt": "0001-01-01T00:00:00Z",
    "Paused": false,
    "Pid": 19967,
    "Restarting": false,
    "Running": true,
    "StartedAt": "2014-10-20T10:53:50.649532096Z",
    "ModifiedAt": "2014-10-20T10:55:50.649532096Z"
},

On container start, ModifiedAt would be set to the same at StartedAt. And docker exec calls on a running container would update the ModifiedAt field.
thoughts? @jpetazzo @crosbymichael smells ok? :-)

@inthecloud247 do you want to keep this one open?
If so, can you elaborate on what the definition of "ModifiedAt" would be w/o using "docker exec" in the definition?  I'm trying to get my head around what it would be used for and so I'd like to remove the religious debate we'd get into around "docker exec" by focusing on when this new field would be modified even w/o "docker exec".
Is it when data in the container is changed?
is it when docker's metadata about a container changes?

I somehow ended up on this thread, because I can't find much conversation around container security, but ultimately I just sort of ended up at the conclusion: "stop trying to secure containers and instead focus on securing the host." Having spent considerable time this morning trying to come up with a solution, and having found this thread somewhat relevant, I thought I would add a couple of cents.
The fundamental problem that we're trying to solve is: "how can we prevent or detect if someone has mucked about with our containers?"
This is an extremely difficult problem, and while I think it merits exploration, there is certainly no trivial fix. The security of a docker host is incredibly important, but not any more or less important than the security of a host running any application. It's not as if running Docker inherently increases the risk. We do not magic away bad actors simply by running Docker. I'm left asking myself the question, "Is this even the responsibility of Docker?" As to that question, I have not yet made up my mind.
Without a mechanism within Docker itself to prevent actions like modifying container state or executing arbitrary code within a running container, we are left with the problem of: how do we prevent bad actors from modifying state on a system?
This has been a problem to be solved since the beginning of time.
Secure your hosts, and you will have accomplished this task. In my case, this involves removing SSH access to all of my machines in production--which I'm perfectly happy to do. If you can't or are not comfortable doing this, then simply do not give access to Docker to anyone that doesn't have root access. If doing that's a problem, then you need some really good auditing so that you know who is doing what, when, and where. I'd also argue, that nobody should ever have access to su or sudo su. Not guarding root with strict auditing and per-user authentication when you're required to run a multi-user system is incredibly dangerous--regardless of whether or not Docker is even being used.
So, sorry for the thread resurrection, but this is my long-winded, extemporaneous contribution which can be summarized as: I would like to suggest that we "Closed/Won't Fix" this issue, because Docker shouldn't be responsible for Doing All The Things. That is the path of madness.

I think authz plugins, which are possible in 1.10, would be able to handle this case wo having to modify the container state itself.
We also have much better event logging to help capture this.

Auditing around the REST API is very nice indeed. Also, that's good to know. I'd not seen the authz.go yet!


How set the timestamp properties order to the first header in output log.Winston(0.8.3)

Hi.
I met a problem about output log format on version 0.8.3.
The timestamp at output tail now,but i want to put it to the end in the output log.
How to do it with the version unchanged for v0.8.3？
Thanks.

{"level":"info","message":"Node Version this user:v8.9.1","timestamp":"2018-04-02T06:55:36.624Z"}
→
{"timestamp":"2018-04-02T06:55:36.624Z","level":"info","message":"Node Version this user:v8.9.1"}

That is an ancient version!  Is there any reason you can't use a more recent version of winston, e.g 2.4.x?

Thank you for reply.
Yeah,it's a complex organization audit for a historical reasons. Although i know it's a ancient version indeed.
By the way, which a stable version(2.4.x?) should be recommended for me and the  「timestamp order」 can be solved ?

Unfortunately we do not have the resources to support older versions of winston. Hopefully someone from the community (perhaps on StackOverflow?) could help you answer this question.

Any one can show an example to write timestamp's order as the first?
{"timestamp":"2018-04-02T06:55:36.624Z","level":"info","message":"Node Version this user:v8.9.1"}


Export all lib js as index.js

All lib/**/*.js functions are exposed via index.js. Also adds a gulp task for regenerating this file.

Resolves #153

I've gone through and trimmed down what we are putting into the public API. Everything exposed now has documentation. It probably isn't perfect, but it is a good starting point.
Things that are exposed: "stages", and helper functions that are fairly glTF specific i.e. byteLengthForComponentType, but not triangleAxisAlignedBoundingBoxOverlap since it is more geometry focused.

I also moved the addLightDefaults function to modelMaterialsCommon to resolve #158. There was a TODO for this.

@likangning93 I have exposed everything listed in #153, let me know if there's anything else you want exposed that I missed.

Also making a note here that combinePrimitives is not currently exposed. It should be exposed once #108 is resolved.

I just made minor edits.
I organized some of the requires to follow the node guide, where Cesium functions are set after all the requires:
var Cesium = require('cesium');
var restifyErrors = require('restify-errors');
var aFunction = require('./lib/aFunction');
var bFunction = require('./lib/bFunction');

var Cartesian3 = Cesium.Cartesian3;
var Ellipsoid = Cesium.Ellipsoid;
var ResourceNotFoundError = restifyErrors.ResourceNotFoundError;

@lilleyse updated

The new changes look good. @pjcozzi feel free to do a final check.

Add instructions for building doc to the README.md.

As discussed with @lilleyse, I have moved some items out of the global scope. This included some other clean up that was convenient to do during this process. See CHANGES.md for details.
I've pruned a few more things out of the public API. This should be ready for another look.

Throughout the doc, please change "gltf" to "glTF", e.g.,

"Process a gltf on disk into memory..."

to

"Process a glTF on disk into memory..."

Also, in this context, it should really be "glTF asset" or "glTF model", whichever the glTF spec uses.

Throughout, the doc needs a lot of work.  I am fine with merging this to get the mechanics and then writing more solid doc for a code sprint or something like that, see #163.
@lasalvavida before we merge this, can you please take a pass through our Documentation Guide to see if there are other things we should get into this PR?

@lilleyse can you please scrub this public API to make sure the naming and general patterns follow Cesium's best practices?  I could a few things with a quick look, but I suspect there are more from old code...not necessarily changes in this PR...but I want to get the initial public API as close to right as possible even if it won't be widely used for a while.

@lasalvavida this is a huge step in the right direction, thanks for starting to kick this into shape!

Updated, @lilleyse, this is ready for a look.

Updated

I did some general cleanup which someone else should look over before I merge. The recent changes to index.js seem good to me.

Updated. AmbientOcclusion is bakeAmbientOcclusion, but the stage function is directly exported with the test functions exposed as private members.

@lilleyse Is there anything else we need to do here or is this good to merge?

I think this is good to go.
Once we publish to npm we will have to remember to update several projects because of the gltfPipeline.js -> Pipeline.js name change.


[BUG] OAK-FFC-6P RVC3 No available devices

We received two OAK-FFC-6P devices today. Neither of the devices work in any of the following configurations:

depthai-python (on the rvc3_develop branch)
depthai-core (on the rvc3_develop branch)
depthai-core (on the rvc3_develop branch) and updating the OS to 1.10 and the FIP to latest
With no modules plugged in or with one or multiple
With DC and USB input or with only USB input

We can successfully ssh into the device, but we cannot get either depthai-core examples or depthai-python utilities or examples to discover the 6P device.
Expected behaviour of plugging in the device and installing the development branch of rvc3 support was for the camera to be connected. Neither 6P device, whether updated, nor works.
# DepthAI-Python (rvc3_develop)
# DEPTHAI_DEBUG=1 python utilities/cam_test.py --cameras rgb,c
Traceback (most recent call last):
  File "/home/raymond/projects/pycast/depthai-python/utilities/cam_test.py", line 284, in <module>
    with dai.Device(*dai_device_args) as device:
RuntimeError: No available devices

# DepthAI-Core (rvc3_develop)
# ./build/examples/script_get_device_info
terminate called after throwing an instance of 'std::runtime_error'
  what():  No available devices

@RaymondCM
Please run with following set:
DEPTHAI_LEVEL=debug utilities/cam_test.py --cameras rgb,c
Also, make sure that you have installed examples/install_dependencies.py under the selected rvc3_develop branch

@themarpe
# DEPTHAI_LEVEL=debug utilities/cam_test.py --cameras rgb,c

[2023-06-20 11:33:14.582] [debug] Python bindings - version: <IP_ADDRESS>.dev+0f2e70d9067fec82e709cd1543621cb76a01a44c from  build: 2023-06-14 08:42:11 +0000
[2023-06-20 11:33:14.582] [debug] Library information - version: 2.19.1, commit: b70cfc3df8604fa515e22a7c39fab6283b8abe66 from 2023-06-12 18:45:53 +0200, build: 2023-06-14 08:13:15 +0000
[2023-06-20 11:33:14.584] [debug] Initialize - finished
Enabled cameras:
    rgb : color
DepthAI version: <IP_ADDRESS>.dev+0f2e70d9067fec82e709cd1543621cb76a01a44c
DepthAI path: ./depthai-python/venv/lib/python3.10/site-packages/depthai.cpython-310-x86_64-linux-gnu.so
[2023-06-20 11:33:14.677] [debug] Resources - Archive 'depthai-bootloader-fwp-0.0.22.tar.xz' open: 3ms, archive read: 91ms
[2023-06-20 11:33:14.952] [debug] Resources - Archive 'depthai-device-fwp-b511dc1a23aa9016007f7d6e9979a5a322bcefbe.tar.xz' open: 3ms, archive read: 366ms
Traceback (most recent call last):
  File "./depthai-python/utilities/cam_test.py", line 209, in <module>
    with dai.Device() as device:
RuntimeError: No available devices

@themarpe Any update? We can successfully get the devices to work on Windows, but not Linux based systems.

@RaymondCM wrt Linux, if you can ssh - I assume it has to do with firewall blocking UDP broadcast. I'd check that first (port 11491).
Otherwise, we are transitioning away from ETH adapter approach into native bulk USB EP's, but will take a bit longer to have ready. This will however drastically improve UX and interoperability

@themarpe This was the issue. I can now see the device.
As a note, the port mappings (CAM_D is CAM_F) are wrong, i.e. an IMX477 in CAM_A doesn't work, but in CAM_D launched with CAM_F does work. The device at the moment is incredibly delicate, with intermittent connection issues and multiple cameras not working (defeating the purpose of the 6P board!), I.e. IMX477 in CAM_F only supports a single mono camera being plugged in, any more and everything breaks. I think the switch to USB will be helpful!
Also having an issue where the Xout Queue only provides a single frame and is then empty. I'll close this issue for now waiting for a more stable device.

For context, the single queue issue was due to colour preview being enabled (resulted in RTEMS_FATAL_SOURCE_ASSERT)

@apirrone
Which OS are you currently on? (on device: cat /etc/os-release)
You may update by transferring latest 1.11 (https://luxonisos.fra1.digitaloceanspaces.com/release/1.11/luxonisos-1.11.dm-verity.mender) to device & flashing with mender -install [os.dm-verity.mender] && reboot

Hi @themarpe, I am on Ubuntu 22.
I already tried flashing this version of the os, did not work :/
Thanks !

I tried again to install the 1.11 version on the second board I ordered. It still does not work and now I can't ssh into it anymore

@apirrone I'd suggest trying the flashtool method - CC: @jakaskerl for instructions

@sferoze Ensure your firewall is disabled, update the camera firmware over SSH, unset the manual connection information in your system settings and leave auto DNS. If this still doesn't work, follow the instructions here to manually set it up. Verify your camera is connected by checking SSH connection.
https://docs.google.com/document/d/1r3en4EqgDG3hum8o5yS1DJ5vSCb6aNqyA38tIM8723U/edit

@apirrone follow the instructions in the link above. If you still cannot connect, verify your network settings and firewall. You shouldn't need to set the IP manually with the latest firmware, I find it's best to update the device when SSH'd in, once you get it working.


Add main as a wrapper for story content in storybook iframe template

I think we should add main as a wrapper for story content in the storybook iframe template. That way, the iframe page will not throw "no main landmark" error when it is rendered a standalone page outside for storybook.
Originally posted by @majornista in https://github.com/adobe/react-spectrum/pull/1237#r522321213

@dannify how do I reproduce "no main landmark" error in  storybook?

If you open a storybook page in it's own page (icon, top right that is label "open canvas in new tab"), you can use aXe dev tools to scan the page. Currently you will see the error mentioned above for all stories.
https://chrome.google.com/webstore/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd
@majornista is that correct?

Do we still want this change? I can pick it up if needed! 🙋♂

could we close the issue since the pr has been merged? thanks!


Instagram Log-in page

Login Page of Instagram. Please check this out

Appreciate your work, it requires a few changes like changing the year( i.e 2019 to 2021). But I'll merge this now

Yeah! Sorry for that. Actually, Instagram was down here yesterday So I wasn't able to take references so I used google images
Should I change it?

Yeah, it was down here too. And, yes you can do it

Sure, Give me a minute I'll change it!


Auto detect helm executable from PATH by default

[x] Add option to auto-detect helm from PATH if useLocalHelmBinary is enabled.
[x] Fix an issue with OS-specific test; see https://github.com/kiwigrid/helm-maven-plugin/pull/39/commits/aa4dfb526f8020f7b7fbd5ab4cfeb1d5ee331768

See #38

@axdotl here is the PR that I think fulfills #38. I decided to separate the flag for auto-detection, because the helmExecutableDirectory option is also used as the destination for download.I didn't find a contribution guide in the repo, please let me know if I have missed anything.
Cheers

Hi folks,
I was wondering if you have got a chance to have a look at this.
Thanks

@rpahli can you've a look on it?

@rpahli many thanks for the speedy review 🍻


Make the will parameter works  to send a message by the broker automatically when the client disconnect badly

On the MQTT doc, we have the option to use the will parameter to send a message by the broker automatically when the client disconnect badly.
I'm trying to make this work with aws-mqtt, but I can't.
My client example:
const client = AWSMqtt.connect({
 WebSocket: WebSocket,
 region: AWS.config.region,
 credentials: AWS.config.credentials,
 endpoint: config.aws.iot.endpoint,
 clientId: 'mqtt-time-publisher-' + (Math.floor((Math.random() * 100000) + 1)),
 will: {
       topic: `MY-TOPIC`,
       payload: 'disconected',
       qos: 0,
       retain: false
     }
})

Is there any way to do this works?

Apologies for a late response. Not all properties are passed through to Mqtt client. This is an omission, and I will work on fixing it in the next release.

I can work on this this weekend and submit a PR if everything works fine.

Hi there, I created a PR to solve this issue, the PR #10.  I think it’d be worthwhile to pull it into the project repository in order to get it into the next release of the aws-mqtt library.
Thanks!


API inconsistency - Liquibase creation file vs. DatabaseChangeLog

Environment
Liquibase Version: 4.2.2
Liquibase Integration & Version: Spring Boot
Liquibase Extension(s) & Version: N/A
Database Vendor & Version: HSQLDB
Operating System Type & Version: Win 10
Description
There is an inconsistency, while this works:
File file = changelogResource.getFile();
File parentFile = file.getParentFile();
Liquibase liquibase = new Liquibase(file.getName(), new FileSystemResourceAccessor(parentFile), getDatabase());
liquibase.update((String)null);

this does not work:
File file = changelogResource.getFile();
File parentFile = file.getParentFile();
DatabaseChangeLog databaseChangeLog = new DatabaseChangeLog(file.getName());
Liquibase liquibase = new Liquibase(databaseChangeLog, new FileSystemResourceAccessor(parentFile), getDatabase());
liquibase.update((String)null);

Steps To Reproduce
code above
Actual Behavior
In second scenario, the change sets are not loaded.
Expected/Desired Behavior
It it very similar code, so I'd expect both to work same way = change sets are loaded
Screenshots (if appropriate)
N/A
Additional Context
N/A
┆Issue is synchronized with this Jira Bug by Unito

The problem seems to be in getDatabaseChangeLog(), which is called from update(Contexts contexts, LabelExpression labelExpression, boolean checkLiquibaseTables):
    public DatabaseChangeLog getDatabaseChangeLog() throws LiquibaseException {
        if (this.databaseChangeLog == null && this.changeLogFile != null) {
            ChangeLogParser parser = ChangeLogParserFactory.getInstance().getParser(this.changeLogFile, this.resourceAccessor);
            this.databaseChangeLog = parser.parse(this.changeLogFile, this.changeLogParameters, this.resourceAccessor);
        }

        return this.databaseChangeLog;
    }

...where if condition really says "do not do the parsing if databaseChangeLog  was provided", which seems to be wrong to me still.
While we need changeLogFile to get parsed databaseChangeLog, offering public Liquibase(DatabaseChangeLog changeLog, ResourceAccessor resourceAccessor, Database database) seems wrong as well as calling ChangeLogParserFactory.getInstance().getParser(...) following by parser.parse(...) with same arguments...
I'd suggest marking public Liquibase(DatabaseChangeLog changeLog, ResourceAccessor resourceAccessor, Database database) deprecated (it's not referenced anyway) and probably remove it in some later version.

The problem seems to be in getDatabaseChangeLog(), which is called from update(Contexts contexts, LabelExpression labelExpression, boolean checkLiquibaseTables):
    public DatabaseChangeLog getDatabaseChangeLog() throws LiquibaseException {
        if (this.databaseChangeLog == null && this.changeLogFile != null) {
            ChangeLogParser parser = ChangeLogParserFactory.getInstance().getParser(this.changeLogFile, this.resourceAccessor);
            this.databaseChangeLog = parser.parse(this.changeLogFile, this.changeLogParameters, this.resourceAccessor);
        }

        return this.databaseChangeLog;
    }

...where if condition really says "do not do the parsing if databaseChangeLog  was provided", which seems to be wrong to me still.
While we need changeLogFile to get parsed databaseChangeLog, offering public Liquibase(DatabaseChangeLog changeLog, ResourceAccessor resourceAccessor, Database database) seems wrong as well as calling ChangeLogParserFactory.getInstance().getParser(...) following by parser.parse(...) with same arguments...
I'd suggest marking public Liquibase(DatabaseChangeLog changeLog, ResourceAccessor resourceAccessor, Database database) deprecated (it's not referenced anyway) and probably remove it in some later version.

Hi @Betlista Thanks for writing up this issue.  We will add it to the list of issues we are processing.

Hi @Betlista Thanks for writing up this issue.  We will add it to the list of issues we are processing.


[Feature Request] - Make this into a chrome extension

Would be nice to have a UI to adjust parameters, and to not have to copy paste code and manually manipulate inputs.
I will come back to this and do it myself in about 2 months unless you have the time.

I put it into ChatGPT to an ASCII mockup.
+---------------------------------------------------------+
|                                                         |
|    TikTok to yt-dlp Configuration Panel                 |
|                                                         |
+---------------------------------------------------------+
|                                                         |
|    Scrolling Time (ms)                                  |
|    ----------------------                               |
|    Min Time: [    1000   ]                              |
|    Max Time: [    3000   ]                              |
|                                                         |
|    Minimum Views: [      0  ]                           |
|                                                         |
|    Delete from next txt?                                |
|    ----------------------                               |
|    [X] Yes    [ ] No                                    |
|                                                         |
|    Output Name Type                                     |
|    ----------------------                               |
|    ( ) Generic String                                   |
|    (0) Fetch from data tags                             |
|    (1) Webpage Title                                    |
|    (2) First Title on Page (H1)                         |
|    ( ) Default (TikTokLinks.txt)                        |
|                                                         |
|    Adapt Text Output?                                   |
|    ----------------------                               |
|    [X] Yes    [ ] No                                    |
|                                                         |
|    Allow Images?                                        |
|    ----------------------                               |
|    [X] Yes    [ ] No                                    |
|                                                         |
|    Advanced Options                                     |
|    ----------------------                               |
|    Get Array After Scroll?                              |
|    [X] Yes    [ ] No                                    |
|                                                         |
|    Get Link by Filter?                                  |
|    [X] Yes    [ ] No                                    |
|                                                         |
|    Check Nullish Link?                                  |
|    [X] Yes    [ ] No                                    |
|                                                         |
|    Log Link Error?                                      |
|    [X] Yes    [ ] No                                    |
|                                                         |
|    Maximum Downloads: [     100  ]                      |
|                                                         |
|    ------------------------------------------------     |
|                                                         |
|    [  Save  ]       [  Reset  ]      [  Exit  ]         |
|                                                         |
+---------------------------------------------------------+

Here is a boilerplate  - https://github.com/lxieyang/chrome-extension-boilerplate-react

And here is some code CHATGPT made
import React, { useState } from 'react';
const TikTokToYtdlpConfigPanel: React.FC = () => {
const [minTime, setMinTime] = useState(1000);
const [maxTime, setMaxTime] = useState(3000);
const [minViews, setMinViews] = useState(0);
const [deleteFromNextTxt, setDeleteFromNextTxt] = useState(true);
const [outputNameType, setOutputNameType] = useState('2');
const [adaptTextOutput, setAdaptTextOutput] = useState(true);
const [allowImages, setAllowImages] = useState(true);
const [getArrayAfterScroll, setGetArrayAfterScroll] = useState(true);
const [getLinkByFilter, setGetLinkByFilter] = useState(true);
const [checkNullishLink, setCheckNullishLink] = useState(true);
const [logLinkError, setLogLinkError] = useState(true);
const [maximumDownloads, setMaximumDownloads] = useState(100);
const handleSave = () => {
    // Logic to save the configuration
    console.log('Configuration saved');
};

const handleReset = () => {
    // Logic to reset the configuration to default values
    setMinTime(1000);
    setMaxTime(3000);
    setMinViews(0);
    setDeleteFromNextTxt(true);
    setOutputNameType('2');
    setAdaptTextOutput(true);
    setAllowImages(true);
    setGetArrayAfterScroll(true);
    setGetLinkByFilter(true);
    setCheckNullishLink(true);
    setLogLinkError(true);
    setMaximumDownloads(100);
    console.log('Configuration reset to default');
};

const handleExit = () => {
    // Logic to close the panel
    console.log('Exit configuration panel');
};

return (

TikTok to yt-dlp Configuration Panel

            Scrolling Time (ms)

                Min Time:
                <input type="number" value={minTime} onChange={(e) => setMinTime(Number(e.target.value))} />

                Max Time:
                <input type="number" value={maxTime} onChange={(e) => setMaxTime(Number(e.target.value))} />

            Minimum Views:
            <input type="number" value={minViews} onChange={(e) => setMinViews(Number(e.target.value))} />

            Delete from next txt?

                <input type="radio" id="deleteYes" name="deleteFromNextTxt" checked={deleteFromNextTxt} onChange={() => setDeleteFromNextTxt(true)} />
                Yes
                <input type="radio" id="deleteNo" name="deleteFromNextTxt" checked={!deleteFromNextTxt} onChange={() => setDeleteFromNextTxt(false)} />
                No

            Output Name Type

                <input type="radio" id="genericString" name="outputNameType" value="generic" checked={outputNameType === 'generic'} onChange={(e) => setOutputNameType(e.target.value)} />
                Generic String
                <input type="radio" id="fetchFromDataTags" name="outputNameType" value="0" checked={outputNameType === '0'} onChange={(e) => setOutputNameType(e.target.value)} />
                Fetch from data tags
                <input type="radio" id="webpageTitle" name="outputNameType" value="1" checked={outputNameType === '1'} onChange={(e) => setOutputNameType(e.target.value)} />
                Webpage Title
                <input type="radio" id="firstTitleOnPage" name="outputNameType" value="2" checked={outputNameType === '2'} onChange={(e) => setOutputNameType(e.target.value)} />
                First Title on Page (H1)
                <input type="radio" id="defaultName" name="outputNameType" value="default" checked={outputNameType === 'default'} onChange={(e) => setOutputNameType(e.target.value)} />
                Default (TikTokLinks.txt)

            Adapt Text Output?

                <input type="radio" id="adaptYes" name="adaptTextOutput" checked={adaptTextOutput} onChange={() => setAdaptTextOutput(true)} />
                Yes
                <input type="radio" id="adaptNo" name="adaptTextOutput" checked={!adaptTextOutput} onChange={() => setAdaptTextOutput(false)} />
                No

            Allow Images?

                <input type="radio" id="imagesYes" name="allowImages" checked={allowImages} onChange={() => setAllowImages(true)} />
                Yes
                <input type="radio" id="imagesNo" name="allowImages" checked={!allowImages} onChange={() => setAllowImages(false)} />
                No

            Advanced Options

                Get Array After Scroll?
                <input type="checkbox" checked={getArrayAfterScroll} onChange={() => setGetArrayAfterScroll(!getArrayAfterScroll)} />

                Get Link by Filter?
                <input type="checkbox" checked={getLinkByFilter} onChange={() => setGetLinkByFilter(!getLinkByFilter)} />

                Check Nullish Link?
                <input type="checkbox" checked={checkNullishLink} onChange={() => setCheckNullishLink(!checkNullishLink)} />

                Log Link Error?
                <input type="checkbox" checked={logLinkError} onChange={() => setLogLinkError(!logLinkError)} />

            Maximum Downloads:
            <input type="number" value={maximumDownloads} onChange={(e) => setMaximumDownloads(Number(e.target.value))} />

            <button onClick={handleSave}>Save</button>
            <button onClick={handleReset}>Reset</button>
            <button onClick={handleExit}>Exit</button>

);

};
export default TikTokToYtdlpConfigPanel;

I have too many things on my plate right now but good notes for later.

Hi! I've created an extension that permits to do that. I'll do some tests again this evening, but for now it seems to work. If you want to try it, see the instructions at https://github.com/Dinoosauro/tiktok-to-ytdlp/tree/browser-extension-and-views-fixes/extension
If you find any issues, let me know and I'll try to fix them

Very cool! Thanks! Will await your testing probably.
I need it to be actually released to the chrome store if possible. Want to
try some experiments with Playwright.
On Tue, Jun 25, 2024 at 10:40 AM Dinoosauro @.***>
wrote:

Hi! I've created an extension that permits to do that. I'll do some tests
again this evening, but for now it seems to work. If you want to try it,
see the instructions at
https://github.com/Dinoosauro/tiktok-to-ytdlp/tree/browser-extension-and-views-fixes/extension
If you find any issues, let me know and I'll try to fix them
—
Reply to this email directly, view it on GitHub
https://github.com/Dinoosauro/tiktok-to-ytdlp/issues/18#issuecomment-2189147530,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJUO7TMN3WGDQ5MO62JXELZJF6MPAVCNFSM6AAAAABJ2S5WPCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBZGE2DONJTGA
.
You are receiving this because you authored the thread.Message ID:
@.***>

are you gonna release to the store so I can get auto updates, no more loading unpacked ?

I'll look into that. I ditched Chrome years ago, so I know next to nothing about their web extension store. However, if there's no fee, I'll try to upload it here. Otherwise, that might be a problem

It’s totally free you’re good to go. 👍
Should be painless. I use chromium whenever possible, for obvious reasons
these days so i understand.

Jeff Scott Ward
Founder / A.I. & U.I. Engineer
F0.ai
On Fri, Jun 28, 2024 at 10:42 AM Dinoosauro @.***>
wrote:

I'll look into that. I ditched Chrome years ago, so I know next to nothing
about their web extension store. However, if there's no fee, I'll try to
upload it there. Otherwise, that might be a problem
—
Reply to this email directly, view it on GitHub
https://github.com/Dinoosauro/tiktok-to-ytdlp/issues/18#issuecomment-2197097685,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJUO7Q5GTR6O6Q5NAMEQ73ZJVY5FAVCNFSM6AAAAABJ2S5WPCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJXGA4TONRYGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

I see you haven't uploaded it yet to the store, but also it ouputs the JSON and asks to download as .txt file.
also ytdlp doesn't understand the format? not clear how it injests JSON.
using this command
yt-dlp -a TikTokLinks.txt -o "TikTok/%(uploader)s/%(upload_date)s-%(timestamp)s-%(id)s.%(ext)s" --trim-filenames 250 --write-pages --write-subs --write-auto-subs --write-description --write-info-json --write-playlist-metafiles
Renders this,

I've not uploaded it on the Chrome Web Store since unfortunately there's a fee to pay, I'll look if there are other options for Chromium-based browsers
As far as I know, yt-dlp does not support JSON files for the input. You need to convert that JSON in a list of URL, one for each line, without [] or "".  If you don't want to re-run the script for everything, you can just do _JSON.parse(`copy here the JSON file`).map(e_ => e.url).join("\n"); and then copy the result into the americanincome.txt file

Ahh that stinks.
Thanks for the code!
I actually just reran it with the same page open as they were all in the
dom and it worked fine.
I guess just the default file type needs the conditional based on choice,
then it’s good to go.
Thanks so much for this tool it’s going to help a lot!

Jeff Scott Ward
Founder / A.I. & U.I. Engineer
F0.ai
On Sat, Jul 6, 2024 at 3:34 AM Dinoosauro @.***> wrote:

I've not uploaded it on the Chrome Web Store since unfortunately there's a
fee to pay, I'll look if there are other options for Chromium-based browsers
As far as I know, yt-dlp does not support JSON files for the input. You
need to convert that JSON in a list of URL, one for each line, without []
or "". If you don't want to re-run the script for everything, you can just
do JSON.parse(copy here the JSON file).map(e => e.url).join("\n");
and then copy the result into the americanincome.txt file
—
Reply to this email directly, view it on GitHub
https://github.com/Dinoosauro/tiktok-to-ytdlp/issues/18#issuecomment-2211693812,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJUO7QKMBDIOXHZLIKFYKLZK6MXNAVCNFSM6AAAAABJ2S5WPCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJRGY4TGOBRGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Glad I helped! For the default file type, I'll try to update the script in a few minutes


[Error][Publisher]Attempts to add 20,000 characters in description

Test Case: An API creator attempts to create the REST API with more than 20000 characters for the description and publish the API
Error Encountered: After adding more than 20,0000 characters in the API description, the API overview page is changing like in the above-attached screenshot.

This issue is not reproducible in the latest build pack.


Add more tests for --help function to bring up code coverage

Tests --help for these functions:
run
logs
login
logout
create
clone
pull
push
status
open
deployments
undeploy
redeploy
versions
version
list
apis
help

Signed-off-by: campionfellin<EMAIL_ADDRESS>
[x] npm run test succeeds.
[x] npm run lint succeeds.

Coverage decreased (-30.3%) to 29.224% when pulling efc969d3b450a5d99573cc111277c55aa39f43de on campionfellin:more-help-tests into 6a07c1e2f2f63c38ec778ac5092ecaf60bb85e9f on google:master.

Now we just need a way to figure out Coveralls, as it'll bounce around like this, decreasing on PRs and then going back up once merged into master and re-built.

Good call, thanks for the idea. These tests aren't super helpful but raise coverage a bit. Kind of just "chore" work.

You could even put expectHelp inside the describe function since it's only used in that logical scope/closure.

Will do that later tonight and then merge.

Tests passed, merging now.

Note: Please squash commits when merging. Each PR should ideally be 1 commit.

Noted, thanks.


FastBoot 1.0 compatibility

Addresses issue #18.  Followed instructions found here: https://gist.github.com/kratiahuja/d22de0fb1660cf0ef58f07a6bcbf1a1c

Looks good, merging...


Is AngularJS used?

Just a question about the opening sentence.  It states "Semantic UI Angular 2 Integrations, written in pure AngularJS - no JQuery required."  Does that mean it is not written in Angular, but rather AngularJS?

Agreed, that is confusing. I've updated the documentation to reflect that this is an Angular (2) project.


feat: check images for fastlane and docs

Fixes #486
Changes:

Moved Images to docs folder and we now copy it when we publish using fastlane

Need to find a solution to have F-Droid work as well with this. It won't find the images in this case

Need to find a solution to have F-Droid work as well with this. It won't find the images in this case

Yes true, let me look what else can I do

Git logically stores each file under its SHA1. What this means is if you have two files with exactly the same content in a repository (or if you rename a file), only one copy is stored.

@iamareebjamal we should not have problem duplicating content

Not the case with binaries. But let me check, maybe I am wrong

Yeah, it'll work. Please go ahead.
However, please fail the build if there are different count of images in fastlane and docs folder so that when an image is added in one of them, it reminds the developer to add image in the other folder as well

@iamareebjamal yeah that sounds right. Will get it done in some time

@iamareebjamal this is the build failing, I did not opt to check the count rather I check the md5 which will give us the exact content duplication difference.
Failing Build Result: https://travis-ci.com/fossasia/badge-magic-android/builds/126048064
Passing Build Result: https://travis-ci.com/fossasia/badge-magic-android/jobs/231440485


NanoDMX/StageProfi/Enttec fix

For any value over 127, the nanodmx code sends the update to the device repeatedly rather than just once, as happens for any value <= 127
This is caused by a signed/unsigned value comparison in nanodmx.cpp
Fixed and tested. Also fixed the same code in stageprofi.cpp and enttecdmxusbpro.cpp, but not tested.

Thanks for the patch, makes sense!
However, looking at the code, maybe the right way is to declare 'val' as char, since it comes and goes into QByteArrays.
What do you think?

coverage: 28.054%. remained the same when pulling 023552a52f220e3a1f017440be249defa0448d96 on brianwiddas:nanodmx-compare into 04956e809ea20805526761534ac73e28f2c32927 on mcallegari:master.

Hi,
Yes, that makes sense. I looked over the code for all three and can't see any reason why it would be a problem.
Updated the code and tested nanodmx

Thanks 👍


run sysbench update，After a slow node appears, QPS recover is too slow due to detection algorithm

Bug Report

What version of TiKV are you using?
[root@copy-of-vm-ee-centos76-v1 bin]# ./tikv-server -V
TiKV
Release Version: 5.1.0-alpha
Edition: Community
Git Commit Hash: f67aa380277b333a5b879f7837af51a9bd4ee0b8
Git Commit Branch: slow-store-fix-5.2
UTC Build Time: 2021-08-06 06:39:43
Rust Version: rustc 1.56.0-nightly (2faabf579 2021-07-27)
Enable Features: jemalloc mem-profiling portable sse protobuf-codec test-engines-rocksdb cloud-aws cloud-gcp
Profile: release
What operating system and CPU are you using?
tiup ：
1PD
1TiDB
3TiKV
all node：500G NVME、4 cores、8G mem
Steps to reproduce
1、tiup br:v5.2.0 restore full --pd="<IP_ADDRESS>:2379" --storage s3://benchmark/sysbench-32-300G-release-4.0 --s3.endpoint http://minio.pingcap.net:9000 --send-credentials-to-tikv=true
2、sysbench --config-file=config_test oltp_write_only --tables=32 --table-size=10000000 run
3、inject cpu limit（on 15:15）
echo 1000000 > /sys/fs/cgroup/cpu,cpuacct/g3/cpu.cfs_quota_us
echo 1000000 > /sys/fs/cgroup/cpu,cpuacct/g3/cpu.cfs_period_us
echo $(pgrep tikv-server) > /sys/fs/cgroup/blkio/g3/cgroup.procs
What did you expect?
After a slow node appears, QPS resumes within 10 minutes
What did happened?
QPS resumes within 25 minutes

/type bug

/severity major

/assign 5kbpers

What is the root cause of this issue? Is it because of the transfer leader backoff mechanism or CPU limitation in the heavy workload?

What is the root cause of this issue? Is it because of the transfer leader backoff mechanism or CPU limitation in the heavy workload?

The detection algorithm is not very efficient for limited CPU, it may take a longer time to identify a slow store.


Reverting resolution after 120 seconds

Thank you for this great software.
Only issue I'm having is that the original resolution does not kick back in after 120 seconds of the stream being paused.
I edited the scripts and changed it to take effect after 4 seconds (to be able to test more quickly). But no luck.
Is this definitely working? Is the IsCurrentlyStreaming variable being set correctly?
Many thanks :)

Yes it should be working, at least for the sunshine version of the script. In fact people often have the opposite issue, wanting to extend that period instead of reduce it. It can be changed in the settings file

Yes it should be working, at least for the sunshine version of the script. In fact people often have the opposite issue, wanting to extend that period instead of reduce it. It can be changed in the script itself, search for 120 and replace it

Thank you very much for the response.
I am using Sunshine and I did indeed replace the '120' with '4':
else {
                if (((Get-Date) - $lastStreamed).TotalSeconds -gt 4) {
                    Write-Output "Ending the stream script"
                    New-Event -SourceIdentifier ResolutionMatcher -MessageData "End"
                    break;
                }

            }

When the 'Stream Paused' alert shows for Sunshine, I am expecting the resolution to revert after 4 seconds. Would this be the behaviour I should expect, or am I missing something?
Explicitly closing the session through Moonlight immediately prompts the host's resolution to revert, which is fantastic, so no dramas there.
The Sunshine config edit looks like this when install is successful:
global_prep_cmd = [{"do":"powershell.exe -executionpolicy bypass -WindowStyle Hidden -file "Z:\Apps\!3rd Party\ResolutionAutomation\ResolutionMatcher.ps1"","elevated":"false","undo":"powershell.exe -executionpolicy bypass -WindowStyle Hidden -file "Z:\Apps\!3rd Party\ResolutionAutomation\ResolutionMatcher-Functions.ps1" True"}]
But nothing in the block with this comment is being executed *I put a load of debug log text in there, and nothing is printed):
Asynchronously start the ResolutionMatcher, so we can use a named pipe to terminate it.

Is there not a confusion between IsCurrentlyStreaming and UserIsStreaming() between the two ps files, in the latest release?
Really confused by the nested zip in the source file as well lol. Will keep looking XD

Fixed in latest release


Server crashes on startup

Information

Minecraft Version: 1.16.5
Fabric API Version: 0.34.0
OS: IDK
Other installed mods: https://imgur.com/a/EmuyjcW

Describe the issue
The server crashes on startup
Crash/Error logs
https://paste.srnyx.xyz/akejuputos.pl

downgrade fabric API

downgrade fabric API

Worked, thanks


Fund using MoonPay prototype

If you try to create account outside of US – "Fund with Moonpay" button appears

If you try to create account outside of US – "Fund with Moonpay" button appears


Initial fold gets delayed

Neovim version (nvim -v | head -n1)
NVIM v0.9.0-dev-1206+g829d92eca3
Operating system/version
archlinux
How to reproduce the issue
I have the following setup for ufo
M["kevinhwang91/nvim-ufo"] = {
  event = "User FileOpened",
  dependencies = "kevinhwang91/promise-async",
  config = function()
    local ft_map = {
      ["neotest-summary"] = "",
    }
    require("ufo").setup {
      fold_virt_text_handler = handler,
      provider_selector = function(_, filetype, _)
        if vim.tbl_contains(ft_map, filetype) then
          return ft_map[filetype]
        else
          return { "lsp", "indent" }
        end
      end,
    }
  end,
  init = function()
    -- Neovim hasn't added foldingRange to default capabilities, users must add it manually
    local _make_client_capabilities = vim.lsp.protocol.make_client_capabilities
    vim.lsp.protocol.make_client_capabilities = function()
      local capabilities = _make_client_capabilities()
      if capabilities.textDocument.foldingRange ~= nil then
        vim.notify("foldingRange added", "warn", { title = "Ufo Init" })
      end
      capabilities.textDocument.foldingRange = {
        dynamicRegistration = false,
        lineFoldingOnly = true,
      }
      return capabilities
    end
  end,
}

Expected behavior
The initial fold takes >10s.
I tried even {"indent"} fallback, which doesn't help.
Actual behavior
Initial fold shouldn't be so slow.

Use stable nvim like v0.8.3;
Execute tail -f ~/.cache/nvim/ufo.log in a shell;
Run UFO_LOG=trace nvim and reproduce the issue;
Post the log here.

Sorry for late reply.
The log is attached below
[23-05-27 06:12:53] [TRACE] event.lua:52 : event: BufAttach listeners: { <function 1> } args: 1
[23-05-27 06:12:53] [DEBUG] init.lua:128 : attach bufnr: 1
[23-05-27 06:12:53] [TRACE] event.lua:52 : event: TextChanged listeners: { <function 1> } args: 1
[23-05-27 06:12:55] [TRACE] event.lua:52 : event: BufDetach listeners: { <function 1>, <function 2>, <function 3> } args: 1
[23-05-27 06:12:55] [TRACE] event.lua:52 : event: BufEnter listeners: { <function 1>, <function 2> } args: 3
[23-05-27 06:12:55] [TRACE] event.lua:52 : event: BufAttach listeners: { <function 1> } args: 3
[23-05-27 06:12:55] [DEBUG] init.lua:128 : attach bufnr: 3
[23-05-27 06:13:18] [TRACE] event.lua:52 : event: InsertLeave listeners: { <function 1> } args: 3

The UfoInspect shows it's still starting after 10s
Buffer: 3
Fold Status: start
Main provider: lsp
Fallback provider: indent
Selected provider: nil
Fold kinds:

This is normal log, I guess the issue is plugins conflict, please use binary search and debug yourself.
[23-05-28 22:02:03] [TRACE] event.lua:52 : event: BufAttach listeners: { <function 1> } args: 3
[23-05-28 22:02:03] [DEBUG] init.lua:128 : attach bufnr: 3
[23-05-28 22:02:03] [DEBUG] decorator.lua:77 : folded lnums: {} didOpen: false
[23-05-28 22:02:03] [INFO] init.lua:89 : providers: { "lsp", "indent" }
[23-05-28 22:02:03] [DEBUG] decorator.lua:77 : folded lnums: {} didOpen: false
[23-05-28 22:02:03] [DEBUG] init.lua:53 : requestFoldingRange({ "lsp", "indent" }, 3) has elapsed: 191ms
[23-05-28 22:02:03] [INFO] init.lua:96 : selected provider: lsp
[23-05-28 22:02:03] [INFO] manager.lua:204 : apply fold ranges: { {
    endLine = 151,
    kind = "region",
    startLine = 146
  }, {
    endLine = 143,
    kind = "region",
    startLine = 141
  }, {
    endLine = 138,
    kind = "region",
    startLine = 134
  }, {
    endLine = 131,
    kind = "region",
    startLine = 129
  }, {
    endLine = 126,
    kind = "region",
    startLine = 124
  }, {
    endLine = 121,
    kind = "region",
    startLine = 118
  }, {
    endLine = 112,
    kind = "region",
    startLine = 111
  }, {
    endLine = 107,
    kind = "region",
    startLine = 106
  }, {
    endLine = 108,
    kind = "region",
    startLine = 105
  }, {
    endLine = 101,
    kind = "region",
    startLine = 100
  }, {
    endLine = 93,
    kind = "region",
    startLine = 92
  }, {
    endLine = 115,
    kind = "region",
    startLine = 89
  }, {
    endLine = 82,
    kind = "region",
    startLine = 81
  }, {
    endLine = 86,
    kind = "region",
    startLine = 80
  }, {
    endLine = 64,
    kind = "region",
    startLine = 63
  }, {
    endLine = 77,
    kind = "region",
    startLine = 62
  }, {
    endLine = 58,
    kind = "region",
    startLine = 51
  }, {
    endLine = 59,
    kind = "region",
    startLine = 50
  }, {
    endLine = 45,
    kind = "region",
    startLine = 43
  }, {
    endLine = 46,
    kind = "region",
    startLine = 42
  }, {
    endLine = 38,
    kind = "region",
    startLine = 37
  }, {
    endLine = 35,
    kind = "region",
    startLine = 33
  }, {
    endLine = 28,
    kind = "region",
    startLine = 20
  }, {
    endLine = 47,
    kind = "region",
    startLine = 18
  } }
[23-05-28 22:02:03] [INFO] manager.lua:205 : apply fold rowPairs: {}
[23-05-28 22:02:03] [DEBUG] decorator.lua:77 : folded lnums: {} didOpen: false

Thanks for the guidance, would check that.


Transition TF benchmarks to stablehlo dumps

When we generate TF benchmarks, we are persisting the savedmodel in GCS and then, at build/test time, running iree-import-tf to generate stablehlo that can be compiled. With the new flow all of the import code is upstream with just a small Python stub in IREE that generates a stablehlo+ml_program dump. Given that this all lives upstream, we should eliminate our in-tree dependence on the actual importers, instead just having stablehlo benchmarks and offline model generation generating/persisting that directly (versus the savedmodel).
This same workflow will generalize well to jax and torch-xla.

@julianwa @mariecwhite @jpienaar I'm going to fix the current thing, but we should really maneuver this as I've described.

@julianwa @mariecwhite @jpienaar I'm going to fix the current thing, but we should really maneuver this as I've described.

Ack. @mariecwhite, can you incorporate this into the in-progress OOBI design work and next steps?

Can you add commands here that would replace the existing flow? That way I can look into how this would integrate into OOBI.

You basically want to run iree-import-tf with the correct args on the savedmodel and persist the output. I had to derive the commands myself from the corresponding CMake vars as they are model specific.
(for doing this for real, you'll want to wait until we land the iree-import-tf upgrade as that will output a more robust form of output -- if you do it now at head, you'll get a form that can still vary a bit from time to time)

@mariecwhite Can you set to 'in progress' when you've started on this?

The new importer requires changes in TF that haven't been officially released. These changes are available in tf-nightly but it has some breaking API changes that are not compatible with the model libraries HuggingFace Transformers and Keras (see https://github.com/huggingface/transformers/issues/22421). We will need to wait until TF 2.13 is released or an RC version.

Could we just use the previous iree-import-tf binary? E.g., use that specific tool version for those models that need it and upstream python API for rest. However the StableHLO is generated just needs to be noted somewhere, but here we just consume the serialized StableHLO.

@mariecwhite I believe #13445 addresses this issue - can you confirm it's in progress?

Correct, that PR uses stablehlo dumps instead of SavedModel. We're seeing a 2x increase in compilation time that we'll need to debug. Also, it uses 'mhlo' as the input type since 'stablehlo_experimental' is resulting in errors. We can make the switch once stablehlo is ready.

@mariecwhite is this fixed with #13445 ?

Yes fixed!


Jb/testing

Fixed 404 message, changed favicon to png file, downloaded testing libraries

Merging JB/Testing into dev


MEW wallet

Hi, please add MEW wallet https://www.myetherwallet.com to the list of wallets at https://walletconnect.org/wallets/.

Does MEW wallet as a mobile app managing private keys support WalletConnect?
It was my understanding that only the website supported it to connect WalletConnect wallets


Investigate if Panama instead of JNI can help to speed up JPype

According to this tweet from the ElasticSearch team, replacing JNI with Panama increases performance:
https://twitter.com/delabassee/status/1476091183302680576
It might be interesting to research if this can help to speed up JPype too.
There's a getting started with Panama tutorial here:
https://foojay.io/today/project-panama-for-newbies-part-1/

I've got a project that can help working with Panama. Similar to JNA, you create an interface and the library can either build the class you need dynamically at run time, or write the java code to disk.
The GitHub page has some graphs showing speed ups. If you are passing mainly primitives then the speed up can be huge, if you're passing arrays or structs then the gains are more modest.
https://github.com/boulder-on/JPassport#readme
JExtract is another very helpful tool put out by the Panama team. Given a header file it will generate a Java file with most of
what you need already done.
https://github.com/openjdk/panama-foreign/blob/foreign-jextract/doc/panama_jextract.md

I am not really sure that Panama would offer much benefits over JNI for JPype.   The structure of JPype is to make calls from external source (Python) to Java and not the other way around.   Thus it is all very low level calls.   Unless Panama greatly speeds up marshalling of these low level calls that is not much speed increase possible.
Taken from the Panama web page....

To this end, Project Panama will include most or all of these components:

native function calling from JVM
native data access from JVM or inside JVM heap
new data layouts in JVM heap
native metadata definition for JVM
header file API extraction tools (jextract)
native library management APIs
native-oriented interpreter and runtime “hooks”
class and method resolution “hooks”
native-oriented JIT optimizations
tooling or wrapper interposition for safety
exploratory work with difficult-to-integrate native libraries

Notice the direction of most of these optimizations.   They are meant to make it easy and quick for Java to call native code.
Given the amount of work required to convert the JNI oriented framework to another technology the benefits would have to be very significant.

So far I've only been using the foreign API to go from Java to a C DLL. I did a very dirty test on callbacks comparing the foreign api to JNI. My test was

Call from Java to C passing a method pointer, int and double.
In C call the passed in method passing the int and double
In the Java callback add the two values and return the result.
In C return the result of the callback
Repeat 1 million times

This is admittedly a pretty artificial and trivial example and I have no experience optimizing JNI. I found the callback using the foreign API to be about 3.75 times faster than the JNI call. If I used JNA to perform the same task then the foreign API was about 28 times faster. One of the factors at play here is that by using the foreign API the JIT knows what's going on and can optimize. My JNI example only saw a small change in speed as the JVM warmed up, the foreign API had a much larger reduction in time.
These numbers mirror what I've seen calling from Java to C with primitive arguments only. This makes me think that the performance of arrays and more complex structures won't be as impressive, but will still beat JNI.
Another benefit is that the code to make the callback is pretty compact:
public static int primitive(int v, double d)
{
    return v + (int)d;
}

MethodHandle primitives = MethodHandles.lookup().findStatic(TestCallBack.class, "primitive",
            MethodType.methodType(int.class, int.class, double.class));
MemoryAddress segment = CLinker.getInstance().upcallStub(primitives, FunctionDescriptor.of(C_INT, C_INT, C_DOUBLE), var7);

testFL.call_CB(segment, 1, 2.0);

Having said all of this, I'm sure that this would be a lot of work. As well, at this point the foreign API is still incubator and therefore subject to change. Implementing this change for JVM's after 17 only would at least require multi-release jars and maybe other gymnastics.

95% of our code is C++ calling Java, so we should compare only to that.  The reverse (Java calling C++) is only in proxies and class construction.
If you wouldn’t mind posting the JNI code that you tested for C++ calling Java and getting a result I can see if there are missed optimizations.
I would expect it to look something like…  (env, clazz, mid are all cached so it should just be dealing with the jvalue marshalling which is still remarkably slow)

int testCall(JNIEnv* env, jclass clazz, jmethodId mid, int v, double d)

{

  jvalue v[2];

   v[0].i = method;

   v[1].d = obj;

    return env->CallStaticIntMethodA(clazz, mid, &v);

}

Of course C++ to Java is only a small fraction of the total work because much of what we do is dealing with the matching of Python types to Java which means that JNI is likely not the limiting factor.  But I am curious what the speed difference is when all values are cached.
The other issue is that because we calling general purpose we may end up going through the same level of marshalling.   After all we have to be able to call (int, object, object), and (object, double, object, int), so that means our entry point is going to end up with a jvalue[] or something similar rather than an optimized foreign interface like  FunctionDescriptor.of(C_INT, C_INT, C_DOUBLE),

I updated the code to a) make it mainly about the callback, b) add a quick optimization for the method lookup.
JNI
public static int cb(int n, double d)
{
    return n + (int)d;
}

static native int nativeCallJavaMethod(TestJNI cb, int n, double d);

JNIEXPORT jint JNICALL Java_jpassport_test_callback_TestJNI_nativeCallJavaMethod
(JNIEnv *env, jclass cls, jobject impl_obj, jint i, jdouble d)
{
    jclass impl_cls;
    jmethodID impl_cb_mid;

    impl_cls = (*env)->GetObjectClass(env, impl_obj);
    if (!impl_cls)
        return -2;

    impl_cb_mid = (*env)->GetStaticMethodID(env, impl_cls, "cb", "(ID)I");
    if (!impl_cb_mid)
        return -1;

    int ret = 0;
    for (int n = 0; n < 1000000; n++)
        ret += (*env)->CallStaticIntMethod(env, impl_obj, impl_cb_mid, n, d);
    return ret;
}

I called the JNI method 1000 times, dropped the first 100 iterations and got an mean of 119ms per JNI call (which contained 1 million callbacks).
Panama
I used the same static method, the C code was:
typedef int (*callbackFN) (int, double);
int call_CB(callbackFN fn, int v, double v2)
{
    int sum = 0;
    for (int n = 0; n < 1000000; n++)
        sum += fn(v, v2);
    return sum;
}

The mean here for the same conditions was 54ms. So Panama was more like 2.2x faster. I'm not sure if these are closer now because I changed JNI to call a static java method or because I now only call GetStaticMethodID once per million callbacks, I suspect the latter.

That is about what I would expect.  Knowing the argument types on the foreign interface is about a two times speed up over the generalized marshalling that JNI does (at least for a trivial call).  That is because it has to look at the method signature and see the I,D arguments then pull the correct fields out of jvalue.  But unfortunately as we are calling general methods rather than specific ones (we must handle every case as a list of arguments) you would have to hit the general marshalling API in Panama.  So I suspect when we are hitting the same level of work the differences will be much smaller.   After all there was a way to do a general argument marshalling in JNI it likely would have been implemented in the faster way.


Check if the node has ingress controller pod running. This node needs…

… to be checked manually to check connection timeouts before draining

Closing the PR. This is not required.


V2 no options disable

Approved, but do you think it's worth cleaning up the last two commits here to avoid adding a revert to the history?

Unfortunately, we can't. In the short term, there needs to be a commit in the history that includes a build library so that we can point npm at a git repo. Unlike simpler npm modules that are just a raw index.js file, the actual executable for react-select is the result of its build script. When installing for a git commit, npm only pulls down a subset of the full github repo, so the result can't be built locally.


Rename eventRef properties to something more meaningful

currently we can do in actions:
   actions:
      - eventRef:
        triggerEventRef: OrderServiceSendEvent
        resultEventRef: OrderServiceResultEvent

this denotes that this action needs to "send" an event X and then wait for event Y that is the invocation result event
we might want to look into renaming "triggerEventRef" and "resultEventRef" to something more meaningful such as maybe
"produceEventRef" "consumeEventRef" or similar, wdyt?

agree, "produceEventRef" and "consumeEventRef" sounds better to me than trigger/result

@tsurdilo @antmendoza ...especially now that you can just produce without having to consume. I therefore totally agree.


Rewards should point from creator => owner

If we release as is, the status quo remains.
Let's focus on the fix and try to get this ready for DF23
Build on top of updates for https://github.com/oceanprotocol/df-py/pull/468
:hands_up:
DoD:

[ ] df-py is processing all information around owner, not creator

Code is already using "owner", but variables are named "creator". So it's just cosmetic, no impact


SLU05 exercise notebook golden 'start' typo!

Just before the instructions to submit the exercises, it says:
Keep the git workflow in your heart, and use it whenever you find a typo in a Learning/Exercise Notebook! I'll give you a golden start for it! :D
I presume it should be gold STAR?
Do I get a gold star for submitting this issue? 😆

⭐ gold star!

Ty for opening an issue! This is to be fixed in the next Prep Course edition!


Org owner sees Destroy organization button for own org

Relates to #634 , conflicts with spreadsheet which specifies that only POD Admin should have destroy option.
Noted in spreadsheet

I vote for this being a POD admin only power.
I think these buttons are just remnants of the original table when we didn't have the extra layer of privileges. I would also suggest we remove Edit from this table, even though the Org owner does have edit privileges. I think it creates confusion to have the same action appear in too many places, and the org owner can easily edit their organization via their org-specific homepage links or by simply selecting their provider name from the list in that table.

I agree that only POD Admins should be able to destroy an organization.

Closed by #748


unable to install anthropic[bedrock]

Hi Team,
while trying to install the anthropic[bedrock] package on my machine, I'm getting the following error. Am I doing anything wrong?
pip3 install -U anthropic[bedrock]
zsh: no matches found: anthropic[bedrock]

You may need to quote it:
pip3 install 'anthropic[bedrock]'

Thanks for your response, @rattrayalex . That worked. I'm assuing, we need to mention this within quotes in requirements.txt file as well, correct ?

I don't believe so - the quoting is just needed for zsh, which otherwise interprets the brackets differently from what we intend.


Fix raise condition for loop errors

Fixes https://github.com/OpenDevin/OpenDevin/issues/1000

Simple fix, merging


⚠ Bofrost.be has degraded performance

In 82ce31a, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2790 ms

Resolved: Bofrost.be performance has improved in be62e12.


Can't add to empty project.

Can't add to empty project.
react-native-cli: 2.0.0
Step to reproduce:

react-native init testwebRtc
cd testwebRtc
npm install react-native-webrtc
Following by this  instruction: https://github.com/oney/react-native-webrtc/blob/master/Documentation/AndroidInstallation.md
after this react-native run-android and have error:

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:processDebugResources'.

Failed to execute aapt

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Get more help at https://help.gradle.org

BUILD FAILED in 2s
25 actionable tasks: 1 executed, 24 up-to-date
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html
Command failed: gradlew.bat installDebug
Error: Command failed: gradlew.bat installDebug
at checkExecSyncError (child_process.js:622:11)
at Object.execFileSync (child_process.js:640:13)
at runOnAllDevices (C:\Work\react-native\testwebRtc\node_modules\react-native\local-cli\runAndroid\runAndroid.js:299:19)
at buildAndRun (C:\Work\react-native\testwebRtc\node_modules\react-native\local-cli\runAndroid\runAndroid.js:135:12)
at isPackagerRunning.then.result (C:\Work\react-native\testwebRtc\node_modules\react-native\local-cli\runAndroid\runAndroid.js:65:12)
at process.internalTickCallback (internal/process/next_tick.js:77:7)
package.json
{
  "name": "testwebRtc",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.6.3",
    "react-native": "0.58.3",
    "react-native-webrtc": "^1.69.0"
  },
  "devDependencies": {
    "babel-core": "7.0.0-bridge.0",
    "babel-jest": "24.0.0",
    "jest": "24.0.0",
    "metro-react-native-babel-preset": "0.51.1",
    "react-test-renderer": "16.6.3"
  },
  "jest": {
    "preset": "react-native"
  }
}

settings.gradle
rootProject.name = 'testwebRtc'

include ':WebRTCModule', ':app'
project(':WebRTCModule').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webrtc/android')

include ':app'

**app/build.gradle**

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "27.0.3"
        minSdkVersion = 16
        compileSdkVersion = 27
        targetSdkVersion = 27
        supportLibVersion = "28.0.0"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        google()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '4.7'
    distributionUrl = distributionUrl.replace("bin", "all")
}

gragle/wrapper/gradle-wrapper
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

MainApplication.java
package com.testwebrtc;

import android.app.Application;

import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.oney.WebRTCModule.WebRTCModulePackage;
import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(new MainReactPackage(), new WebRTCModulePackage());
    }

    @Override
    protected String getJSMainModuleName() {
      return "index";
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
  }
}

app/build.gradle
apply plugin: "com.android.application"

import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation
 *   entryFile: "index.android.js",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
 *   // whether to disable dev mode in custom build variants (by default only disabled in release)
 *   // for example: to disable dev mode in the staging build type (if configured)
 *   devDisabledInStaging: true,
 *   // The configuration property can be in the following formats
 *   //         'devDisabledIn${productFlavor}${buildType}'
 *   //         'devDisabledIn${buildType}'
 *
 *   // the root of your project, i.e. where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
 *   nodeExecutableAndArgs: ["node"],
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

project.ext.react = [
    entryFile: "index.js"
]

apply from: "../../node_modules/react-native/react.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "com.testwebrtc"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "1.0"
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a"
        }
    }
    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
    compile project(':WebRTCModule')
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        buildToolsVersion = "27.0.3"
        minSdkVersion = 16
        compileSdkVersion = 27
        targetSdkVersion = 27
        supportLibVersion = "28.0.0"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        google()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '4.7'
    distributionUrl = distributionUrl.replace("bin", "all")
}

This code fix my issue
ndk {
abiFilters 'armeabi-v7a', 'x86'
}


FR: Notes Window font size

The defaut font size is too small for comfortable reading and/or reading from a distance.
So a font size quick menu that remembers font size when the project is saved would make the notes window even more useful!
Thanks for looking at this!

Is it possible or impossible to implement?


Benchmark metric

As discussion in #2 , we are going to use some probability atlas.
Any metric related to euclidean distance between parcel mass and denoise results will not work. A probability 'parcel' can contain multiple regions. We will need to look into other metrics.
One that I can think of is intra class correlation within and between individuals. (Parker 2018)
More broadly it might be a good idea to decide some metrics and what they can access.

Suggestion:
Threshold the soft parcels and separate the spatially discontinued subparcels.
Calculate the centre mess of the newly defined parcels
This will be related to #2
Once we created the atlas archive, we will need to reprocess the dataset.


[SUGGESTION] See tha lobbi name underneath CREW:

It'll make itta easier ta rejoin lobbies afterra host remakes the lobby!!

Added in the 2.0.0 release


403 in regions where Spotify does not provide its services

Hi! I've had this problem for a month now I think

I just don't have any genres whatsoever. I've seen another bug report about this and have done everything you said and this is the result

pls help :(

Strange behavior, this is kind of an issue on the Spicetify side.
What's your Spotify and Spicetify versions ? I know there was an issue about that at a time but it was fixed on a newer Spicetify version.

my spotify version is <IP_ADDRESS>9 and my spicetify version is 2.36.10

I hate it when I can't reproduce it on my end, not sure what to do, you seem to be up to date and there's no issue on Spicetify concerning this...

Hello, it seems the extension does not work in regions where Spotify does not provide its services. In Russia it only worked with VPN (For this reason you cannot reproduce it). So I think this is not a bug, it’s just that the Spotify api is not responding.

I pushed a new update that fixes https://github.com/Vexcited/better-spotify-genres/issues/7.
Your issue may be related to it, can you please try to update the extension and see if it changes anything ?

No, nothing has changed. I doubt this can be fixed. Figured out how to open the development tools to show you the API response. I made a request Spicetify.CosmosAsync.get("https://api.spotify.com/v1/artists/6FfjnGXMhxSsJTuGLWBDth")

Since this is an API limitation depending on regions, this issue might won't fix.


Fix #300 : enable huge_tree in XMLParser to handle very big events

A proposition to fix https://github.com/python-caldav/caldav/issues/300
Activating huge_tree in XMLParser allow to handle very big caldav events.

Tests are failing because rootdir is not the one I expected, fixed in new commit

"tox -e style", and then it's ready?

(the 80 character line length restriction in PEP-8 is a terrible constraint sometimes)

All right, shoud be good now.

Thanks for the review :)

I can't promise a quick release of caldav v1.3.0 this time, but hopefully in a week or two.


Packaged Monorepo - exports from packages are not available

Describe the bug
Hi, not 100% it belongs here, but my biggest guess it is related to this part of the chain.
we're actually trying to setup a typescript packaged monorepo with sveltekit in it as an app, but we've got the same issue with just vite.
We've setup the simplest case of mono repo:

apps/svelte
packages/core

workspace are defined in the package.json:
"workspaces": [
    "apps/*",
    "packages/*"
  ],

we name the packages/core @monorepo/core in package.json and then we import something from it in the svelte app:
import { foo } from "@monorepo/core";

Typescript go to works, the workspace linking works, but when we build the svelte app it gives the error "imported variable" is not  exported by "path to correct built file" as imported by ...:
RollupError: "foo" is not exported by "../../packages/core/build/index.js", imported by "src/entry-server.ts".

"../../packages/core/build/index.js:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.foo = void 0;
exports.foo = 42;

So it points to the correct built file, that file does contain the required export, but still it says it's not exported.

We use npm workspaces to create the monorepo, but we've tried as well with pnpm workspaces and using turbo on top as well and always gives the same result.
We've created a minimal setup that allows to reproduce the problem.
Thanks so much in advance for looking into this.
Reproduction URL
https://github.com/ticup/vite-monorepo
Reproduction

clone repo
npm i
npm i -w apps/svelte
cd packages/core
npm run build
cd ../../apps/svelte
npm run build (or dev)

Logs
No response
System Info
System:
    OS: macOS 14.0
    CPU: (10) arm64 Apple M1 Max
    Memory: 1.59 GB / 64.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.6.0 - ~/.nvm/versions/node/v20.6.0/bin/node
    npm: 9.8.1 - ~/.nvm/versions/node/v20.6.0/bin/npm
    pnpm: 8.14.1 - ~/Library/pnpm/pnpm
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 120.0.6099.234
    Safari: 17.0

the export and import are not in a .svelte file, vite-plugin-svelte is not involved in resolving or the error message, so I'm not sure why you think this would be a bug in vite-plugin-svelte.
Does it work without vite-plugin-svelte and starts breaking when you add it?
I'd recommend using "type":"module" for all packages, but not sure if that improves things.
Please use #help-svelte-and-kit on https://svelte.dev/chat for help on how to set up monorepos with sveltekit apps.

@dominikg  Thanks for having a look.
It's not really clear to me yet what each component is responsible for exactly in the sveltekit chain, so I thought the svelte-plugin was responsible for chaining together all svelte files (.js and .ts included).
At sveltekit they say to first reproduce using only vite + svelte, to see if it's sveltekit or vite, so I guess it's vite-related then, since I can reproduce using only that.
I tried setting type to module, but that doesn't change anything.
Posted in #help-svelte-and-kit , but no answer yet, so I'll wait some more.
I'll close it here, thanks again for your time.


Provide gpdemo.sh deployment script

Customers have complained that the deployment procedures of CBDB is tedious. In this PR, gpdemo.sh provides a default configuration to enable a one-click deployment experience. The default parameters are the same as "make create-demo-cluster", and all demo cluster Makefile jobs are now directly run "gpdemo.sh" instead.

Packaging Instructions
Following files are necessary and need to be packaged into .rpm files if we need to ship this script in the releases:

in directory gpAux/gpdemo:

*.sh (demo_cluster.sh, gpdemo-defaults.sh, gpdemo.sh, probe_config.sh)
lalshell
README

all scripts need to be installed to the dir where make install copies into.

In commit messages:

In this PR, gpdemo.sh provides a default configuration to enable

-> In this commit

a complete overhaul of this pr has been carried out. gpdemo now has been moved to gpMgmt/bin so that it can be installed to $(DESTDIR). Several considerable changes has been made:

the original pr is to expand the features of demo_cluster.sh to do everything and gpdemo only acts as a delegate. on the contrary, gpdemo are now worked as a wrapper of demo_cluster.sh and probe_config.sh, while these scripts are remained mostly the same. gpdemo will try to parse those new features, and passes everything it doesn't understand to demo_cluster.sh.
in order to make USAGE function correctly printing the help messages, gpdemo will replace the it with another version that showing these new features.
because source  gpdemo-defaults.sh is needed in Makefile, default shell needs to be changed to bash instead of the default sh.

usage of gpdemo:
gpdemo {-c | -d | -p | -h | -H | -v} <-K>
    : Default behaviour (no argument) is to create demo cluster.
 -c : Check if demo is possible.
 -d : Delete the demo.
 -K : Create cluster without data checksums.
 -p : Probe configuration of an alive cluster.
 -h : Usage, prints this message.
 -H : Detailed usage.
 -v : Show version.

 There are few environment variables (e.g., PORT_BASE, DATADIRS) to
 further config the demo cluster. See "gpdemo -H" for more info.

considering add a gpdemo-env.sh autoloading feature.

failed ci reported in #302 and #301


Added Splicer for .Net

Hi! this is the Splicer project, a library for the .Net framework that aims to simplify developing applications for editing and encoding audio and video using DirectShow.

@Jorgelig I'm sorry, but this project is not in active development. Please read the contributing guidelines for opening PRs.


provide trace checker and debug mode with it enabled

We are currently plagued a bit with inconsistency issues in traces and might have good use for a checker and then having a mode where we do this a lot:

sometimes the shape metadata is not update properly (see #1179 )
the return has inputs and outputs that should match (though we might possibly drop the outputs), but we have places that update only one (and other places that use the other), encountered in #1164,
we currently do not guard against having two proxies with the same name. Proxy creation does compare to used names, but at various places, we copy proxies between traces (notably between prologue and compute/epilogue and forward/backward). This leads to all sorts of funny issues (encountered a lot in #1164 with forward/backward), but potentially also in other hard to debug issues, (given the brittleness we have with this, we might also make traces "own" proxies rather than them being "freely floating").

cc @carmocca @borda

The checker should also check that all proxies it finds are in the .names set.

Hi Tom! As discussed earlier through Slack, I would like to work on this one. Would be awesome if you can assign this to me. Thank you!


TagUI stuck on read step using OCR on Linux thru VNC - pending log details

Hi!
I'm trying to get TagUI up and running but it's getting stuck indefinitely every time I try to run a read command (or anything using OCR?) I don't care about browser automation, but I need visual OCR desktop automation.
I'm running it inside docker with VNC and have followed the SikuliX setup guide (opencv + tesseract).
I see no errors or debug messages -- how do I investigate this further?
app@8499c0ce2f2e:~$ tagui live -n -debug

START - automation started - Fri Mar 19 2021 22:53:46 GMT+0000 (UTC)
[info] [phantom] Starting...
[info] [phantom] Running suite: 4 steps
[debug] [phantom] opening url: about:blank, HTTP GET
[debug] [phantom] url changed to ""
[debug] [phantom] Successfully injected Casper client-side utilities

[info] [phantom] Step anonymous 2/4: done in 79ms.
LIVE MODE - type done to quit
read (0,0)-(1024,768) to test_var

Thanks :)

Hi Francesco! Can you try the following and paste the contents in tagui/src/tagui.sikuli/tagui.log here?
read page to ocr_text

Hi, thanks for your quick reply. Here's the log:
app@8499c0ce2f2e:~/tagui/src/tagui.sikuli$ cat tagui.log

(process:641): Gtk-WARNING **: 09:50:19.604: Locale not supported by C library.
        Using the fallback 'C' locale.
[debug] RunTime:temp folder ok: /tmp/Sikulix_628902113
Options: *** options dump
Options: testing =
Options: OptionsFile = /app/.Sikulix/SikulixStore/SikulixOptions.txt
Options: *** options dump end
***** show environment for 2.0.5 API
user.home: /app
work dir: /app/tagui/src
running on Linux 4.19.104-microsoft-standard from a jar
running Java Debian <IP_ADDRESS>+1-post-Debian-1deb10u2
java.io.tmpdir: /tmp
app data folder: /app/.Sikulix
executing jar: /app/tagui/src/sikulix/sikulix.jar
*** classpath dump sikulix
  0: /app/tagui/src/sikulix/sikulix.jar
  1: sikulix/sikulix.jar
*** classpath dump end
***** show environment end
[10218 debug] Runner: added: Jython [py] text/jython
[10222 debug] Runner: added: SikulixJar [jar] text/jar
[10232 debug] Runner: init: class org.sikuli.script.runners.AbstractLocalFileScriptRunner: warning: not possible
[10234 debug] Runner: added: Robot [robot] text/robot
[10235 debug] Runner: added: NetworkRunner [] NET
[10236 debug] Runner: added: Text [txt] text/text
[10236 debug] Runner: added: Sikulix [] directory/sikulix
[10237 debug] Runner: added: PackedSikulix [zip] application/zip
[10238 debug] Runner: added: SikulixExecutableJar [executablejar] text/jar
[10240 debug] Runner: added: PackedSikulix [skl] text/skl
[10257 debug] RunTime:loadlib: trying JXGrabKey
[10284 debug] RunTime:libsExport: folder has wrong content: /app/.Sikulix/SikulixLibs
[11638 debug] RunTime:libsExport: folder created: /app/.Sikulix/SikulixLibs (2.0.5 -<PHONE_NUMBER>10)
[11690 debug] RunTime:loadLib: libJXGrabKey.so (success)
[11874 debug] HotkeyManager: add Abort Hotkey: ALT+SHIFT C (67, 9)
[11994 debug] Runner: runscript: running script: /app/tagui/src/tagui.sikuli/tagui.py
[11999 debug] JythonRunner: starting initialization
[12144 debug] RunTime:resourceLocation: (class org.sikuli.script.support.RunTime) /Lib
[12148 debug] RunTime:resourceList: having jar: jar:file:/app/tagui/src/sikulix/sikulix.jar!/Lib
[23470 debug] RunTime:files exported: 1190 from: Lib to:
 /app/.Sikulix/Lib
[28726 debug] Jython: added as Jython::sys.path[0]:
/app/.Sikulix/Lib/site-packages
[28743 debug] Jython: ***** sys.path
 0: /app/.Sikulix/Lib/site-packages
 1: /app/.Sikulix/Lib
 2: /app/tagui/src/sikulix/Lib
 3: /app/tagui/src/sikulix/sikulix.jar/Lib
[29404 debug] JythonRunner: ready: version 2.7.2
[debug] ImagePath: new BundlePath: /app/tagui/src/tagui.sikuli
[debug] Jython: SikulixForJython: init: starting
[debug] Jython: added as Jython::sys.path[0]:
/app/.Sikulix/Lib/site-packages
[debug] Jython: SikulixForJython: init: success
[debug] Jython: sikuli: Sikuli: starting init
[debug] Screen: initScreens: starting
[debug] Screen: Accessing: GraphicsEnvironment.getLocalGraphicsEnvironment()
[debug] Screen: Accessing: GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()
[debug] Screen: ScreenDevice 0 has (0,0) --- will be primary Screen(0)
[debug] Screen: Monitor 0: (0, 0) 1024 x 768
[debug] Screen: initScreens: monitor mouse check
[debug] Screen: *** checking: R[0,0 1024x768]@S(0) center: (512, 384) --- OK
[debug] Screen: initScreens: ending
[debug] Jython: use as default region: R[0,0 1024x768]@S(0)
[debug] Image: BufferedImage: (1024, 768)
[debug] Jython: sikuli: Sikuli: ending init
[debug] Jython: use as default region: R[0,0 1024x768]@S(0)
[debug] Image: BufferedImage: (1024, 768)
[tagui] START  - listening for inputs

app@8499c0ce2f2e:~/tagui/src/tagui.sikuli$

Hi Francesco, from your logs it seems like a more verbose debug output from SikuliX, but it looks like stuck at the listening for inputs step. Can you try running the following and share with me the same tagui.log output? Sorry I think because I miss out the .png and it didn't route correctly over to SikuliX.
read page.png to ocr_text

Hopefully we can get more clues from there. Because I don't have a similar Linux environment to replicate the issue, in some cases we can get the best troubleshooting if we meet on a call to figure out. Let's see if there is more clues from running above, if not we have a weekly Zoom 1-to-1 meeting to work through with users on issues. It is every Thursday 9am your time. We'll meet each user privately in the breakout room, before going through issues with another user.
This is the Zoom meeting URL - https://github.com/kelaberetiv/TagUI/issues/914

For my macOS, doing a read page.png to ocr_text gives the following tagui/src/tagui.sikuli/tagui.log
[tagui] START  - listening for inputs

[tagui] INPUT  - [1] read /Users/kensoh/Desktop/page.png to ocr_text
[tagui] ACTION - read /Users/kensoh/Desktop/page.png to ocr_text
[tagui] OUTPUT - [1] SUCCESS

[tagui] FINISH - stopped listening
IDE terminated: returned: 0

Thank you for your kind and detailed reply!
I had this error and I was able to make everything work by doing the following:
Download newer SikulixAPI:
wget https://launchpad.net/sikuli/sikulix/2.0.4/+download/sikulixapi-2.0.4.jar -O tagui/src/sikulix/sikulix.jar

Update tesseract 4.0 (default in debian buster) to 4.1:
echo "deb https://notesalexp.org/tesseract-ocr/buster/ buster main" >> /etc/apt/sources.list
wget -O - https://notesalexp.org/debian/alexp_key.asc | sudo apt-key add -
sudo apt-get update && sudo apt install tesseract-ocr

Maybe the installation instructions should be updated? I followed https://sikulix-2014.readthedocs.io/en/latest/newslinux.html and it says It must be a version 4.x but could it be 4.1?
Thanks!

Oh perfect, thanks for updating back here your solution!
I see, in the next release, we'll be reviewing if the latest SikuliX engine works well with TagUI and then package it together. If I remember correctly, the latest SikuliX has some dependency that needs to be installed separately for even Windows and macOS, that's why it is a hard decision to upgrade since there will be extra work for most users with little gains.
Will check more. Closing this issue for now and keeping the issue on SikuliX upgrade open - https://github.com/kelaberetiv/TagUI/issues/928
I believe v4.1 should be ok but I'm not the best person to advise on SikuliX lol...

Please do continue to ping me here if you run into anything related to this topic :)


Prowler App

New feature motivation
Just been testing the Prowler App, and I was wondering if there was a way of exporting the results to CSV? The Prowler CLI is awesome and with that I can get the results exported to CSV, but would be great if there is a way to do that with the Prowler App
Solution Proposed
From the findings page it would be great to have a method to export the current list to CSV
Describe alternatives you've considered
Used Prowler CLI but would prefer to use Prowler App or Prowler Cloud
Additional context
No response

Hi @robm82,
Currently, it's not possible to export the results in CSV format, but this feature is on our to-do list and will be implemented soon. Stay tuned for upcoming releases!
Best,
Pablo.


Current node wrong when differentiate by route data

If you have multiple site mvcSiteMapNodes for the same Controller and Action but have different route values then the Current Node is calculated wrongly. Take a single Controller with two different Actions repeated but with custom RouteData of "type" which varies, the Current Node will always be for the first type.
<mvcSiteMapNode title="Home" controller="Home" action="Index">
<mvcSiteMapNode title="Page Action1 Type1" controller="Controller" action="Action1" type="Type1">
<mvcSiteMapNode title="Page Action2 Type1" controller="Controller" action="Action2" type="Type1" />
</mvcSiteMapNode>
<mvcSiteMapNode title="Page Action1 Type2" controller="Controller" action="Action1" type="Type2">
<mvcSiteMapNode title="Page Action2 Type2" controller="Controller" action="Action2" type="Type2" />
</mvcSiteMapNode>
</mvcSiteMapNode>

CurrentNode will always be Type1 even when selecting Type2

Make sure to copy route values into the current node, otherwise mvcsitemap has no clue on what node you are viewing...
Sent from my Windows Phone
-----Original Message-----
From: OnesAndTwos
Sent: donderdag 22 december 2011 19:50
To: Maarten Balliauw
Subject: [MvcSiteMapProvider] Current node wrong when differentiate by route data (#6)
If you have multiple site mvcSiteMapNodes for the same Controller and Action but have different route values then the Current Node is calculated wrongly. Take a single Controller with two different Actions repeated but with custom RouteData of "type" which varies, the Current Node will always be for the first type.

CurrentNode will always be Type1 even when selecting Type2

Reply to this email directly or view it on GitHub:
https://github.com/maartenba/MvcSiteMapProvider/issues/6


xcrun should use Homebrew's choice of SDK

[x] ran brew update and can still reproduce the problem?
[x] ran brew doctor, fixed all issues and can still reproduce the problem?
[x] ran brew config and brew doctor and included their output with your issue?

What you were trying to do (and why)
Build a formula such as qt or postgresql which uses xcrun internally.
What happened (include command output)
The use of xcrun does not necessarily match what Homebrew chooses in the compiler shims, as xcrun is highly dependent on the user's system configuration, leading to a mixture of SDKs being used:

Command output (Catalina)

$ xcrun --show-sdk-path
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk

What you expected to happen
The xcrun shim returns Homebrew's choice of SDK. This will allow it to be consistent regardless of how the user configures their system.
Step-by-step reproduction instructions (by running brew commands)
brew install --build-from-source postgresql or testing a Qt dependent.
Output of brew config and brew doctor commands
See #7248. (My own machine uses the CLT correctly.)

This is a note for me more than anything - I think I know how to address this.


Update to 5.3.3. Remove version number from file name.

Another TiddlyWiki update.
Since the original TiddlyWiki file has the file name "empty.html", and because this naming also makes updates easier - no chance to forget the change in main.go - I went with it.
if you feel strongly about the file name, I‘ll change it to the current scheme, though.

I had the version specifically so people could compare the upstream version to what is in widdler. I think a better approach would be to use the un-versioned file and have a checksum file that people could compare against the downloaded version..
That said, I don't see where one can see a hash for the downloaded version anyway..

In practice I think most people will just download what tw.com has on its home page, i.e. the current version. So as long as widdler stays current they could compare easily.

Ya, and that's no different than if it was versioned. Thanks!.