Vertices "disappearing" after indexing on T.label

In relation to the gitter conversation, it appears creating an index on T.label causes vertices to "disappear" from traversals on T.label.
This is relevant when e.g. using gremlin-scala to traverse all vertices of a given class.
Example code for reproducing the problem in below:
import com.orientechnologies.orient.core.metadata.schema.OType
import org.apache.commons.configuration.BaseConfiguration
import org.apache.tinkerpop.gremlin.orientdb.OrientGraphFactory
import org.apache.tinkerpop.gremlin.structure.T

object VerticesBGoneApp extends App {
  val TestLabel = "Test"

  val g = new OrientGraphFactory("plocal:./testdb").getTx

  val vertex = g.addVertex(T.label, TestLabel)

  println(g.database().browseClass(s"v_$TestLabel").next) //prints raw document
  println(g.traversal().V().has(T.label, TestLabel).toList) //prints the labeled vertex

  createIndexOnLabel(TestLabel)

  println(g.database().browseClass(s"v_$TestLabel").next) //raw document still here
  println(g.traversal().V().toList) //this is also non-empty
  println(g.traversal().V().has(T.label, TestLabel).toList) //but *this* is now empty

  private def createIndexOnLabel(className: String) = {
    val key = T.label.getAccessor
    val config = new BaseConfiguration()
    config.setProperty("keytype", OType.STRING)
    if (!g.getVertexIndexedKeys(className).contains()) {
      g.createVertexIndex(key, TestLabel, config)
    }
  }
}

hey, just to let you know, I've reproduced this and can confirm it's a problem. i guess it's to do with the way we lookup values in indexes...
next steps: we'll need to add a test to https://github.com/mpollmeier/orientdb-gremlin/blob/master/driver/src/test/java/org/apache/tinkerpop/gremlin/orientdb/OrientGraphIndexTest.java and fix it, probably in OrientGraphStep.findIndex
will have a look once i get some time. if you are trying out things yourself just update this thread

ok, it's actually not a bug. you're using indexes the wrong way :)
an index purely on a label doesn't make sense - it's in it's own class, so there's basically an automatic index on it.
Indexes only make sense if you use them on a specific key, see some use cases in
If you look at https://github.com/mpollmeier/orientdb-gremlin/blob/master/driver/src/test/java/org/apache/tinkerpop/gremlin/orientdb/OrientGraphIndexTest.java
I've modified your example so that it works. It will only make sense though if you actually add a key/value and an index for a specific key.
import com.orientechnologies.orient.core.metadata.schema.{ OClass, OType }
import org.apache.commons.configuration.BaseConfiguration
import org.apache.tinkerpop.gremlin.orientdb.OrientGraphFactory
import org.apache.tinkerpop.gremlin.structure.T

object VerticesBGoneApp extends App {
  val TestLabel = "Test"
  val TestKey = "SomeKey"

  val g = new OrientGraphFactory("memory:testdb").getTx

  val vertex = g.addVertex(T.label, TestLabel)

  println("XXXXXXXXXXXXXX")
  println(g.database().browseClass(s"v_$TestLabel").next) //prints raw document
  println(g.traversal().V().has(T.label, TestLabel).toList) //prints the labeled vertex
  println("XXXXXXXXXXXXXX")

  createIndexOnLabel(TestKey, TestLabel)

  println("YYYYYYYYYYYYYYYYYYYY")
  println(g.database().browseClass(s"v_$TestLabel").next) //raw document still here
  println(g.traversal().V().toList) //this is also non-empty
  println(g.traversal().V().has(T.label, TestLabel).toList) //vertex still there :)
  println("YYYYYYYYYYYYYYYYYYYY")

  private def createIndexOnLabel(className: String, key: String) = {
    val config = new BaseConfiguration()
    config.setProperty("type", OClass.INDEX_TYPE.UNIQUE.name());
    config.setProperty("keytype", OType.STRING)
    g.createVertexIndex(key, TestLabel, config);
  }
}

@mpollmeier : thanks for the quick reaction.  In fact, this was how I originally was creating the index (and furthermore I based that original reasoning partially on OrientGraphIndexTest :) ).
However, this way the index is not picked up for the has(T.label, TestLabel) traversal. You can see it for yourself when running the amended version, as it will output:
WARNING: $ANSI{green {db=testdb}} scanning through all elements without using an index for Traversal [OrientGraphStep(vertex,[~label.eq(Test)])]
The original version of the test code produces no such warning.
Perhaps the problem is not with indexing, but the traversal strategy?

if you just use has(T.label, TestLabel) then you can ignore that warning - it wouldn't make sense to use any index since you get all vertices from that class anyway. same as a full table scan in a RDBMS.
So you can ignore the warning in this case. Only if you further filter on a specific key should you make sure that you've got an index.

Yes, the full table traversal analogy is pretty much obvious. And although the "disappearing" vertex problem when indexing still exists, it looks like it's more relevant to OrientDB itself.
One final thing to clarify - so, basically the warning is superfluous in this case, right? Is there enough information provided to the TraversalStrategy in order to avoid printing it out in this case?

Yup the warning is superfluous and could be avoided quite easily.

OK, how would the avoidance strategy look like? A check on the graph features, something like that?

The function that looks up indexes is OrientGraphStep.findIndex. It has access to all steps in the traversal and at the moment just iterates through the hasContainers. See https://github.com/orientechnologies/orientdb-gremlin/blob/master/driver/src/main/java/org/apache/tinkerpop/gremlin/orientdb/traversal/step/sideEffect/OrientGraphStep.java#L157
One way to achieve what you want would be to check if this is a simple traversal where no index would help anyway, e.g. graph.V.hasLabel, i.e. no hasContainer present.


Changing icon not working

Describe the issue / bug
Changing icon files in build/icons folder not working when I run npm run dev. It still shows default electron icon.
Tell me about your development environment.

Node version: v9.2.0
NPM version: 5.6.0
Operating System: archlinux

only valid after build

Still having same issue, any solution yet?

@ispal It seemed that the service I used to generate my icons were causing the issue.
If you are on Windows, you must still have a full set of valid icons for any of them to compile properly. However, during the process, I did completely uninstall the app before reinstalling, rather than just updating the existing app.

It seems the icon isn't just working in development mode but whe you are in production it works, also trying to set browserwindow icon still don't work, is there any other ways to get around this

@Quadriphobs1 If you are on macOS, this is a known issue with Electron and AFAIK won't or can't be fixed. There is a workaround, however:

Open your project in Finder, browse to node_modules/electron/dist/
Select Electron.app and press ⌘I (or File > Get Info in the menubar)
With the info window still open, use Finder to browse to your .icns file
Drag and drop your .icns file onto the icon in the top left of the Electron.app info window. It's the icon at the top, next to the modified date and size.

With that done, you'll see your custom icon in the info window, and dev builds will now use the custom icon. Keep in mind you may need to repeat this process whenever you update the Electron package.

I am actually using window
On Fri, Mar 23, 2018, 19:21 alvarado<EMAIL_ADDRESS>wrote:

@Quadriphobs1 http:///Quadriphobs1 If you are on macOS, this is a known
issue with Electron and AFAIK won't or can't be fixed. There is a
workaround, however:

Open your project in Finder, browse to node_modules/electron/dist/
Select Electron.app and press ⌘I (or File > Get Info in the
menubar)
With the info window still open, use Finder to browse to your .icns
file
Drag and drop your .icns file onto the icon in the top left of the
Electron.app info window. It's the icon at the top, next to the
modified date and size.

With that done, you'll see your custom icon in the info window, and dev
builds will now use the custom icon. Keep in mind you may need to repeat
this process whenever you update the Electron package.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SimulatedGREG/electron-vue/issues/478#issuecomment-375757764,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ATSusATtmrNP0y7jkeREQ-uHnYgCiINKks5thT09gaJpZM4Q74Z2
.


GUI client reporting version stuck at 1.3.5

Linux and Windows GUI clients are reporting version 1.3.5 to the portal even though the About window says 1.3.9.
See here for an example: https://app.firez.one/firezone/clients/fbd813df-d495-47f8-ad20-7b62f0f0ecca
refs https://firezonehq.slack.com/archives/C06L41XN05T/p1729515364242069

I wonder if the IPC service is accidentally reporting the Headless Client version, which is 1.3.5. I don't the GUI process ever tells the IPC service what our version number is supposed to be, and the IPC service is built as part of the Headless Client crate.


Add an input box on the spell entity for a RollTable

For Spells, a box could be added to allow a GM to add a RollTable that the spell check will roll on when the d20 button is pressed next to a spell. They would have to add the table themselves.

I think this is a good idea; I think we should also make a system setting
to point at crit and fumble tables to do the same.
On Mon, Aug 17, 2020 at 9:33 AM algnc<EMAIL_ADDRESS>wrote:

For Spells, a box could be added to allow a GM to add a RollTable that the
spell check will roll on when the d20 button is pressed next to a spell.
They would have to add the table themselves.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/cyface/foundryvtt-dcc/issues/45, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAMEH3E2O6JMEFRVSD27LTSBFEVNANCNFSM4QBYUN3A
.

here is the macro I am using now which I have cobbled together. I am not sure how to make it double Level Bonus on a crit.
// Set table
let tableName = "Blessing";
// getting all actors of selected tokens
let actors = canvas.tokens.controlled.map(({ actor }) => actor);
// if there are no selected tokens, roll for the player's character.
if (actors.length < 1) {
actors = game.users.entities.map(entity => {
if (entity.active && entity.character !== null) {
return entity.character;
}
});
}
let confirmed = false;
// Add modifier for a d20 roll
new Dialog({
title: "Spellburn or miscellaneous bonus",
content:      <form>
        Roll Modifier: 	   <input id="modifier-value" name="modifier-value" value="0"></input>
      </form>     ,
buttons: {
one: {
icon: '',
label: "Roll!",
callback: () => confirmed = true
},
two: {
icon: '',
label: "Cancel",
callback: () => confirmed = false
}
},
default: "Cancel",
close: html => {
if (confirmed) {
let rollModifier = parseInt(html.find('[name=modifier-value]')[0].value);
const table = game.tables.entities.find(t => t.name === tableName);
const roll = new Roll("1d20 + @abilities.per.mod + @details.level.value + " + rollModifier, actor.getRollData());
const customResults = table.roll({roll});
table.draw(customResults);
}
}
}).render(true);


