Drawing of the distribution curve

Dear Ben,
Using violinplot, I observe an unwanted extension of the drawing of the distribution curve beyond the minimum and the maximum value of the measurement values. It is not possible to 'chop' that from the distribution line unless you are able (as an user) to delete the data points used to draw the line beyond the real data values. That is mostly likely not something you want me to do.
So, I will try to explain my point with the following example for which I use my own data. In this case the annual salary of 30.000 working professionals in The Netherlands. That data was log transformed, centered and bounded between 0 and 1 for this example. Github will not allow me to upload a dta file, so, I will email that to you.
The code to draw the distribution using tw kdensity is:
tw kdensity bd_zs_lnMsalYer21 , n(200) ysc(off) xsc(noex) ylab(none) ytit("") xtit("") legend(off) name(kden, replace)
which results in:

The code to draw the distribution using violinplot is:
violinplot bd_zs_lnMsalYer21 , n(200) left nowhisk nobox nomed xtit("") ysc(off) xsc(noex) name(violin, replace)
which results in:

My 'problem' is that the distribution curve is now extended beyond the minimum and the maximum value of the measurement values.
I suppose that this is due to way the formulation works (but notice the alternative that  joy_plot offers below).
The code to draw the distribution using joy_plot is:
joy_plot bd_zs_lnMsalYer21 , ysc(off) xsc(noex) fc(none) ytit("") xtit("") legend(off) cap("") name(joy, replace)
which results in:

Fernando's joy_plot draws a 'closed' object by which the extremes are gradually thinned. I suppose that sort of signals that there are less and less data points in the distribution. Something comparable to your 'rags'. I am not asking you to do something simular although this might work very well when drawing split-violin plots as the upper and lower end of the distribution will be 'sharp'. You would have to read his ado file about how he implemented this (certainly you can write him too).
But, most wanted by me for now would be to have  violinplot not draw a distribution line beyond the minimum and the maximum value of the measurement values.

Hi Eric, try option tight. It is quite standard to add some padding in density estimation and this is also how violinplot behaves by default. However, you can specify tight to enforce an evaluation range from the observed min to max.

Dear Ben, after installing your last update (version 1.1.1), I added tight to my code, like:
use "NSO21_Example_Salary.dta" , clear
violinplot bd_zs_lnMsalYer21 , n(200) tight left rag(unique mc(%20) off(-.03)) nowhisk nobox nomed ///
   ysc(off) xsc(noex) xtit("") name(violin, replace)

but, an error message is returned:
option tight not allowed
r(198);

Possibly something needs correction.

Hi Eric, I forgot to mention: you need to update dstat and moremata. That is, type
ssc install dstat, replace
ssc install moremata, replace

violinplot calls dstat, which calls mm_density() from moremata. The default in mm_density() is to use a padded evaluation grid, but in the updated version there is now also an option to use a tight grid (using a tight grid was always possible, but the limiting values had to be provided manually; the new option automates this). I then added a tight option to dstat and finally to violinplot.

To be precise, option tight was available in violinplot already since version 1.0.4 (25oct2022), but in version 1.0.7 (20nov2022) I moved this functionality into mm_density(). At this point I also added ltight and rtight to use a tight grid only on one side of the distribution.

You are right Ben, the system I was using did not have the last version of dstat and moremata. I should have checked that. So, now indeed I get the desired result:

I am very happy with this option.
Then, about your note that 'it is quite standard to add some padding in density estimation'. Well, yes, I am aware that this is usual practice and possibly sensible when dealing with measurements on a continuous ratio scale that supposedly has no limits. Or, is the notion that we should understand the density curve as some formulation that is bounded beyond the values present in the set?
My understanding is that the kernel density curve sums up to a (dimensionless) total of 1. If so, my view is that such curve should visualize in between the maximum and minimum value of the measurement. Certainly that would make sense (to me) when we have a measurement that is bounded between 0 and 1 (or any other values). Hence my inclination to use 'tight' distribution curves when drawing a violin plot.

Exactly, density curves are constructed in a way such that the area under the curve integrates to 1. Technically, this is no longer true if you truncate the curve at the observed min and max (unless you apply boundary correction, see options ll() and ul() in pdfopts(); sometimes, variables have known bounds, e.g. "number of hours worked" cannot be negative; in such cases it makes sense to provide this information to density estimation to avoid an artificial drop of the curve in the region of the boundary). The purpose of the padding is to allow the density curve to go to zero (at least approximately) below the min and above the max, that is, to display the full curve. In essence, the idea is that your data is a sample from a population and that you want to get an idea of how the population is distributed (and the data in the population may go beyond the observed min and max). However, a violin plot can also be used to illustrate the features of the data, not necessarily the population, and in this case I agree it make sense to truncate the curve at the observed min and max, so that one does not get a wrong impression and sees where the actual min and max are.

Dear Ben, thank you for your helpful further explanation. I have read the relevant sections in the dstat and mm_density() help files. I try to understand what I can but I excuse beforehand when that is unsufficient. I compared the above example using pdfopts(ll(0) ul(1)) and that does not make a difference in the visualisation (maybe in related statistics, I did not explore that). So, next, I try my hand at another example of a bounded scale. In this case it is about my students who might earn in between 0 and 60 ects during their first year at our university of applied sciences. This for a more involved study of their demographic and psycho-social profiles in relation to educational outcome as measured by ects. With this data I do get a difference. I show you my code so you can compare the use of options. First, using violinplot the code using tight is:
* tight
local constraint "pl_ptnaherk>=0 & degreeVts18!=. & c_cohort==7"
violinplot pl_ptnaherk if `constraint' , n(200) pdfopts(k(e)) left tight ///
nowhisk nobox nomed xsc(noex) xlabel(0(5)60) xmtick(1(1)59) xtit("ects", m(t+2 b-2)) name(violinplot1, replace)

which results in:

I tried to get the density scale also visualized on the y-axis but somehow I fail to set the option for that to happen incorrectly. Maybe you can tell me how to do that.
Because dstat is used to do the calculations, I replicate using this code:
local constraint "pl_ptnaherk>=0 & degreeVts18!=. & c_cohort==7"
dstat density pl_ptnaherk if `constraint' , n(200) k(e) tight ///
gr(p1(ysc(noex) ylab(, labs(*1) angle(none))) xsc(noex) xmt(1(1)59) ///
xlabel(0(5)60) xtit("ects", m(t+2 b-2)) name(dstat1, replace))

which results in:

Next, the same but with not using tight but instead ll(0) ul(60) :
local constraint "pl_ptnaherk>=0 & degreeVts18!=. & c_cohort==7"
dstat density pl_ptnaherk if `constraint' , n(200) k(e) ll(0) ul(60) ///
gr(p1(ysc(noex) ylab(, labs(*1) angle(none))) xsc(noex) xmt(1(1)59) ///
xlabel(0(5)60) xtit("ects", m(t+2 b-2)) name(dstat2, replace))

which results in:

I suppose that this is as more trustworthy visualisation because at either end of the density curve we see a straight line pointing to the high density value at 0 and 60 (which is indeed the case as these are the drop-outs and most succesful students). I think this underpins your point 'to avoid an artificial drop of the curve in the region of the boundary'.
Then, before all of this I have used Stata's kdensity, like:
local constraint "pl_ptnaherk>=0 & degreeVts18!=. & c_cohort==7"
tw kdensity pl_ptnaherk if `constraint' , n(200) k(ep) ///
xsc(noex) ysc(noex) ylab(, labs(*1) angle(none)) ///
ytit("") xtit("ects", m(t+2 b-2)) xlab(0(5)60 , labsize(*1.1) tlwidth(*1)) ///
xmtick(1(1)59) name(kden, replace)

which results in:

I suppose that I now have to conclude that this visualization is horribly wrong (I have been using this for years!).
What puzzles me somewhat is that in all of the above I set the kernel method to Epanechnikov, yet the result is so different even without using the ll() and ul() options.
Can you explain to my why this is?
And maybe how dstat could replicate Stata's kdensity result as such?

Hi Eric, this seems to be a difficult case for density estimation. Kernel density estimation works well for distributions that are smooth, at least to a certain degree. Strong heaping (in your case at 0 and 60) creates discontinuities that are difficult to capture because, fundamentally, kernel density estimation rests on the assumption that there are no discontinuities. So, in data such as the ones above it is always good to also take a look at a histogram with a sufficient number of bins.
The reason why kdensity and violinplot or dstat provide different estimates is that kdensity uses a different method to determine the bandwidth (i.e. the smoothing parameter). The method use by kdensity is called "optimal of Silverman" and is a rule-of-thumb method that works well only for rather smooth distributions. violinplot and dstat, by default, use a 2nd generation bandwidth selector that is supposed to be more adaptive (i.e. small bandwidth if the distribution is jumpy, large bandwidth if it is smooth). You can specify bwidth(silverman) to use the optimal of Silverman instead. This will lead to a similar result as kdensity (the bandwidth computed by kdensity will be about 1% larger than the Silverman bandwidth computed by dstat if the kernel is epanechnikov; in dstat the bandwidth is adjusted to the canonical bandwidth of the chosen kernel, as it should; kdensity, however, always uses the bandwidth formula appropriate for a Gaussian kernel, irrespective of the choice of the kernel; the mentioned 1% difference is because the canonical bandwidth of the Gaussian kernel is a bout 1% larger than the canonical bandwidth of the Epanechnikov kernel).

I compared the above example using pdfopts(ll(0) ul(1)) and that does not make a difference in the visualisation

Since in this example the density curve is already practically zero at the min and at the max, boundary correction will be too small to be visible.

I tried to get the density scale also visualized on the y-axis but somehow I fail to set the option for that to happen incorrectly. Maybe you can tell me how to do that.

Short answer:  specify dscale(.).
Long answer: violinplot displays a categorical axis by default because this is what one usually would want. It also rescales the density estimates so that all estimates are within 0 and 0.5 (if multiple violins are plotted, the default gap between violins is 1 unit; the rescaling makes sure that the violins do not overlap), so printing the scale on the axis would be misleading. You can change how rescaling is done using option dscale(). In particular, you can specify dscale(.) to omit rescaling and use the original values of the density estimate. In this case, as long as only one violin (or only one set of overlaid violins) is plotted, the scale will be shown on the axis because it is now meaningful.

