Fix Footer

Fix the minimum height of the footer so that It'll be still at the bottom even if there's no content on the page.
For example: Check this image(Team Page). Here footer is not on the bottom.

Please assign this to me

Ya sure! Go Ahead @grovertb

damn, I just finished this. have any other bugs?

@DustinTheGreat, You can try #71

Even after installing all the dependencies. I am getting this error.
Could anybody please tell me the reason for this?

did you run npm install

did you run npm install

Yes I did.

did you run npm install

Yes I did.

and npm install react-scripts@latest?

did you run npm install

Yes I did.

and npm install react-scripts@latest?

Getting the same error.

did you run npm install

Yes I did.

and npm install react-scripts@latest?

Getting the same error.

Sorry i'm not really a JS guy... but did try running npm install again after npm install react-scripts@latest? really the only other thing I can think of.

did you run npm install

Yes I did.

and npm install react-scripts@latest?

Getting the same error.

Sorry i'm not really a JS guy... but did try running npm install again after npm install react-scripts@latest? really the only other thing I can think of.

did you run npm install

Yes I did.

and npm install react-scripts@latest?

Getting the same error.

Sorry i'm not really a JS guy... but did try running npm install again after npm install react-scripts@latest? really the only other thing I can think of.

It's okay. Thanks :+1:

Guys try the new one and change accordingly for dextop view

@urvashigupta7 got it working?

yes!!hope so!! i Dont have monitor


Add dark mode support

Hey there,
When Roll20 is set to dark mode, rolls are incredibly difficult to see.
Example:

Presumably, the CSS for roll text needs to add @media (prefers-color-scheme: dark) versions with light-on-dark-friendly colors. I may end up doing this myself, but I figured I'd let you know before I went ahead and threw a PR at you.
-Dave

Thanks @DBendit - I agree, those results are impossible to read and I appreciate the heads up! A PR is absolutely welcome :) Let me know if you need any assistance, or if you decide not to do it


Where is Flow attribute gone? from client class?

Where is Flow attribute gone? from client class?
now how to set flow of a client?

In the new concept, you can assign grant types to the clients with the AllowedGrantTypes property.

alright :)

alright :)


Fix the bug withtorch.cat

torch.cat takes in a list/tuple of tensors. And currently only the first input tensor gets traced

The cases of input tensors being passed inside of a list/tuple/dict are now handled correctly


Add JSON pipeline

Like the HTML pipeline, but assume that the output is a JSON document

who would consume this json ?

I think modern SPAs don't want single resource JSONs. they want to dynamically load data with graphql like requests or respective backends.
/cc @kptdobe

What I would do right now is provide the simple pipeline from @trieloff and make it extensible (i.e. you can override json.pipe.js). Then I would give that to several integrators to see how far they can go with it and see if graphql really makes sense to start with.
With the selectors and the pre.js files, you can already do a lot in terms of splitting your resources.
We should also get feedback from the AEM SPA team (@martinischeery @gabrielwalt @pfauchere)

I agree. this will be addressed with the changes in the HTL plugin  (https://github.com/adobe/parcel-plugin-htl/issues/22) and hlx build (https://github.com/adobe/helix-cli/issues/70)

Why do I need to had an HTL template to render JSON ?

Right now, HTL is our only working templating language. This is clearly not sufficient and not enough. I believe that we should support any templating language that is able to produce a pure JS function (and that includes hand-written JS functions)
The changes @tripodsan mentioned here
https://github.com/adobe/hypermedia-pipeline/issues/16#issuecomment-412018449 will make this possible.

While adding json.pipe.js feels natural, it does the same thing than the HTML pipe thus why would I need it ?

You should not need it, because JSON is important enough so that we support it out of the box. In the end, the HTML and JSON pipeline will have many differences including:

Content-Type header
handling of include logic: nobody wants to write <esi:include> in their JSON, so we need to find a way to express inclusions in JSON and transform them into ESI in the pipeline
the HTML pipeline will pull <meta http-equiv> out of the body and turn it into proper headers. The JSON pipeline won't

I quickly looked into this, then problem is how to generate/select the json action in general:

we don't want to offer .json feed for all pages, I guess
if we don't have a json.js openwhisk action, how does the edge know who to call?
since json is so "important", maybe we support serving json for each action in general. i.e. every html.js script can also deliver the respective json. and you can use a json.pre.js if you want to alter it.

Regarding the need of modern SPAs, from my understanding, it is mostly about the freedom of aggregating multiple sources than using GraphQL or getting rid of a static data representation. Of course, a solution like GraphQL provides the API consumer with a good amount of flexibility and autonomy and is, therefore, a favored option. It is even truer when considering a headless CMS.

@tripodsan

then problem is how to generate/select the json action in general

I'd say we provide a default JSON action and applications will use the selector infrastructure to pick the correct JSON representation.
The default JSON representation could range from extremely chatty
module.exports.main = async function main(payload) {
  return {response: Object.assign({}, payload)};
}

to extremely terse:
module.exports.main = async function main(payload) {
  return {response: Object.assign({}, payload)};
}

I think we have some time to iterate over the default representation, so that's fine.

we don't want to offer .json feed for all pages, I guess

See above: I think we should.

if we don't have a json.js openwhisk action, how does the edge know who to call?

If you call a non-existent resource, you will get an error 404. Fastly will try to call the json action, and understand that there is no JSON action and turn this into a 404.

since json is so "important", maybe we support serving json for each action in general. i.e. every html.js script can also deliver the respective json. and you can use a json.pre.js if you want to alter it.

I think this could be a nice implementation of the default JSON pipeline: just fetch the corresponding HTML, escape everything, and return it.

@pfauchere GraphQL would fit into this picture in two ways:

a graphql.json default pipeline that implements a GraphQL server. Clients would be able to POST generic GraphQL queries and they would be evaluated against the payload
GraphQL as a "templating language" would allow you to create a myquery_json.graphql file, which can be requested with a GET request and yield the correct result

Option 2 would be 100% cachable, caching option 1 will be harder.

I think this could be a nice implementation of the default JSON pipeline: just fetch the corresponding HTML, escape everything, and return it.

What I thought is, that the default html action can also render json if requested (via accept header). a potential json.pre.js would also be included into the html.js.

GraphQL as a "templating language" would allow you to create a myquery_json.graphql file, which can be requested with a GET request and yield the correct result

+1 I'm a fan of stored queries :-)


8.0.1-rc_alignment pkls naming includes extension

alignment pkls are naming as below:
Annotation_M470_s020.png.pkl
rather than the expected:
Annotation_M470_s020.pkl
bug? feature? you decide! I have not run the 'int to pkl' script using the oddball names, I've been manually correcting them to avoid any issues and wasted time. intensity to pkl works fine if I change to match the intensity files example.pkl & example.ome

Fixed in 8.0.2-rc


addFilter is not working properly

Hi , I have used  the code given by you below. addFilter seemed to be working, but when I tested with some random value as filter, it is fetching other statements (which does not fall in Filter). Please check the code by posting many statements and try to apply filter.
public void testGetStatement() throws FileNotFoundException, IOException {
Properties p = new Properties();
p.load(new FileReader(new File("../jxapi/src/test/java/config/config.properties")));
lrs_uri = p.getProperty("lrs_uri");
username = p.getProperty("username");
password = p.getProperty("password");
mbox = p.getProperty("mbox");
    StatementClient client = new StatementClient(lrs_uri, username, password);

    Statement stmnt = new Statement(new Agent("test", mbox),
            new Verb("http://example.com/tested"),
            new Activity("http://example.com/" + UUID.randomUUID().toString()));

    HashMap<String, JsonElement> extension = new HashMap<String, JsonElement>();
    String room100key = "http://example.com/class_room_100";
    extension.put(room100key,  new JsonPrimitive("Math"));
    String room110key = "http://example.com/class_room_110";
    extension.put(room110key,  new JsonPrimitive("Science"));
    String room120key = "http://example.com/class_room_120";
    extension.put(room120key,  new JsonPrimitive("History"));
    Context context = new Context();
    context.setExtensions(extension);

    stmnt.setContext(context);
    client.putStatement(stmnt, stmnt.getId());

    client.addFilter(room120key, extension.get(room120key).getAsString()).getStatements();
}

}

Can you print out the full URL of the request that jXAPI is creating?

Yeah I tried... Previously it was working.. Today I ran the code, its fetching wrong results.

Hmm, can you send me the full URL of the request it is making? If it is the same as before with the previous issue, then I think it is a problem on the LRS side. jXAPI is only responsible for building the query path of the request. Once again as a reminder, querying by extensions makes the LRS non-conformant and is out of scope.

I use Learning Locker BYW. I cannot send the exact URL,then it will become a security issue. filterBySince also not fetching correct details(filtered).

Can you just send the path then?

path?

Could you please clarify which path you want?

Just your query path when trying to query by since and your extension, not the full URL since it would be a security issue then.
scheme://host/path?query <--

I am trying with the same code. Its not working. Can you please test with set of statements with different values and try to apply filter?
Agent agent=new Agent();
agent.setName("test");
agent.setMbox("mailto:test@gmail.com");
Statement stmnt = new Statement(agent,
new Verb("http://example.com/tested"),
new Activity("http://example.com/" + UUID.randomUUID().toString()));
String date = "9/26/2016" + " " + "15:50:11";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date2 = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(date);
String timestamp = sdf.format(date2);
        HashMap<String, JsonElement> extension = new HashMap<>();
        String room100key = "http://example.com/class_room_100";
        extension.put(room100key,  new JsonPrimitive("Math"));
        String room110key = "http://example.com/class_room_110";
        extension.put(room110key,  new JsonPrimitive("Science"));
        String room120key = "http://example.com/class_room_120";
        extension.put(room120key,  new JsonPrimitive("History"));
        Context context = new Context();
        context.setExtensions(extension);

        stmnt.setContext(context);
        newConnection.putStatement(stmnt, stmnt.getId());

        StatementResult result=newConnection.addFilter(room120key, extension.get(room120key).getAsString()).getStatements();
        if(result.hasMore()) {
            ListIterator<Statement> litr= result.getStatements().listIterator();
            while(litr.hasNext()){
                System.out.println(litr.next().serialize());
            }
        }