feat: support for global discoveryRole configuration and per-ServiceMonitor discoveryRole

see https://github.com/VictoriaMetrics/operator/issues/1162

Global discoveryRole Configuration: Add support for a global configuration in VictoriaMetrics-Operator to allow users to specify the discoveryRole (such as endpointslice) by default across all VMServiceScrape resources.

env:
  - name: VM_ENABLEDPROMETHEUSCONVERTER_DISCOVERYROLE
    value: "endpointslices"

Per-ServiceMonitor discoveryRole Configuration: Enable the ability to configure the discoveryRole field individually within ServiceMonitor resources. This would provide finer control over discovery methods at the service level.

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  annotations:
    operator.victoriametrics.com/discovery-role: endpointslices

close as dup with https://github.com/VictoriaMetrics/operator/pull/1161, please see discussion there.


Extra Cloned Items

When I try to run a loop with my items which are other react components,it appears four extra cloned owl items.My code is here:
<OwlCarousel options={options}>      {products.map((card, i) => (      <div key={i} className={classes.card}>      <Card details={card} />      </div>       ))}    </OwlCarousel>
where,Card is that react component and products is an array.

Did you solve this? I also encountered this

have you solved this issue i am facing the same issue...?


COVID Collection and Generator for Sematic Scholar Corpus

CovidCollection and CovidGenerator to index COVID-19 Open Research Dataset

@edwinzhng @nikhilro merge when ready. don't worry about the hit in test coverage, we'll come back and patch it up later...


dev: refactor environment variables, and do environment validation before RPC start

tldr:

before startup of rpc make sure essential environment variables are there and not empty { will act as a great smoke test }
group parsing of all these variables in a single file, where they are exposed as constants, but their value is provided at runtime ( might be prefixed with ENV to specify these are environment variables and not normal constants ).

This will improve the readability and quality of the code, as we would be doing environment validation, and variable parsing only once, and can then use this variable like how we use constants. We can make use of lazy_static! strategy.

working on this one!
@Eikix you can assign me for this.


chore: v2.13.5

Codecov Report

Merging #217 (e4c34f1) into main (b8a01dc) will increase coverage by 0.04%.
The diff coverage is 27.27%.

:exclamation: Current head e4c34f1 differs from pull request most recent head ad77248. Consider uploading reports for the commit ad77248 to get more accurate results

@@            Coverage Diff             @@
##             main     #217      +/-   ##
==========================================
+ Coverage   59.36%   59.41%   +0.04%
==========================================
  Files        1181     1180       -1
  Lines       72502    72332     -170
  Branches    15012    14971      -41
==========================================
- Hits        43040    42974      -66
+ Misses      26850    26756      -94
+ Partials     2612     2602      -10

Impacted Files
Coverage Δ

...tor/src/browser/doc-model/editor-document-model.ts
61.59% <0.00%> (ø)

...es/extension/src/browser/extension-view.service.ts
47.17% <0.00%> (ø)

...ages/extension-storage/src/browser/storage-path.ts
86.04% <42.85%> (+1.77%)
:arrow_up:

...rc/browser/links/external-link-provider-adapter.ts
12.90% <0.00%> (-4.75%)
:arrow_down:

packages/editor/src/browser/view/suggest-widget.ts
21.73% <0.00%> (-3.27%)
:arrow_down:

packages/main-layout/src/browser/layout.service.ts
64.75% <0.00%> (-2.69%)
:arrow_down:

packages/core-common/src/uri.ts
75.80% <0.00%> (-1.62%)
:arrow_down:

...ackages/terminal-next/src/browser/links/helpers.ts
82.53% <0.00%> (-1.59%)
:arrow_down:

packages/terminal-next/src/browser/links/link.ts
18.64% <0.00%> (-1.36%)
:arrow_down:

packages/core-common/src/types/extension.ts
88.88% <0.00%> (-1.12%)
:arrow_down:

... and 20 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b8a01dc...ad77248. Read the comment docs.


[FLINK-35982] Fix transform metadata config doesn't work if no projection block was provided

This closes FLINK-35982.
One may readjust source table primary keys, partition keys, table options by specifying them in a Transform block like this:
transform:
  - projection: '*'
    primary-keys: order_id, product_name
    partition-keys: order_id
    table-options: bucket=1

However, if projection field is omitted (which fallbacks to default behavior that does not change any source table columns), such configuration will not take effect:
transform:
  - primary-keys: order_id, product_name
    partition-keys: order_id
    table-options: bucket=1 # These options will not apply

The underlying reason is transform blocks without projection was simply ignored by PreTransformOperator, which isn't accurate since other options like primary keys, partition keys should work without projecting original columns.

cc @ruanhang1993 @lvyanquan


Create API boilerplate -3-

Boilerplate code for API should be created.
Requirements

Express.js should be used.
Directory structure should be arranged according to component based approach.
ES6 should be used with aslant and babel support.
NPM should be used for task manager.
Task manager should be configured to run with environment configs such as development and production