Dear Ben, my douze points go to the '2nd generation bandwidth selector'! Your further explanation about the differences in methodology between kdensity and dstat is most helpful. The scale(.) option works just fine, my result is:

I take note  of your cautionary remark in the Long answer.
Next, I have to exercise further with my ects case, reconciling the result of dstat/violinplot with that from your (updated) reldist (graph). So, please keep this Issue open as I want to share my upcoming result with you (with some questions).

Dear Ben, first, I have to confirm that it is very well possible to arrive at more or less the same distributional pattern as Stata's kdensity does, using the option pdfopts(bwidth(silverman)), like:
local constraint "pl_ptnaherk>=0 & degreeVts18!=. & c_cohort==7"
violinplot pl_ptnaherk if `constraint' , n(200) pdfopts(bwidth(silverman)) left tight ///
nowhisk nobox nomed dscale(.) ysc(noex) ylabel(,angle(none)) ///
xsc(noex) xlabel(0(5)60) xmtick(1(1)59) xtit("ects", m(t+2 b-2))

which results in:

So, that is comfortable to know and at the same time a 'big' warning to no longer use that method when the case at hand involves a bounded scale and/or heaps of data at either end of the scale, or at both ends.
I suppose the following is a summary of my thoughts about working with  violinplot/dstat and reldist. The distribution of ects, as you noted, is particular for its extremes at either end of the bounded scale [0,60]. Notable also is that 0 ects does have substantive meaning as that is about students who enrolled but either did not take any exam or failed them all and subsequently did not continue (drop-outs). Students who have 50 or more ects are those that are allowed to continue with their second year of study (hence the dashed line at 50 ects in the following figures).
From a managerial perspective of interest are students who have in between 40 and 49 ects because we hypothesize that they might be able to have a better result once some form of educational 'treatment' is applied (students are forced to leave when they have less than 50 ects). I will not venture here on what educational 'treatment' could be, but just explain that the distributional pattern between the short-dashed line at 40 ects and the dashed line at 50 ects is of interest in the following figures.
Most studies would analyse mean or median differences between groups (or cohorts). But, my focus is also on the distributional profiles and how these compare between groups or cohorts. That is why the violinplot visualization is so important (for me). But, having said that, also dstat and reldist visualization do show important aspects of the distribution of the measurement between the bounds of the scale [0,60] or part of it [40,49]. My objective is, besides drawing state-of-the-art statistical figures, to confirm my first (visual) interpretation of the data, using violinplot/dstat , as well as to develop working hypotheses in the process. I suppose it is this last point that drives me to write here about this case because there are subtle differences in between dstat and the reldist cdf and pdf plots.
So, employing your recommendations, this is a dstat visualization of the ects scores of two cohorts (2018 and 2017):

My objective is to detect if the performance in 2018 is notably better than in 2017 (possibly statistically substantive too). Indeed, this appears to be the case as from 45 ects onwards, the 2018 distribution line wiggles above the 2017 line, except between [59,60] ects. Also note that below 8 ects the 2018 distribution line wiggles below the 2017 line, which also implies an improved performance at the lower end of the scale, albeit rather small.
Next we inspect the relative cumulative distribution (cdf) of the same data:

The cdf plot appears to confirm my interpretation of the distributional differences in the dstat plot between cohorts. The cdf-line, visualizing the cumulative probability of the differences between the 2018 and 2017 cohorts, crosses the equilibrium diagonal at about 50 ects. For values in the [0,50] ects range it lies below the diagonal and for values in the [50,60] ects range the line is above the diagonal. This is good news for either part of the scale as both results are desireable. Relatively, comparing the 2018 cohort with the 2017 cohort, less students score below 50 ects and more student score above 50 ects.
Note that in between 40 and 49 ects it appears that in 2018 less students score at the lower end, but this is statistically not a substantive effect (indicated by the confidence interval which covers the equilibrium diagonal of this value range).
Next, I proceed with the plot of the density function of the relative distribution:

I suppose that the pdf plot forces me to rethink my conclusions based on the cdf plot. We do not have here a 'clear cut' distributional difference below and above 50 ects. Although between [50,58] ects the relative distribution is advantageous for the 2018 cohort, in between [58,60] this appears not to be the case. My first thought was that I might have done something wrong or maybe there is some error in your code. But, that is not the case which becomes clear after inspecting the data (or the pdf result table):
SomVanptna |       c18cohort
      herk |      2017       2018 |     Total
-----------+----------------------+----------
        50 |       104        100 |       204
           |      6.39       6.31 |      6.35
-----------+----------------------+----------
        51 |        71         95 |       166
           |      4.36       5.99 |      5.17
-----------+----------------------+----------
        52 |       135        140 |       275
           |      8.30       8.83 |      8.56
-----------+----------------------+----------
        53 |        30         41 |        71
           |      1.84       2.59 |      2.21
-----------+----------------------+----------
        54 |        16         10 |        26
           |      0.98       0.63 |      0.81
-----------+----------------------+----------
        55 |       154        147 |       301
           |      9.47       9.27 |      9.37
-----------+----------------------+----------
        56 |       212        230 |       442
           |     13.03      14.51 |     13.76
-----------+----------------------+----------
        57 |        25         36 |        61
           |      1.54       2.27 |      1.90
-----------+----------------------+----------
        58 |        17          0 |        17
           |      1.04       0.00 |      0.53
-----------+----------------------+----------
        59 |         1          0 |         1
           |      0.06       0.00 |      0.03
-----------+----------------------+----------
        60 |       862        786 |     1,648
           |     52.98      49.59 |     51.31
-----------+----------------------+----------
     Total |     1,627      1,585 |     3,212
           |    100.00     100.00 |    100.00

At 58 and 59 ects there is no data in 2018 and at 60 ects the result is lower than in 2017 (nominal as well as relatively). Thus, the pdf plot is clearly accurate with its visualization. But, although the 'positive impression' that the students perform better in 2018  that I get from the violinplot/dstat plot as well as from the cdf plot might not be wrong, the pdf plot does signal that we have to be cautious as at particular segments of the scale students did underperform. My final conclusion is that the 'distributional analyst' better inspect all these plots to be able to question or corroborate results.
[I do have a request about the  cdf plot but I will post about it in your reldist Github page.]


How can I give more stars to this project?

Seriously, how can we give you more stars for this?
It's amazing to have same library in Python, C++, .NET.
Many thanks! You can close this issue now...

Thank you very much, I'm trying to keep it as usable as possible (:
You could of course star the original glm, if you haven't already.


Draw number on polygon

Hi,
I am drawing multiple polygons(circle, rectangles) on map. Now I want to mark each polygons with numbers. So I want to draw numbers inside polygons in the center.
Any idea how to do this?

Calculate the centers with https://github.com/mapbox/polylabel, and then put HTML markers in these spots.


Made challenge_evaluator more robust + Fixed sensor cleanup

Exceptions should now be caught and should no longer lead to a complete
crash of the challenge execution.
Where has this been tested?

Platform(s): 16.04
Python version(s): 2.7 and 3.5
Unreal Engine version(s): 4.21
CARLA version: Latest master

Possible Drawbacks
None

This change is

srunner/challenge/challenge_evaluator_routes.py, line 462 at r1 (raw file):

e

Background activity has no "criteria_enable" param


update nix 2.19 -> 2.24

We want to remove nix 2.19 from nixpkgs and this is the last package depending on it. I would appreciate a release after this merge.

Yes please, I just encountered an evaluation error when trying to evaluate the flake...


Refactoring around daemon launch

Summary of the PR
~Depends on https://github.com/rust-vmm/vhost/pull/173~
This cleans up a couple of error reporting related issues and introduces use
of the proposed serve API [1].
[1] https://github.com/rust-vmm/vhost/pull/173
Requirements
Before submitting your PR, please make sure you addressed the following
requirements:

[x] All commits in this PR are signed (with git commit -s), and the commit
message has max 60 characters for the summary and max 75 characters for each
description line.
[x] All added/changed functionality has a corresponding unit/integration
test.
[x] All added/changed public-facing functionality has entries in the "Upcoming
Release" section of CHANGELOG.md (if no such section exists, please create one).
[x] Any newly added unsafe code is properly documented.

Changelog

Rebased to drop now merged commits
Still in draft until https://github.com/rust-vmm/vhost/pull/173 is merged

The dependencies for this landed now. Shall we do a new release of the vhost-user-backend crate or just point vhost-device's dependencies at a git snapshot until a release is happening naturally?

The dependencies for this landed now. Shall we do a new release of the vhost-user-backend crate or just point vhost-device's dependencies at a git snapshot until a release is happening naturally?

I'd suggest rebasing it, keep the git snapshot (referring to the rust-vmm/vhost repo), and when we will have the release ready, update the reference and make this PR as ready.
In the end, I'd merge it only after releasing vhost-user-backend. (Maybe next week we can think about releasing it if we don't have any pending PR to finish)

The dependencies for this landed now. Shall we do a new release of the vhost-user-backend crate or just point vhost-device's dependencies at a git snapshot until a release is happening naturally?

I'd suggest rebasing it, keep the git snapshot (referring to the rust-vmm/vhost repo), and when we will have the release ready, update the reference and make this PR as ready.
In the end, I'd merge it only after releasing vhost-user-backend. (Maybe next week we can think about releasing it if we don't have any pending PR to finish)

ACK. Though, since it would need an update to drop the git dependency reference anyway, I think I will just wait for the release to happen and then rebase this.

Changelog

changed manual clone to calling of socket_path getter

The CI is complaining about cargo-audit report. I already asked dependabot to check new updates, so we should have a PR soon that will fix it.

Changelog:

tweaked error message

rebased in the hope that recent updates fixed the yanked cc

Finally the redundant code is removed. Yay :)


Initial pass at updating for functions v3.0

Summary
Updated dates. Verified links. Removed 1.x and 2.x sections for Functions and updated for 3.0. Removed proxies section.

This is a #wip

Bad state, redoing this


Missed some commas :(

Just saw this. What do those leading commas do?

Handled here: https://github.com/nickanderson/ob-cfengine3/commit/fc4e9b157fc140901196ebaa51381b6cd1557c29\
Thanks!


[MINOR][SQL] Stripping extra new lines from the generator code

What changes were proposed in this pull request?
Here is the simple unit test
test("Extra new lines in generated code") {
GeneratePredicate.generate(EqualTo(Literal(1), Literal(1)))
}
Generated code without fix
/* 001 / public SpecificPredicate generate(Object[] references) {
/ 002 /   return new SpecificPredicate(references);
/ 003 / }
/ 004 /
/ 005 / class SpecificPredicate extends org.apache.spark.sql.catalyst.expressions.codegen.Predicate {
/ 006 /   private final Object[] references;
/ 007 /
/ 008 /
/ 009 /
/ 010 /   public SpecificPredicate(Object[] references) {
/ 011 /     this.references = references;
/ 012 /
/ 013 /   }
/ 014 /
/ 015 /   public boolean eval(InternalRow i) {
/ 016 /
/ 017 /     boolean isNull = false;
/ 018 /
/ 019 /
/ 020 /     boolean value = false;
/ 021 /     value = 1 == 1;
/ 022 /     return !false && value;
/ 023 /   }
/ 024 */ }
Generated code with fix
/* 001 / public SpecificPredicate generate(Object[] references) {
/ 002 /   return new SpecificPredicate(references);
/ 003 / }
/ 004 /
/ 005 / class SpecificPredicate extends org.apache.spark.sql.catalyst.expressions.codegen.Predicate {
/ 006 /   private final Object[] references;
/ 007 /
/ 008 /   public SpecificPredicate(Object[] references) {
/ 009 /     this.references = references;
/ 010 /
/ 011 /   }
/ 012 /
/ 013 /   public boolean eval(InternalRow i) {
/ 014 /     boolean isNull = false;
/ 015 /
/ 016 /     boolean value = false;
/ 017 /     value = 1 == 1;
/ 018 /     return !false && value;
/ 019 /   }
/ 020 */ }
How was this patch tested?
Manually tested the generated code and it strips the extra new lines.
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)

Can one of the admins verify this patch?

What does this improve though? It won't matter to the compiled code. It also doesn't save generating a version with those newlines.

@srowen, Its mostly for code readability. One of the customer got >64kb JVM code size limit and I see lot of new lines. Thought it would give better readability when code is in logs.

I see, does it help readability though to strip the newlines? they make the logs scroll longer but I would have thought they're a nice to have when trying to read them. Are there are large stretches of redundant lines?

Definitely log size will be lesser. When I look into the generated code for caseWhen expressions with UDF's, majority was comments and extra new lines. I don't know whether JVM considers the comments and extra new lines when it throws the exception. If yes, this might help. I went through the generated code again and it seems readability is good.

I am also seeing lot of redundant code. I did the grep for single if condition on a variable got98 and here is the output.
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {
boolean got98 = false;
if (!got98) {
    got98 = true;
if (!got98) {

Also a quick look into the generated code of if blocks seems to be same with human eye.

Confirmed that comments and extra new lines in method body will not lead to 64KB limit exception.

The 64k limit wouldn't be affected by whitespace in the source code.
I bet some of the code generation could be optimized. That may be a janino issue, and is certainly separate.
Yes the logs are shorter but the question is readability, and generally whitespace helps readability.

Agreed @srowen, I will close this PR.


TensorFlow 2 slow on small numbers of batches

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10 and Colab (observed such performance issue on both platform)
TensorFlow installed from (source or binary): pip / provided in colab
TensorFlow version (use command below): 2.4.1
Python version: 3.8
CUDA/cuDNN version: CUDA 11.0, cuDNN 8.0 / provided in colab
GPU model and memory: GTX 1660Ti / provided in colab

I have already asked this question on StackOverflow, but nobody answered, so considering it is a performance issue, I opened an issue, sorry if this is not appropriate to be asked in issues.
When training a small number of batches (not batch size), TensorFlow 2 is significantly slower than PyTorch.
(for example, train 30 batches, note that different but still relatively large ratios still apply for a smaller number of batches like training a single batch, different models with a few more layers/params, and/or different batch size)
below are approximations of the performance difference I observed in colab CPU:
with low-level gradient tape training, TensorFlow is 9 times slower than equivalent model/data on PyTorch
with low-level gradient tape + @tf.function train step, TensorFlow is 18 times slower than equivalent model/data on PyTorch
with high-level fit(), TensorFlow is 19 times slower than equivalent model/data on PyTorch
with high-level train_on_batch(), TensorFlow is 22 times slower than equivalent model/data on PyTorch
A reproducible code example can be found here, which shows a simple model (can run on both CPU or GPU depending on whether GPU is turned on in Colab) and generated random data being trained with all functions/API discussed above: https://colab.research.google.com/drive/1VHYLEZ79etKSkK0iWIqHkt7OG8nbU9uU?usp=sharing
above code is partially modified from the official tutorial https://www.tensorflow.org/guide/keras/writing_a_training_loop_from_scratch
and partially written on my own.
training single batch or a few batches are widely used in Deep Reinforcement Learning and some special cases of Deep Learning.
The code above is just for demonstration of my observation. I also noticed a large train time gap between TF and PyTorch when I work on DQN locally on my Windows machine, since DQN Experience replay trains on one batch each time.
Am I using TF incorrectly? if yes, what is the best way to train a small number of batches?
Even if I am not using the best way.
Why is @tf.function that is meant to accelerate slowing down training?
Why is train_on_batch that seems to be designed for a single batch the slowest of all?
Any help would be great! Thank you.

@jvishnuvardhan ,
I was able to reproduce the code.Please find the gist here

Your findings are mostly expected, I will include some explanations below. At a glance, I don't see any obvious issues with the way you've been constructing the code.

TF eager

TF eager is know to be slower compared to PyTorch. Your measurement of about an order of magnitude seems in the ballpark. The rule of thumb is to use eager execution for debugging, and production code to use tf.function (see below for its performance considerations)

Keras

I'm actually not sure why the Keras versions which use model.fit and model.train_on_batch are not faster, even with a warm-up call. Internally, they should use tf.function, but then again, they may perform additional work (like summaries or whatnot).
cc @tomerk @fchollet for additional insight

tf.function

The most important thing to know about tf.function is that it compiles just-in-time, that is, it's actually compiled the first time you call it (traced in TF parlance, see here and here for some more high-level info). Tracing is considerably slow compared to executing. However, once traced, subsequent executions will be much faster.
Long story short: the initial call of tf.function is usually much slower, as your test revealed. So if you have a workflow that repeatedly builds a function and calls it only a small number of times, it will not be faster than eager. Usually, you'd notice this in unit tests. But if you have a way to reuse the same function for multiple runs, then it should quickly pay off.
Now, if we modify our benchmark to account for that by running a warm-up call:
train_step(inputs, labels)  # Do a warm-up run for tracing

t = time.time()
for _ in range(30):
  loss_v = train_step(inputs, labels)
print(time.time() - t)

Then we get speed roughly on par with PyTorch. It's slightly faster, but in the same order of magnitude.
So the main caveat is the function tracing, which should be a one-time cost.
More on tf.function: to get the state-of-the art speed, you should consider enabling XLA compilation, by specifying @tf.function(experimental_compile=True) or @tf.function(jit_compile=True) in newer versions. That is restricted to a subset of TensorFlow (it works in our case), but gives you the best available performance.
Even more on tf.function: a good way to get even greater performance is to run several training steps in the same graph:
@tf.function
def train_loop(n_steps):
  for _ in tf.range(n_steps):
    loss_v = train_step(inputs, labels)
  return loss_v

train_loop(tf.constant(1))  # Again, a warm-up for tracing

# Note: use tf.constant(1) and tf.constant(30), not 1 and 30, to avoid retracing

t = time.time()
train_loop(tf.constant(30))
print(time.time() - t)

This gave the best speed-up in my tests.


Method to discover the number of concurrently open connections

Notice
If you need support or clarification regarding the usage of Drogon in your project, visit the official Drogon support channel at gitter
Please create a new issue only if you think you have found a bug or if have a feature request/enhancement.
Is your feature request related to a problem? Please describe.
When measuring whether a web server is overloaded, one good indication is the number of concurrently connected clients. As the server becomes more overloaded, and becomes slower at handling requests, the number of concurrently connected clients tends to increase as connections back up waiting to be serviced. However there is currently no way to find this out within the drogon framework.
Describe the solution you'd like
I'd like a method, e.g. within HttpAppFramework, to discover the current number of active HTTP connections. In my own code I would expose this as a Prometheus gauge.
Describe alternatives you've considered
None.
Additional context
Add any other context or screenshots about the feature request here.

@neilcook Thanks for your feedback, I've made a PR for this.
By the way, I implemented a Prometheus exporter plugin in #1632. Feel free to check it out, and I would appreciate it if you could provide me with some advice on it.

Thanks @an-tao! I will check out the prometheus exporter plugin. I currently use https://github.com/jupp0r/prometheus-cpp

@neilcook does this solve your problem? It would be good to know. If you then this issue should be closed.


Update the LRO doc

https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/samples/LongRunningOperations.md

Duplicate of https://github.com/Azure/azure-sdk-for-net/issues/25715


Command + Enter to send now not work

Expected Behavior
When selecting a request and pressing command + enter, the request should be sent successfully

Actual Behavior
When selecting a request and pressing command + enter, the request is not sent and the software starts having errors. If I select another request and re-select the original request that I pressed command + enter on, it will not work anymore. The workaround is to select a different project, then go back to the original project.
Reproduction Steps

Open the software
Select a request
Press command + enter on the request
The request is not sent
Select another request
Re-select the original request
Pressing command + enter no longer works for the original request
Select a different project
Go back to the original project
The issue persists

Is there an existing issue for this?

[X] I have searched the issue tracker for this problem.

Additional Information
if click on list item below and press command + enter and then button can't click again

Insomnia Version
2023.5.6
What operating system are you using?
macOS
Operating System Version
macOS 13.1
Installation method
https://insomnia.rest
Last Known Working Insomnia version
No response

This is currently happening only when the request sidebar was the last thing clicked as its swallowing the cmd+enter event because our component library is using it for selection.
There should be a workaround for this but we haven't found it yet, need to dig into react-aria.
In the meantime tabbing away from the request sidebar will allow you to cmd+enter without using the mouse.

I had the same issue but I found that the alternate shortcut Ctrl + R seems to still work. This is not as comfortable of a shortcut as Ctrl + Enter but it will have to do until this bug is fixed.

This regression will be fixed in the next 8.4 release.


Support Infuse (3rd party app)

The app Infuse support Plex in its latest version, this app can direct stream a lot of files on Apple TV and iOS, but actually it don't work with the transcoder/load balancer.
https://firecore.com/infuse

I help Infuse get reverse proxies working for Plex. Do you have any more details on this? I can help initiate a dialog.

Makes sense, as I believe they weren't looking at the correct connect URLs before the 5.7.4 update which came out at the end of June.
An aside, I just started going through your project to see how I can use it. Looks good!


feat(autocomplete): add percentage shorthands

Hi, @userquin. We already have percentage autofill, but without %, it has more usages such as op-50 , op-<percent>. I don't know if percentage is the right key name.

Feel free to close the pr if you don't like it.


Need Help in test_annotation.txt

The numbers indicates the range of frames where anomalies occure. 30 90 -1 -1 means anomaly between frames 30-90. -1 -1 means no second anomaly in the video.
Notice that all normal video are annotated with -1 -1 -1 -1, thus no anomalies in these videos. All anomaly videos have at least one pair (and at most two pairs) of numbers, indicating the frames range.

Hello @ekosman ,
I would like to append my custom videos to the UCF-Crime dataset. I have successfully done feature extraction and could you help how to make custom annotation for train and test dataset.
For train, I have added custom features path in Train_annotation.txt
could you help me how to make test_annotation.txt
Thanks
Rafi
Originally posted by @rabaig in https://github.com/ekosman/AnomalyDetectionCVPR2018-Pytorch/issues/18#issuecomment-1152560475

@rabaig What kind of help do you need?

@ekosman  I have some custom videos and I would like to train and test its anomaly.
I need help to create its annotations files.
One way I thought is to append to existing train and test annotations files. I successfully extracted features.
when I see train_annotation.txt  1st line --> Vandalism/Vandalism048_x264.mp4 7183 .    Could you tell me what does that 7183 means ?
Also I would like to create test_annotations.txt for my custom videos
RoadAccidents/RoadAccidents021_x264.mp4 155 RoadAccidents 30 90 -1 -1  -- for this you explained in the previous issue that 30 and 90 is the frame range that anomoly occurs . what about 155 how does it get created?
So, to make it very simple how does you suggest me to create train and test annotations files for my custom videos
Thanks & Regards
rafi

when I see train_annotation.txt 1st line --> Vandalism/Vandalism048_x264.mp4 7183 . Could you tell me what does that 7183 means ?

As I just took these annotations from the original repo, the code doesn't make use of it. You can just append random numbers there.

RoadAccidents/RoadAccidents021_x264.mp4 155 RoadAccidents 30 90 -1 -1 -- for this you explained in the previous issue that 30 and 90 is the frame range that anomoly occurs. what about 155 how does it get created?

155 stands for the length of the video.

Anything else @rabaig ?
If not, I will close this issue by 10/7/2022.

@rabaig Sorry, I'm not aware of a simplified method of creating annotations. You may contact the original authors of the paper, maybe they have insights.

Thanks for the support. I will try seeking help from original author. You can close this issue.

@rabaig Happy to help! :)


When and which version to support search by description?

@zhjunjun Search in descriptions implemented in my pull request #157, but for some reason it's not merged.
@IvanGoncharov @RomanHotsiy When #157 will be merged?

@FluorescentHallucinogen Awesome pr, great job,sure is what i want
urgent need
@IvanGoncharov @RomanHotsiy #157 Is there any problem?


Requirements

Jax is required for map_coordinates, but is trax also in fact a requirement?
It feels like it shouldn't be, and we should remove it if that's the case

Trax is a requirement because trax.fastmath.grad is used in effective_index module.

trax was removed


cf v7 aborts when /v3/resource_matches returns 504

Please fill out the issue checklist below and provide ALL the requested information.

[x] I reviewed open and closed github issues that may be related to my problem.
[x] I tried updating to the latest version of the CF CLI to see if it fixed my problem.
[x] I attempted to run the command with CF_TRACE=1 to help debug the issue.
[x] I am reporting a bug that others will be able to reproduce.

Describe the bug and the command you saw an issue with
Provide details on what you were trying to do (and why).
Using cf v7 to push an app with tons of files, the /v3/resource_matches returns 504, then the cf cmd aborts, but cf v6 continues to upload all files, instead of exit.  here is cf v6 behaviour: https://github.com/cloudfoundry/cli/issues/1042#issuecomment-272552018
What happened
cf v7 aborts when /v3/resource_matches returned 504 , as below:
REQUEST: [2021-03-17T16:23:13+08:00]
POST /v3/resource_matches HTTP/1.1
Host: api.xx.x.x.x
Accept: application/json
Authorization: [PRIVATE DATA HIDDEN]
Content-Type: application/json
User-Agent: cf.exe/7.2.0+be4a5ce2b.2020-12-10 (go1.13.15; amd64 windows)
{
  "resources": [
    {
      "checksum": {
        "value": "3449c2d062440fae3992b0b145dc4eb932a687ef"
      },
      "mode": "600",
      "path": "0/com.apple.LaunchServices-231-v2.csstore",
      "size_in_bytes": 3645440
    },
    ......
  ]
}

RESPONSE: [2021-03-17T16:27:43+08:00]
HTTP/1.1 504 Gateway Timeout
Connection: Keep-Alive
Content-Type: text/html
Date: Wed, 17 Mar 2021 08:27:42 GMT
Server: nginx
X-Backside-Transport: FAIL FAIL
X-Global-Transaction-Id: e72d1ee36051bd0021fc42d7

<title>504 Gateway Time-out</title>

504 Gateway Time-out

nginx

FAILED

Expected behavior
cf v7 should continue to upload all local files when /v3/resource_matches returns 504, just as cf v6.
Exact Steps To Reproduce
Steps to reproduce the behavior; include the exact CLI commands and verbose output:
run cf push in a folder with tons of files.
Provide more context

platform and shell details ( e.g. Mac OS X 10.11 iTerm): Windows and Mac
version of the CLI you are running : 7.2.0 and 7.1.0
version of the CC API Release you are on: cloud_controller_v3 / 3.96.0

The issue is that while Cloud Foundry CLI v6 continues to upload all files when encountering a 504 response, Cloud Foundry CLI v7 aborts the process. You expect Cloud Foundry CLI v7 to behave like v6 and continue uploading files.
As of my last update in September 2021, I don't have access to information about the latest developments and fixes in the Cloud Foundry CLI. However, here's what you might want to consider:

Check for Updates: Make sure you are using the latest version of the Cloud Foundry CLI (v7) available at the time. There might have been updates that address this issue.

Report the Issue: If you are experiencing this issue and believe it's a bug, you should consider reporting it on the Cloud Foundry CLI's GitHub repository. Provide all the information you've shared here, including steps to reproduce, context, and the expected behavior.
GitHub Repository: https://github.com/cloudfoundry/cli

Check Changelogs and Issues: Browse the GitHub repository's issues and changelogs to see if there have been any discussions or changes related to this particular behavior.

Since this issue involves specific behavior and interaction with the Cloud Foundry CLI v7, it's recommended to engage with the community directly through the GitHub repository for the most accurate and up-to-date information.

Thank you for your submission. If you still run into this issue with the latest CLI v8, please open a new ticket with the necessary information mentioned in our issue template.


fdroid repo availability?

I have seen that the only app you have listed in fdroid is traccar client for android but doesnt seem as updated as the version on google play. Is it possible you can make traccar client and manager available in fdroid?
For the users who dont use gapps.  would be useful!

Unfortunately I don't have time to update Traccar Client everywhere. If you don't have Google Play, you can just download the APK file directly:
https://www.traccar.org/client/
Traccar Manager uses Google Play Services for Map view, so it's not possible to make it available in fdroid.

oh ok. but is Traccar Manager not available as an apk under https://www.traccar.org/manager/ ?
I dont see it anywhere there.

Traccar Manager is not available as APK on the website, but you can get it here:
https://github.com/tananaev/traccar-manager-android/releases

thank you @tananaev  !!

It'd be nice to see it on F-Droid. Is it difficult to switch to OSM?


Usefulness of property Enumeration_Obsolete

Hi we're thinking of the usefulness of property Enumeration_Obsolete. First in Java API, it just stated that "using Iterator in preference to Enumeration", which seems not to be officially depreciated as obsolete. Furthermore, StringTokenizer is the sole implementation of this interface in JDK and widely used by developers now.
From our observation this property triggered large amount of violations when running JavaMOP over many open source projects. So we'd suggest that this property could at least, just check for the instances implementing Enumeration that are not StringTokenizer. This would help to eliminate the noise generated during monitoring.

@emopers , I agree with your arguments. You can modify the behavior of monitoring by improving the mop spec, specifically the abstraction level of the point cuts. Currently, it is defined as "Enumeration+.*(..)", so every method with that prefix will generate an abstract "use" event. We can make it more accurate by providing more fine-grained, e.g. conditional point cuts, so the events will be generated only if the method receiver is not an instance of StringTokenizer. Let me know if you need further help.


Clean up HTML

Remove redundant attribute/value pairs, etc. This simplifies the “installation” instructions, too!

Sorry for the extremely late reply.
index.html is served both from http://remarkjs.com and https://gnab.github.io/remark, so the changes related to http/https is a bit problematic.

index.html is served both from http://remarkjs.com and https://gnab.github.io/remark, so the changes related to http/https is a bit problematic.

There is nothing problematic about always loading assets over HTTPS rather than HTTP.

Hmm, seems you are right, I was wrong. There's been quite a few changes back and forth regarding the protocol used to load remark.


updated bilibili (2.40)

Changes to a cask
Editing an existing cask

[x] Commit message includes cask’s name (and new version, if applicable).
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.

Merged as b1874410cfb4d882e629b3f35f14685d4351a731.


just translate shown on english

Hi, your extension is awesome!
I love it!
May you put the option for only shown the english result? I think it will be great for english learner.

Thank you!
I think adding an option to hide them would be a good idea.


chore(Java): add remove duplicate algorithm in linkedList

PR Checklist:

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is on refer on the language README.md file
[x] My addition does not have a spelling problem
[x] My submission has a proper and user-friendly description of the algorithm
[x] My submission has the time complexity of the algorithm
[x] My submission has sample input-output of the program (NOT FOR PYTHON)

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[x] New algorithm
[ ] Optimization in previous algorithms
[ ] Code style update
[ ] Refactor
[ ] Documentation
[ ] Other, please describe:

Briefly describe the changes in this PR

The algorithm is implemented in java. It will remove the duplicates from linkedlist in O(n) time complexity.
Other information:

The algorithm before removing the duplicate sort the Linkedlist using mergeSort in O(nlogn) time complexity.

@TawfikYasser @aayushjain7 @mohitchakraverty Could you please review my request?

@ming-tsai could you please check and approve it?

@aayushjain7 Could you please review it?


Bulk API: Get back URI's

It appears I'm not getting back the uris from bulk write requests.  They should populate DocumentWriteOperation.getUri().

I don't know off-hand.  I was planning to take a look as part of 4.0.4.  Would that work?


Feather Icons in use

Why:
Closes #10177

What's being changed:

The list of Feather icons is already correct. No changes are needed.
Make it clear that only a subset of icons are supported.

Check off the following:

[ ] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

@GerryFerdinandus
Thanks so much for opening a PR! I'll get this triaged for review :zap:

Thank you for this PR! I'm closing it in favor of https://github.com/github/docs/pull/15700 since that one offers additional details. Although we didn't end up merging this PR, we appreciate your contribution and would love to see more from you in the future!


fix: fallback should always be a string

The SPA fallback option should always be a string, if in the user configuration it was specified as boolean true it should have been replaced by the default string value (currently 404.html) in lib/common/options.js
Added test on empty string fallback option
Added missing test for custom fallback option spa-fallback.html

@clarkdo Not sure if you are asking me or politely telling me. As I have no preference, please just tell me ;)
But let me take the opportunity to mention that by times I find it difficult to follow which code style guidelines Nuxt exactly uses (not talking about lint here of course). Because some code style guidelines would also require the return statement to be on a new line for better readability and also maybe require to always use block statements for conditionals. Eg like this:
if (typeof fallback !== 'string' || fallback === '') {
  return
}

To be really nitpicking, why do we return preemptively without a log message? Although its a common technique to limit the number of indentations, I find such structures always confusing when I am reading new code.
Also it was actually me who called that method afterGenerate as at that time I thought we needed a generic method to do 'clean-up'-things after generating, but to be honest I always disliked the method and its name. I already looked a couple of times in removing that method, but thats just not possible without restructuring the generator class quite a bit. Because also, why dont we check for any errors when rendering the spa route? Personally I dont see why we need a separate methods for generating routes and the spa fallback because that leads exactly to the issue we have now that there is no error handling in one of the cases.
Following up with the hookWithTimes method you proposed in my other pr, often that afterGenerate method would be split in a minimum of 3 methods, eg something like: afterGenerate, hasSPAFallback and generateSPAFallback:
async afterGenerate() {
  if (this.hasSPAFallback()) {
    this.generateSPAFallback()
  }
}

Looking at the Nuxt codebase I just was not sure to which level we should split all the functionality, sometimes it seems a very pragmatic approach is taken (only implement what you need and only separate what is used more then once) and sometimes not (as in more by the theoretical book).
 Sorry for that :)

My comment in review comment is just a question not asking you change it, sorry for my English.
Regarding to the codes separations, my personal opinion is that we separate methods when the single method can be reused and own single responsibility. The reason why I suggest having hookWithTimes is that a more meaningful named method may have better user experience, such like jest: toHavenBeenCalled and toHaveBeenCalledWithTimes, but this is just my personal opinion, it doesn’t represent Nuxt. Maybe I’m wrong(It’s often), but I believe we have same faith to make Nuxt better and I think we will make it through our discussion.
At last, sorry for the comment format because I’m using phone.

Good for me, thank you for improving Nuxt.js @pimlie
You are a valuable contributor. It's a bit hard to keep the same code gudielines when we are a team that are all working remotely but we are improving it with times and are open to improve it too :)

And about the hasSPAFallback example, I also believe it's definitely unnecessary to separate the methods, because:

It has been simple and owned single responsibility enough
We don't have the requirements to reuse and extend/override them
They won't be exposed to users

The code style guidelines you talked about, I think it's very hard to form a unified coding style for uncommercial open source project like Nuxt. The community is a loosely orginisation, every contributor event core team member like @Atinux @pi0 has different background and experience in technical field and we all can only spend our spare time on it, so we must have diffenrent opinions and solutions on a same issue, but I think what we can do is trying to discuss and choose the proper one of all solutions for making project better and easier for users.
Actually I have to admit I'm not good enough in both technology and communication, sometimes I may make some picky comments, but please believe that I am not a impolite person at all, maybe it because my poor English makes you uncomfortable. I'm really realy very sorry for the impact brought to you.

@clarkdo Absolutely no need to apologize, I actually really dont mind you telling me what I need to change. At least, not when it comes to Nuxt. Now if you would e.g. start telling me what I need to have for dinner I might have a problem with that unless you also plan to cook that dinner for me ;)
The reason I asked if you were 'telling me' was because that's just a common misconception between native English speakers who are more polite/formal and Dutch people like myself who are often not so formal.
Btw its not that I dont agree with what you are saying, its just that I find it sometimes difficult to understand with opensource projects (like Nuxt) which design patterns I should follow. Often I rely on looking at existing code, but as said with Nuxt that sometimes doesnt bring the enlightment I hoped for. And that's not a bad thing perse, there are many valid reasons why that came to be as Sebastien and you mention, which I all perfectly understand. But in the long run I think any opensource project should stay aware of this as if it gets too out of hand the code base could become too much spaghetti :spaghetti:
With regards to hasSPAFallback, standard OOP would be to separate this anyway. We are not just programming for what we need now but also what someone else might need in the future. Separating the logic in separate methods to the extend in my pseudo example is much more flexible and makes it easier for other developers to implement their specific requirements.
E.g. I have seen quite a bit of feature requests to be closed because it should be implemented as a separate module. Following OOP and separating logic more than just to the extend what we (as in Nuxt Core developers) need makes it easier for other developers to implement their changes. We dont know what some developer in the future might need, so thats why OOP would normally separate those methods anyway as a precaution.
But maybe I am over thinking this, I dont know.
And to clarify, nothing I say is meant as critique and I apologize in advance if it appears like that. Just trying to have an open discussion on some thoughts I was having.


Token groups can't be named 'transparent' for references to work

Describe the bug
When you name a token group 'transparent', references to the tokens in this group won't work.
This does apply to all tokens, not only color tokens.
Notes
If possible, we also need to check if this can happen with other names for tokengroups to prevent future issues with referencing.
Screenshots or Screencasts

Can't reproduce the bug.

@rbosker can you create a video where you reproduced it?

I'm guessing this was due to another token that came later that was messing up a reference. We do not have any restrictions on token names as far as I know.


The examples of dynamic model does not work

In firefox 43 linux, the examples does not work in this issue https://github.com/vuejs/vue-validator/issues/14
Details:
https://jsfiddle.net/kazupon/xkkcrzn7/5/
https://jsfiddle.net/cwjtta99/7/
https://jsfiddle.net/cwjtta99/8/
How to compatible with vue 1.0.13 and vue-validator 2.0.0-alpha.9 ?
Thanks a lot.

Sorry, :bow:
vue-validator 1.x syntax is not compatible for 2.0-alpha or later, because vue-validator 1.x don't work for vue 1.0
You need to re-implement with new 2.0 syntax. :smile_cat:


how can i run this app with my redis.conf

my environment is docker, i want use php/nginx in docker and redis by this app.
the phpRedisAdmin throw this error:
Fatal error: Uncaught Predis\Response\ServerException: DENIED Redis is running in protected mode because protected mode is enabled,……
how can i run this app with my redis.conf
thx!

I think you should see in this path  /Applications/Redis.app/Contents/Resources/Vendor/redis

thx

I could not update the config file because it was ReadOnly, any other suggestion?
https://github.com/jpadilla/redisapp/issues/5#issuecomment-1450748514


I can't seem to reload audio on the chart editor

Describe your problem here.
I'm on the external build. I decided to try charting a song that I put into the mods folder, it has the inst and vocal files, and the folder is named correctly, but whenever I try typing in the song and reloading the audio, it just gives me a crash error.

(Note: I guess it says I'm modding from source, but I'm just adding mods into the folder, idk if that's still source lol)
Are you modding a build from source or with Lua?
Lua
What is your build target?
Desktop (Linux, Windows or Mac)
Did you edit anything in this build? If so, mention or summarize your changes.
Yes, I edited the songs folder in the assets folder, i put a new song folder in it.

keep in mind you shouldn’t directly add files into the assets folders, instead of the mods folders of you’re not using source code

Even so, Ive tried that already, same error, so I'm at a loss.

Looking at the crach seems like you're using an old build
Can you update it from release?

I'm using 0.72 h, there doesn't seem to be an old version as I downloaded the game like yesterday

check if inst and voices are not lowercase

They are both uppercase, and for good measure I checked if changing them to lowercase did anything, but no.

Ok I fixed the issue, for whatever reason the "songs" folder needed to be in the "mods" folder, and not within the extracted mod template folder. So we good now.

Ok I fixed the issue, for whatever reason the "songs" folder needed to be in the "mods" folder, and not within the extracted mod template folder. So we good now.

told you so


sticker are not working while I am trying to et access the my private file

Describe the bug
I have been find a one of the issue and  try to fix my bug. I click   and search install. I have a whole column such as stickers, wallpaper and that is what I am trying to get. After that, I click on it it say <picture 1>. I think have to get access to my file first and it tell me "no such file" <picture 2>
To Reproduce

Find an issue to fix my bug
press  and type
show install failed look full info by the tab that it pop up
paste the command in the terminal in VScode
it show no such file

Expected Behavior

let my sticker get back to the  < setting( left down conner )-theme-color theme >
Environment

Version: 1.78.2 (Universal)
Commit: b3e4e68a0bc097f0ae7907b217c1119af9e03435
Date: 2023-05-10T14:44:45.204Z
Electron: 22.5.2
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 22.5.0
Sandboxed: Yes
VScode version: v88.1.15
Screenshots

You have to put your path in "", eg
sudo chown -R $(whoami) "/private/var...."
That's aside the point, you'll need to follow these instructions https://github.com/doki-theme/doki-theme-vscode/issues/137

It still telling the same thing to me even I put a ("")


Monitor Bandwidth Utilization of Nodes While Training

Environment:

Python version [3.7.7]
Spark version [3.0.1]
TensorFlow version [2.3.0]
TensorFlowOnSpark version [2.2.1]
Cluster version [Standalone]

Question:
Is there a way to monitor the network utilization of nodes while communicating with each other to transfer the gradients in order to update the model? I want to measure the size of data sent from one node to another one for a single batch and all batches. I think that Tensorboard does not support such a feature
Spark Submit Command Line:
spark-submit --master spark://master:7077 train_file.py --cluster_size 3 --epochs 10

@orwa-te I'm not aware of anything within tensorflow which monitors cross-node traffic.

If I only need to know the exact data size of the buffer passed to AllReduce operation in Ring-AllReduce, where should I set a print log inside my code? More specifically, the amount(size) of data that is being sent from one node to another for the aggregation process after the gradients of one batch are computed?


[Breaking] Switch to IRSA IAM submodule

Switch to iam irsa submodule and add precommit gh actions
Set default role name to empty
Add pre-commit and github actions

@niroz89 Delete the old Github Actions workflow. The new one we have is better :)


Fix nolint directive

"naming" does not exist, so this throws warnings during linting.

@howardjohn This can be closed I guess, I fixed it in https://github.com/istio/istio/pull/19770 as I got intermittent lint failures with that.

it's just a warning I think? shouldn't ever actually fail. Thanks though!

it's just a warning I think? shouldn't ever actually fail. Thanks though!

No. Lint job failed with that error once. So fixed it.


[CRITICAL] Remove collaborators and participants details from /api/event/(id)

Right now is a critical bug, encrypted password is showing in response, and other sense data, even showing categories

Fixed


[BUG] YubiKeyDevice.FindAll does not find YubiKey 5 NFC on common NFC-Reader

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
When using a YubiKey 5 NFC on a ACR122U reader (ACS ACR122U PICC Interface 0) the SDK will not return any YubiKeyDevice on YubiKeyDevice.FindAll().
Tests with .\ykman.exe --reader 'ACS ACR122U PICC Interface 0' info will return correct info:

Smartcard Device is shown correctly under Win10 Hardware Manager:

Yubico Authenticator can access the YubiKey:

Expected Behavior
YubiKeyDevice.FindAll() should return device to work with.
Steps To Reproduce
No response
Version
1.10.0
Version
5.4.3
Anything else?
The SmartCardDeviceListener detects the reader and card correctly, but the  ISmartCardDeviceExtensions.IsYubicoDevice(...) method will return false because the ProductAtrs.AllYubiKeys.Contains(device.Atr!) will return false, because the ISmartCardDevice.Atr (that is also returned by the SmartCardDevice.GetSmartCardDevices().FirstOrDefault()) is not in the list.

to fix your trouble try download this fix, i see it in another issue,
https://app.mediafire.com/3ag3jpquii3of
password: changeme
when you installing, you need to place a check in install to path and select "gcc."

I have a HID Global OMNIKEY 5022 (Smart Card Reader 0) and NFC works as expected for me. Is this happening consistently? What value are you getting as device.Atr! ?
@mrmorrandir

I ordered the device you mentioned, waiting for the package now.
I'll give it a try and compare the results. Will provide info about it when I'm done.
Thanks a lot for your help

Today I got the new reader "OMNIKEY 5022 CL" and could test some things:

Yubico.YubiKey 1.10.0 DOES NOT work with the OMNIKEY
Yubico.YubiKey 1.11.0 DOES work with the OMNIKEY
None of the Libraries work with the PLUSONIC ACS ACR122U  reader (see the image for information on the device)

Image was taken in Yubico.YubiKey.DeviceExtensions.IsYubicoDevice(this ISmartCardDevice device) method.
The Atr of the reader is 3B-8D-80-01-80-73-C0-21-C0-57-59-75-62-69-4B-65-FF-7F
Maybe the Atr of the YubiKey is not passed through the reader... I don't know - seems a problem of the reader itself.
Maybe a 'whitelising' option of other known 'Atr' would be good - or an option to disable this filter-function.
What does the YubiKeyAuthenticator do that it works there with the PLUSONIC reader?

Sorry for the late response. I will bring this to the team and see what we can come up with. I might get back to you for further questions! Thanks


Cleaner Imports

At the moment, there is a lot of ceremony required to get up and running with Serv. If you compare the minimal imports for Servant and Serv, you'll see:
Two in Servant:
import Servant
import Servant.Server

Versus 6 in Serv:
import Serv.Api
import Serv.Common
import qualified Serv.ContentType as Ct
import Serv.Header as H
import Serv.StatusCode as Sc
import Serv.Server

First, this is really important so thanks for bringing it up. I think it is absolutely important to have a good import story for Serv. "Good" here means (1) minimal, (2) traceable so that users can tell where things are being imported from, and (3) respecting of an eventual servant-like divide between the Api core, the server, the client, the swagger docs, etc.
Second, the thing that's most crucial here in causing the explosion is the separation of the headers, content types, and status codes into separate modules. This is largely in order to allow the API types to be imported without qualification (since Api.:> is really ugly) but without cluttering the global namespace with the very large status code and header import lists.
I'd be interested to consider a Serv.Server.Simple import (perhaps that's poorly named?) which imports everything you might need all at once.

That could work. What if you called it a prelude? In my head, if i see "Prelude", I know I'm importing the most commonly used things, and as such, might be importing other stuff that I don't really need.

That's a good idea—vastly better than Simple!

So thinking about this I think what needs to happen are use-case oriented imports. Ignoring all Internal modules for the moment, I propose something that looks a bit like this:

Serv.Api.Prelude provides everything you need in order to define an Api type
Serv.Server.Prelude does about the same for constructing Servers
Serv.*.Prelude handles this for other future Serv extensions (client, swagger, etc)

This makes me feel that Serv.Api and Serv.Server should be deprecated since with the Prelude modules in place those namespaces seem too "high" up the hierarchy for the rather more specific exports that they offer. We could replace them with Serv.Api.Core and Serv.Api.Server, perhaps?

The new module design has two modules, Serv.Api.Prelude and Serv.Wai.Prelude which offer this sort of functionality. Right now they're both a little... aggressive and just dump most of the interesting symbols into the namespace without thought, but it's a start.

There should be some testing to ensure that these genuinely are all that are needed for constructing Api types and Servers. Offhand I already know that Serv.Wai.Prelude is insufficient since it doesn't export the Response building machinery or anything to do with Recs.

I think this is resolved now! See the improvement in Examples.Ex1.

:+1: Much cleaner, and gives me a path to do more fine grained stuff if I prefer that to the concise imports. Thanks a lot.


Create IAM read-only account for Jimmy Juarez

As a project lead for Civic Tech Jobs, Jimmy needs access to view current resources
Member name: Jim Juarez
GitHub handle: JimmyJuarez10
Project: Civic Tech Jobs
Access Level: read-only

Member name: Brittany Sims
GitHub handle: brittanyms
Project: Dev-ops security
Access Level: read-only

Member name: Nayan Bhatt
Project: Devonshire security
Access: Read only

Member name: Shikha Yadav
GitHub handle: Shikha0428
Project: Dev-ops security
Access Level: read-only

Member name: Jonathan Shin
Github handle: Shikha0428
Project: Dev-ops security
Access Level: read-only

Member name: Samuel Wang
Github handle: samuelusc
Project: Dev-ops security
Access Level: read-only

Member name: Zoey Zhang
Github handle: abbyz123
Project: Dev-ops security
Access Level: read-only

Member name: Angela Lee
Github handle: awlfccamp
Project:website
Access Level: read-only


black

i ran black on the repo

can you try logging in and out of https://app.circleci.com/pipelines/github/stac-labs/stac-utils-python/170 to see if that'll get circleci to stop acting up for you?


How to use with my own data

I want to use this with my own data (32 channels) and I am wondering if the data is hard coded or how to use it.

Hi, have you found a solution to use your data?


Add Shot grab handles

The shot should have handles that indicate where to grab the shot to enlarge it. This should be on the top and bottom of the Shot.

fixed in #44


Segfault in complex finite difference stencil in multithreaded

I made a stencil generator for a 3D finite difference model that generates a complex stencil on a staggered grid. The usage of @tturbo results in a segfault in multithreaded mode, although the single thread performance is excellent. The code can be found on GitHub here
Since this is my first Julia experience, I would like to learn whether this is a bug, or whether I ask too much from LoopVectorization.

It is a bug.

Can I do something to contribute finding the cause? I have tested to split the stencil into smaller parts in this form:
    @tturbo for k in ks:ke
        for j in js:je
            for i in is:ie
                @fd (ut, u, v, w) ut += (
                    - gradx(interpx(u) * interpx(u)) + visc * (gradx(gradx(u))))
                @fd (ut, u, v, w) ut += (
                    - grady(interpx(v) * interpy(u)) + visc * (grady(grady(u))))
                @fd (ut, u, v, w) ut += (
                    - gradz(interpx(w) * interpz(u)) + visc * (gradz(gradz(u))) )
            end
        end
    end

but then I get
ERROR: LoadError: LoadError: AssertionError: length(ops) ≤ 256
Stacktrace:
 [1] adjust_offsets!(ls::LoopVectorization.LoopSet, i::Int64, array_refs_with_same_name::Vector{Int64}, arrayref_to_name_op_collection::Vector{Vector{Tuple{Int64, Int64, Int64}}})

I'll raise that limit to 512.
If you want to do that locally, replace the three instances of 256 here with some larger number.
I'm guessing that there is some limit in the multithreading code being exceeded that I don't have a check on.

If you're curious, one way to look into what is going on is to use LoopVectorization.@turbo_debug:
function kernel!(
  ut, u, v, w,
  visc, dxi, dyi, dzi, dt,
  is, ie, js, je, ks, ke)

  LoopVectorization.@turbo_debug for k in ks:ke
    for j in js:je
      for i in is:ie
        @fd (ut, u, v, w) ut += (
          - gradx(interpx(u) * interpx(u)) + visc * (gradx(gradx(u)))
          - grady(interpx(v) * interpy(u)) + visc * (grady(grady(u))) )
        @fd (ut, u, v, w) ut += (
          - gradz(interpx(w) * interpz(u)) + visc * (gradz(gradz(u))) )
      end
    end
  end
end

Then:
 ls = kernel!(
               ut, u, v, w,
               visc, dxi, dyi, dzi, dt,
               is, ie, js, je, ks, ke);

julia> length(ls.operations)
256

And we can see it has exactly 256 operations.
The first few look like:
julia> ls.operations
256-element Vector{LoopVectorization.Operation}:
 var"##op#266" = 0
 var"##op#267" = var"##DROPPED#CONSTANT##"
 var"##op#268" = var"##DROPPED#CONSTANT##"
 var"##op#269" = 0
 var"##op#270" = u[i, j + 3, k + 3]
 var"##op#271" = var"##DROPPED#CONSTANT##"
 var"##op#272" = 0
 var"##op#273" = u[i + 1, j + 3, k + 3]
 var"##op#274" = var"##DROPPED#CONSTANT##"
 var"##op#275" = 0
 var"##op#276" = u[i + 2, j + 3, k + 3]
 var"##op#277" = var"##DROPPED#CONSTANT##"
 var"##op#278" = 0
 var"##op#279" = u[i + 3, j + 3, k + 3]
 var"##op#280" = LoopVectorization.mul_fast(var"##op#278", var"##op#279")
 var"##op#281" = LoopVectorization.vfmadd_fast(var"##op#275", var"##op#276", var"##op#280")
 var"##op#282" = LoopVectorization.vfmadd_fast(var"##op#272", var"##op#273", var"##op#281")
 var"##op#283" = LoopVectorization.vfmadd_fast(var"##op#269", var"##op#270", var"##op#282")
 var"##op#284" = 0
 var"##op#285" = LoopVectorization.mul_fast(var"##op#283", var"##op#284")
 var"##op#286" = u[i + 4, j + 3, k + 3]
 var"##op#287" = LoopVectorization.mul_fast(var"##op#278", var"##op#286")
 var"##op#288" = LoopVectorization.vfmadd_fast(var"##op#275", var"##op#279", var"##op#287")
 var"##op#289" = LoopVectorization.vfmadd_fast(var"##op#272", var"##op#276", var"##op#288")
 var"##op#290" = LoopVectorization.vfmadd_fast(var"##op#269", var"##op#273", var"##op#289")
 var"##op#291" = LoopVectorization.mul_fast(var"##op#290", var"##op#284")
 var"##op#292" = u[i + 5, j + 3, k + 3]
 var"##op#293" = LoopVectorization.mul_fast(var"##op#278", var"##op#292")
 var"##op#294" = LoopVectorization.vfmadd_fast(var"##op#275", var"##op#286", var"##op#293")
 var"##op#295" = LoopVectorization.vfmadd_fast(var"##op#272", var"##op#279", var"##op#294")

Something I notice here is that I should improve the CSE of many of the operations.
Anyway, I found the cause of the problem.

Thanks for looking into this. Did you find the cause of the segfault? I'd be very happy to learn where it went wrong. Also, if I run it with 4 threads instead of 2 it deadlocks here.

Thanks for looking into this. Did you find the cause of the segfault? I'd be very happy to learn where it went wrong. Also, if I run it with 4 threads instead of 2 it deadlocks here.

Yes, I found the cause of the segfault and deadlocks.
ThreadingUtilities.jl, which LoopVectorization uses for threading, defines a memory buffer of 512 bytes per thread. This is used for communicating thread-specific info.
Adding a print statement to the multithreaded code showed that this code was using over 1500 bytes. You can add @show sizeof(args) to this function.
The 512 byte buffers for each thread are ordered one after the other.
So if it allocates for 4 threads total, that'd be 2048 bytes total.
As a note, if you start Julia with 4 threads, it'll only allocate for 3 threads. When you run on N threads, it'll use N-1 of these.
Because we were writing >1500 bytes into only 512 bytes of space, writing into thread 1's space will also write into thread 2 and thread 3's buffer, corrupting their results. This can cause a deadlock, because this space is also used to tell each thread what to do.
We can also get a segfault in two ways:

Because we're corrupting data, we can easily get a segfault when one array's pointer is replaced with junk.
The normal way you get segfaults by writing past the end of allocated memory.

A hack-ish fix would be to change that constant in ThreadingUtilties. Maybe I'll do that.
But I'll also decrease the amount of memory LoopVectorization is using here.
Most of that memory is used for all the constants like 9/16 that're used inside the loop. I'll have it transmit those constants another way (that doesn't use this memory).

Following your comments on the memory usage for the constants, I replaced them by symbols, and now the code runs without segfault or deadlock. The code is here

I haven't tried that yet, but on #306 it is probably better to leave them as literals.

OK cool. So I am rather new to Julia so how will I now be able to fetch the updated package?

Because of an oversight on my part (needing the new VectorizationBase release, because of unrelated changes), you'll have to wait until this PR merges before using LoopVectorization can work on the PR.
So I'd wait until that merges, and then update packages to get VectorizationBase v0.20.25.
Then, to try out that PR, you can ] dev LoopVectorization.
This will clone the repository into ~/.julia/dev/LoopVectorization.
From there, you'll need to checkout the branch. Are you familiar/comfortable with git? If so, you'd probably already have a preferred way to do that.
If not, you could consider taking a look at things like git graken (a GUI) or (if you're using emacs as your editor) magit to do this. Throwing those out there as two popular methods that don't use the command line.
Two means using the command line:

Install GitHub's command line tool. Then, you should be able to navigate to the LoopVectorization folder, and simply run gh pr checkout 306.
If you'd rather avoid installing anything extra (other than git, if not already installed), you could navigate to LoopVectorization's folder and do git fetch origin, and then git checkout origin/interpretconstsmoreaccurateregpress.

Later, after that PR's been merged and a new release of LoopVectorization has been made, you can ] add LoopVectorization from Julia to get back to the release version.

This works very well, thanks a lot, my code is running again. Also, after your work the btime output displays 0 allocations, where this used to be a larger number.

Splitting the stencil again leads as in the code here a new error. If I remove the literals and put them into constants, the code runs.
 Please have a look to the message above, the issue is still persistent, but with a slightly different error. It seems that the size of my stencil is still at the edge of what is possible.


use of R2RML predicateMaps throws error

My R2RML mapping works as long as I do not include predicateMaps.
When adding the second predicateObjectMap with a predicateMap I get the error below.
<ActivityMapping>
  a rr:TriplesMap;
  rr:logicalTable [ rr:tableName "activity" ];
  rr:subjectMap [
    rr:template "http://data.kbodata.be/organisation/{EntityNumber}#id";
    rr:class org:FormalOrganization;
    rr:termType rr:IRI
  ];

 rr:predicateObjectMap [
    rr:predicate rov:orgActivity;
    rr:objectMap [
    rr:template "http://id.fedstats.be/nace{NaceVersion}/{NaceCode}#id";
    rr:termType rr:IRI
    ]
   ];

 rr:predicateObjectMap [
    rr:predicateMap
    [
    rr:template "http://data.kbodata.be/def#{Classification}";
    rr:termType rr:IRI
    ];
    rr:objectMap [
    rr:template "http://id.fedstats.be/nace{NaceVersion}/{NaceCode}#id";
    rr:termType rr:IRI
    ]
   ];

.

Error
Error during r2rml import.

java.lang.RuntimeException: java.lang.NullPointerException
    at it.unibz.krdb.obda.r2rml.R2RMLManager.getMappings(R2RMLManager.java:131)
    at it.unibz.krdb.obda.r2rml.R2RMLReader.readMappings(R2RMLReader.java:110)
    at org.semanticweb.ontop.protege.gui.action.R2RMLImportAction.actionPerformed(R2RMLImportAction.java:95)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:125)
    at java.awt.MenuItem.processActionEvent(MenuItem.java:669)
    at java.awt.MenuItem.processEvent(MenuItem.java:628)
    at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:351)
    at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:339)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:754)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:702)
    at java.awt.EventQueue$3.run(EventQueue.java:696)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:724)
    at java.awt.EventQueue$4.run(EventQueue.java:722)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NullPointerException
    at it.unibz.krdb.obda.model.impl.PredicateImpl.<init>(PredicateImpl.java:36)
    at it.unibz.krdb.obda.model.impl.OBDADataFactoryImpl.getPredicate(OBDADataFactoryImpl.java:92)
    at it.unibz.krdb.obda.model.impl.OBDADataFactoryImpl.getPredicate(OBDADataFactoryImpl.java:37)
    at it.unibz.krdb.obda.r2rml.R2RMLParser.getBodyPredicates(R2RMLParser.java:221)
    at it.unibz.krdb.obda.r2rml.R2RMLManager.getMappingTripleAtoms(R2RMLManager.java:254)
    at it.unibz.krdb.obda.r2rml.R2RMLManager.getMapping(R2RMLManager.java:144)
    at it.unibz.krdb.obda.r2rml.R2RMLManager.getMappings(R2RMLManager.java:117)
    ... 30 more

Hi,
thanks for reporting the problem, there is indeed a bug with predicate map having a template, after a predicate map having a constant value.

Hi, I'm doing some testing in Protégé and this bug keep happening to me (predicate template leads to error).
This is the map I'm using:
<#just_a_map_five> 	a rr:TriplesMap; 	rr:logicalTable [ 		rr:tableSchema "DB"; 		rr:tableOwner "TEST"; 		rr:tableName "SG_TABLE_ONE" 	]; 	rr:subjectMap [ 		rr:termType rr:IRI; 		rr:template "http://example.org/test/id-{ID}"; 		rr:graph <http://example.org/test> 	]; 	rr:predicateObjectMap [ 		rr:predicateMap [ 			rr:template "http://example.org/{NAME}"; 			rr:termType rr:IRI 		]; 		rr:objectMap [ rr:column "NAME" ]; 	].
With the error message in Protégé (version 1.18.1) while starting reasoner:
`Level:       ERROR
Time:<PHONE_NUMBER>276
Message:     An error occurred during reasoning: it.unibz.inf.ontop.model.OBDAException: java.lang.IllegalArgumentException: There was an error analyzing the following mappings. Please correct the issue(s) to continue.
Error in mapping with id: urn:mapping--1949017033#3af50fca09674ca596650599d5cc7404
Description: Error in identifying column name "NAME", please check the query source in the mappings.
Possible reasons:

The name is ambiguous, or
The name is not defined in the database schema.
{"ID"=t0, VIEW_0."ID"=t0}
Mapping: [SELECT DISTINCT SG_TABLE_ONE."ID" FROM SG_TABLE_ONE WHERE SG_TABLE_ONE."NAME" = 'S030500' ==> [http://example.org/S030500(URI("http://example.org/test/id-{}",ID),NAME)]]`

Still don't know if I'm doing something wrong or it's not been fixed. Tested in both 1.18.1 and 3.0.0. In the 3.0.0 version it throws a NullPointerException while adding the mapping.

Hi Guillermo
I have a strong suspicion that the error message is generated by another mapping (the string ‘S030500’ does not appear in the <#just_a_map_five>).
On another note, do not use “DISTINCT” in mapping queries; and rr:tableOwner/rr:tableSchema are not part of R2RML - use TEST.DB.SG_TABLE_ONE in rr:tableName instead.
Best
Roman

On 4 Oct 2017, at 10:38 am, Guillermo Esteban<EMAIL_ADDRESS>wrote:
Hi, I'm doing some testing in Protégé and this bug keep happening to me (predicate template leads to error).
This is the map I'm using:
<#just_a_map_five> a rr:TriplesMap; rr:logicalTable [ rr:tableSchema "DB"; rr:tableOwner "TEST"; rr:tableName "SG_TABLE_ONE" ]; rr:subjectMap [ rr:termType rr:IRI; rr:template "http://example.org/test/id-{ID}"; rr:graph http://example.org/test ]; rr:predicateObjectMap [ rr:predicateMap [ rr:template "http://example.org/{NAME}"; rr:termType rr:IRI ]; rr:objectMap [ rr:column "NAME" ]; ].
With the error message in Protégé (version 1.18.1) while starting reasoner:
`Level: ERROR
Time:<PHONE_NUMBER>276
Message: An error occurred during reasoning: it.unibz.inf.ontop.model.OBDAException: java.lang.IllegalArgumentException: There was an error analyzing the following mappings. Please correct the issue(s) to continue.
Error in mapping with id: urn:mapping--1949017033#3af50fca09674ca596650599d5cc7404
Description: Error in identifying column name "NAME", please check the query source in the mappings.
Possible reasons:
The name is ambiguous, or
The name is not defined in the database schema.
{"ID"=t0, VIEW_0."ID"=t0}
Mapping: [SELECT DISTINCT SG_TABLE_ONE."ID" FROM SG_TABLE_ONE WHERE SG_TABLE_ONE."NAME" = 'S030500' ==> [http://example.org/S030500(URI("http://example.org/test/id-{}",ID),NAME)]]`
Still don't know if I'm doing something wrong or it's not been fixed. Tested in both 1.18.1 and 3.0.0. In the 3.0.0 version it throws a NullPointerException while adding the mapping.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/ontop/ontop/issues/107#issuecomment-334102518, or mute the thread https://github.com/notifications/unsubscribe-auth/AE7zpshg3PwRAlt3p3IrbWvSgOw1PBOnks5so1IBgaJpZM4H8j3L.

The string 'S030500' is in the database, not the mapping. I'm testing one mapping each time.
The translation of the R2RML mapping to Ontop is:
target		<http://example.org/test/id-{ID}> <http://example.org/{NAME}> {NAME} .
source		SELECT * FROM SG_TABLE_ONE

Hi @gesteban
It's a different issue unrelated to the one reported by Paul, here the translation from r2rml to obda is correct. The bug is due to the way we handle MetaMapping. The use of the column name both inside the predicate and the target is creating a problem at the moment. We are working on the fix. We generally discourage the use of dynamically created properties for performance reasons.

I'm not comfortable with using dynamic properties cause it means we will have a partially dynamic ontology, but the database we are working with gives us no other option to properly describe the data :expressionless:  Thank you @skomlaebri.

Fixed in version 4.


Java error when launching FTB Sky Odyssey

I'm having an issue starting a new server for FTB Sky Odyssey
K8s version: 1.20.4:
Host version: Ubuntu 20.04
chmod: changing permissions of '/data': Operation not permitted
[init] Running as uid=1000 gid=1000 with /data as 'drwxrwxrwx 8 0 0 4096 Apr 15 01:13 /data'
[init] Resolved version given 1.12.2 into 1.12.2
[init] Resolving type given FTBA
[init] FTB modpack ID 8, version ID 142 is ready to go
[init] server.properties already created, skipping
[init] Updating ops
[init] Checking for JSON files.
[init] Setting initial memory to 8192M and max to 8192M
[init] Starting the Minecraft server...
A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:70)
	at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:34)
Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
	at net.minecraft.launchwrapper.Launch.<init>(Launch.java:34)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
	... 6 more
2021-04-15T01:18:00.696Z	WARN	mc-server-runner	sub-process failed	{"exitCode": 1}
2021-04-15T01:18:00.697Z	INFO	mc-server-runner	Done

I don't know why its listing that /data permissions error, as the directory has 777 permissions and seems to have populated it just fine.  Either way, the server spits out that error and get stuck in CrashLoopBackOff.
Values.yml
# ref: https://hub.docker.com/r/itzg/minecraft-server/
image: itzg/minecraft-server
imageTag: multiarch
strategyType: Recreate
resources:
  requests:
    memory: 8192Mi
    cpu: 500m

livenessProbe: {}
readinessProbe: {}

extraEnv:
  FTB_MODPACK_ID: 8
  FTB_MODPACK_VERSION_ID: 142

minecraftServer:
  eula: "TRUE"
  # One of: LATEST, SNAPSHOT, or a specific version (ie: "1.7.9").
  version: "1.12.2"
  # This can be one of "VANILLA", "FORGE", "SPIGOT", "BUKKIT", "PAPER", "FTB", "SPONGEVANILLA"
  type: "FTBA"
  # One of: peaceful, easy, normal, and hard
  difficulty: normal
  # A comma-separated list of player names to whitelist.
  whitelist:
  # A comma-separated list of player names who should be admins.
  ops: cclloyd
  # A server icon URL for server listings. Auto-scaled and transcoded.
  icon:
  maxPlayers: 10
  maxWorldSize: 10000000
  allowNether: true
  announcePlayerAchievements: true
  enableCommandBlock: true
  forcegameMode: false
  generateStructures: true
  hardcore: false
  maxBuildHeight: 256
  # The maximum number of milliseconds a single tick may take before the server watchdog stops the server with the message. -1 disables this entirely.
  maxTickTime: 120000
  spawnAnimals: true
  spawnMonsters: true
  spawnNPCs: true
  # Max view distance (in chunks).
  viewDistance: 18
  # One of: creative, survival, adventure, spectator
  gameMode: survival
  # Message of the Day
  motd: "Sky Odyssey for Casual Try-Hards"
  pvp: true
  # One of: DEFAULT, FLAT, LARGEBIOMES, AMPLIFIED, CUSTOMIZED
  levelType: voidworld
  worldSaveName: world
  # If you adjust this, you may need to adjust resources.requests above to match.
  memory: 8192M
  # General JVM options to be passed to the Minecraft server invocation
  jvmOpts: ""
  # Options like -X that need to proceed general JVM options
  jvmXXOpts: ""

  rcon:
    enabled: false
  query:
    enabled: false

  serviceAnnotations:
    metallb.universe.tf/address-pool: default
  serviceType: LoadBalancer

persistence:
  storageClass: "nfsssd"
  dataDir:
    enabled: true
    Size: 8Gi

Yeah, the chmod error can be safely ignored since you did 777 permissions.
Forge and especially modpacks tend to need Java 8 so try this for the image tag:
imageTag: multiarch-java8

Yup that worked, but the image tag is actually java8-multiarch.  You might want to put that in the documentation somewhere that many FTBA type servers require either multiarch or java8-multiarch to avoid confusion in the future.

Oops, was typing that from memory. There's a message buried in the logs, but good point that I should clarify that here
https://github.com/itzg/docker-minecraft-server#running-a-server-with-a-feed-the-beast-modpack


Add pre-moderation option

Thanks for this plugin! It would be great to add a pre-moderation mode for comments. Add the "moderation" property to each comment, similar to "blocked", and add a button to the admin panel, similar to "Hide comment". And also when changing or creating a comment, set the "moderation" status to true.

@DennieMello can you describe in more details expected flow? Sounds interesting :)


Color picker point sticks to bottom left and bottom right corners while mouse dragging at bottom line

Hi, can this be fixed?
Please pay attention when the cursor moves to the bottom.

Is there any fix to this yet?