I will not be able to test the extensions filter since it is not spec-conformant; the public LRS will return a 400 every time. However, here is an example of using the since and until filters with existing statements in the public ADL LRS. Please note that these filters are based off of the 'stored' time of the statement, and not the 'timestamp' of the statement.
@Test
    public void testGetStatement()  throws FileNotFoundException, IOException {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
        Properties p = new Properties();
        p.load(new FileReader(new File("../jxapi/src/test/java/config/config.properties")));
        lrs_uri = p.getProperty("lrs_uri");
        username = p.getProperty("username");
        password = p.getProperty("password");
        mbox = p.getProperty("mbox");

        StatementClient client = new StatementClient(lrs_uri, username, password);

        Statement stmnt = new Statement(new Agent("test", mbox),
                new Verb("http://example.com/tested"),
                new Activity("http://example.com/" + UUID.randomUUID().toString()));
        System.out.println(stmnt.getId()+" "+df.format(new Date()));
        client.putStatement(stmnt, stmnt.getId());

        TimeZone tz = TimeZone.getTimeZone("UTC");
        df.setTimeZone(tz);
        String dateQuery = "2017-06-05T00:00:00Z";
        System.out.println("\nfilter by until "+dateQuery);
        System.out.println();
        Calendar date = javax.xml.bind.DatatypeConverter.parseDateTime(dateQuery);
        StatementResult result = client.filterByUntil(dateQuery).limitResults(10).getStatements();
        for (Statement s : result.getStatements()) {
            Calendar statementTimestamp = javax.xml.bind.DatatypeConverter.parseDateTime(s.getTimestamp());
            System.out.println(s.getId()+" "+s.getStored()+" "+(date.compareTo(statementTimestamp) >= 0));
        }

        dateQuery = "2017-06-06T18:33:00Z";
        System.out.println("\nfilter by since "+dateQuery);

        date = javax.xml.bind.DatatypeConverter.parseDateTime(dateQuery);
        result = client.filterBySince(dateQuery).limitResults(10).getStatements();
        for (Statement s : result.getStatements()) {
            Calendar statementTimestamp = javax.xml.bind.DatatypeConverter.parseDateTime(s.getTimestamp());
            // the since date should be less than (denoted by a compareTo value
            // being less than 0
            System.out.println(s.getId()+" "+s.getStored()+" "+(date.compareTo(statementTimestamp) < 0));
        }
    }

This yields the following results:
filter by until 2017-06-05T00:00:00Z
/statements?limit=10&until=2017-06-05T00:00:00Z
57dad2aa-d7ab-4b23-b4c4-eefe64e44b76 2017-06-04T23:52:55.337354+00:00 true
42a70dc3-2c30-4ab7-b82a-3d58c71905e4 2017-06-04T23:52:51.263122+00:00 true
5a46168a-feb2-4481-924d-09df275f22d4 2017-06-04T23:26:52.869333+00:00 true
8ff25e6e-c945-419a-832c-f740f5b4dd77 2017-06-04T23:26:52.775770+00:00 true
4f360168-a685-478c-abc7-e723cfa621dc 2017-06-04T23:26:52.679025+00:00 true
9ecbc1be-f2a5-48fa-899d-09b63a83824e 2017-06-04T23:25:47.633101+00:00 true
43aa189c-3061-4cdb-acb9-ab2e30ecd9f8 2017-06-04T23:21:12.400693+00:00 true
4c3253c7-c745-42e6-9fc0-572e097c0daf 2017-06-04T23:19:49.307047+00:00 true
b02da4c2-0eca-4623-aaef-767e99a6db91 2017-06-04T21:09:18.176568+00:00 true
d37e6e1b-73ee-4c84-a676-527e584b93d9 2017-06-04T21:09:16.404764+00:00 true
filter by since 2017-06-06T18:33:00Z
/statements?limit=10&since=2017-06-06T18:33:00Z
26bda3ea-e2d6-4209-8a32-2694f31dbfa9 2017-06-06T18:56:21.444008+00:00 true
4f6a8f91-74cf-48ad-a15a-34a86a014eeb 2017-06-06T18:55:30.502587+00:00 true
d0730414-5643-4837-b73b-3efe2d09d5d0 2017-06-06T18:55:19.198939+00:00 true
6c5fe5e6-c005-4c7f-851f-d7f42c554af4 2017-06-06T18:54:56.493631+00:00 true
2c13e41d-251b-4c32-b75f-89c908fc336b 2017-06-06T18:54:49.565485+00:00 true
dbfca4ce-088f-42ca-9873-125a90e2d84e 2017-06-06T18:53:32.322095+00:00 true
05253205-7660-486a-b5ec-09d80b29017c 2017-06-06T18:52:46.932953+00:00 true
af04dc63-8f1f-4da8-8006-6f7b1ee4250a 2017-06-06T18:52:25.779442+00:00 true
904dcb35-dcd7-440e-b5ad-c0b05b027682 2017-06-06T18:50:17.645840+00:00 true
3e8885a1-4d2e-4da6-a24f-0e0149ba7a81 2017-06-06T18:49:56.567254+00:00 true

The first section prints off the time we are using for the filter, as well as the query path being sent to the LRS. The statement IDs with their stored times are then being printed with all of their times being before the supplied until time. The next section prints off our since filter time and query path, then the stored times are the returned statements that are all after the supplied since time.

If LRS(Learning Locker in my case) is not properly querying, with proper querying mechanism, I will raise an issue in Learning Locker. Please do not close the issue.

Learning Locker has replied to my query to use http://docs.learninglocker.net/statements_api/#aggregate. Have you implemented this functionality in jar? Will you be able to set filter for object extension with the given URL?
FilterBySince is sometimes working, the same code sometimes do not work. FilterByUntil is working but for few values of timestamp only.
addFilter by Object Extension is priority for me.
Will you be able to help?

Hi I got response from Learning Locker...
Could you please check?
Hey, so let's say I have a statement like this:
{
"actor": {"mbox"<EMAIL_ADDRESS>"verb": {"id": "http://www.example.com/verb"},
"object": {
"id": "http://www.example.com/activity",
"definition": {
"extensions": {
"http://www.example.com/extension": "value"
}
}
}
}
A pipeline that would match that statement's object extensions would look like this:
[
{
"$match": {
"statement.object.definition.extensions.http://www%46;example%46;com/extension": "value"
}
}
]
Note that I have replaced the "." in the extension key to transform the extension key from "http://www.example.com/extension" to "http://www%46;example%46;com/extension". This is because the "." is reserved in Mongo for denoting nested properties.

You can use java's URLEncoder whenever you add your key or potential URI value.
import java.net.URLEncoder;
StatementResult result=newConnection.addFilter(URLEncoder.encode(room120key, "UTF-8"), extension.get(room120key).getAsString()).getStatements()

I tried. It gives results. Not proper results.

FilterBySince and FilterByUntil are not working for all values. Request you to test and find issues. The answer given by learning Locker Team is like this.
GET http://www.example.com/api/v1/statements/aggregate?pipeline=[{
"$match": {
"statement.timestamp": {
"$gt":"2015-01-01T00:00",
"$lt":"2015-01-02T00:00"
},
"statement.actor.mbox"<EMAIL_ADDRESS>"voided": false
}
}, {
"$project": {
"_id": 0,
"statement": 1
}
}]

I'm not sure what else to say about addFilter since it is being used outside the scope of the xapi spec with a custom API that is also outside of the spec scope...this is not our issue. In regards to filterBySince and filterByUntil, that looks like another custom API outside of spec scope. Again, since and until look at the STORED field in the statement, NOT the timestamp.

Hi, Now i would not want to check add filter functionality. I will do it on my own, or i will try to contribute to your project after Mongo db commands properly works in Learning Locker
[
{
"$match": {
"statement.object.definition.extensions.http://www%46;example%46;com/extension": "value"
}
}
]

I was testing filterByUntil and filterBySince for STORED values only, not TIMESTAMP. Postman retrieved 605 results for the command
http://xxx.tt.yyy.com/api/v1/statements/aggregate?pipeline=[{
"$match": {
"statement.stored": {
"$gt":"2017-05-05T00:00:00.000000+00:00","$lt":"2017-05-15T00:00:00.000000+00:00"
}
}
}]
But,code
StatementResult result=newConnection.filterByUntil("2017-05-15T00:00:00Z").filterBySince("2017-05-05T00:00:00Z").getStatements();
retrieved 105 results only.
There are discrepancy.

Please test and address issues in filterByUntil and filterBySince.

Sorry, I cannot reproduce your discrepancies. I have used the filters to hit our LRS with these since and until parameters that make the path: /statements?since=2017-06-05T00:00:00Z&until=2017-06-06T00:00:00Z. I then tried the same thing in Postman and got the same results.

The only other thing I can suggest is try to use postman to make your query against /xapi/statements only and see what that yields.

I tried your command. Its not working. There is no hard core rule like we should use /xapi/statements, and it depends upon LRS you are using. You are testing in Public LRS and I am doing in learning locker. I get the below error.
"error": true,
"success": false,
"message": "",
"code": 404,
"trace": "#0 /var/www/html/learninglocker/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1054): Illuminate\\Routing\\RouteCollection->match(Object(Illuminate\\Http\\Request))\n#1 /var/www/html/learninglocker/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1022): Illuminate\\Routing\\Router->findRoute(Object(Illuminate\\Http\\Request))\n#2 /var/www/html/learninglocker/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1001): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))\n#3 /var/www/html/learninglocker/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(775): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))\n#4 /var/www/html/learninglocker/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(745): Illuminate\\Foundation\\Application->dispatch(Object(Illuminate\\Http\\Request))\n#5 /var/www/html/learninglocker/vendor/itsgoingd/clockwork/Clockwork/Support/Laravel/ClockworkLegacyMiddleware.php(20): Illuminate\\Foundation\\Application->handle(Object(Illuminate\\Http\\Request), 1, true)\n#6 /var/www/html/learninglocker/vendor/laravel/framework/src/Illuminate/Session/Middleware.php(72): Clockwork\\Support\\Laravel\\ClockworkLegacyMiddleware->handle(Object(Illuminate\\Http\\Request), 1, true)\n#7 /var/www/html/learninglocker/vendor/laravel/framework/src/Illuminate/Cookie/Queue.php(47): Illuminate\\Session\\Middleware->handle(Object(Illuminate\\Http\\Request), 1, true)\n#8 /var/www/html/learninglocker/vendor/laravel/framework/src/Illuminate/Cookie/Guard.php(51): Illuminate\\Cookie\\Queue->handle(Object(Illuminate\\Http\\Request), 1, true)\n#9 /var/www/html/learninglocker/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Illuminate\\Cookie\\Guard->handle(Object(Illuminate\\Http\\Request), 1, true)\n#10 /var/www/html/learninglocker/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(641): Stack\\StackedHttpKernel->handle(Object(Illuminate\\Http\\Request))\n#11 /var/www/html/learninglocker/public/index.php(49): Illuminate\\Foundation\\Application->run()\n#12 {main}"

I believe with Learning Locker the URL would be http://{{baseUrl}}/data/xAPI/statements?until={{your date}}&since={{your date}}. That is straight from the Learning Locker documentation.
http://docs.learninglocker.net/postman/
All conformant LRSs will have the basic /xapi/statements endpoint to use.

After setting up a docker instance of Learning Locker, we have confirmed we get the same results using jXAPI since/until and postman. The full LRS URL was http://{{doman}}/data/xAPI/statements?since=2017-06-05T00:00:00Z&until=2017-06-15T00:00:00Z

Its not working. Please keep the issue open and please give me some more time to validate.


question about valid values  runtime choose to support

In config.md, spec says Unless support for a valid value is explicitly required, runtimes MAY choose which subset of the valid values it will support.
I think there may will be a problem, if different runtime support differen subset. If so, we can't guarantee the portability.
I think this is against our goal of standardization.

I think the idea was to avoid failing a runtime as non-compliant if
the host system didn't support a feature.  But with the current
wording, you can have compliant runtimes that use that language to not
support most values described in the spec (everything except the ‘ro’
mount option on Windows 1 and ‘l3CacheSchema’ on Linux 2?) even
when the host system supports the values.
I'd rather require runtimes to support at least the values the spec
lists as valid (with runtimes having the option to support additional
values as they see fit).  I believe the “kernel doesn't support the
feature you've asked for case” is covered by 3:
If the runtime cannot apply a property as specified in the
configuration, it MUST generate an error and a new container MUST
NOT be created.
Dropping the “runtimes MAY choose which subset” line would make using
compliant runtimes more reliable, although we'd probably want to
either inline our valid-values list (like we do for ‘ro’ in Windows
mounts 1) or link to a specific version of an external doc (like we
do for Solaris rlimits [4,5]).  Linking to a floating external doc
(like we do for Linux rlimits [6,7]) will lead to issues as values are
added to and removed from the external doc.
There have also been concerns about linking to man pages for lists of
valid values, because man pages may be an incomplete or incorrect
reflection of what the kernel actually supports.  I'd address those
cases by either:
a. Submitting upstream patches to fix the man pages, and then linking
the spec to the patched version, or
b. Inlining the valid values in the spec so we don't need a normative
link to the buggy man page.
With both of those being fairly straightforward, I don't think “man
pages are unreliable” is a sufficient reason to avoid requiring
runtime support for values that the spec lists as valid.

Previous discussion in the context of Linux capability strings here and in #755.


#13 added possibility to open image inside a modal

Added an imageModal which can be filled from an image to show in in a bigger size.
For opening the image inside modal (espacially the collage at front-page) the image has to become the attrobute "data-ui-image-modal" in the editor.

I don't think we can add classes or attributes to the image tag, at least not without changing Django CMS itself. The img tag is wrapped in a span with the classes plugin_picture and align-left, align-center or align-right. I think that's all we can work with.

@stefanbethke I tested in DEV-System there it's a bit different as in actual production-version of the CMS.  The CMS now renders without span tag and has the abbility to add attributes to the image. I tested this directy on the local instance by adding an image to the startpage and giving it the needed attribute.

We also have the ability to define custom image style templates via the DJANGOCMS_PICTURE_TEMPLATES setting if we see demand for this. See https://github.com/divio/djangocms-picture for documentation and template folder location.

Sorry, I was looking at the old code. LGTM.


I have a problem when I get realtime data

[791644][E][ssl_client.cpp:37] _handle_error(): [data_to_read():366]: (-76) UNKNOWN ERROR CODE (004C)
This is my problem, please help me

You should post what information required in the issue template.

I installed the law on Firebase to test
{
"rules": {
".read": "true",  // 2024-6-5
".write": "true",  // 2024-6-5
}
}

You have to follow the examples and read every comment in the examples.

You are trying to push the JSON which the object_t is the first argument type instead of Arduino String you provided to the function.

You are trying to push the JSON which the object_t is the first argument type that required instead of Arduino String you provided to the function.

Thanks for your help. But I've removed the JSON push method, but the error still occurs.
The issue I'm facing is that after a while of continuously getting and sending data to the RTDB, it encounters errors. As a newcomer, I might have made some mistakes and would appreciate your help.
This is my problem
[791644][E][ssl_client.cpp:37] _handle_error(): [data_to_read():366]: (-76) UNKNOWN ERROR CODE (004C)

You have to follow what I mentioned.
I cannot help because there are many wrong syntaxes in your code.
You also have to learn the basic of C++ template functions.

Bạn phải làm theo những gì tôi đã đề cập.
Tôi không thể giúp được vì có nhiều cú pháp sai trong mã của bạn.
Bạn cũng phải tìm hiểu cơ bản về các hàm mẫu C++.

Thank you for your help, I will try to understand this issue.

Why you use the function like what you want it to be without how sync Realtime database example does for the get and set tasks?
You just copy the usage syntax from other Firebase library to use with this library without reading the library documentation for the correct usage.

Library provides the guide to get, set and push all types of values and why you don't follow.
https://github.com/mobizt/FirebaseClient/blob/4ece98fb725ebde4d76a3ee74539ec17e1d9f182/examples/RealtimeDatabase/Sync/Get/Get.ino#L127-L161
https://github.com/mobizt/FirebaseClient/blob/4ece98fb725ebde4d76a3ee74539ec17e1d9f182/examples/RealtimeDatabase/Sync/Set/Set.ino#L120-L182
https://github.com/mobizt/FirebaseClient/blob/4ece98fb725ebde4d76a3ee74539ec17e1d9f182/examples/RealtimeDatabase/Sync/Push/Push.ino#L118-L181


Add files via upload

@Doctor-blob I am sorry, I have to close the request without merging, because this organization is a training center, not a college, nor a university. Please ensure that you are familiar with this repository rules located at the bottom of this page.
Please apply for an appropriate licensing option (which may also be free) at https://www.jetbrains.com/community/education/#courses
Thank you for the understanding!

@philipto iḿ sorry for choosing the wrong one I'm a student so i'll get the GitHub Student Developer Pack Sorry for troubeling you


feat(plugins): (optionally) launch process plugins in Conda environment

Process plugins, e.g., Python, R, etc., may have other run-time requirements.
Proposed solution
For processes where run-time requirements may be met through Conda packages, we should support executing the plugin in a Conda environment configured according to an environment .yaml file, which can either be exported from an existing environment or created manually.
Implementation notes
Will at least require:

[ ] feat(app): detection Conda installation (if available)

This can be done, e.g., by checking the CONDA_PREFIX variable
Maybe publish to MQTT topic?

[ ] feat(plugin-manager): convention for process plugin to specify environment file, e.g., specify file name in plugin JSON config file.
[ ] feat(plugin-manager): when launching process plugin:

[ ] If environment file is specified, create plugin environment if it doesn't exist

Note: separate environments should probably be created for each (<plugin_name>, <version>), e.g., with environment name dropbot-1.3.2, dropbot-1.4.0, since dependencies are likely to change between plugin versions

[ ] Launch plugin process in activated plugin Conda environment

@Lucaszw I updated the "Implementation notes" section in the description above:

Note: separate environments should probably be created for each (<plugin_name>, <version>), e.g., with environment name dropbot-1.3.2, dropbot-1.4.0, since dependencies are likely to change between plugin versions

I feel conda environments are great stream lined solution maintaining process plugins (due to the modular nature of environments). Here is a sample method I came up for how they could be handled (I will push this up with the Dropbot plugin shortly).
package.json:
{
  "name": "@microdrop/dropbot-plugin",
  "scripts": {
    "install": "conda env create --force -f=./environment.yml -p ./conda",
    "start": "source activate ./conda && python dropbot_plugin/__init__.py",
    "dev": "yarn dev-p1 && yarn dev-p2",
    "dev-p1": "source activate ./conda && pip uninstall micropede || true",
    "dev-p2": "conda develop ../../../Micropede/packages/python -p ./conda"
  },
  "help": {
    "install": "create conda environment to hold python packages",
    "start": "run python script from withing conda environment",
    "dev": "link micropede package locally"
  },
  "publishConfig": {
    "access": "public"
  }
}

microdrop.json:
{
  "name": "dropbot",
  "version": "0.0.1",
  "type": "process",
  "script": "yarn start"
}

What is the -p ./conda flag pointing to?

That is the path to the created conda environment (npm scripts always execute with the package.json file location as the cwd)

Cool, thanks!  I've never used that before, but that is really good to know.
So MicroDrop would just remain ignorant to Conda then?  i.e., install would just give an error if conda was not available within the environment MicroDrop is running in?

Rudimentary support adding in: d3c47b6c358db7b77161c8d4a4c3f6af7c301881
Here is the currrent workflow:
During postinstall of microdrop/application, miniconda is installed silently.
If plugins want to use Microdrop's conda dist then they can specify like so in their package.json:

{
  "name": "@microdrop/dropbot-plugin",
  "scripts": {
    "install": "$MICRODROP/miniconda/bin/conda env create --force -f=./environment.yml -p ./environment",
    "start": "source $MICRODROP/miniconda/bin/activate ./environment && python dropbot_plugin/__init__.py",
    "dev": "yarn dev-p1 && yarn dev-p2",
    "dev-p1": "source $MICRODROP/miniconda/bin/activate ./environment && pip uninstall micropede || true",
    "dev-p2": "$MICRODROP/miniconda/bin/conda develop ../../../Micropede/packages/python -p ./environment"
  },
  "help": {
    "install": "create conda environment to hold python packages",
    "start": "run python script from withing conda environment",
    "dev": "link micropede package locally"
  },
  "publishConfig": {
    "access": "public"
  }
}

The $MICRODROP variable is defined when the plugin is spawned (in @microdrop/application's webserver.js)
          const env = process.env;
          env.MICRODROP = path.resolve(__dirname, '..');

          const options = {
            shell: true ,
            stdio: 'inherit',
            cwd: plugin.path,
            env: env
          };

          const runningChild = spawn(plugin.data.script, [], options);

It might be nice to the conda management into it's own repository (Yac : "Yet another conda package manager" / Yarn + Conda)
API could be somthing lile
yac miniconda "miniconda name" # silently install new miniconda in cwd or given path
# ex. yac miniconda microdrop
yac locate "miniconda name" # locate a miniconda instance based on name
# ex. yac locate microdrop
yac init # create package.json with package name, and some field to signify this is a yac project
ex {
"name": "@microdrop/dropbot-plugin",
"yac": "microdrop",
...
}
yac install # creates local environment (yac_env) and local environment.yml
yac add "package name" # runs equiv of source activate ./yac_env && conda install pkgname  and adds to environment.yml
yac exec # executes scripts proceded by source activate ./yac_env

I updated the dropbot_plugin to use yac (https://github.com/sci-bots/yac).


importlib.metadata.PackageNotFoundError: desktop

Is there an existing issue for this?

[X] I have searched the existing issues

Description
I get this error when I do it by https://gethue.com/quick-start-a-hue-development-environment-in-3-minutes-with-docker/
root@zhangdaoqiang-pxb:/mnt/d/projects/data-platform/code/hue-master# sudo docker run -it -u root --privileged=true -v $PWD/desktop:/usr/share/hue/desktop -v $PWD/apps:/usr/share/hue/apps  -v $PWD/desktop/conf/pseudo-distributed.ini:/usr/share/hue/desktop/conf/z-hue.ini gethue/hue
thank you!
Steps To Reproduce
my os is window wsl2
Logs
Traceback (most recent call last):
File "./build/env/bin/hue", line 33, in
sys.exit(load_entry_point('desktop', 'console_scripts', 'hue')())
File "./build/env/bin/hue", line 22, in importlib_load_entry_point
for entry_point in distribution(dist_name).entry_points
File "/usr/lib/python3.8/importlib/metadata.py", line 503, in distribution
return Distribution.from_name(distribution_name)
File "/usr/lib/python3.8/importlib/metadata.py", line 177, in from_name
raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: desktop
Traceback (most recent call last):
File "./build/env/bin/supervisor", line 33, in
sys.exit(load_entry_point('desktop', 'console_scripts', 'supervisor')())
File "./build/env/bin/supervisor", line 22, in importlib_load_entry_point
for entry_point in distribution(dist_name).entry_points
File "/usr/lib/python3.8/importlib/metadata.py", line 503, in distribution
return Distribution.from_name(distribution_name)
File "/usr/lib/python3.8/importlib/metadata.py", line 177, in from_name
raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: desktop
Hue version
4.11 and master

both the source version and the docker image version are 4.11


Fix rendering of snippet data when records can't be retrieved

Problem Description:
Rendering of results snippet data is skewed in PRD when one of the API requests for data points returns an error. The label will not align with its data point.
Expected Behavior/Solution:
The data point and its label should always align.
Requirements:

[ ] Wrap each row in a react bootstrap Row and Col component to ensure alignment

[ ] This change will be added to all snippets

For Kam's reference:

Needed for promotion:
If an item on the list is not needed, it should be crossed off but not removed.

[x] Wireframe/Mockup - Kam
[x] ~Committee discussions - Sarah~
[x] ~Feasibility/Team discussion - Sarah~
[x] ~Backend requirements - TBD~
[x] Frontend requirements - Kam
[ ] Are new regression tests required for QA - Amy
[x] ~Questions~

UAT/LUX Examples:

See the Darmon, Paule result in the results found here
TST: https://lux-front-tst.collections.yale.edu/view/results/people?q={"AND"%3A[{"startAt"%3A{"partOf"%3A{"name"%3A"morocco"}}}%2C{"nationality"%3A{"name"%3A"french"}}]}

Dependencies/Blocks:
N/A
Related Github Issues:
N/A
Related links:

Bugherd: https://www.bugherd.com/projects/284041/tasks/2597

Wireframe/Mockup:
Current:

Expected:

Approved by UAT

Looks good in PROD. Closing.


How to include OsmDroid in a non Gradle, non Maven project

I came here again with question about 5.1 and non-Gradle.
I've seen the new FAQ topic, but still can not build.
Wiki says: You have a choice between using an AAR (for >=5.0) or JAR (for < 4.3) in your libs folder.
And... whats next? Just drop aar to libs? Not work. Unzip, extract and drop classes.jar? Work, but can't find drawable (see below). So please add more instruction to the wiki topic linked above.
java.lang.NoClassDefFoundError: org.osmdroid.library.R$drawable

        this.mOnMarkerDragListener = null;
        if(mDefaultIcon == null) {
            mDefaultIcon = resourceProxy.getResources().getDrawable(drawable.marker_default);
        }

I'm not sure if it's possible if (whatever your build system is) doesn't support AAR files. Sounds like an ancient eclipse based project. The easiest thing to do: switch to gradle/android studio. Alternatively, start googling if eclipse (or whatever it is) supports AAR files

but what about FAQ topic linked above? for what it was written? does it checked by someone? I mean AAR and non-gradle.

To be honest, it was written when osmdroid was a jar output. It is now an AAR output. I don't have numbers, but I'm willing to bet most people have moved their android projects into android studio, which also forces gradle. I don't believe the eclipse setup is still supported by Google except for C++ bindings. If the FAQ is giving your heart burn, I'm not sure what I can do besides removing that part of the FAQ.
After 2 seconds of googling. i found this: https://commonsware.com/blog/2014/07/03/consuming-aars-eclipse.html
hope this helps. The FAQ wiki page should be writable, so feel free to edit it as necessary or post suggested changes here and we'll get it updated. Sorry if this wasn't the answer you were hoping for. The only thing constant is change in this industry.

Thank you for the link, it looks promising! Before I tried only unzip aar. I will try and we'll change wiki, ok?
p.s. I use not eclipse, but newest android studio, with wide ancient project for ancient embedded. gradle fails here.


[Feature Request] EMI Support

EMI is a new Item-searching mod in the same vein as REI, JEI, etc. It would be awesome if you could add compat support for it!

While I do agree this would be quite useful, I'm not willing to accept the extra maintenance burden that is having the recipe viewer code duplicated while REI still has the absolute majority of the market share. If and when EMI becomes more widely used I will probably reconsider this, but for the time being this will have to be a no from me
Cheers


Swift object to JSON

I create a class Message with details as bellow:
import Foundation
import SwiftyJSON
class Message{
var type:String
var content:[UInt8]
init(type:String, content:[UInt8]){
    self.type = type
    self.content = content
}
var json: JSON {
    get {
        var dict = [String: AnyObject]()
        let mirror = Mirror(reflecting: self)
        for (_, attr) in mirror.children.enumerate() {
            if let property_name = attr.label as String! {
                dict[property_name] = attr.value as? AnyObject
            }
        }
        return JSON(dict)
    }
}

}
1, I create a message instance:
let content:[UInt8] = [1,2,3,4,5]
let msg = Message("test",content)
2, And then I print(msg.json) , the content UInt8 array not convert successfully!
Can you help me?
Thanks a lot.

There hasn't been much activity on this issue for a while so I'm gonna go ahead and consider it fixed. Please let us know it you'd like to reopen it.


pod-styles generation fails w/ 2.9.0-beta.2

I'm currently in the process of upgrading a project to test<EMAIL_ADDRESS>Unfortunately when attempting ember s, the build fails with the following message:
File: /home/vagrant/projects/csa/tmp/sass_compiler-input_base_path-KMlTyrD2.tmp/0/app/styles/app.scss (10)
The Broccoli Plugin: [SassCompiler] failed with:
Error: File to import not found or unreadable: pod-styles
Parent style sheet: /home/vagrant/projects/csa/tmp/sass_compiler-input_base_path-KMlTyrD2.tmp/0/app/styles/app.scss
    at options.error (/home/vagrant/projects/csa/node_modules/node-sass/lib/index.js:292:26)

The broccoli plugin was instantiated at:
    at SassCompiler.Plugin (/home/vagrant/projects/csa/node_modules/broccoli-plugin/index.js:7:31)
    at SassCompiler.CachingWriter [as constructor] (/home/vagrant/projects/csa/node_modules/broccoli-caching-writer/index.js:18:10)
    at new SassCompiler (/home/vagrant/projects/csa/node_modules/broccoli-sass-source-maps/index.js:20:17)
    at /home/vagrant/projects/csa/node_modules/ember-cli-sass/index.js:30:18
    at Array.reduce (native)
    at SASSPlugin.toTree (/home/vagrant/projects/csa/node_modules/ember-cli-sass/index.js:20:48)
    at /home/vagrant/projects/csa/node_modules/ember-cli-preprocess-registry/preprocessors.js:180:26
    at Array.forEach (native)
    at processPlugins (/home/vagrant/projects/csa/node_modules/ember-cli-preprocess-registry/preprocessors.js:178:11)
    at module.exports.preprocessCss (/home/vagrant/projects/csa/node_modules/ember-cli-preprocess-registry/preprocessors.js:148:10)

After double checking, I can see that no pod-styles.scss file is being generated and there are no other errors being displayed.

@CrshOverride are you using the latest beta version?

@webark I actually figured out the issue late last night and meant to update the issue. It turns out that the project was using an old version of ember-cli-sass. After the upgrade to<EMAIL_ADDRESS>ember-cli-sass was no longer correctly registering the css extensions. The lack of extensions meant that no pod-styles.scss file was being generated (hence the error).
Upgrading to the latest ember-cli-sass release fixed the issue. I can close the issue but it might be worth documenting somewhere just in case somebody runs into the same issue again.  I remember when that was an issue. ok cool. and ya, we need to improve the documentation.

@webark I've this same issue with ember-cli 2.8 and ember-cli-sass 5.6.0. I tried this addon many times before after every upgrade and every time I faced this issue. Please solve this problem.

@musaffa what's the issue that you are having..? That no pod style file is getting generated? Do you have a sample app that i could look at by chance?

@musaffa here is a simple sample app that I threw up with ember-cli-sass and ember-cli 2.9.1. Maybe there is a way you are using it differently..? Please let me know! :)

I created at vanilla ember app with ember-cli 2.8.0:
$ ember new pod-css
$ cd pod-css
$ ember install ember-cli-sass
$ ember install ember-component-css
$ mv app/styles/app.css app/styles/app.scss
$ echo "@import 'pod-styles';" >> app/styles/app.scss
$ ember s

The same issue Error: File to import not found or unreadable: pod-styles

ohh.. you're running into https://github.com/ebryn/ember-component-css/pull/180 You get that error if you don't have a component style file defined yet. I was waiting to do another release and bring this one in with that in the next week.
This just creates a dummy file. You add at least 1 component style file, then that error will go away.

This solves my problem. Thanks. Hope, the fix will be released soon.

@musaffa just published v0.2.2 .. It should take care of your issue. let me know if it doesn't. Thanks!

Yes it does. :+1:

same issue for me..


Fees: actually enforce deducting those

As far as I remember, currently no fees are deducted for PayForMessage. Is that right? Or do we actually make use of the default fee-machanism of the SDK?

Currently, we are using the default fee mech in the sdk, and they are optional. If a user includes fees in the tx, this is done using a flag in the cli but can also be done manually when building the tx, then fees are deducted. Nothing is currently enforcing that each transaction has fees, or what the min/max fee should be.

Thanks for the prompt reply @evan-forbes 🙏🏼
IMO, the most minimal fee-mechanism would be to just enforce that the fees are paid according to the existing SDK logic. IMO, this would be sufficient for an incentivized test-net / maybe for mainnet even?
Changed the title of the issue to reflect this.
I'll create another issue about investigating and implementing fee-burning according to the specs.
cc @adlerjohn

Currently, we are using the default fee mech in the sdk, and they are optional.

To clarify, the fee is optional in the sense that the gas price can be set to zero, and the default sdk app relies on the block producer to determine if they want to include a transaction for free or not. Gas is metered per byte, but that is not counting the message size, only the size of the actual SignedTxDataPayForMessage. We will need to include a way to meter per message, the simplest of which would be to include the size of the message in SignedTxDataPayForMessage.

to update: we are prioritizing fee deduction for message size for testnet
the size of the data is included in the PFD here
https://github.com/celestiaorg/celestia-app/blob/d7bb3934e0c13259bf3d666378ea67fda852b6e5/proto/payment/tx.proto#L22
and the size of the data is checked here for honest nodes
https://github.com/celestiaorg/celestia-app/blob/d7bb3934e0c13259bf3d666378ea67fda852b6e5/x/payment/types/wirepayfordata.go#L93-L100
The size of the data is checked by 2/3s of the validators during the message inclusion check, by recalculating the commit of the message included in the block and comparing it to the commitment in the respective PFD.
Block producers can still include data in the block for free by submitting an invalid PFD, the only way around this is to have some form of immediate execution, where we would check that a PFD is valid before including its corresponding data in the block (note: by "some form", I mean the validators don't have to vote on an updated AppHash for that block, they could have some hacky solution where the transactions are executed and the state is saved but isn't applied until the block after or thrown away and recalculated during Commit)
cc: @musalbas @liamsi @adlerjohn

Block producers can still include data in the block for free by submitting an invalid PFD...

by invalid, I mean that they can submit a PFD from an account with not enough funds to pay for gas, effectively submitting a PFD for free

the only way around this is to have some form of immediate execution
they could have some hacky solution where the transactions are executed and the state is saved but isn't applied until the block after or thrown away and recalculated during Commit

This is generally along the lines of what we had discussed way back when, so nothing new.


[log] Implement the Logger interface

Golang has standard logger interface https://golang.org/pkg/log/#Logger  Currently gommon's logger interface is modeled after logrus's, but it would be better to let it support the standard logger interface, because some standard libraries allow using different logger
And also I think I saw someone on twitter talking about how better logging interface/standard page etc.
TODO

[ ] implement logger interface
[ ] use it for golang net/http logging, I think static file serving use default logger
[ ] https://dave.cheney.net/2017/01/23/the-package-level-logger-anti-pattern

hmm, it seems logger is a struct now, it was an interface or it is always a struct?

I think it's always a struct, so you can't use your own implementation, for static file serving, it's possible to look at the net/http implementation and write your own, it calls sendfile I believe


Improve remove filters link on search page

Jira ticket
Instead of re-submitting the form clearing the filters in the submitted query, we're going to, using Javascript, reset the filters without submitting the form.
Review apps

https://cosmetics-pr-2316-submit-web.london.cloudapps.digital/
https://cosmetics-pr-2316-search-web.london.cloudapps.digital/

Spotted few issues

When I apply filter and then reset isn't clearing the entered date or selected category from the dropdown
When I have a validation error on the date range field and then click reset, it isn't clearing the selected filters


Issue with k8s.io/docs/concepts/*

Several default settings don't work. Incomplete documentation on some items.

Hi @anandagirish2
There are a lot of pages inside the Concepts section. Was there a particular shortcoming you'd like to describe?
/triage needs-information

/close

/close


CMD+click results in unexpected behavior, namely in a new tab group, not in the expected new tab

Before Submitting: Double-check that you are running the latest version of the plugin. The feature might have already been included 😄

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

+1.
It's little annoying. I thought that's something wrong with my Obsidian's configuration. It shouldn't overwrite defult behaviur of Obsidian.
It would be helpful for case when we want to have daily notes in one tab group e.g weekly summary. Now I need to create 7 tabs group and then combine them.

#331 should resolve this.


Automatically naming convesation title

Hi @mckaywrigley have you considered making this, any idea how would you do it? If it's not in the works, I want to try making it

I've considered it but want to keep user API requests down for now. I may revisit it soon.

I've considered it but want to keep user API requests down for now. I may revisit it soon.

I like the current method where it picks the last prompt, I think is is better though than what openAI does, I think we always somehow run off topic from the first prompt(where it generates the title) and cant remember what is it about.


HTML table converted to MD table on Ctrl + S

Azure Data Studio Version: 1.35.0
OS Version: At least Mac and Windows

When MD has a HTML table tag, using ADS notebook extension, when edited using the UI, after saving it will try to convert it to MD table format.
Problem is, it will break formating. And for multi-line cells, MD format is a nightmare.
Hence, we need to keep HTML format eventually.
If using MD editor, table is preserved, but that's not easily discoverable.
Steps to Reproduce:

Add any HTML table using the MD editor.
Open it using the rich text UI editor
Make any change on text
Save it

Actual: It will convert the html table tag into MD table;
Expected: Keep HTML tables as is. Or at least allow us to set that in a given repository we do not want to convert it.
Reasoning: While the MD table is desired for smaller text, it will be very hard to maintain on tables that were more sophisticated (or more complicated), e.g., when you have a specific cell in a row which is multi-lined.
E.g.,:
This is a very long text and should be in multiple lines what won't be nice to edit in Md style table. This is a very long text and should be in multiple lines what won't be nice to edit in Md style table. This is a very long text and should be in multiple lines what won't be nice to edit in Md style table.
This is a very long text and should be in multiple lines what won't be nice to edit in Md style table. This is a very long text and should be in multiple lines what won't be nice to edit in Md style table. This is a very long text and should be in multiple lines what won't be nice to edit in Md style table.
It will properly render on preview mode

But if any editing happen on Preview mode, when saving, the table will be converted to:

Does this issue occur when all extensions are disabled?: Yes/No -> This is using the Notebook Extension.

The only Extension I can file using report issue dialog is Kusto's

Changed this into an enhancement to give users choice of converting to MD table or not; we've actually heard the opposite feedback as well (to go ahead and convert HTML tables into MD because they're easier to edit when looking at pure markdown).


AuthenticationContext.AcquireToken() method does not exist

The code snippets provided do not work.  The AuthenticationContext.AcquireToken()class no longer exists.  You have to use AuthenticationContext.AcquireTokenAsync() which fundamentally needs to be handled differently so these code snippets will not compile.  These snippets need to be updated to use valid methods.
https://docs.microsoft.com/en-us/dotnet/api/microsoft.identitymodel.clients.activedirectory.authenticationcontext?view=azure-dotnet

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

ID: 62419bb8-985c-cb11-ac8d-2d018868c2a6
Version Independent ID: db669ed7-d87b-c359-f5fb-3f2f1052281d
Content: Use OAuth with Common Data Service (Common Data Service) - PowerApps
Content Source: powerapps-docs/developer/common-data-service/authenticate-oauth.md
Service: powerapps
GitHub Login: @paulliew
Microsoft Alias: jdaly

@blzrdphoto Yes, there is an Azure ADAL API breaking change. If you use ADAL v3 or greater, you will run into this. We are updating our code samples. See:
https://github.com/microsoft/PowerApps-Samples/tree/master/cds/webapi/C%23/ADALV3WhoAmI


Update README fo hpsrec

README still contains several pysrec references.
Refer to Python 3 as a requirement rather than a note.

Perhaps make this a general cleanup issue?
What is the "zwuenf" directory?


Used "github.com/go-kit/log"

Before this PR: in this code the import module that was used was we used "github.com/go-kit/kit/log" which has been deprecated.
After this PR: "github.com/go-kit/kit/log" is replaced with "github.com/go-kit/log"
Fixes https://github.com/kubevirt/kubevirt/issues/12955

@victortoso @fossedihelm  please review the PR and merge it

/ok-to-test

/test pull-kubevirt-build
/test pull-kubevirt-unit-test

I have the impression that you'll need to run make generate to update bazel files.
Locally here I see also
pkg/virt-launcher/virtwrap/util/libvirt_helper_test.go:17:      "github.com/go-kit/kit/log"
staging/src/github.com/golang/glog/glog.go:34:  log2 "github.com/go-kit/kit/log"
staging/src/kubevirt.io/client-go/log/log.go:35:        klog "github.com/go-kit/kit/log"

@victortoso i made the changes in the libvirt_helper_test.go file but after running i am getting this error
# Add your code generation commands here
# Example for Mock generation using gomock:
mockgen -source=./pkg/virt-launcher/virtwrap/util/libvirt_helper.go -destination=./pkg/virt-launcher/virtwrap/util/mock_libvirt_helper.go -package=util
2024/10/04 23:50:19 Loading input failed: failed parsing source file ./pkg/virt-launcher/virtwrap/util/libvirt_helper.go: open ./pkg/virt-launcher/virtwrap/util/libvirt_helper.go: no such file or directory
make: *** [generate] Error 1```

Hey @Arpit529Srivastava, I understand you might be a bit uncomfortable with this.
As @victortoso mentioned earlier, please update the import paths in the following files:

staging/src/github.com/golang/glog/glog.go
staging/src/kubevirt.io/client-go/log/log.go

Once you've made the changes, follow these steps:

Navigate to the root directory (kubevirt) and run make generate. This will update the .bazel files
Add the changes using git add .
Instead of creating a new commit, amend the changes to the previous commit using git commit --amend
Then, editor opens automatically, save the changes
Finally, force push the updates using the command git push origin <your-branch> -f

Hope it help you.

@anishbista60 thanks for the guidance but I have one doubt where should i import the files like in which folder and file
help me out with this

@anishbista60 thanks for the guidance but I have one doubt where should i import the files like in which folder and file help me out with this

You have to look into below folders which consisit the import "github.com/go-kit/kit/log"  too . So,  replaced that with "github.com/go-kit/log"

staging/src/github.com/golang/glog/glog.go check line no . 34
staging/src/kubevirt.io/client-go/log/log.gocheck line no. 35

Yeah I got it
@anishbista60 thanku

Please install docker in your system . Then, you are good to go. Are you in linux or window ?

Please install docker in your system . Then, you are good to go. Are you in linux or window ?

macOS

Please install docker in your system . Then, you are good to go. Are you in linux or window ?

macOS

install docker

/ok-to-test

@victortoso @fossedihelm please review the PR.

to 1.22.2

Since last updates, now the target should be 1.22.8

to 1.22.2

Since last updates, now the target should be 1.22.8

done this but on running go mod in the kubevirt directory
this is the error

Is this ready for another round of review?
If yes, I think you should rebase on main. Thank you

@Arpit529Srivastava I opened this issue and leave it for others to start with Opensource . Are you  still here doing it ? Or else i will finish off.
@fossedihelm i will come up with PR and finish off this issue.


Deployment: Where and how?

I suppose a raspberry pi would be a decent and cheap option.
I've got one laying around currently that I could spare the only issue would be proper and secure configuration, which I have honestly no clue about.

@unnerum i would host it on a real server where the uptime is guaranteed. I can host it for free for the community.

https://devcenter.heroku.com/articles/getting-started-with-python
Heroku is a great host.


[Feature request] Color/Shade gradient for linemode information

Please describe the problem you're trying to solve
It's not visible on first glance how the files vary in terms of size, modification date, etc. Especially with the human readable file size (which I like generally) it's harder to detect the big files without sorting by size
Would you be willing to contribute this feature?

[ ] Yes, I'll give it a shot

Describe the solution you'd like
When displaying the linemode, it could be rendered with a color/shading gradient. For simplicity, it could apply the gradient to max/min of the current folder. Example:

The biggest file would have the best visible shade, the smallest file would have the least visible shade
The newest file would have the best visible shade, the oldest file would have the least visible shade
Permissive permissions would have the best visible shade, restrictive permissions would have the least visible shade
Here a mockup:

There could be an option to enable/disable this behavior. If disabled, display like today.
It would increase the readability a lot in my opinion. Like this you can still sort alphabetically but big/small new/old files would stand out.
Additional context
No response

Could you describe the implementation details in more detail please?
Yazi's default theme uses 16 colors to better fit the terminal theme's color scheme. I'm not sure how to express this gradient effect.

Well, I'm no expert, but I'm thinking about something like this, but the gradient could use colors from theme.toml, for example a gradient from darkgray to gray

I quickly checked out the code for this crate, and it seems to use 256 colors based on RGB/HSL.
I don't know much about colors, but from my experience, it's usually best to steer clear of 256 colors when you're not sure about the user's terminal color scheme (like whether it's white text on black background or vice versa). It often leads to poor visibility.
So, my suggestion is to pick a few colors that suit your terminal and implement it yourself by overriding the Folder:linemode() method, and you can set the foreground and background colors of text respectively through Span's fg() and bg() methods.


Begin design thoughts on global config file cross cutting all areas

related: #593

Initial collab doc: https://microsoft.sharepoint.com/:x:/t/DevCrews-Episerver/EUA0JeUOgppHq_YY6sAkD68BYa3aHX1idc8cwOLgRT0gYg?e=4PZYRz


Vulkan: Lunar validation layer

Hello,
I'm unable to see the validation messages (provided by the layer "VK_LAYER_LUNARG_standard_validation").
I tried too with the demo project "TriangleDemo", by commenting the call of "vkDestroyDebugReportCallbackEXT" (line 1330), and still, no error message.
Maybe I missed something, or maybe LWJGL doesn't provide anymore this layer?

LWJGL version: 3.1.6
Java version: `1.9
Platform: Linux

Oh, my bad. Thank you !


JAVA-1388: DO NOT MERGE: Add support for clusters with different native and storage ports at each node for CASSANDRA-7544

Closing in favor of #1065; as discussed on the JIRA ticket, we re-implemented this because of CLA issues.


Travis CI

This is related to #4. We need to use Travis CI to run tests.

This has been fixed. I forgot to mention the issue in the commit message. :sob:


Release 0.3.2

Tasks
AFTER #790:

[x] manually test dev.permaplant.net according to protocols
[ ] update mergedDatasets.csv from #799
[x] run external link check (book.toml: follow-web-links)
[x] npm audit, fix security problems
[x] check/improve reformatting
[x] check if all release-critical issues are fixed
[x] build https://build.libelektra.org/job/PermaplanT-Release/
[x] git tag -s vX.X.X
[x] git push --tags
[ ] create release PR to pump versions and new section in Changelog #801
[ ] write announcement

Use case
plants layer introduction tour user study
Related Pull request
#790

I created #801 which is hopefully the last PR for this release. (Unless a fix for #800 is trivial?)
@temmey From https://github.com/ElektraInitiative/PermaplanT/pull/799 I would like to have an updated mergedDatasets.csv (but it does not necessarily need to be merged before the release)
I already deployed bcb1c1a73abe9659f50a085762c5b7eec233f7e8 on www.permaplant.net

i uploaded a new mergedDatasets.csv onto nextcloud - 02412c947e8aa41c3ae92ac264d39b5c10c3fb5f7ca04e52751257eed3bf6a46


Change Sx1301_hal to 1302_hal

My origonal concentrator card broke on me, I switched to sx1302, I know the HAL is diffrent and the reset triggers are different. I have the miner hooked up to my laptop and have access to the file system. I created a settings.toml file in the network manager folder with the two sx1302_hal references in the hm-packet forwarder but I had no luck still says “lora operational false” the green light is on the new sx1302 card. I tested the card on regular raspi and it does work. I just need to figure out how to update the docker env in the emmc card

Still haven’t been able to load new firmware that supports sx1302_hal it’s a v1 miner, so it doesn’t have the proper triggers / ENV settings, I have looked for 3 days now trying out how to get the ENV changed but I am having no luck. Any help please

We do not support this kind of modification I'm afraid.
Having said that, our miners support sx1302 based concentrators with no modifications necessary. So long as they have the same pinout as ours


run ci on main instead of master after renaming

CI wasn't running because I renamed the default branch
https://github.com/JuliaSIMD/StrideArrays.jl/pull/51

Looks like I broke VectorizedRNG on non-avx2 platforms.


feat: windows support

This PR is used to add windows support, but do not merge it yet.
The PR still needs more testing

I noticed that page_allocator is used extensively in the overall code. This memory allocator will directly allocate the entire page, and its speed is slower.
Now I created a new file called tool.zig, which stores an allocator. Maybe we can use gpa

And I adjusted the build mode in build.zig to default, which will speed up compilation on windows and facilitate debugging.

I also found that the use of std.debug.print seems a bit excessive. Zig officially recommends using std.log to achieve this

and tested the following latest released zvm under my wsl2, it seems to have some issues

But it seems that they are all executed successfully, and further investigation may be needed.

Oh, I see that most of the situations above have been mentioned by you in other issues

Oh, I see that most of the situations above have been mentioned by you in other issues

Yeah, if there is something not yet covered feel free to open up an issue.

I also found that the use of std.debug.print seems a bit excessive. Zig officially recommends using std.log to achieve this

For not getting this PR too big. You can open up a pull request for these improvements or like i mentioned open up an issue.
Overall looking great, really appreciate your contribution. Ping me if you think it should be reviewed.

Then if you think there is no problem, I have done some tests and it seems that we can temporarily merge the PR.

Regarding other issues, I will open a new PR separately.

The current code can only be said to work, after the PR is merged, I will reorganize the code logic, including fixes for issues that have been raised

Later we can try to apply for administrator rights when needed. The speed of copying files on the Windows platform is really not ideal.


🎭 Masks

The recipe was taken from the SVG implementation:
https://github.com/google/skia/blob/main/modules/svg/src/SkSVGRenderContext.cpp#L349
https://github.com/google/skia/blob/main/modules/svg/src/SkSVGMask.cpp

[x] Factorize into single component
[x] Document
[x] To clip or not to clip?
[x] Offer different mask type? (In SVG luminance is used & Figma alpha is used in figma)

Ready for review 😎

Implemented review comments


Umbrella header for module 'Instructions' does not include header 'Instructions-AppExtensions-umbrella.h'

Instructions is imported via CocoaPods v1.0.1
The Podfile:
platform :ios, '9.0'

project 'MyProject.xcodeproj'

use_frameworks!
inhibit_all_warnings!

target 'Application' do
    use_frameworks!
    # ...
    pod 'Instructions', :git => 'https://github.com/ephread/Instructions.git', :branch => 'master'
    # ...
end

target 'Extension' do
    use_frameworks!
    # ...
    pod 'Instructions/AppExtensions', :git => 'https://github.com/ephread/Instructions.git', :branch => 'master'
    # ...
end

Podfile.lockshows this locked versions:
- Instructions (0.5.0):
  - Instructions/Core (= 0.5.0)
- Instructions/AppExtensions (0.5.0)
- Instructions/Core (0.5.0)

During the Achieve, Xcode 8.2.1 shows this warning:
/Users/admin/Developer/repo/my-project-ios/Pods/<module-includes>:1:1: Umbrella header for module 'Instructions' does not include header 'Instructions-AppExtensions-umbrella.h'

Hey @evgeniyd, CocoaPods changed its internal a couple of months ago, which means the subspec-based app extension flavor doesn't work anymore. As far as know, there aren't any workaround, I'm going to have to separate the subspecs into two specs.

@ephread thank you very much for your response
I edited the Podfile's Instructions record while migrating from CocoaPods v1.0.1 to v1.1.0.
My project uses Instructions for iOS extension only. The iOS keyboard appex, in particular.
Now, Podfile looks like this:
target 'Application' do
# ...
end

target 'Keyboard' do
# ...
pod 'Instructions/AppExtensions', :git => 'https://github.com/ephread/Instructions.git', :branch => 'master' # Swift 3 support
# ...
end

...notice, there is no Instructions imported into main app. It works as far as I can tell.
About the warning, I'll update the comment during next archiving. I believe it is still there.
Also, Mixpanl did separate podspecs for app and appex.

Great, I assumed you needed to use both flavors. Glad to hear you've been able to make it work!

It's now fixed, with the release of InstructionsAppExtensions as a seperate pod.


Makefile Error

Hi Thanks a lot for sharing the instruction of compiling rayinvr in Windows 10, but I couldn't manage to do so.
I installed GNU-Make 3.81 and Mingw-w64, and attempted to build executable, for example tramp, in its folder.
The error is

cd ../pltlib/; "make" pltsub.o
The system cannot find the path specified.
make: *** [../pltlib//pltsub.o] Error 1It seems that the system cannot find the path specified

I though it's probably because of the double "/" in the path of pltsub.o and I edited the makefile a bit. Now it can get the building process started but ended up with another error:

process_begin: CreateProcess(NULL, # unilink main.o trc.o atrc.o adjpt.o rngkta.o plt.o misc.o amp.o hdw.o calmod.o blkdat.o ../pltlib/pltsub.o ../pltlib/pltlib.o, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [../build/tramp] Error 2

I'm not experienced with this sort of compiling processes and do you have ideas what could be issue? Thanks!

@sd104400 What command did you use to build tramp?
Enter the root directory of  this project from command line, and run the following commands should work:
cd tramp
make tramp FC=gfortran CC=gcc

Hi,
Thanks for the reply! I have sorted out the issue. It was because I used the older version of the compilers from Mingw-w64. I updated to the latest version and it now works!
However, I failed to compile rayplot . I guess rayplot is not supposed to be used in this environment.

Also I wonder if the programs in the misc folder, particularly, dmplstsqr can be compiled by any means?
Thanks!

Hi I've modified the program code following your instruction. It is compiled and now works!


fix(build): Remove duplicate rayon dependency from zebra-chain

Motivation
PR #4805 got merged without any build checks, causing a duplicate rayon dependency in zebra-chain/Cargo.toml on the main branch.
This breaks all the builds.
Solution
Remove the duplicate dependency.
Review
This is a critical build fix.
Reviewer Checklist

[ ] CI passes, except for the lightwalletd sync test

I admin-merged this today, so that the full sync is finished by the time I start work tomorrow.
It looks like this PR makes Zebra work sometimes during the lightwalletd sync, but it still fails sometimes.
So this is progress!


[SM.MS] ➕返回markdown格式链接🔗功能

Extension
https://www.raycast.com/koinzhang/sm-ms
Description
Hi，
Great work!
May you please add a function that one can get the format of markdown link back instead of url?
i.e., return ![](url)
Thanks for your great work!
Who will benefit from this feature?
someone who write blog with md and Raycast
Anything else?
No response

Hi @hhr114. Thanks for the feedback, I've submitted a PR #11852 to add a setting to allow you to choose the form of the copied link!

@raycastbot close this issue


Hangman not storing letters

libpng warning: iCCP: known incorrect sRGB profile is the error code i'm getting

Oops I think I might have broken this code, my bad.


Use recommended theme from theme manager

See https://github.com/jenkinsci/theme-manager-plugin/pull/103
and https://github.com/jenkinsci/dark-theme-plugin/pull/194
(requires theme manager release)

@uhafner I have some follow up work for moving the UI to theme manager but this is more important I think.

I doubt that I find spare time this and next week, sorry.

I doubt that I find spare time this and next week, sorry.

np

Well, there is no unified warnings plugin for maven available right now (that takes into account new and outstanding warnings).

Well, there is no unified warnings plugin for maven available right now (that takes into account new and outstanding warnings).

much easier imo to either be at 0 warnings or suppress existing warnings and don't allow new ones

Yes, that is what I try to do in my projects. But does CheckStyle, SpotBugs and PMD report the actual warnings in a readable way already? Then it would make sense to set the failOnWarnings flag to true.

Yes readable just fine

Converting to draft till system theme is working

I installed the PR locally but the highlighting of the source code is gone (in the warnings plugin). Do I need to activate something to see it in action?

shouldn't but I plan to do more work before taking this out of draft as this approach doesn't work for system themes.


About stories in the app

Several questions which are essential but are not answered in the readme.

Where do these stories come from ? where are they hosted ?
How where these stories created, which software was used ?
What's the licence on these stories ? Who owns them, have rights on them ? Who made them ?
Is there parental control on this, can you restrict the type of stories shown, the way this app is used ?
Is there any quality control on those stories ? if so, how is it done ?

@Cwpute
1/ Stories comes from a dedicated community https://monurl.ca/lunii.creations
2/ the community comes with tools to create your own stories like studio or studio-pack-generator. The latter allows to very easily create packs from podcasts.
3/ All the stories coming from the community are license free (the community is very careful because it is also under the scope of Kid Story box companies like Lunii).
4/ For now no there is no parental control within the app. I guess you have to do that yourself. It is a good question though. I could easily limit import/download operation with biometrics so that the parent gets control over it. Would that be good for you?
5/ Yes the community listen and checks every story. There is publication process where you publish your pack then administrators listen to it because making it public

Thanks for your answers. All these informations need to appear somewhere in your Readme and your app, because if you're going to make an open-source app, we should know what type of content is going through it and what's their license.

Stories comes from a dedicated community https://monurl.ca/lunii.creations

Good to know, i'd have prefered not having to ask for it to know that information. If you could include a link to that community in the Readme for the app and in the app itself, that would be great.
The finformation that tools are available for you to create these stories and publish them should be public too, i recommend you include them in the app and Readme as well.

All the stories coming from the community are license free (the community is very careful because it is also under the scope of Kid Story box companies like Lunii).

Are the stories specifically labelled as such ? do their authors specifically tell about the license they want to use ? Because if they don't, then the content they create falls under general licensing laws of their own country. From a quick glance at the Discord server you linked, i understand there was a great clearance among community-created content to only allow original work or public domain based works... but this also applies to Public Domain works being reworked into new creations (such as stories/podcasts like those in Conty).

I could easily limit import/download operation with biometrics so that the parent gets control over it. Would that be good for you?

I meant parental control to restrict switching from this app to another one, restrict from downloading stories above a certain age-restriction or from specific categories. I'm not sure biometrics is the way to go for this ?
Could you please answer that second question i had that you probably forgot: where are the stories hosted at ? Is it on a private server, a public one ? is it on Lunii's servers ?

@Cwpute The app (and thus this repo) is not a story provider. It just uses Raconte Moi Une Histoire as a default source for stories (mostly french ones). The app does give a link to the community discord (shown the first time you open the app and in the settings).
The app is not responsible for the license of any of the stories (llike a youtube app is not responsible for the license of the videos/musics) so it does not have to state anything in the readme about it.
I will add the link of the discord in the readme as an explanation of the default source but that's it.
i might add links to some tools but there are many and all are explained/presented in the discord.
If you have questions about the license of the content from Raconte Moi Une Histoire  please ask them on the discord, i am not affiliated with them (though i praise them for the immense work they are making).
About the parental control you talked about, i can't and wont do anything like that. It can only be done at a system level.
I dont think i will restrict age content either. It is not something i want or plan on adding.
And about the hosting of stories, i have no idea. Again this is a question for Raconte Moi Une Histoire . This app is just pack "player". Please ask them on their discord.
There is no reading from Lunii store, downloading from Lunii store, nor affiliation with Lunii. You are not allowed to extract stories from a Lunii nor should you play them in this app.

Sorry if all these questions feel unasked for to you, but this app is a publicly available source of stories for children, created by a somewhat private community with strict rules.
As a public-facing app based on privately produced-content that was only meant to be shared within a close community, this app opens the gates to a whole new audience that doesn't know anything about the Lunii hardware that started it all, and only wants the stories.
Whether you want it or not, it is now your app's duty to introduce people to this community so that they are not lost nor break the community's rules by mistake…
My questions are ones that any other user could ask, i'm just asking them in bulk. Having the answers readily available would alleviate much work later down the line for you, and for the community you're promoting the work of. My apologies if it feels a bit much.

@Cwpute I really dont mind you asking.
But first let s clear one thing up. That app has nothing to do with Lunii! So mentioning Lunii stories here makes no sense as you cant read them with that app. That app is meant to be used with manually generated stories, either by you or by the community. Let s stop talking about Lunii here.
As any other app based on community generated content the app cant be the moderator of the content (youtube client apps...). And the questions you have could be asked by many parents using open source youtube clients to let their kids watch videos. Those app cant be the moderators either.
But i still understand your question and would like to answer as much as i can. However not being part of the moderators of the Raconte Moi une histoire "stories list" i cant answer much. TBH i created this app so that i can generate podcasts and let my kid listen to them. The Studio format was a great way to do that and it brought more to the table letting the app play a lot more "stories".
I am not sure how i can answer you in more details. Let me know if i can help more

That app has nothing to do with Lunii! So mentioning Lunii stories here makes no sense as you cant read them with that app.

But the stories created by the Raconte-moi une histoire community were all made to be compatible with the brand's devices right ? so it does make sense. If anything i'm just underlining a connection you're trying to hide for no reason.

Those app cant be the moderators either.

I'm not asking for Conty to moderate the content it provides. I'm asking it to tell who moderates the content it provides, and to help me moderate it myself if i see something that i sense is not fit for my children. If anything, it's a double safety-net for you : explicitly telling you're not accountable for stuff posted in that community, and providing people with a way to supplement it if it ever let things by that are not to the user's liking.

TBH i created this app so that i can generate podcasts and let my kid listen to them.

Of course yes, i don't want to deter you from doing that in any way :) i'm trying to be helpful. Don't let it  prevent you from doing what you want !

That app has nothing to do with Lunii! So mentioning Lunii stories here makes no sense as you cant read them with that app.

But the stories created by the Raconte-moi une histoire community were all made to be compatible with the brand's devices right ? so it does make sense. If anything i'm just underlining a connection you're trying to hide for no reason.

It is important for us not to be mixed with Lunii. Maybe community content is compatible with Lunii (through a conversion thus not directly), but apps like mine are only players for that community format. So 0 relation with Lunii in any way. And for trademark reasons i dont want to be affiliated or even having the name Lunii be mentioned in the repos / communities. Hope you understand.
I understand about the "knowing" about the moderation. Though i can't answer myself. Will try to ask in the community. Please don't hesitate to do the same.
And finally thank you!


GCM Upstream Messaging

Is GCM Upstream Messaging supported? I want to send acknowledgments over GCM.

Duplicate of #434


WIP - Resend sms or email back end throttling for simple mfa

Hello,
We noticed that if simple mfa is used, the user can abuse the option of asking the token to be resent to him/her via sms or email since she simply can continuously press the resend or refresh button and a new token will be sent to her.
In order to fix that, we created a new cas property, cas.authn.mfa.simple.resendTimeInSeconds , which allows us to configure the time, after which the user is allowed to  receive a new authentication token. Default time is set to be the same as token expiration time.
In CasSimpleMultifactorSendTokenAction we created a Map which holds key value pairs of : principalId, (last time that principal received a token). For each principal requesting a token we checked if resendTimeInSeconds has passed from the last time he received a token and only if true we provide him with a new one.
A CasSimpleMultifactorResendTokensScheduler was also implemented in order to clean the principalIdMap periodically.

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

We are currently thinking to incorporate that particular use case in AbstractThrottledSubmissionHandlerInterceptorAdapter in order to perform an extra check in preHandle method and an extra logging event at post handle(to log that a particular user received a token). Would it be considered a good starting plan of action?

That seems like a good starting point, sure. Of course, I'd have to see the changes to provide better feedback but it sounds like you're on the right path. Note that, as a general guidelines, your changes should be limited to the simple-mfa module, and must be pluggable. You shouldn't have to modify the throttle module at all unless absolutely necessary and if only to expose injection and extension points. I'll try to be more specific with feedback once you have something up here. Thanks much!

To be honest I  am a little bit confused.
The first try did limit the changes in the simple mfa module.Ι didn't include it in the core throttle module((despite the fact that it indeed uses a similar logic)  because Ι thought that the use case only relates to simple mfa, as for example, ticket expiration throttling has been implemented inside cas-server-core-tickets-api and not in the core throttle module.
The second suggestion I made is about adding the changes in the core throttle module in order to rework the existing throttling support to handle the use case as well, as it was suggested in your first comment.
So I feel,  that without modifying the core throttle module, Ι would need to do something very similar with the first try that was not accepted, in order to limit the changes in the simple mfa module.
Could you give  me some more specific hints regarding the direction that is preferable to take in order to implement the use case??

Sure. What I meant was that simple-mfa and throttle module should know nothing about each other at compile-time. Your task should be to modify the simple-mfa module to attach itself to and activate a throttler only when the throttle module is available at runtime (the feature is turned on) and probably some configuration option is set that says activate throttling for simple mfa.
IOW, simple mfa activates throttling support only when:

Throttler is available at runtime
Configuration is set to turn this on for simple-mfa

I would start by adding a configuration class in simple-mfa that activates itself only when throttling configuration is found on the classpath using conditionals. In that configuration class, I would auto-configure the webflow action to modify/intercept a "preExecute", and in there, I would invoke the throttler that I obtain from the execution runtime.
I hope this small bit helps, but I understand how it might be confusing or complex. Please let me know and I might be able to provide a sample for you in the next few weeks.

Ηello,
By starting implementing what I thought you suggested, I realized somewhere on the way that I deviated a little for what you actually said. However, I believe that my proposed solution has its merits so I am posting a working code example in order to get some feedback.
Let me break down my proposed solution:

I created a configuration class in simple mfa(CasSimpleMultifactorAuthenticationThrottlingConfiguration) which is activated only when throttling configuration is found on classpath.
In this class I initialized a new HandlerInterceptorAdapter (CasSimpleMfaThrottledSubmissionHandlerInterceptorAdapter) which has its own preHandle and postHandle methods  that call helper methods to perform the simpleMfa throttling based on the session id (username is not available as request parameter in resend event and I would prefer to avoid using ip).
3.Also in the new  configuration class(CasSimpleMultifactorAuthenticationThrottlingConfiguration), I register the new adapter in the AuthenticationThrottlingPlan.

The main reason I believe that this solution may be better than intercepting a preExecute method, is consistency. Both capacity and failure throttling are being performed via a HandlerInterceptorAdapter. So why not continue this pattern and implement the simpleMfaThrottling based on the same logic?

Any thoughts?

Any thoughts?

Sorry about the delay. Ben occupied with other stuff.

So why not continue this pattern and implement the simpleMfaThrottling based on the same logic?

Because of consistency :) The throttling module provides a one-stop shop interceptor to handle and take care of throttled requests. Allowing each module to have its own interceptor to decide what to do and how to do is inconsistent. The option of which throttler to choose based on config must be handled in one area, regardless what your preference here for activation of options, and then here, you can just inject the appropriate logic into the main throttler engine. And for consistency, this is how everything else in CAS works for the most part.

Sorry about the delay. Ben occupied with other stuff.

So why not continue this pattern and implement the simpleMfaThrottling based on the same logic?

Because of consistency :) The throttling module provides a one-stop shop interceptor to handle and take care of throttled requests. Allowing each module to have its own interceptor to decide what to do and how to do is inconsistent. The option of which throttler to choose based on config must be handled in one area, regardless what your preference here for activation of options, and then here, you can just inject the appropriate logic into the main throttler engine. And for consistency, this is how everything else in CAS works for the most part.

Is it possible to point me to a part of code in the CAS codebase which has a similar logic with the way you want to implement the above use case?  I am not very confident that I have completely understοοd the proposed implementation and I would like to avoid writing something  that is not close to the desired solution.

Thank you for the pull request and apologies for the delay. It does not look like this would be something I'd have any available time to work on, and given there have been almost no requests for this change, at this point, we are not going to spend much time on this. If the need does come up again, we will re-open. Note that there have small improvements in this area as well as that prevent repeatedly issuing tokens and that should be enough for now until we run into this use case again.


Test webpack config

Coverage increased (+1.2%) to 99.206% when pulling b2efcf7cb2c01a54fdd64b1421aa5e980394575c on webpack-test into 9b70f579426d5310045e8eb82d11bb6bd264e6f4 on master.


Make Launchable from Replay

I normally try to launch my param finder from Replay after I've played with the request a little as a last-ditch effort. It would be great if we could launch from the right-click menu in Replay

Done in 0.5.0! :D


"Attributes not allowed here" when using ppx_inline_test

Getting
File "_none_", line 1:
Error: Attributes not allowed here

when trying to use ppx_inline_test:
let%test "some" = true;

Tried with 3.3.3 and master (as of 10dc9e99c955cfb4a4fdcb079dc1a891f3eb71a0).
Repro here https://github.com/andreypopp/reason-ppx-inline-test

Looks like the issue is that ppx_inline_test (and also ppx_expect) is too strict with how it matches AST nodes.
I think on Reason side we could add location to<EMAIL_ADDRESS>"..."] attribute so we don't end up with confusing:
File "_none_", line 1:

location.


[Model] Support YOLOv8

PR types(PR类型)

Model
Description

Support YOLOv8

https://github.com/PaddlePaddle/FastDeploy/issues/1132


Post to other channel?

Hi,
Do I have to create multiple Slack-VisualSVN folder containing SVNSlackNotifier.exe per Repository?
Is there any way to use only one folder for all?
Thanks

Are you still having this issue? If not, what was your fix for it?

Well, I resolved the issue on my own. If anyone else is having the same problem, we are using visualSVN btw, I removed the post commit line, saved it, and re-added it. Problem solved.


Properly disable small types by default with RADV

It looks like this meant to use VK_DRIVER_ID_MESA_RADV
I don't think they will be disabled with AMDVLK. I don't know if they are supposed to be or not

Yes, I noticed now. Both need to be disabled. I've got a pending change for this on my branch, so closing.


yarn error

while installing this error appeared.

This is a common error, what environment are you developing on?


Split and Merge multibuild tasks

Multibuild is a complex mechanic, that reduces the total number of tasks. Making it easier to move tasks between each other. However it is hard to optimize the step order.
2 buttons to split or merge steps into larger tasks, could help.

It might be worth exploring if the multibuild feature can be remove entirely, expect for when the steps are created.

I don't think it is feasible to remove multibuild. As Zaspar does use it and the Step Planner can create tasks with it too.
Though i would have liked that it was never added as a feature 😶
Your idea, of creating the multibuild steps on creation, sounds similar to auto-put. Which is easier to deal with however also has its own issues. For instance updating the parent step doesn't change child steps.

I guess it could be handle as a checkbox where you enable that multibuild is split when added to the grid. It will though add even more complexity. It wouldn't be as easy to change multiple buildings, but template can be used for most things - like changing the amount of fuel. I find that it is very rare that I actually want to change all buildings to the same thing other than when I first build it.
It might though be that I am overthinking the complexity and it actually can be done relatively easy.

I use the TAS step planner to create most steps, so having multibuild step creation wouldn't affect me much. However if we got rid of it but still have to provide legacy support. That sounds to me like we have gained nothing.
It is not particularly hard to split a multibuild step. As most of the code for unrolling the substeps is already available. So i do have an implementation ready for this.
I think the simplest solution for merging: is to split all selected steps, then order them either by X or Y, and then check if they match. After all that we can start to merge the steps, but there are a non-trivial questions here.

The first step might be in the middle of the multibuild, which makes it hard to determine the direction.
Their might be selected 2 or more step blocks, and while a multibuild step can replace a block it is unclear what should happen with more.

The step planner and the template functionality have also made the multibuild obsolete for me. It only makes it more difficult to do things later in the run.
My thought was to add an unrolling step to the open TAS, so all step afterwards could be treated as one unit. I think that could remove a lot of complexity with validation, saving and in the future opening files.
Given that I think multibuild steps with the tooling currently available doesn't really provide any benefit but will make it more difficult to work with later, I don't see why we would want a merge functionality with all the potential complexity it will add.

I have a lot of thoughts on the subject of removing multibuild, so i'll try my best to unpack them:
Fundamentally i think multibuild was a good idea for it's time. However it has a many weaknesses. It simplifies interacting with multiple buildings, however usually in an unoptimized way due to the internal order.
The current implementation also has the problem that it takes up a lot of screen space. With 3 fields in the control row and 3 columns in both templates and step grid.
It is also one of the few higher abstraction level functions provided, and it would be sad to have fewer of those.
I think performance would overall be better without multibuild. While multibuild reduces the overall amount of rows in the grids and lines in the TAS file. It also makes each row / line longer, so overall those should balance out. However for generating the lua steps file, not having to unroll multibuild should make everything slightly faster.
Adding a migration step to opening old TAS files could work to remove multibuild. I feel like if we go down this route it might be nice to re-save the TAS file in a new format, that doesn't have to deal with compatibility.
I have been contemplating a new concept, that i call linked-steps. Where for instance you have task of Put X recipe into assembler. Lets say the recipe is burner mining drill, so the steps of the task is put [1 stone furnace, 3 iron gear wheel, 3 iron plate] multiplied by X. Then the linked-steps can be re-order within the overall task, or just have the no-order applied to them.

Agreed. I actually don't think it is a problem to not have higher abstraction functions due to the supporting tooling. When steps are gathered it makes it difficult optimize and reuse.
Yes, I am also pretty sure that it would be a performance gain if the code could just use the numbers instead of having to unroll and thereby compute the fragments of the multibuild.
Do we have a problem with the file itself having to deal with compatibility - isn't only open and save which has to? I would though be nice to be able to strip all of the compatibility code out of the codebase. I am just not entirely sure how we would do that.
Not entirely sure I understand. What would I as a user do in the UI and how would it differ from what I would do now?