API Repo Link
(https://github.com/ardaogulcan-ci/TweetBoard-API)


Automatically adding classpath for Stanford Tools

The new Stanford NER tool and parser requires more .jar files to be added to the classpath. Possibly, it's easier to modify the nltk.tag.stanford  to do something like what

nltk.parse.malt is doing with the dependencies check using find_jar_within_paths  (e.g. https://github.com/nltk/nltk/blob/develop/nltk/parse/malt.py#L66) https://github.com/nltk/nltk/blob/develop/nltk/internals.py#L722.

More details on http://stackoverflow.com/questions/34361725/nltk-stanfordnertagger-noclassdeffounderror-org-slf4j-loggerfactory-in-windo/

Given the new corenlp v3.6, maybe that's the way to go wrap around the JSON output: https://github.com/smilli/py-corenlp and something like https://github.com/alvations/nltk/blob/stanfordnlp/nltk/parse/dependencygraph.py
That way we don't have to play catch up with Stanford NLP tools all the time.

@stanfordnlp Any thoughts on whether third-party wrappers to Stanford tools should wrap the individual tools or the Stanford CoreNLP? If wrapper Stanford CoreNLP, what's an easy way to specify language or a specific model for a specific task?

Hi @stevenbird,
All the bugs related to Stanford packages shown in the CI server is due to the new logging requirements such that  slf4j-api.jar and  slf4j-simple.jar  are needed. We can do some hackings as suggested by @alvations   here  to add these additional .jar files to the classpath through the find_jar_within_paths function. What do you think ?

here is what I did to make it working https://github.com/nltk/nltk/pull/1249/files#diff-3ddcbc41d8654bc0748b8afb087c55aeR40

Vote for @alvations'solution since we don't have to manually specify the jar file names.

Hi,
I am also facing the same issue. I believe its not fixed yet? Please comment in case it is or there is any way to get it working. Thanks

@rapaliwal the code is merged into the develop branch, if you want to use the bleeding edge version of NLTK, you can trypip install -U https://github.com/nltk/nltk/archive/develop.zip (CAUTION: this will subject your python environment to developmental code).
Otherwise, it should be patched in the current/next stable release of NLTK and pip install -U nltk should fix the problem.
If you want to resolve the problem without changing the NLTK version or code in NLTK, try https://gist.github.com/alvations/e1df0ba227e542955a8a

Thanks @alvations for quick reply. I am trying to use nltk with stanford parser (and maybe dependency parser later). I will give the new version of nltk a go. Will let you know what happens. Thanks

With NLTK 3.2, Stanford POS tagger works fine but parser and dependency parser suffer from the same issue.

How to add new words to PERSON node

Just one quick follow-up!
I was trying to port some code that I had written with NLTK 3.2.1 to a machine where I have NLTK 3.2.5 and uses Stanford NER. I am still using the hold distribution  stanford-ner-2015-12-09 on both machines and $CLASSPATH is configured correctly on both.
Everything was working well on NLTK 3.2.1, but I met this very problem on NLTK 3.2.5. The workaround by @alvations posted here solved everything on NLTK 3.2.5 but apparently I did not need it on 3.2.1.
Is it normal? Is it because StanfordNER is now deprecated on 3.2.5?


Migrate BCMP Files Over To bm_core

Move over completed bcmp source and header files to bm_core Replace generic LL implementation with bm_common one

@victorsowa12 this is the branch that I have been going off of with a lot of conflicting files. I will wait for you to merge in your work and then rebase and handle the conflicts accordingly.


Clarification on licensing

Above, it reads, “Group naming policy requires Azure Active Directory Premium P1 license for unique users that are members of Office 365 groups.”
Does that mean that a license is required for each user who will implement the policy, or that one is required for each person who will be affected by the policy?

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

ID: 6f70ad7b-5ba2-6167-1207-7496d57c6828
Version Independent ID: 3df3ae33-83d3-e25f-3b41-070620030a08
Content: Office 365 Groups naming policy
Content Source: Office365-Admin/create-groups/groups-naming-policy.md
Service: o365-administration
GitHub Login: @dianef77
Microsoft Alias: dianef

@DFLiddle Thank you for this inquiry
I am not sure if that means you need a P1 licence for the creater of the group or everyone in the group. Let me get this over to the O365ITPro writing team for investigation.
Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

@AndreaBarr - This issue can be closed. Thank you.


How can I customize the BibTeX output of ruby-cff to match an existing BibTeX file?

I'd like to use the new CITATION.cff file format on Github.  In addition to citing the software itself, though, I'd like people to cite the accompanying paper.  I understand I can do this with the references field.
Since most people in my field will be using BibTeX feature, I need control over that.  Is there a way to specify what the BibTeX should look like?
Things that I worry about are missing fields (booktitle, series, isbn, location, etc.) and support for capitalization (BibTeX supports {} to indicates parts of a title whose capitalization shouldn't change, and I'm not sure how to do this in CITATION.cff)
Here's an example of a BibTeX file that I'd love to convert to CITATION.cff: https://github.com/cpitclaudel/alectryon/blob/master/CITATION.bib .
Thanks!

I am interested in this too. I see that today's release included a preferred-citation entry, and I think this is how we're meant to customize the results. But I didn't see an example or instructions on how to specify the desired output. Are we meant to provide desired outputs for each type, e.g. bibtex output, APA, etc.? Thank you!
From the README
#### Citing a paper rather than software

The CFF has been designed with direct citation of software in mind.
We'd like software to be considered a first-class research output, like journal articles and conference papers.
If you would rather that your citation text points to a paper that describes your software, rather than the software itself, you can use the `preferred-citation` field for that paper.
When producing citation text this library will honour `preferred-citation`, if present, by default.
If you would like to specify a `preferred-citation` and still produce a direct citation to the software then you can configure the formatter as follows:

```ruby
cff = CFF::File.read('CITATION.cff')

cff.to_bibtex(preferred_citation: false)
cff.to_apalike(preferred_citation: false)

```

@ddsjoberg Even with preferred-citation I don't think you can: AFAICT the BibTeX will still be auto-generated, and hence won't have the right info in it.

Hi @cpitclaudel and @ddsjoberg.
preferred-citation is indeed the mechanism in CFF to override the default software citation with a reference to something else. At present we try to add as much info as possible to the BibTeX but we might not have it all mapped yet. I note that in the CITATION.bib file above there are a few fields specified which are not part of core BibTeX (https://mirror.ox.ac.uk/sites/ctan.org/info/bibtex/tamethebeast/ttb_en.pdf) - are they BibLaTeX fields? We are considering more output formats at the moment.
Also, I believe that GitHub are considering pulling citation data from other files in the future.

Thank you @hainesr !
To use this feature, is this how we specify it?
cff-version: 1.2.0
message: If you use ruby-cff in your work, please cite it using the following metadata
title: Ruby CFF Library
preferred-citation: true
...
```

Then the resulting bibtex file will include the fields needed to cite a published paper? (sorry, if I am being dense here)

Hi @ddsjoberg, you're not being dense at all!
preferred-citation is a reference object, so specify it the same way you do one of the references in the references field. There is an example here: https://github.com/citation-file-format/ruby-cff/blob/main/test/files/tidyverse-joss-paper.cff

are they BibLaTeX fields? We are considering more output formats at the moment.

I'm not entirely sure — it's the default that ACM produces (see https://dl.acm.org/doi/10.1145/3426425.3426940)
Thanks for your work!

Hi @ddsjoberg, you're not being dense at all!
preferred-citation is a reference object, so specify it the same way you do one of the references in the references field. There is an example here: https://github.com/citation-file-format/ruby-cff/blob/main/test/files/tidyverse-joss-paper.cff

Thank you for the example! Very helpful!

CFF version 1.2.0 was released yesterday, and there's another example in the new schema guide as well.

Note there's an example related to this in the GitHub Docs too: https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files#citing-something-other-than-software
Closing this for now, but please comment if there's more to do here.


6.5 | Server | Fix | Web Ingress pathType fix

Fix web-ingress template with pathType value declared as variable as used in the range.
Limit the use of networking.k8s.io/v1beta1 to Kubernetes versions 1.14 - 1.21

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[Question] "Hanging" objects onto the Request vs. singleton via service

A question of middleware philosophy. Hypothetical situation: I'm developing an API using Expressive with authentication/authorization. One of my prerouting (high priority I guess post-RC7) middlewares is an authentication class to determine if I'm a user. I will need user info later in my routed middleware. I can see two approaches, but not sure which would be more adherent to the "idea" of middleware.

The UserService instantiates a singleton User. Subsequent middleware injects UserService if it needs the info. This keeps the Request/Response objects "clean", but adds the needs for factories/callbacks for middleware that might otherwise just be invokable.

The Authentication middleware attaches a User object as a parameter onto the Request/Response object. This keeps the subsequent middleware "cleaner" by not having to inject the service all over the place and possibly cutting done on factory/callback complexity. This could however lead to the Request or Response object being the catchall for inter-middleware data.

@ZergMark There's a third approach as well: use a service object.
This solution would be similar to your (1) above, but instead of using a singleton, you'd have a service you manage in your container. Middleware that might inject it or consume it then will have that service injected, which means you'll write factories for them:
class MiddlewareUsingUserService
{
    private $userService;

    public function __construct(UserService $userService)
    {
        $this->userService = $userService;
    }

    public function __invoke($request, $response, $next)
    {
        // Pull the current identity:
        $user = $this->userService->getIdentity();

        // Or maybe inject it? (Never actually pull it from a query param, unvalidated!)
        $this->userService->setIdentity($request->getQueryParams()['user_id']);

        /* ... */
    }
}

class MiddlewareUsingUserServiceFactory
{
    public function __invoke($container)
    {
        return new MiddlewareusingUserService($container->get(UserService::class));
    }
}

The above is essentially how we provide the UrlHelper and ServerUrlHelper; I've done similarly on my own website when using opauth.
Option (2), injecting as request attributes, is where I was originally considering handling features like this, and, in point of fact, we use precisely that for communicating the RouteResult from the routing middleware to the dispatch middleware (and any middleware in-between). However, as you note, this can lead to bloating of the request, and becomes more of a "conventions-based" approach. As such, I prefer the dependency injection route in most cases, as it ensures a clean separation, while preventing usage of singletons.

@weierophinney Thanks for your reply. I think that your code is what I was trying to convey in my first option. Create a middleware that uses a UserService to authenticate the Request and store a User object. Inject the UserService (via factory) into whatever other middleware needs the User object. I think I used "singleton" improperly in my explanation. I figured that DI of everything would be the prefered way for Expressive projects, but wanted to verify. DI would also make unit testing a bit easier so you weren't be "guessing" what needed to be attached to the Request for any particular middleware.
I have to admit is a part of me that misses the simple, containerless, procedural phly/conduit. I just create a Services middleware at the start and hang all my services off of the Request object. Eh, programming progresses. Expressive it positively svelte compared to the other "jumbo" frameworks.
Feel free to close, or wait for anyone else who might have an opinion.

@ZergMark —

I have to admit is a part of me that misses the simple, containerless, procedural phly/conduit.

That's still around. It's called zend-stratigility. :wink:
Also, as I noted, you can shove in request attributes as well. However, if you're using a container already, it's cleaner and easier to just inject the objects you need. as you note, it makes testing far simpler, as you don't have to worry about what you may have missed pushing into the request instance. It's all a matter of tradeoffs.

Is there no danger of unintentionally 'leaking' state to other requests with a central service object like this? @weierophinney
Especially when using expressive together with PhpFastCgi https://github.com/PHPFastCGI/ExpressiveAdapter
A third (conceptual) way to counter this is to create a data storage service capable of storing and relating data to the request without actually setting it on the request.
A request uuid should be present as attribute on the request.
And things need to be unset at some point when done. No idea of that is simple
So instead of
$request->withAttribute('identity', 'joe');
$this->requestStorageService->set($request, 'identity', 'joe');

Op 28 jan. 2016 om 16:34 heeft weierophinney<EMAIL_ADDRESS>het volgende geschreven:
@ZergMark There's a third approach as well: use a service object.
This solution would be similar to your (1) above, but instead of using a singleton, you'd have a service you manage in your container. Middleware that might inject it or consume it then will have that service injected, which means you'll write factories for them:
class MiddlewareUsingUserService
{
private $userService;
public function __construct(UserService $userService)
{
    $this->userService = $userService;
}

public function __invoke($request, $response, $next)
{
    // Pull the current identity:
    $user = $this->userService->getIdentity();

    // Or maybe inject it? (Never actually pull it from a query param, unvalidated!)
    $this->userService->setIdentity($request->getQueryParams()['user_id']);

    /* ... */
}

}
class MiddlewareUsingUserServiceFactory
{
public function __invoke($container)
{
return new MiddlewareusingUserService($container->get(UserService::class));
}
}
The above is essentially how we provide the UrlHelper and ServerUrlHelper; I've done similarly on my own website when using opauth.
Option (2), injecting as request attributes, is where I was originally considering handling features like this, and, in point of fact, we use precisely that for communicating the RouteResult from the routing middleware to the dispatch middleware (and any middleware in-between). However, as you note, this can lead to bloating of the request, and becomes more of a "conventions-based" approach. As such, I prefer the dependency injection route in most cases, as it ensures a clean separation, while preventing usage of singletons.
—
Reply to this email directly or view it on GitHub.

What's the problem of having request-related data inside request? I don't see any drawback, and it makes a lot of sense for me to store authenticated identity in request (this is part of request information after all).
Also, storing this data in request and passing them to services via arguments is the only way to keep your services stateless (https://igor.io/2013/03/31/stateless-services.html). Stateless services allows you to use things like PhpFastCgi and React, and they are much more easier to test and to understand the code flow.

@danizord The problem is with regards to the fact that there are not dedicated methods for each such service in the request instance. Instead, you have to use a conventions-based approach with the request attributes, which means you have to do more type-checking:
$identity = $request->getAttribute('identity', null);
if (! $identity instanceof SomeIdentityType) {
    // set a default? skip to the $next()? what?
}
// Okay, now we have an identity we can work with...

In terms of using fastcgi, the approach I suggested already works; the request and bootstrapping occurs on every request still. With React, the question is bootstrapping: do you bootstrap once, and handle many requests, or do you bootstrap on each request?
One benefit to React is that it makes the former possible, which isn't true under traditional web server paradigms. In that particular case, request attributes may make more sense. The other possibility, though, is having the bootstrap do a deep clone of the container, and potentially have it reset or replace specific service instances that contain state. This would be potentially costly, but solves the issue of state bleeding between requests.
Considering that this paradigm of bootstrap once, run multiple, is not what PHP has been architected for, and is fairly uncommon, my take is that you need, at least for now, to engineer differently under that particular paradigm than you would when running under nginx, Apache, or other traditional web servers.

@weierophinney

@danizord The problem is with regards to the fact that there are not dedicated methods for each such service in the request instance. Instead, you have to use a conventions-based approach with the request attributes, which means you have to do more type-checking

We can use utility classes for type-checking
$identity = $request->getAttribute(AuthenticationMiddleware::IDENTITY_ATTRIBUTE);

Assertion::isInstanceOf($identity, User::class);// + 1 line of code, -1 stateful service

Or you can move type-checking somewhere else:
$identity = Identity::fromRequest($request);

In terms of using fastcgi, the approach I suggested already works; the request and bootstrapping occurs on every request still. With React, the question is bootstrapping: do you bootstrap once, and handle many requests, or do you bootstrap on each request?

Both React and PHPFastCGI are bootstrap-once, look:
"Using this package, Zend Expressive applications can stay alive between HTTP requests whilst operating behind the protection of a FastCGI enabled web server". https://github.com/PHPFastCGI/ExpressiveAdapter#introduction

Considering that this paradigm of bootstrap once, run multiple, is not what PHP has been architected for, and is fairly uncommon, my take is that you need, at least for now, to engineer differently under that particular paradigm than you would when running under nginx, Apache, or other traditional web servers.

Multiple dispatch cycles is not the only problem, stateful services only increases complexity after all:

Makes your service need to check state in every operation,
Brings (unwanted) side-effects, behavior changes depending on state (this is so hard to debug),
Makes both service and consuming classes more hard to test (you will need to write tests for every possible state).

Even PSR-7 messages (that are not supposed to be stored, but passed along) are immutable for a number of reasons. So why would we make our services (supposed to be stored everywhere) mutable?

I read through the discussion and would like to add my 2c
I prefer a mix of both options. Question is why does the authentication service already create a user?
It should store an immutable Identity value object in the request.
Then the routed middleware gets a stateless UserService injected and the service uses data from the Identity VO to create/load a User, perform an action on or with the User and persist the new state. That's it and it should work for other scenarios too because state is related to entities and entities should be part of the model and not part of the request/response handling layer.
class RoutedMiddleware
{
  private $userService;

  public function __construct(StatelessUserService $userService) {
    $this->userService = $userService;
  }

  public function __invoke($req, $res, $next)
  {
    $this->userService->performAction($req->getAttribute('identity'));
    //...
  }
}

class StatelessUserService
{
  private $userDataStore;

  public function __construct($userDataStore)
  {
    $this->userDataStore = $userDataStore;
  }

  public function performAction(IdentityVO $identity)
  {
    $user = $this->userDataStore->load($identity->getUserId());

    $user->changeState();

    $this->userDataStore->save($user);
  }
}

Yeah, agree with you @codeliner, so just to sum it up:

State coming from user input should be stored in request attributes and passed down to inner layers;
Domain/App state or anything coming from DB should not be stored in request but fetched from stateless services.

Correct?

yeah, sounds like a very good rule of thumb @danizord


Even smoother scrubbing / trick mode

As a user I want the best possible seek experience wherever possible. Fact: If I use the system UI vs. the Pillarbox UI for some contents, the seek experience is much faster with the system UI.
Some examples:

DRM protected contents at SRG SSR.
SWI examples.

Acceptance criteria

The seek experience obtained with the custom player and its progress bar is on par with the system UI experience.

Hints

When using AVPlayer with a rate > 2 we can observe that I-frames are used. A naive implementation where we set the rate to 3 when starting seeking and reset it at the end shows improvements.
Doing so in all cases seems to lead to poorer results with other contents so we need to be careful here. We can likely find when trick mode can be applied with canPlayFastForward and similar methods.
We should study what AVPlayerViewController does to find further hints.
The HLS book has more information about trick mode.

Further analysis
Apple default UI has a very good forward / backward scrubbing experience. Checking network activity with the HEVC example shows they rely on i-frames when scrubbing. How can we achieve the same (is there an official way, e.g with an API or by adjusting the playback rate? Or are they using images displayed on the video layer?)
Interesting video: https://developer.apple.com/videos/play/wwdc2022/110379/
Maybe setting speed or tolerances might help: https://developer.apple.com/forums/thread/72815. Yes, it seems that rates > 2 request i-frames (as seen with Charles).
Also see: https://stackoverflow.com/questions/30346405/how-do-you-get-smooth-high-rate-playback-from-avplayer
Maybe see https://developer.apple.com/library/archive/technotes/tn2404/_index.html. AVSampleCursor seems used in AVKit implementation, as revealed by having a look at the binary. Maybe see https://gist.github.com/shaps80/ac16b906938ad256e1f47b52b4809512

Tasks

[ ] ...

We should better understand how Apple implemented trick play:

Which rate is set during seeks.
Which positions are reached.
Which tolerances are applied.

This can likely be achieved with an instrumented AVPlayer subclassed used with AVPlayerViewController or VideoView.

Our The Dig MP4 example can be finely navigated as follows:

Set rate to 0 during seeks.
Do precise seeks, not approximate ones.

So it is likely that to get a great behavior on all kinds of contents we have to tweak how seeks are made, maybe based on item capabilities.

It seems that I-frames are used for our Switzerland says sorry! example if we set the rate to zero, tolerance before to zero and tolerance after to a non-zero value (maybe infinite is not the best option).

In all cases smooth seeking is a pre-requisite. We cannot have great behavior if seeks are cancelled and this is also how Apple implementation works (all seeks succeed during seeking).

The player fails with an error when seeking near / to the end of our _Switzerland says sorry!" example with an after (or before) tolerance, but this is also the case with Apple system player. So I guess there is either an issue with the stream or with AVPlayer itself.
The issue affects iOS 16 and 17 in the same way so this is not something new. Won't do anything yet, other contents seem to work fine.


Feat termdown at 1.11.0

Motivation for this change
Init termdown 1.11.0
Things done

[x] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Fixed the style issues and pushed


numba fails to infer 'endian' numpy dtypes

Here is a sample case:
import numba
import numpy as np

betype = np.ones((120, 120), dtype='>u2')   # big-endian
normtype = np.ones((120, 120), dtype='uint16')   # ? endian

@numba.autojit(nopython=True)
def add_arrays(arr1, arr2):
    return arr1 + arr2

# Fails
add_arrays(betype, betype)

# Succeeds
add_arrays(normtype, normtype)

I have many tif files the are read in as numpy '>u2' type. Right now I plan to just change the dtypes to something that works, but should there / will there be support for this dtype?
Thanks!

This is a good question.  Numba has traditionally supported dtypes that map directly to machine types (or structs of machine types).  We should add support for non-machine endian dtypes.  The tricky part will be deciding how to implement it so that it roughly mimics what NumPy does (which appears to have several corner cases).
Converting the entire array to little-endian is probably your best option anyway, since that is what Numba would have to do element-by-element to work with the data.

Thanks for the feedback! Looking forward to this in the future.

Are there any plans to add support for big endians?


Best Practice for Re-using Refresh Token

"Refresh tokens do not have specified lifetimes. Typically, the lifetimes of refresh tokens are relatively long."
I understand that there is no definite number for its lifetime. But what is the recommended approach of when we need to ditch the current refresh token? Is it advisable to rotate the refresh token? I mean can I do this:

Authenticate and gets access token and refresh token
Continuously use the fresh token from step 1 to get a new access token
After X number of days/hours/months, ditch the old refresh token and use a new refresh token.
Continue the process until forever.

If this is an okay approach, what's should be my x number of days/hours/months?
Or am I good to just use 1 single refresh token as long as keep it safe?
"in some cases, refresh tokens expire"
What are those "some" cases?

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

ID: fef99ca3-72bb-2c48-a62b-9ff9c314d72b
Version Independent ID: e58fd3a1-0af8-6e16-3d78-3dc748992593
Content: OAuth authorization code flow - Microsoft identity platform
Content Source: articles/active-directory/develop/v2-oauth2-auth-code-flow.md
Service: active-directory
Sub-service: develop
GitHub Login: @rwike77
Microsoft Alias: hirsin

@TheITRx The refresh token that you get after Single/Multi-factor authentication is valid until it is revoked manually. However, the MaxInactiveTime for refresh token is 90 days by default, which means if you don't redeem the refresh token within 90 days, it will be expired and you would have to re-authenticate.
When the Access token is expired, Refresh token is used to obtain new Access/Refresh token pair and not just the Access token. Best practice is to securely delete the old Refresh token when getting a new Refresh token. If you don't delete the old Refresh token, MaxInactiveTime prevents access if the client tries to access any resource by using the old refresh token after the specified period of time, which can be configured between min 10 minutes to max 90 days.
Another case when Refresh token expires after 12 hours is for federated users who do not have the "LastPasswordChangeTimestamp" attribute synced. These users are given this short Max Age because AAD is unable to verify when to revoke tokens that are tied to an old credential (such as a password that has been changed) and must check back in more frequently to ensure that the user and associated tokens are still in good standing.

@amanmcse wow! that's really good info! Thank you! Follow up question, what if I opt to rotate my refresh token every x # of days (.e.g: use a new one every 15 days). I grab the new refresh token from a new access/refresh token pair, how do I purge/invalidate/manually expire my old refresh token? This way I don't have to wait for 90 days of inactivity and be sure that the previous refresh token can no longer be used.
Thanks!

@TheITRx  In that case, I would suggest you to create an Azure Policy with MaxInactiveTime set to 15 days.
In below example, along with MaxInactiveTime, Single-Factor Refresh Token Max Age is set to 180 days and Multi-Factor Refresh Token Max Age is until-revoked. You can refer to https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes for more details about configuring token lifetime. I have shared the required steps for this purpose below as well.
Create a policy
$policy = New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"MaxInactiveTime":"15.00:00:00","MaxAgeMultiFactor":"until-revoked","MaxAgeSingleFactor":"180.00:00:00"}}') -DisplayName "WebApiDefaultPolicyScenario" -IsOrganizationDefault $false -Type "TokenLifetimePolicy"
Get the application
$app = Get-AzureADApplication -Filter "DisplayName eq 'Fourth Coffee Web API'"
Assign the policy to your web API.
Add-AzureADApplicationPolicy -Id $app.ObjectId -RefObjectId $policy.Id

@amanmcse  This is superb! Thank you so much for the clarification! I think I'm all good!

@TheITRx Thank you for the confirmation. I am proceeding with closure of this thread now.


Update issue with some Android devices

Build/Submit details page URL
No response
Summary
Hi there !
We recently migrated from codepush to EAS Updates,
Everything seems to work perfectly at first sight, iOS updates are properly getting downloaded and installed, same for Android.
But in some cases, some Android users doesn't get the update.
When checking to the updates details in expo.dev I can see their are installs for both platforms, and no failed installs. So everything looks good.
Did anyone encounter this kind of issue ? Or am I missing something ?
Managed or bare?
Bare
Environment
npx expo-env-info
  expo-env-info 1.2.0 environment info:
    System:
      OS: macOS 14.3
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 22.9.0 - /opt/homebrew/bin/node
      Yarn: 1.22.22 - /usr/local/bin/yarn
      npm: 10.8.3 - /opt/homebrew/bin/npm
      Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.15.2 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 23.2, iOS 17.2, macOS 14.2, tvOS 17.2, visionOS 1.0, watchOS 10.2
    IDEs:
      Android Studio: 2023.1 AI-231.9392.1.2311.11330709
      Xcode: 15.2/15C500b - /usr/bin/xcodebuild
    npmPackages:
      expo: 51.0.26 => 51.0.26
      react: 18.2.0 => 18.2.0
      react-dom: 18.2.0 => 18.2.0
      react-native: 0.74.5 => 0.74.5
    Expo Workflow: bare

npx expo-doctor
✔ Check Expo config for common issues
✔ Check package.json for common issues
✔ Check dependencies for packages that should not be installed directly
✔ Check for issues with metro config
✔ Check npm/ yarn versions
✔ Check for common project setup issues
✔ Check for app config fields that may not be synced in a non-CNG project
✔ Check if the project meets version requirements for submission to app stores
✔ Check Expo config (app.json/ app.config.js) schema
✔ Check native tooling versions
✔ Check that packages match versions required by installed Expo SDK
✔ Check for legacy global CLI installed locally
✔ Check that native modules do not use incompatible support packages
✔ Check that native modules use compatible support package versions for installed Expo SDK

Error output
No response
Reproducible demo or steps to reproduce from a blank project
Unfortunately it is not really possible to share a reproducible demo..
But here is the js code that is supposed to pull and install the updates:
    const handleExpoUpdate = async () => {
        try {
            const update = await Updates.checkForUpdateAsync();
            if (update.isAvailable) {
                await Updates.fetchUpdateAsync();
                await Updates.reloadAsync();
            }
        } catch (error) {
            console.error('Error checking for updates:', error);
        }
    };

    useEffect(() => {
        const subscription = AppState.addEventListener('change', (nextAppState) => {
            if (appState.current.match(/inactive|background/) && nextAppState === 'active') {
                // Check for update when app comes back from background
                handleExpoUpdate();
            }

            appState.current = nextAppState;
        });

        // Check for update when app mounts
        handleExpoUpdate();

        return () => {
            subscription.remove();
        };
    }, []);

I encountered the same issue, it seems that some Android phone don't pull the update somehow.

Hey,
Can you send me a URL of a sample update that doesn't work with Android devices?


Example of working from pull request

I've noticed this action doesn't work off the "main" branch very well.
We have a Pull Request review flow and I tried:
with:
          main-branch-name: ${{ github.ref_name }}

Though it errored with:
No explicit --head argument provided, but found environment variable NX_HEAD so using its value as the affected head

I re-read https://github.com/nrwl/nx-set-shas#problem and am I right to assume it's a solved problem with a PR workflow? If it is, why mention it in the README other to confuse dopes like me. =)

Hi there @kaihendry ! Thanks for filing this issue! Do you think this is just a documentation issue, and can be fixed by rewording the readme? What do you think would sound less confusing?


Provide interaction for external window

Is your feature request related to a problem? Please describe.
I follow the test example  to build a external widget/window inherit QOpenGLWindow in Qt.Use f3d.window.render() to draw the content.However, It doesn't interact with users the way Native types do,like handling mouse or keyboard event.
It may be a good idea to provide interaction for external window. Enable External Windows to have similar functionality as native Windows.

@Meakk do you think this is even doable ? Unless I'm mistaken the interaction layer would actually depend on the chosen lib providing the OpenGL context, at least it's how it is implemented for Qt in VTK.

Hmmm, we could have an external interactor too so the user can just forward the mouse/keyboard events, what do you think?
Something like interactor.triggerMouseEvent(type, posX, posY, buttonHeld).
I don't know what would be the complexity for that, but I guess having the redesign an interactor can be annoying for libf3d developers.

That would work I suppose. I wish we had an actual usecase first and I dont think @GitCodeBoy is still using the libf3d.

Here is example for tkinter in Python.
Idea is for quick mesh manipulation/prototyping using F3D viewer with its builtin properties.
LanPTR3D.zip

Copy from Discord discussion https://discord.com/channels/1046005690809978911/1248564285328851015

So, I've been thinking of our current interactor logic and how it's pretty much unusable when using an "external" window.
When using the external context, the event loop is managed externally so you cannot really do a interactor.start() .
The main issue is the user has to reimplement all the interaction logic and handle the camera manually, which is a huge pain point.
We've seen Nokse. reimplementing it, and I've also reimplemented it in Java for the Android implementation (spoiler: it doesn't work well)
One solution for that would be to add public forwarder API to trigger events manually from the app. It could be something like that:
while (userEventLoop)
{
  switch(eventType)
  {
    case MOUSE_MOVE:
      engine.getInteractor().triggerMouseMove(event.mouse_dx, event.mouse_dy);
    case KEY_PRESS:
      engine.getInteractor().triggerKeyPress(event.modifiers, event.key);
    case FILE_DROP:
      engine.getInteractor().triggerFileDrop(path);
    case...
   }
   engine.getWindow().render();
}

The code above is basically what VTK is doing for native interactors at low level when we call start().
By doing that, the user handles the event loop, but F3D will handle all kind of interaction so all camera manipulations, key bindings and file drop come for free for the user.

So in short we need to provide a dedicated API for this, so not breaking.


Fix build when the main folder contains flame.html or tree.html files

Tiny fix for the case that the current async-profiler folder contains flame.html or tree.html or files. The build script currently takes these files instead of the files from src/res, causing an error during the flame graph generation. This is problematic because flame.html is not an uncommon name for created flame graph files.

Oops, you apparently committed extra files

Oh, thanks for spotting this, I updated the commit.

Looks good now. Thanks for the fix.


Display square root of ACF, not ACF itself

We should show the square root of the ACF rather than the ACF since that is directly related to the rms height.
Any opinions @tdbjacobs @AntoineSIMTEK @mcrot ?

Both look very similar, probably because of the log scale. Here some plots for the example data from your paper:
ACF (unit: µm²)

sqrt(ACF) (unit: µm)

So maybe the sqrt only makes sense, if we plot RMS height at the same time as a horizontal line in order to allow a visual comparison?

Yes, they should look identical (except for the scales of the y-axis)!

It makes sense to me that it looks the same on a logscale.
I still think sqrt(ACF) is better because I can directly read that the RMS is 100nm without having to do a square root in my head.
I am not sure the visual comparison makes sense since the RMS height is exactly the last value.

Am 15.03.2021 um 17:50 schrieb Michael Röttger @.***>:
Both look very similar, probably because of the log scale. Here some plots for the example data from your paper:
ACF (unit: µm²)
https://user-images.githubusercontent.com/9113541/111189643-95480800-85b6-11eb-892a-614419f11fc2.png
sqrt(ACF) (unit: µm)
https://user-images.githubusercontent.com/9113541/111189727-adb82280-85b6-11eb-9802-8ec5af9013f4.png
So maybe the sqrt only makes sense, if we plot RMS height at the same time as a horizontal line in order to allow a visual comparison?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/ComputationalMechanics/TopoBank/issues/578#issuecomment-799574954, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJXV5WMK5P6GLUGK5L2LJEDTDY3GTANCNFSM4XX63WHA.

It might not be obvious to everyone that the last value is the RMS height.
I don't see a problem with somehow identifying it on the plot.
A horizontal line might become too busy if there are many data sets on the
same axes - but maybe marking the final datapoint with a data marker
(circle or asterisk) and then maybe a little explainer that the data marker
indicates the RMS height.
(We might try out a few alternatives and see which, if any, make it clear
and understandable.)
-Tevis
Tevis Jacobs
William Kepler Whiteford Faculty Fellow and Associate Professor
Mechanical Engineering and Materials Science
University of Pittsburgh
http://www.engineering.pitt.edu/JacobsLab/
Mail: 636 Benedum Hall, 3700 O'Hara St., Pittsburgh, PA 15261
Office: 538-E Benedum Hall,<PHONE_NUMBER>
@.***
On Mon, Mar 15, 2021 at 12:57 PM Antoine Sanner @.***>
wrote:

It makes sense to me that it looks the same on a logscale.
I still think sqrt(ACF) is better because I can directly read that the RMS
is 100nm without having to do a square root in my head.
I am not sure the visual comparison makes sense since the RMS height is
exactly the last value.

Am 15.03.2021 um 17:50 schrieb Michael Röttger @.***>:
Both look very similar, probably because of the log scale. Here some
plots for the example data from your paper:
ACF (unit: µm²)
<
https://user-images.githubusercontent.com/9113541/111189643-95480800-85b6-11eb-892a-614419f11fc2.png
sqrt(ACF) (unit: µm)
<
https://user-images.githubusercontent.com/9113541/111189727-adb82280-85b6-11eb-9802-8ec5af9013f4.png
So maybe the sqrt only makes sense, if we plot RMS height at the same
time as a horizontal line in order to allow a visual comparison?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <
https://github.com/ComputationalMechanics/TopoBank/issues/578#issuecomment-799574954>,
or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AJXV5WMK5P6GLUGK5L2LJEDTDY3GTANCNFSM4XX63WHA
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ComputationalMechanics/TopoBank/issues/578#issuecomment-799579737,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFOUYWSZQRABPIMYGWTI2D3TDY36ZANCNFSM4XX63WHA
.

I was wrong, it is only exactly the RMS - height once the values are uncorrelated
So adding the RMS-height might actually be interesting.

Am 15.03.2021 um 18:16 schrieb tdbjacobs @.***>:
It might not be obvious to everyone that the last value is the RMS height.
I don't see a problem with somehow identifying it on the plot.
A horizontal line might become too busy if there are many data sets on the
same axes - but maybe marking the final datapoint with a data marker
(circle or asterisk) and then maybe a little explainer that the data marker
indicates the RMS height.
(We might try out a few alternatives and see which, if any, make it clear
and understandable.)
-Tevis
Tevis Jacobs
William Kepler Whiteford Faculty Fellow and Associate Professor
Mechanical Engineering and Materials Science
University of Pittsburgh
http://www.engineering.pitt.edu/JacobsLab/
Mail: 636 Benedum Hall, 3700 O'Hara St., Pittsburgh, PA 15261
Office: 538-E Benedum Hall,<PHONE_NUMBER>
@.***
On Mon, Mar 15, 2021 at 12:57 PM Antoine Sanner @.***>
wrote:

It makes sense to me that it looks the same on a logscale.
I still think sqrt(ACF) is better because I can directly read that the RMS
is 100nm without having to do a square root in my head.
I am not sure the visual comparison makes sense since the RMS height is
exactly the last value.

Am 15.03.2021 um 17:50 schrieb Michael Röttger @.***>:
Both look very similar, probably because of the log scale. Here some
plots for the example data from your paper:
ACF (unit: µm²)
<
https://user-images.githubusercontent.com/9113541/111189643-95480800-85b6-11eb-892a-614419f11fc2.png
sqrt(ACF) (unit: µm)
<
https://user-images.githubusercontent.com/9113541/111189727-adb82280-85b6-11eb-9802-8ec5af9013f4.png
So maybe the sqrt only makes sense, if we plot RMS height at the same
time as a horizontal line in order to allow a visual comparison?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <
https://github.com/ComputationalMechanics/TopoBank/issues/578#issuecomment-799574954>,
or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AJXV5WMK5P6GLUGK5L2LJEDTDY3GTANCNFSM4XX63WHA
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ComputationalMechanics/TopoBank/issues/578#issuecomment-799579737,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFOUYWSZQRABPIMYGWTI2D3TDY36ZANCNFSM4XX63WHA
.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/ComputationalMechanics/TopoBank/issues/578#issuecomment-799594652, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJXV5WOEXI6X6C6YKBOWEILTDY6G7ANCNFSM4XX63WHA.

I have to paddle back on this. I think we should leave the ACF as is, but

Rename the variable bandwidth method to "Scale-dependent Height"
Display the sqrt of the ACF in that Scale-dependent Height plot
Also display the height obtained from a filtered PSD

I would do the same for scale-dependent slope and curvature, i.e. show the results of all three methods in that single plot.
This is related to #586.

I have to paddle back on this. I think we should leave the ACF as is, but
* Rename the variable bandwidth method to "Scale-dependent Height"

* Display the sqrt of the ACF in that Scale-dependent Height plot

* Also display the height obtained from a filtered PSD

Did you implement these changes or is it no longer necessary?

No longer necessary


feat: add @sapphire/embed-jsx

Fix lint errors and apply the general package structure like Favna suggested, and I'll review :)

Should be ready for review, unless people want more features :eyes:

before this is merged I need to combine title and url into one as a url isn't a valid option without a title

Pull Request Test Coverage Report for Build 763820382

51 of 52 (98.08%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 90.736%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

packages/embed-jsx/src/lib/EmbedJsx.ts
49
50
98.0%

Totals

Change from base Build 763381618:
0.3%

Covered Lines:
673

Relevant Lines:
735

💛  - Coveralls


sink/(ticdc): Add csv encoder into codec

What problem does this PR solve?

Issue Number: ref #6797
What is changed and how it works?
Add a feature-rich csv encoder in codec package.
This encoder will convert cdc row changed events into following format:
"I","employee","hr",433305438660591626,101,"Smith","Bob","2014-06-04","New York"
"U","employee","hr",433305438660591627,101,"Smith","Bob","2015-10-08","Los Angeles"
"D","employee","hr",433305438660591629,101,"Smith","Bob","2017-03-13","Dallas"

The meaning of each csv column is:

Col1: The operation-type indicator: I, D, U; I means INSERT, U means UPDATE, D means DELETE.
Col2: Table name, the name of the source table.
Col3: Schema name, the name of the source schema.
Col4: Commit TS, the commit-ts of the source txn. The exist of this column can be configured.
Col5-n: one or more columns that represent the data to be changed.

The csv encoder has the following basic rules:

If the column is a string, quote it if necessary and then output; otherwise directly output it.
If quote is not empty and quote mark is contained in the string column, then replace the quote mark in column with two quote marks.
If quote is empty and the string column contains special characters like '\r', '\n', '\' or delimiter, then escape those characters.

Check List
Tests

Unit test
Integration test

Questions
Will it cause performance regression or break compatibility?
No
Do you need to update user documentation, design documentation or monitoring documentation?
Yes
Release note
None

/cc @asddongmen
/cc @hi-rustin
/cc @3AceShowHand

Please ping me when this PR is ready!

/run-verify

Codecov Report

Merging #6942 (01e8b1f) into master (d8fff7a) will decrease coverage by 5.5153%.
The diff coverage is 70.7207%.

Additional details and impacted files

Flag
Coverage Δ

cdc
?

dm
51.8601% <ø> (+0.0226%)
:arrow_up:

engine
60.9259% <70.7207%> (+0.0678%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #6942        +/-   ##
================================================
- Coverage   59.6043%   54.0889%   -5.5154%
================================================
  Files           790        420       -370
  Lines         91089      52715     -38374
================================================
- Hits          54293      28513     -25780
+ Misses        32051      21486     -10565
+ Partials       4745       2716      -2029

/merge


HDDS-11915. Netty OpenSsl not available on arm64

What changes were proposed in this pull request?
Netty OpenSsl is not available on arm64:
UnsatisfiedLinkError: /tmp/liborg_apache_ratis_thirdparty_netty_tcnative_linux_aarch_6412907517136400085340.so: libcrypt.so.1: cannot open shared object file: No such file or directory

Install libxcrypt-compat explicitly to fix it.  (Previously it was automatically installed as dependency on amd64, but not on arm64.)
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-11915
How was this patch tested?
Tested the image built on push to my fork:
$ docker run -it --rm -v ~/.m2:/opt/hadoop/.m2 \
  ghcr.io/adoroszlai/ozone-runner:052dedfe508e9ea459824846d7c8ee317fb47ef9 \
  bash -c "echo 'org.apache.ratis.thirdparty.io.netty.handler.ssl.OpenSsl.isAvailable()' | jshell --class-path ~/.m2/repository/org/apache/ratis/ratis-thirdparty-misc/1.0.6/ratis-thirdparty-misc-1.0.6.jar"
...

jshell> org.apache.ratis.thirdparty.io.netty.handler.ssl.OpenSsl.isAvailable()$1 ==> true

Thanks @dombizita, @jojochuang for the review.


Stuck on Install modding framework to fodler from zip

I want to know Where I can find the zip folder, I can't seem to find it anywhere I installed the framework but am stuck on this please help

What issue are you experiencing? Which version of the UCP are you trying to use? Are you using the new GUI? What zip folder are you expecting to see?


A new template added

Description
Hi i added a new portfolio template
Changes Made

I added a new folder named easy containing the necessary files for the template.
Included an index.html style.css and main.js

yes sir i will add it asap


fix: assert valid jarm response

Maybe we can add a test covering this?

I added a basic test. It works, but I am not sure if we should include it like this.


Consider merging into queue_classic

I think there is a lot of interest in seeing this merged into queue_classic. Any objections? Here is the original thread.

A PR with similar functionality has been merged today in the core and I just added a note about this in the README for this project. Closing the issue.
As a side note, I released 3.1 RC1.


Broken Catalyst support

Starting with Xcode 12.2 the project does not compile anymore for Catalyst. We get building for Mac Catalyst-arm64 but attempting to link with file built for unknown-x86_64 messages during compilation, linker errors for symbols not found (because some files could not be compiled).
Issue is the same with Xcode 13 beta. We are not the only ones affected, e.g.

https://stackoverflow.com/questions/64865065/mac-catalyst-build-fails-with-building-for-mac-catalyst-x86-64-but-attempting-t
https://apple.stackexchange.com/questions/408205/can-t-link-c-code-to-dylib-in-xcode-12-2-release-build-only
https://github.com/realm/realm-cocoa/issues/6619

Fixed in Xcode 14. This also required a minor demo file list fix made on feature/ios16-tvos16-xcode14.


Can't find search key

HTTP ERROR 500 java.lang.IllegalStateException: Can't find search key

The search error message has changed to:
HTTP ERROR 500 java.lang.IllegalStateException: Response is not 199 from HLTB server, can't get search key
The overview now also shows the following error message:
HTTP ERROR 500 java.lang.NullPointerException

Sorry for long inactivity, I forgot about GitHub for a month 😅
This problem is fixed for now, but it will certainly return in future. HLTB banned my fly.io machine IP address from accessing their website, I fixed by changing IP. It's a cat and mouse game, they will eventually ban new IP too

Error returned

Fixed by #28

It seems HLTB have broken the proxy again 😞


✨ feat: API returns timestamp to client SDK

We need to check our client-js-sdk to see if we also need to add SendToExperiment field to the response


@clean_names has a little problem with abbreviation feature name

If feature  is abbr.  then will add _ , like  id => i_d, bmi=>b_m_i
Diabetes Dataset

For the @clean_names() package, we actually wrap the polish_names() function from Cleaner.jl.
I would suggest opening an issue there: https://github.com/TheRoniOne/Cleaner.jl
You're right that when janitor sees multiple consecutive capital letters, it doesn't add underscores to separate them.
I'll leave this issue open on our end so we can track this. Thank you!

This is now fixed thanks to a fix to Cleaner.jl (Thanks @TheRoniOne!)


Enable VerifyVersions phase for any activity against the release branch.

This will speed-up people doing the release.

This CI failed in the expected and desired way for this PR. From my perspective, it is ready to be merged. :)


Website improvements

[ ] Search with Algolia (assigned to @lluia )

[ ] Better design on the bottom part of the home page

[x] Previous/next links on documentation for better navigation (done by @k-sav in #375)

[ ] Disable focus on read-only code blocks (suggested by @darekkay in https://github.com/reakit/reakit/issues/351#issuecomment-492394435)

[ ] Fix og:url metatags for inner pages (assigned to @MateusAndrade)

[ ] social cards (twitter, facebook) should be minimal for inner pages (horizontal card)

[x] Hide props returned by state hooks from the documentation (maybe put them inside a <details>)

[ ] Add a Styling section to each component README

[x] Add Spectrum community link on header

[x] Add Spectrum and StackOverflow icon links on footer

More coming...

I've already posted this suggestion on Hacker News: The "npm install reakit" textarea is focusable but doesn't have a focus ring (your code examples all do). I'd either add a focus ring or disable the focus altogether (as the field is not editable).

Hey @diegohaz love what y'all have done till now. Would love to pick on the Search with Algolia part.

It's yours @theevilhead.

Hey @diegohaz what are your ideas on the implementing the search
and only components can be searchable?

@theevilhead I'm not familiar with Algolia yet. Not sure how to implement it. But all the pages under /docs/ should be searchable.

On the second thought. Is algolia actually needed for this. Seems like an overkill? Maybe we can use https://github.com/kbrsh/wade or https://github.com/nextapps-de/flexsearch

Algolia is used by all the documentation sites I see out there, even simple ones like https://reactjs.org. I'd choose it just because of this.

@diegohaz with  "Fix og:url metatags for inner pages" do you mean changing SEO.tsx to apply meta-tags on the meta prop?

@MateusAndrade It's applying the meta og:url but all the pages get https://reakit.io (coming from gatsby-config.js). We have to append the pathname to this url so pages like https://reakit.io/docs/get-started/ would have exactly this link for the meta tag.
It could be fixed by appending props.location.pathname, but I'm not sure if it works on the server (which is required, since it's essentially for crawlers). To test it on server, run yarn build && yarn website:build && yarn website:serve (subsequent tests need only yarn website:build && yarn website:serve)

@MateusAndrade It's applying the meta og:url but all the pages get https://reakit.io (coming from gatsby-config.js). We have to append the pathname to this url so pages like https://reakit.io/docs/get-started/ would have exactly this link for the meta tag.
It could be fixed by appending props.location.pathname, but I'm not sure if it works on the server (which is required, since it's essentially for crawlers). To test it on server, run yarn build && yarn website:build && yarn website:serve (subsequent tests need only yarn website:build && yarn website:serve)

I can pick this. Im still a newbie about gatsby but it can be a good way to start with it

Is the footer still around? I was thinking something like this:

Ignore the icons stacking in a column. I was editing the html in the browser console and wasn't able to create a containing div.

Algolia is used by all the documentation sites I see out there, even simple ones like https://reactjs.org. I'd choose it just because of this.

Cool, will stick with Algolia then.

The documentation site is really nice!
A minor issue i noticed - The react roots you create on pages aren't unmounted when navigating. You can see each page change will add a new root to the React DevTools.
On the "Portal" page, it will add a portal to <body> with the the text but I am detached at the bottom of the page., that sticks around after navigating. It would be removed if the root was unmounted.

Hey @diegohaz could you register yourself here? and give me the creds. https://community.algolia.com/docsearch/

@theevilhead Done. Will paste here the snippet when they send it to me.

@theevilhead

Hi there,
Congratulations, your search is now ready!
I've successfully configured the underlying crawler and it will now run every 24h.
You're now a few steps away from having it working on your website:

Copy the following CSS/JS snippets and add them to your page

<!-- at the end of the HEAD -->
<link rel="stylesheet"<EMAIL_ADDRESS>/>

<!-- at the end of the BODY -->
<script type="text/javascript"<EMAIL_ADDRESS><script type="text/javascript"> docsearch({
apiKey: '2f44778ac6ae42bb4edea44efbb0b647',
indexName: 'reakit',
inputSelector: '### REPLACE ME ####',
debug: false // Set debug to true if you want to inspect the dropdown
});
</script>

Add a search input in your page if you don't have any yet. Then update the inputSelector value in JS snippet to a CSS selector that targets your search input field.
Optionally customize the look and feel by following the DocSearch documentation (https://community.algolia.com/docsearch/styling.html)
You can also check your configuration in our GitHub repo (https://github.com/algolia/docsearch-configs/blob/master/configs/reakit.json).

Please open a pull request if want to leverage your configuration!
Feel free to get back to us if you have any issues or questions regarding the integration.
We'd also be happy to get your feedback and thoughts about DocSearch - so we can continue to improve it.
Have a nice day :)

Thank you @diegohaz , I will take it from here.

Hi @diegohaz
noticed a small UI issue on the website.

These tabs doesn't show the cursor: pointer on hovering over them with mouse for selection (while the other tabs seems to have them)
Running on macOS

should I grab this since it's related to: #359

Is anyone already looking at Previous/next links on documentation for better navigation ?

No one yet @k-sav. Feel free to take it :)

Cool. I will take a look over the weekend @diegohaz

@diegohaz any of the TODOs above ☝ that you'll like me to do, I'm fine with grabbing any 🙃

@lluia I really want to get the Algolia search sorted out. @theevilhead started it on #381. I guess you can continue from there if you like. :)

@diegohaz
I started a POC of adding Algolia search ☝🏻  , if you find some time to 👀  and feedback on the approach / UX.
I still need to verify that the integration with the service works, write tests and cleanup some layout issues 👍🏻

@diegohaz
I'm happy to take on adding styling sections to the component readme's if you still want that done.

@AliLynne Sure! It's all yours! I would only suggest doing a module at a time (one per PR).

The below is what's in my mind and you can use as a starting point if you think it's useful, but feel free to propose anything else:
If people don't use the experimental system packages like reakit-system-bootstrap (and most don't use) they may be curious about how to reproduce the styles presented in the examples. Those can be found here: https://github.com/reakit/reakit/tree/master/packages/reakit-system-bootstrap/src
When people ask me about styling I usually point them to that package so they can use it as a reference (only the css, ignoring things specific to reakit-system-bootstrap). So I guess a good start would be extracting those styles to examples using styled-components, emotion or something similar. Also, there's this more generic styling page: https://reakit.io/docs/styling/

@diegohaz how are we with this? Any feature, in particular, you would like me to start with? 🙇🏻♂
I'm happy to jump on some other issue as well, as I see there's quite a few with the help wanted label 👍🏻

@lluia The styling sections that I was discussing with @AliLynne above is a good one as there's a lot of pages needing it (right now I think only Button has this section: https://reakit.io/docs/button/#styling). 😊


A question about when to stop training

I am a novice in this area. When I was reading the code, I couldn't find when the training would finish. Could you please tell me when should I finish my training? Thank you very much for your help.

Maybe you can turn to ChatGPT for help.


python.pkgs.cython: hash backport & 0.29.14 -> 0.29.15

Motivation for this change
cython/cython#2752 has already been accepted
upstream, is minimally invasive (only adds a feature, shouldn't break
any existing code) and is needed for the sage python3 update. Sage needs
this capability because it defines its own integer type.
While I was at it I also updated Cython to the latest point release.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @FRidh

40k rebuilds :(

I cannot reproduce this. R builds on this branch, as well as on current staging. Maybe there was some breakage on staging HEAD at the time of your testing.

possible

I don't understand what is going on here; Cython 0.29.15 is not available on PyPI.

That is weird. Its not on the github releases page either.
I don't remember where I saw the update, but it must've been either the releases page or pypi. Maybe they recalled it? Is that possible?
Either way, we should probably revert that part of this PR. https://github.com/NixOS/nixpkgs/pull/74869


Finding groups: (Auto) Group By and more enhancements

Finding Group enhancements:

Allow to auto group on import/reimport (by component_name for example)
Fix sla display bug for empty groups
Allow edit of finding group on edit_finding page
Allow group by component name/version/filepath via bulk edit

Main feature is automatic grouping, so in the UI or API a group_by field has been added. Setting group_by to component_name on import or reimport will add all new findings automatically to a group based on the component_name field.
If push_to_jira or push_all is enabled, the groups will be pushed to JIRA.
There's also the possibility on the edit finding page now to modify the group for a finding.
While doing this PR I thought of some more things we could/should do for the finding groups, but ideally we get some more feedback first :-)

I could make it crash
Template error:
In template /app/dojo/templates/base.html, error at line 341
   '<' not supported between instances of 'NoneType' and 'int'
   331 :                                         Calendar
   332 :
   333 :

   334 :                             {% endif %}
   335 :                             {% if request.user.is_staff %}
   336 :

   337 :                                       Questionnaires
   339 :

   340 :
All Questionnaires

   341 :
All Questions

   342 :
   343 :

   344 :
   345 :

   346 :                             {% endif %}
   347 :

   348 :
   349 :
   350 :                                         Configuration
   351 :

Traceback:

File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py" in inner
  34.             response = get_response(request)

File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib/python3.8/site-packages/django/views/decorators/debug.py" in sensitive_variables_wrapper
  36.             return func(*func_args, **func_kwargs)

File "./dojo/authorization/authorization_decorators.py" in _wrapped
  39.         return func(request, *args, **kwargs)

File "./dojo/test/views.py" in view_test
  169.     return render(request, 'dojo/view_test.html',

File "/usr/local/lib/python3.8/site-packages/django/shortcuts.py" in render
  36.     content = loader.render_to_string(template_name, context, request, using=using)

File "/usr/local/lib/python3.8/site-packages/django/template/loader.py" in render_to_string
  62.     return template.render(context, request)

File "/usr/local/lib/python3.8/site-packages/django/template/backends/django.py" in render
  61.             return self.template.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render
  171.                     return self._render(context)

File "/usr/local/lib/python3.8/site-packages/django/test/utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render
  937.                 bit = node.render_annotated(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render_annotated
  904.             return self.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py" in render
  150.             return compiled_parent._render(context)

File "/usr/local/lib/python3.8/site-packages/django/test/utils.py" in instrumented_test_render
  96.     return self.nodelist.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render
  937.                 bit = node.render_annotated(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render_annotated
  904.             return self.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/loader_tags.py" in render
  62.                 result = block.nodelist.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render
  937.                 bit = node.render_annotated(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render_annotated
  904.             return self.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/defaulttags.py" in render
  309.                 return nodelist.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render
  937.                 bit = node.render_annotated(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render_annotated
  904.             return self.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/defaulttags.py" in render
  309.                 return nodelist.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render
  937.                 bit = node.render_annotated(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render_annotated
  904.             return self.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/defaulttags.py" in render
  209.                     nodelist.append(node.render_annotated(context))

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render_annotated
  904.             return self.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/defaulttags.py" in render
  309.                 return nodelist.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render
  937.                 bit = node.render_annotated(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render_annotated
  904.             return self.render(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in render
  987.             output = self.filter_expression.resolve(context)

File "/usr/local/lib/python3.8/site-packages/django/template/base.py" in resolve
  698.                 new_obj = func(obj, *arg_vals)

File "./dojo/templatetags/display_tags.py" in group_sla
  246.     return finding_sla(group)

File "./dojo/templatetags/display_tags.py" in finding_sla
  256.     find_sla = finding.sla_days_remaining()

File "./dojo/models.py" in sla_days_remaining
  2370.         return self.sla_days_remaining_internal

File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py" in __get__
  80.         res = instance.__dict__[self.name] = self.func(instance)

File "./dojo/models.py" in sla_days_remaining_internal
  2367.         return min([find.sla_days_remaining() for find in self.findings.all()])

Exception Type: TypeError at /test/2
Exception Value: '<' not supported between instances of 'NoneType' and 'int'

I could make it crash.

He who break its, shall fix it
I'll take a look, thanks for the sample files.

Thanks @madchap, could reproduce. Problem was with findings of Info severity, which don't have an "SLA Days Remaining value" (and SLA Start Date). This is now fixed, also added some missed prefetches. Could you retest / confirm?

Well done

Question about groups of 1 finding. Should we maybe just pass on creating a group?

The main usecase, I think, is to report findings per component to JIRA. So even if there's only one now, it makes sense to report as a group. On a next reimport there might be 2 vulns inside a component and then we could just update the existing jira issues for the group.


Server Access Request

What is your experience playing modded Minecraft?

I started playing minecraft since 2012.

Yep.

What is your Minecraft username?

Tezacarius

Please re-state the server rules in your own words

Be polite in communication.
Do not disturb other players (if they didn't allow pvp, building, etc.)
Do not litter the world with horrible object (earth pillars, etc.)

Sounds good! Welcome to the server! If you run into any problems, feel free to ask for help on the Discord channel.


Can not convert Caffe model to theano

Im  beginner in caffe and I want to convert caffe model to theano mode and this it the result
 `jmj@img-01:~/caffe-to-theano-master$ python caffe_to_theano.py lenet_train_test.prototxt mnist_iter_500000.caffemodel
/usr/local/lib/python2.7/dist-packages/theano/tensor/signal/downsample.py:6: UserWarning: downsample module has been moved to the theano.tensor.signal.pool module.
  "downsample module has been moved to the theano.tensor.signal.pool module.")
Using gpu device 0: Tesla K20m (CNMeM is disabled, CuDNN not available)
loading structure from lenet_train_test.prototxt
loading data from mnist_iter_500000.caffemodel
Traceback (most recent call last):
  File "caffe_to_theano.py", line 47, in <module>
    in_size = [batch_size, net_param.input_dim[1], net_param.input_dim[2], net_param.input_dim[3]]
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/internal/containers.py", line 64, in __getitem__
    return self._values[key]
IndexError: list index out of range`

what should I do ?

@Boltfox I met the same issue as you. Looks like this repo was abandoned for a long time.


Add 'view all' link to OCP details

This adds the 'view all' link to the top 3 projects in OCP details. When 'others' is shown, this provides a modal to show all projects.
Note that this link is already included with AWS and OCP on AWS.
Fixes https://github.com/project-koku/koku-ui/issues/690
Grouped by cluster:

View all projects modal:

Codecov Report

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

@@           Coverage Diff           @@
##           master     #718   +/-   ##
=======================================
  Coverage   79.93%   79.93%
=======================================
  Files         221      221
  Lines        3384     3384
  Branches      546      546
=======================================
  Hits         2705     2705
  Misses        599      599
  Partials       80       80

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f08df48...db375ea. Read the comment docs.


exec not found with update 278

our servers updated right now to the ark version 278 and wont start anymore. it says exec not found

got the same tried:
arkserverroot="/home/steam/ARK"
arkserverexec="ShooterGame/Binaries/Linux/ShooterGameServer"
No luck :/

is fixed with new update

try "arkmanager install" will make the deal

also tried  "arkmanager install"  with no luck, new updated fixed the problem it seems


Failed to resolve v1.1.0 from jitpack.io

Failed to resolve: com.github.lincollincol:compose-audiowaveform:1.1.0

Could you please fix it help me? thanks!

Hello! Thank you for this bug report.
This issue should be fixed in v1.1.1
implementation 'com.github.lincollincol:compose-audiowaveform:v1.1.1'


ReleaseDate can change or is not consistent

When looking at the current sofa feed you can see
    "OSVersions": [
        {
            "OSVersion": "Sonoma 14",
            "Latest": {
                "ProductVersion": "14.5",
                "Build": "23F79",
                "ReleaseDate": "2024-05-20T00:00:00Z",
                "ExpirationDate": "2024-10-08T00:00:00Z",

vs in the SecurityReleases section
            "SecurityReleases": [
                {
                    "UpdateName": "macOS Sonoma 14.5",
                    "ProductName": "macOS",
                    "ProductVersion": "14.5",
                    "ReleaseDate": "2024-05-13T00:00:00Z",

there is a week difference in these release dates, which would impact nudge as I honor the ReleaseDate key
We could add a LastModified key vs the original key is always consistent and perhaps a simple JSON that looks like this to cache previous release dates. We then look for this cache json state file and if the date changes, return this value instead and just bump this LastModified key
[
  {
    "ProductVersion": "14.5",
    "ReleaseDate": "2024-05-13T00:00:00Z"
  }
]

confirmed fixed as of
https://github.com/macadmins/sofa/commit/7098545d0b50b9c2c2fa8e7c7213b59d263f3d1c


Defender Advanced Threat Protection app is not available

The Microsoft / Windows Defender Advanced Threat Protection app is not available anymore in the AppSource. At least, I can't find it.
Is this correct?

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

ID: c94f17bc-9075-8816-0087-a58388c94266
Version Independent ID: c024d528-b4bf-b069-c54f-764a04f27aa5
Content: Create and build Power BI reports using Microsoft Defender ATP data
Content Source: windows/security/threat-protection/microsoft-defender-atp/powerbi-reports.md
Product: w10
Technology: windows
GitHub Login: @mjcaparas
Microsoft Alias: macapara

@BurgerhoutJ  You said is correct. Because its not free to download.. instead you must sign up to get trail with organization email or with personal email.

@RAJU2529 What's not free? PowerBI or the app that I want?

@BurgerhoutJ. If you want real experience and need to use  DATP then you must sign in with work email id.
here is the link
https://www.microsoft.com/en-in/microsoft-365/windows/microsoft-defender-atp?ocid=docs-wdatp-powerbireports-abovefoldlink&rtc=1
moreover, you can download free and use  Power Bi app from Microsoft store
https://powerbi.microsoft.com/en-us/get-started/

@BurgerhoutJ . You can download  as standalone power bi desktop setup file from Microsoft official website
https://www.microsoft.com/en-us/download/details.aspx?id=58494
i hope i answered your queries

@BurgerhoutJ - From our understanding, the issue you raised has been answered by RAJU2529 so we will close this issue.
Thank you for your contribution to make the docs better! Much appreciated!


Undefined is not an object ( ViewPropTypes.styles )

When i import the Emoticons module, i get this error Undefined is not an object ( ViewPropTypes.styles ) in DefaultTabBar.js

refer to this issue


add resp3 protocol part 5(replace to resp3)

Pull Request for issue
#76
Description
replace protocol to resp3
Testing Instructions
Excepted Behavior
Actual Behavior
Additional Comments

tnx @Chyroc


mxmlNewTextf error

Hello,
When a I make this code :
mxmlNewTextf(data1, 1, "%d",10);

I have an exception in
_mxml_vstrdupf  function  (vsnprintf)
A juste make a change  to work good (add "&" to memcpy src).
#ifndef va_copy
#  ifdef __va_copy
#    define va_copy(dst,src) __va_copy(dst,src)
#  else
#    define va_copy(dst,src) memcpy(&dst, &src, sizeof(va_list))
#  endif /* __va_copy */
#endif /* va_copy */

bye

@bipbip59 What operating system? What compiler?

sorry, I use c++ builder XE7 (windows 8.1) but it's a console programm. I don't use WIN_32 define because
this compiler don't have _vscprintf

(Reference original issue #184)
OK, that is not a compiler I currently support for Mini-XML. But it sounds like BCC has a similar problem as some versions of Visual Studio...

[master a90ff17] Update va_copy macro for BCC (Issue #211)


Dado y loaded die

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

20 of 20 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
89

Relevant Lines:
89

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

20 of 20 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
89

Relevant Lines:
89

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

20 of 20 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
20

Relevant Lines:
20

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

20 of 20 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
20

Relevant Lines:
20

💛  - Coveralls


add support for cloud providers

Actionable Items:

[ ] Add support for AWS

Expand EC2 Support

[ ] Add support for Azure
[ ] Add support for VMware
[ ] Add support for Digital Ocean
[ ] Verify provisioner

[ ] Payload request
[ ] Verify provisioner payload response
[x] Verify provisioner payload acknowledgement (MIQ)

[ ] Refactor product types into api

Updated first ticket update (removed Google, added VMware)

See Fog RubyDocs for reference

See here for how to downgrade phantomjs to 1.9.8 for feature specs to pass

AWS To Do:

Add ability to provision greater than t1.micros

Azure To Do:

Add ability to provision VM

Can provision in mock mode, but attempts to provision on Azure IRL are not working because of the consistently occurring error: The virtual machine image source is not valid.
Azure doesn't provide your user access to default VM images that are provisionable via API, instead you need to create a VM through the Azure Management Portal. (trying to figure out this part out) Then you can generate a VM image from that instance which you can add to your accounts list of provisionable images via API. THEN you use the image ID to provision via Azure Ruby SDK.

Add ability to provision Storage
Add ability to provision Databases

Investigating how to setup image id
Choose selection from Azure Image Gallery:
http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-create-custom/
Login to the VM to prep it for cloning:
http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-how-to-log-on/
Template the VM to use as a base for clones:
http://blogs.technet.com/b/keithmayer/archive/2013/01/17/step-by-step-templating-vms-in-the-cloud-with-windows-azure-and-powershell-31-days-of-servers-in-the-cloud-part-17-of-31.aspx

RubyGems Repo: https://rubygems.org/gems/jellyfish-fog

Gem Commit History:

0.0.1: 51697c13a12bd6849e4218a93f4073ace7245eae
0.0.2: 2e08932ba61175001076848df9e3d7ae3b5b0b95


Update Fulda.json

change 'Deutschland' to 'Germany' so that Fulda is shown in the country list under "Germany" and not "Deutschland"

Well spotted, thanks!


Fix #224 - aliased column in function

Fixed the aliased column in function call issue. When in a function call, columns must not have alias. Added some tests as well.

Hi @brianc. More conflicts resolved. I think this one is good to merge too

:dancer: