how to connect multiple puppet masters to puppetdb

Hi All,
Suppose I have puppet01-hem and puppet02-hem puppet master and one puppet db node i.e puppetdb01-hem
How i can connect my both puppet master to puppet db ??

One of the masters needs to be the single CA server, and the other needs to be set to use it as its CA server. The second master needs to join the first as agent, then made a master. Once this is complete, need to set the option (documented) on the second master for it to not be a CA in /etc/puppetlabs/puppetserver/services.d/ca.cfg. All agents and masters need to have the first master listed as ca_server in the [main] section of their puppet.conf.
Then, the puppetdb server needs to also use the same CA server. This will allow both your masters to send agent reports to the same puppetdb.
This is all possible with Puppet community edition, and I am doing it. Puppet Inc does not document this terribly well, I imagine they would encourage Puppet Enterprise once you start needing to scale up.

Hi,
you need to add the puppetdb conf file:
/etc/puppetlabs/puppet/puppetdb.conf
with content:
[main]
server_urls = https://puppetdb-server:8081/
soft_write_failure = true

If you want to store reports you shoud add to the master section:
reports = puppetdb
storeconfigs = true
storeconfigs_backend = puppetdb

Also, there are a lot of public modules to manage this file/settings for exampe : https://github.com/theforeman/puppet-puppet or puppetdb module.
Because this isn't a issue it could be closed.

I agree that this could be closed, unless the OP has a comment.

Closing, please reopen if needed.


Update kubevirtci to latest and KubeVirt to 1.0, fix all the tests

What this PR does / why we need it:
Update test environment and make sure all tests pass.  Biggest issues around GC now being disabled by default.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

Update test environment to run KubeVirt 1.0

cc @alromeros

/lgtm


R inline output

I have been using python until now that I've got to use R. I like the way Hydrogen output Python results when executing (inline). So, I was wondering if the same could be done when using R (which outputs below).
R output:

Python output:

The problem here is that R is probably also tacking on a newline at the end of execution text results. Instead of inline, can you run the R code above in the output area pane, and screenshot the result? This may help me confirm my theory, and if so, I would have to open a discussion about trimming new lines at the end of stream outputs.

Presumably, this is what you asked for. Thanks you so much in advance.

Close. I am testing to see if running multiple of these concatenates in the output area, so I need you to run three different equations, but make sure you run them line by line not all at once. Thanks.

Ah all right. Sorry for the misunderstanding. They are run line by line. Otherwise it would have been all of them in the same output box (not each one in a different output box, as shown in the first screen shot)

That's unfortunate. Can you give me your kernel's name and version?

The first screenshot is not what I am looking for. I am looking for that right pane like in your last screenshot, but I need you to run 3 equations not at the same time so I get at least 3 separate kernel results. Also can you let me know your kernel's name and version?

This will help you to understand, hopefully.

This isn't your kernel version. That's your R version. Which kernel do you use? Maybe this will help.
https://stackoverflow.com/questions/50467766/in-irkernelinstallspec-jupyter-kernelspec-version-exits-with-code-one
But the other screenshot is exactly what I needed to know.

Yepp, that one.

Do you know which version you have though?

I have been researching on how to prompt the version. As far as I have understood, since Catalina changed the shell to zsh, I haven't found any plausible command. Do you know?

jupyter kernelspec --version should give me the necessary info.

Even without it, I believe I have deduced the issue, but I want to be sure before I open an issue over at irkernel.

I just realized that I didn't activate the virtual environment when running the command. My bad, sorry for the time.
5.3.4

Alright. After a local installation and test here are the results sent back from an up-to-date IRKernel to Hydrogen after sending a request for 4+3
[
   "IO message:",
   {
      "idents" : [
         {
            "type" : "Buffer",
            "data" : [100,101,97,108,101,114,100,49,100,48,52,102,54,100,45,54,98,101,98,45,52,52,99,97,45,57,57,49,51,45,51,50,97,54,55,52,48,49,102,49,50,101]
         }
      ],
      "header" : {
         "msg_id" : "aee0e3da-fe6d-11e9-83a8-a9c397228e2e",
         "username" : "Wade",
         "session" : "00000000-0000-0000-0000-000000000000",
         "msg_type" : "display_data",
         "version" : "5.0"
      },
      "parent_header" : {
         "username" : "Wade",
         "session" : "00000000-0000-0000-0000-000000000000",
         "msg_type" : "execute_request",
         "msg_id" : "execute_f6808de1-e0c9-45d1-85df-edcab9815824",
         "date" : "2019-11-03T19:11:04.951Z",
         "version" : "5.0"
      },
      "metadata" : {},
      "content" : {
         "data" : {
            "text/html" : "7",
            "text/markdown" : "7",
            "text/latex" : "7",
            "text/plain" : "[1] 7"
         },
         "metadata" : {}
      },
      "buffers" : []
   }
]

You notice in the return, we get multiple text types (text/html, text/markdown, text/latex, text/plain). The current function for determining whether a result is a single line of text is as follows.
export function isTextOutputOnly(data: Object) {
  const supported = React.Children.map(
    supportedMediaTypes.props.children,
    mediaComponent => mediaComponent.props.mediaType
  );
  const bundleMediaTypes = [...Object.keys(data)].filter(mediaType =>
    supported.includes(mediaType)
  );

  return bundleMediaTypes.length === 1 && bundleMediaTypes[0] === "text/plain"
    ? true
    : false;
}

Which essentially means, that if there is anything other than just a text/plain sent back its not a single line of text. It could be straight forward to just split the returned media types at the slash and make sure that all returned media types only begin with text regardless of what type of text this is. This would also inherently add single line support for markdown. Thoughts on improving the implementation in this manner @BenRussert @aviatesk?

A second parsing idea has come to me. If text/html and text/markdown are equal I have guaranteed there are no markdown specifics in the text. Then if it is also equal to text/latex then I have guaranteed there is no html nodes in the text. This means I could only potentially have latex text if not plain text. Now, if I am special casing this for R only, then I can check if the text is now equal to the substring without the execution count of text/plain. This will guarantee I only have plain text and can be eligible for inline output.

@wadethestealth I'd be ok with a custom thing like you mention if you find something that works. A nice possible benefit from digging into this issue is that you may come up with a way to determine when html output (for IRKernel or any other kernel) should be rendered inline (e.g. if there are no html tags or newlines, or whatever you come up with.) I've seen the same basic thing happen in other kernels in some edge cases.

Then if it is also equal to text/latex then I have guaranteed there is no html nodes in the text.

We shouldn't need to worry about latex if there is html due to our rendering priority. If you do decide you want to detect html tags, i'd try to find a proven solution on SO or a 3rd party library rather than rolling our own. Although, since security isn't the concern here, you could probably use a regex pattern you'd find on SO.

@benrussert I could write a library for this, but currently I cannot find a 3rd party tool that doesn't render the HTML first. It's also hacky since it reads from current node properties which would require a ref

Im just using the latex to verify there are no HTML nodes in text/html im not trying to render the latex.

@BenRussert yes, but if there is a
Hi.
 it is still one line with no styling. However we could just say it has to be raw text. But we shouldn't just check html, because priority may not always be the same in the future. There are lots of ways to break lines for each text we would have to catch. Because of all the specifics, I thought it would be better to special case and test if all texts are the exact same (minus the execution count) therefore I can just read it as normal to detect single line.


Add a DuckDuckGo back-end

Currently, this package relies on Google, which might not be desirable for all users (privacy concerns, filter bubble, …). What about supporting DuckDuckGo as a search back-end? It supports the site: keyword just like Google.

Or searx... https://searx.laquadrature.net/

@pizzamaker Maybe create a new issue for this.
Personally I think DuckDuckGo would be easier for now. (and it is also more widespread)

filter bubble

When searching for code? I mean - or better: I hope - this plugin does not allow Google to save cookies or something, so that you hopefully cannot be tracked in this way. And as you cannot login to Google they also can't personalize their results using your account information. Additionally I think that filterbubbles rarely matter when searching for code snippets. :laughing:
Anyway I am :+1: for this issue.


Improve Profiler Coverage and API With Regard to Spike Analysis

Summary
While the current profiler code does an overall decent job, the Min / Max stats are next to useless, because they are affected by loading / init states and never reset. There is also no "Other" profile counter that covers all frame times that are not included in rendering or updates. Both of this makes performance spike analysis unnecessarily hard.
Analysis

Introduce static profiler API to reset all min / max values.
Introduce a hotkey to ProfileRenderer to invoke a min / max reset.
Auto-invoke a min / max reset once at the beginning of the fifth game frame.
Introduce a new "Other" profile counter that is set to the difference between the "Frame" counter and the sum of update and render.

Done


[POEM] Action Recognition

Thanks for sharing of your work .
In the paper(View-Invariant Probabilistic Embedding forHuman Pose),the embeddings for action recogni-
tion is evaluated by using nearest neighbor search with the sequence distance .
Can I understand in this way that some pose have already been recognized, and other pose use nearest neighbor search with the sequence distance to find the nearest already recognized pose?Does the model need to additional training?

Hi Team,
I am using the pr-vipe model to do action recognition experiment described by the paper(View-Invariant Probabilistic Embedding forHuman Pose) .
In the second step of your previous reply,we compute Pr-VIPE embeddings on the detected pose from each video frame in Penn Action. I get Penn Action and want to use infer.py(https://github.com/google-research/google-research/blob/master/poem/infer.py) to compute Pr-VIPE embeddings.
But how can I convert Penn Action to csv file described by the infer.py .

Hello, one important note is that you need to use the same keypoint detector on H3.6M to train Pr-VIPE as the keypoint detector on Penn Action to generate the 2D poses (which then can go into infer.py). If you followed the instructions on the Github, your Pr-VIPE model is trained using the Cascaded Pyramid Network (CPN) keypoints, so you would also need to run that detector on Penn Action. Alternatively, if you have your own 2D keypoint detector, you can run it on both H3.6M and Penn Action.
The other fields in the csv can be obtained by converting fields in the .mat file to .csv format, and this can be done using existing libraries in Python such as:
import scipy.io
mat = scipy.io.loadmat('file.mat')
Then you can write to csv once it is loaded. Hope your experiments go well!

Hi,team,
Thanks for your reply. Now I get the result of infer.py with two video.
"embedding_stddevs.csv" , "unnormalized_embedding_samples.csv" , "unnormalized_embeddings.csv"
I read your paper in detail and know that you  get conclusion that the retrieved poses are close to their queries in the embedding space by computing the retrieval confidence of the model in section 4.2.3 .
But I wonder how to compute the retrival confidence of  two frames by three csv files("embedding_stddevs.csv" , "unnormalized_embedding_samples.csv" , "unnormalized_embeddings.csv")
Sincerely.

Thank you for your suggestion. I have finished the code work of the evaluation.
However, every test sample needs to go through KNN and DTW algorithm with all train samples , which takes a long time.
 Is there any way to accelerate it?

Thank you for your suggestion. I have finished the code work of the evaluation.
However, every test sample needs to go through KNN and DTW algorithm with all train samples , which takes a long time.
 Is there any way to accelerate it?

Thank you for your suggestion. I have finished the code work of the evaluation.
However, every test sample needs to go through KNN and DTW algorithm with all train samples , which takes a long time.
 Is there any way to accelerate it?

Does your KNN implementation use parallel jobs? It seems that the sklearn implementation here (https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html) could be helpful. You could pre-compute the distance matrix and that would probably make it a lot faster.
On our end it was ~25 minutes with parallelization.

Thanks for your recommendation API.I use KNeighborsClassifier to train and predict.
knn = KNeighborsClassifier(n_neighbors=5,
algorithm='auto',
metric=cal_dtw_distance)
)
In the process of action recognition , each of my samples is a video. I reshape each sample (two dimension) into a one-dimensional matrix with the length of framenum * 16 (where 16 is embedding of frame). Because each video has different number of frames and the length of sample matrix is different, DTW algorithm is needed to align and calculate the distance of each sample.
But the train function(KNeighborsClassifier.fit(X_train, y_train))  needs samples of the same length. At present, I have two ideas to complement them:
1.Fill ∞ number, but the algorithm of kneighbors classifier （algorithm='auto'） will calculate the mean value of the ∞ number and the normal data of other samples when calculating the sample distance
2.Fill each sample into a one-dimensional index list, such as [videoID, frame_ start，frame_ end]。 When running the my distance function to calculate the distance, use the frame_ start，frame_ End find frames in embedding.csv File, get the matrix and calculate the distance. But it's going to be brute-force search again(algorithm='brute') ,which takes a long time..
How do you solve the problem that each training sample of kneighbors classifier model should be the same length (each sample is not the same length due to the number of frames)

Hello! For your first suggestion to fill in with inf, couldn't you handle by adding inside cal_dtw_distance to ignore inf frames?
I discussed with co-authors and you could also break this into 2 steps:

compute the full dtw distance matrix. (If computation speed is still an issue here, you could try something like https://pypi.org/project/fastdtw/ (we didn't use this approximation, just a suggestion))
the pre-computed distance matrix should not too big, even running non-parallel knn search on this matrix should be relatively quick, and this step can also be parallelized by each query.

@yuan0101213 , I am trying to do video alignment using DTW, it seems that you have implemented this already. Is it possible for you to share your implementation or any resources from where I can quickly figure out this algorithm? thanks...

@yuan0101213 , I am trying to do video alignment using DTW, it seems that you have implemented this already. Is it possible for you to share your implementation or any resources from where I can quickly figure out this algorithm? thanks...

You can go to Google to search the implementation of DTW algorithm, and then modify two places: 1. replace the data with the embedding of two videos; 2. replace the distance function with the distance function in the file(https://github.com/google-research/google-research/blob/master/poem/core/distance_utils.py).In this way, two video aligned frames and their similarity (distance) can be obtained.
Finally, the DTW blog I refer to is https://www.jianshu.com/p/05bee48cc6a2. Chinese VPN may be required.

@yuan0101213 , thank you for quick response.
From blog this is the code for DTW:
from numpy import array, zeros, argmin, inf, equal, ndim
# from scipy.spatial.distance import cdist
from sklearn.metrics.pairwise import manhattan_distances
#在这里我用到的是曼哈顿距离(求绝对值距离)
#如果比较的是二维数组，则用欧几里得距离

s1 = [1, 2, 3, 4, 5, 5, 5, 4]
s2 = [3, 4, 5, 5, 5, 4]

r, c = len(s1), len(s2)
D0 = zeros((r+1,c+1))
D0[0,1:] = inf
D0[1:,0] = inf
D1 = D0[1:,1:]
#浅复制
# print D1

for i in range(r):
    for j in range(c):
        D1[i,j] = manhattan_distances(s1[i],s2[j])
#生成原始距离矩阵

M = D1.copy()
for i in range(r):
    for j in range(c):
        D1[i,j] += min(D0[i,j],D0[i,j+1],D0[i+1,j])
#代码核心，动态计算最短距离

i,j = array(D0.shape) - 2
#最短路径
# print i,j
p,q = [i],[j]
while(i>0 or j>0):
    tb = argmin((D0[i,j],D0[i,j+1],D0[i+1,j]))
    if tb==0 :
        i-=1
        j-=1
    elif tb==1 :
        i-=1
    else:
        j-=1
    p.insert(0,i)
    q.insert(0,j)

print M
#原始距离矩阵
print zip(p,q)
#匹配路径过程
print D1
#Cost Matrix或者叫累积距离矩阵
print D1[-1,-1]
#序列距离

What ive understood from your reply is that I should replace S1 and S2 with embeddings(320 dimension output by Pr-Vipe)
and replace distance function in the above code with distance function in distance_utils.py. But there is no distance function in the above code and there are multiple distance functions in distance_utlis.py? Can you please elaborate alittle bit more...
Thanks and much appreciated

@yuan0101213 , thank you for quick response. From blog this is the code for DTW:
from numpy import array, zeros, argmin, inf, equal, ndim
# from scipy.spatial.distance import cdist
from sklearn.metrics.pairwise import manhattan_distances
#在这里我用到的是曼哈顿距离(求绝对值距离)
#如果比较的是二维数组，则用欧几里得距离

s1 = [1, 2, 3, 4, 5, 5, 5, 4]
s2 = [3, 4, 5, 5, 5, 4]

r, c = len(s1), len(s2)
D0 = zeros((r+1,c+1))
D0[0,1:] = inf
D0[1:,0] = inf
D1 = D0[1:,1:]
#浅复制
# print D1

for i in range(r):
    for j in range(c):
        D1[i,j] = manhattan_distances(s1[i],s2[j])
#生成原始距离矩阵

M = D1.copy()
for i in range(r):
    for j in range(c):
        D1[i,j] += min(D0[i,j],D0[i,j+1],D0[i+1,j])
#代码核心，动态计算最短距离

i,j = array(D0.shape) - 2
#最短路径
# print i,j
p,q = [i],[j]
while(i>0 or j>0):
    tb = argmin((D0[i,j],D0[i,j+1],D0[i+1,j]))
    if tb==0 :
        i-=1
        j-=1
    elif tb==1 :
        i-=1
    else:
        j-=1
    p.insert(0,i)
    q.insert(0,j)

print M
#原始距离矩阵
print zip(p,q)
#匹配路径过程
print D1
#Cost Matrix或者叫累积距离矩阵
print D1[-1,-1]
#序列距离

What ive understood from your reply is that I should replace S1 and S2 with embeddings(320 dimension output by Pr-Vipe) and replace distance function in the above code with distance function in distance_utils.py. But there is no distance function in the above code and there are multiple distance functions in distance_utlis.py? Can you please elaborate alittle bit more... Thanks and much appreciated

According to the paper, I use compute_gaussian_likelihoods. The author also gave me some suggestions. Finally, I used acompute_gaussian_likelihoods.The following are the author's suggestions：
Hi Ducheng,
The compute_gaussian_likelihoods function is not what we used in the paper. I recommend referring to Eq 5 in our paper for how the matching probability p(m|z_i, z_j) between two embeddings z_i and z_j are computed. You can refer to this function for how the matching probability computed:
https://github.com/google-research/google-research/blob/678de1febc782cd76e75e9591fa3b5b9687b083c/poem/core/loss_utils.py#L70
Once you have the matching probability, the distance is simply -log p(m|z_i, z_j).
You can also directly use the L2 distance between the embedding means of the two predicted Gaussians ("unnormalized_embeddings.csv"), which should also work is much simpler.
Thanks,
Ting

@yuan0101213 , thanks again for a thorough reply. I will apply your suggestions and update you here. Thanks

Hi, I have one question how we can give our known 2D keypoints to the pr-vipe model.

@yuan0101213 , Hi I want to ask how we can give our own keypoints to the pr-vipe model?


Expose owner from the order model

Expose owner so the Orders page can show the person who made the order.
https://projects.engineering.redhat.com/browse/SSP-326

cc - @Hyperkid123

@syncrou Any reason not to combine this with #258 ?

@gmcculloug I broke them out by Jira stories. The #258 story was existing so I kept the PRs separate.


Job Status first shows 'ABORTED' when binding a second SG with 2 DAs, then passes on subsequent Sync

Description
Job Status first shows 'ABORTED' when binding a second SG with 2 DAs, then passes on subsequent Sync
Expected Behavior
Jobs should have passed on the first attempt
Actual Behavior
Job Status first shows 'ABORTED' when binding a second SG with 2 DAs, then passes on subsequent Sync
Steps to Reproduce

Create VC (using sfc), MC, 2DAs, 2DSs, 2SGs
SG-1 is binded with da-1, da-2 (using SFC bind API)
Bind SG-2 also with da-1, da-2 also  using SFC bind API
The second bind shows an ABORTED job status.
Subsequent sync makes the job pass

Additional Information
Excerpt from logs:
2017-10-13 07:49:16,874 [ERROR| isc-job-pool-7| o.o.c.b.j.Job]: Fatal error during job execution (Job [name=Syncing Security Group 'sg-2', state=RUNNING, status=PASSED])
java.util.ConcurrentModificationException: null
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)
at java.util.HashMap$EntryIterator.next(HashMap.java:1471)
at java.util.HashMap$EntryIterator.next(HashMap.java:1469)
at com.google.common.collect.AbstractMapBasedMultimap$Itr.next(AbstractMapBasedMultimap.java:1145)
at org.osc.core.broker.job.Graph.getPredecessors(Graph.java:183)
at org.osc.core.broker.job.TaskNode.getPredecessors(TaskNode.java:283)
at org.osc.core.broker.job.Job.checkAllPredecessorsCompletedSuccessfully(Job.java:340)
at org.osc.core.broker.job.Job.executeGraph(Job.java:245)
at org.osc.core.broker.job.Job.run(Job.java:171)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Environment

OSC Version/Build: Version: 1.0.0-SNAPSHOT (Build:112-g42e1905, 2017-10-11T18:46:02Z)
Cloud Provider Info:
Plugin Info:
Other:

Status

[ ] Reproduced
[ ] In Progress
[ ] Validated     =>    Verified in Version/Build:

securityBroker-ABORTED.log

Looks like the stacktrace is showing issue in the job engine...hence high priority/severity

DE5349

The exact behavior is hard to reproduce. However,  we have added two unit tests to JobEngineTest, and these produce exactly the same stack trace.
It appears the issue is with the tasks that modify their own task graph. If a new edge is added while getPredecessors is iterating through all the old edges, the iterator throws the ConcurrentModificationException.
We have reproduced the exception by adding two unit tests, which do not fail consistently! But after our fix, they pass consistently.

Manishi cannot reproduce closing it


Hide 0 balances for tokens

Currently if user have touched contracts for any reason, they show up with 0 balances in the wallet without any reason.
Here is an example of a wallet that was whitelisting some tokens for another contract usage:

It should be fixed with the V0 of fungible tokens transfers in #1714, as is part of the acceptance criteria.
Linking this issue to the epic, so you can test when we are ready


No replaying of offline messages

For several releases now (I am currently using matterircd 0.23.0, but this has happened with several releases now, as far as I can tell ever since #267 was supposedly "fixed"), I never get any messages that are sent while I was offline from IRC, neither in chans nor in private messages. This used to mostly work, except for #267. But when I upgraded matterircd on the server to fix #267, the messages actually stopped arriving altogether. And it always takes days if not weeks until I notice this (because I have to actually receive a message, and then actually notice that I did not see it, which means I need to go out and check the Mattermost web interface), then I try a new mattericd version that claims to have related fixes, only to figure out eventually that it is still broken. This is very annoying and I have already missed messages more than once due to this bug.
Manually requesting the scrollback as is now possible is not really a solution because I need to know that there is scrollback to check to begin with. I really need the unseen messages automatically replayed.

I have run into this bug with matterircd 0.20.0, 0.22.0, and 0.23.0.

0.19.4 was the last version that replayed anything for me, though with wrong sender for PMs (#267).

@kkofler, do you have LastViewedSaveFile set? (e.g. LastViewedSaveFile = "matterircd-lastsaved.db')
Also, are you using any IRC bouncers (bip, znc, etc.)?

@kkofler, do you have LastViewedSaveFile set? (e.g. LastViewedSaveFile = "matterircd-lastsaved.db')

No, should I?

Also, are you using any IRC bouncers (bip, znc, etc.)?

No. (I suppose I wouldn't really need this feature if I were.)

No, should I?

Yes, that would definitely help with replaying of all messages when offline. Otherwise, it relies on server side's state of when you last viewed a channel - it's possible that there's a race there where new messages are updating that state before the execution of the code to replay messages not seen but I'll need to look into that and confirm.

No. (I suppose I wouldn't really need this feature if I were.)

Even with a bouncer, you can't be sure your connectivity between that and the mattermost server is always up is what I'm getting at :)

Is it possible that the "server side's state of when [I] last viewed a channel" is confused because DisableAutoView = false (the default, which I have not changed)? Still, I would expect that at most to replay too many messages, not too few.

In any case, I am trying LastViewedSaveFile = "/opt/matterircd/var/matterircd-lastsaved.db" now, but if nobody actually sends me a message while I am offline, it will be hard to tell whether it works.

I'm also not sure why this actually needs to be saved to a file, because matterircd is running all this time, only my IRC client is offline. So it should really be enough to keep this information cached in RAM.

I don't see it actually writing that file /opt/matterircd/var/matterircd-lastsaved.db though, nor do I see any errors about it in the log, except for the ones on startup:
Mar 31 00:29:48 k002922b matterircd[13847]: time="2021-03-31T00:29:48+02:00" level=warning msg="Unable to load saved lastViewedAt, using empty values: open /opt/matterircd/var/matterircd-lastsaved.db: no such file or directory" module=matterircd

[…]
Mar 31 00:29:58 k002922b matterircd[13847]: time="2021-03-31T00:29:58+02:00" level=warning msg="Unable to load saved lastViewedAt, using empty values: open /opt/matterircd/var/matterircd-lastsaved.db: no such file or directory" module=matterircd

which is no surprise because the file obviously did not exist yet.

I have run into this bug with matterircd 0.20.0, 0.22.0, and 0.23.0.

Have you tried with 0.24.0?
I've tried with the latest 0.24.1-dev and can't reproduce it.  Then reconnect my IRC client and the messages since then are replayed accordingly.

I will try 0.24.0. The problem is, by the time, I know whether 0.24.0 works, you will likely already have the next release. (This is also why I have not filed the bug sooner. There was always a newer version to try by the time I realized the one I was running did not work.) And I did not see a relevant fix in the documented list of fixes in 0.24.0. But I will try it.

We use Mattermost only sporadically, so I do not get messaged all that often. And if there was no message, I cannot miss any. ;-)

I have now upgraded to 0.24.0, but I don't know when I will be able to report success or failure.

What I see is that /opt/matterircd/var/matterircd-lastsaved.db is not getting created, despite this being configured as LastViewedSaveFile, so something is not working as designed.

What I see is that /opt/matterircd/var/matterircd-lastsaved.db is not getting created, despite this being configured as LastViewedSaveFile, so something is not working as designed.

The file was only created after defaultSaveInterval, which defaults to 5 minutes after any new messages. I've created a PR to suppress the warning when the lastViewedAt state file doesn't exist to avoid confusion as well as to create it early on.

Well, I did receive some messages (but only while I was online), the file was not created anyway.

Oh of course.
Everytime you connect to matterircd using your IRC client, the lastViewedAt state is reset (or reloaded from LastViewedSaveFile) - that's done in NewUserBridge().
I think https://github.com/42wim/matterircd/pull/422, which landed recently but due to be included in 0.24.1, should help you here. Together with LastViewedSaveFile, it will save the known lastviewedAt state on logging out (usually when your IRC client disconnects).

Since you "only use the stored last viewed if it's later than what the server knows" (see the comment in #422), I am doubtful that this will help, I suspect it can only lead to more missed messages compared to trusting the server only (which appears to be the fallback if the file is missing as is usually the case now).

To be honest, I'd rather in some corner cases get a message twice than to not get a message at all!

I can confirm that matterircd 0.24.0 does not fix the issue, and neither does setting LastViewedSaveFile. I received a PM on Mattermost while I was offline, it was not replayed by matterircd.
If this "last viewed" state is per channel, how can it possibly work for private messages? Private messages in IRC are not chans that are joined or parted, how do you know which ones are open? (The private 1:1 chat might not even be "open" in Mattermost, e.g., in this case, when I checked the web interface, it was not. But in most cases where I had the issue so far, it was open when I checked the web interface, so that detail does not seem to matter.)

And today, without having changed anything in the configuration (nor having upgraded matterircd) since last time where it did not work (where I was already running 0.24.0), I got a message replayed. So there seems to be some non-reproducible factor.

Since you get infrequent messages, might I suggest enabling both Debug and Trace to try capture what's happening and why some messages are missed and others replayed?

Since you get infrequent messages, might I suggest enabling both Debug and Trace to try capture what's happening and why some messages are missed and others replayed?

Done. I see some logging output. I hope this will allow us to debug what is going on.

Also, OOI, what is the Mattermost server version you're connecting to?

Mattermost 5.26.2 (bundled with GitLab Community Edition 13.4.3).

Once again a message was not replayed. I received it on 2021-06-16 13:06:52 CEST (11:06:52 UTC). At 20:07:14 CEST (18:07:14 UTC), the last viewed at time for the private message "chan" is as follows: getLastViewedAt 3kcjfd6uqpfu8dsm45ery9a14a:<PHONE_NUMBER>744, which would be 13:07:31.744 CEST (11:07:31.744 UTC), so around 39-40 seconds after the message was sent. But I obviously did not view the conversation at that time, I was completely offline.
Does getLastViewedAt really get only the channel ID as the parameter and no user ID? (From the trace output, it seems so!) Then that is fundamentally broken and cannot possibly work. The last viewed time is obviously per user. The user who sent the message likely viewed it at the indicated time, but I did not.

So do you have JoinDM enabled? If not, can you try with it enabled? It isn't just for group messages but also direct 1:1 / PMs.
Direct and group messages are like virtual channels. They have a channel ID and the name is usually "user1-user2", IIUC.
The last viewed time is not for the channel or all users of that channel, but when "you" last viewed that channel. Again, IIUC.

So do you have JoinDM enabled?

Yes. I enabled it on April 8 (and yes, I restarted matterircd after I changed the settings), it was disabled before.

The last viewed time is not for the channel or all users of that channel, but when "you" last viewed that channel. Again, IIUC.

Well, that is clearly how it should be, but then the given timestamp is clearly wrong.

Ah, forget it! Checking my logs again, this message did actually arrive, and in fact I was actually online when it was sent. Sorry for the false alarm, I am going to report back if and when there is actually an undelivered message again.

(There hasn't been one for a while, but that is expected because there wasn't any message sent while I was offline to begin with.)

Good news: replaying did work today! But I cannot tell yet whether it always works.

going to close this, there are really few things out there that will always work :)


Redundant

This is really cool stuff! However, are you aware that there already is a math module? In addition, some functions like power already exist (power is ** operator). If this was made for fun, I would understand, but just checking that you know this isn't original.

It’s for fun. Plus, this is deprecated as I made a new, better one that’s not released yet.


Allow subscriptions to provide cleanup functions from handler

See discussion here: https://replit.slack.com/archives/C05GZ4NRSJ3/p1711562720244819
Otherwise we could have listeners set up within subscription handlers that we don't have a good way of cleaning up. Now, subscriptions can return a disposal callback () => void that gets called when the subscription ends.
I didn't implement this for streams or uploads yet because there is another way of handling it for now:
for await (const msg of input) {
 // processing...
}

// by the time we get here we're closed, so you can clean up right here

~/replit/river [main]
> npm run test

><EMAIL_ADDRESS>test
> vitest --test-timeout=500

 DEV  v1.3.1 /Users/brady/replit/river

 ✓ transport/impls/ws/ws.test.ts (3)
 ✓ __tests__/disconnects.test.ts (16)
 ✓ __tests__/cleanup.test.ts (24)
 ✓ transport/impls/ws/ws.test.ts (3)
 ✓ __tests__/disconnects.test.ts (16)
 ✓ transport/impls/ws/ws.test.ts (3)
 ✓ __tests__/disconnects.test.ts (16)
 ✓ __tests__/cleanup.test.ts (24)
 ✓ __tests__/e2e.test.ts (48)
 ✓ transport/transport.test.ts (40) 453ms
 ✓ __tests__/negative.test.ts (2)
 ✓ transport/transforms/messageFraming.test.ts (6)
 ✓ __tests__/proxy.test.ts (1)
 ✓ transport/impls/uds/uds.test.ts (1)
 ✓ codec/codec.test.ts (12)
 ✓ __tests__/handler.test.ts (9)
 ✓ __tests__/serialize.test.ts (3)
 ✓ transport/message.test.ts (7)
 ✓ __tests__/typescript-stress.test.ts (2)
 ✓ __tests__/fixtures/observable.test.ts (4)

 Test Files  15 passed (15)
      Tests  178 passed (178)
   Start at  15:12:30
   Duration  1.19s (transform 378ms, setup 2ms, collect 2.20s, tests 1.11s, environment 2ms, prepare 878ms)

can you run npm run fix to make the linter happy? (surprised that vscode didn't pick it up)


require is not a function

graceful-fs is required by fstream, which is required by unzip (which I use), and it requires natives, about which the author states in https://github.com/addaleax/natives "Don't use unless you know what you're doing, or at least, are ok with the risks. Don't say I didn't warn you."
in any case, on OSX 10.14.3 natives breaks with the following error:
/node_modules/natives/index.js:45
    whitelist.forEach(function (id) {
^
TypeError: require is not a function
    at /node_modules/natives/index.js:50:1
    at Array.forEach (<anonymous>)
    at Object.req [as require] (/node_modules/natives/index.js:45:1)
    at Object.8956 (/node_modules/graceful-fs/fs.js:1:1)
    at __webpack_require__ (/webpack:bootstrap:19:1)
    at Object.2242 (/node_modules/graceful-fs/graceful-fs.js:3:1)
    at __webpack_require__ (/webpack:bootstrap:19:1)
    at Object.7402 (/node_modules/fstream/lib/reader.js:4:1)
    at __webpack_require__ (/webpack:bootstrap:19:1)
    at Object.7821 (/node_modules/fstream/fstream.js:2:1)

I don't know why require wouldn't be available within NodeJs, nor why graceful-fs would chose to use a module whose author explicitly states:

When your program is broken by changes to Node's internals, or when Node changes in such a way that this module becomes fundamentally broken, you will likely get little sympathy. Many people in the Node community consider this sort of behavior to be unwise and unseemly, if not outright hostile and morally wrong.

but there it is.  it's broken and it needs to be fixed.  if there isn't an excellent reason to use graceful-fs, it should be yanked from the dependency list.  if there is, someone needs to figure out why it's broken
if I can help in any way please let me know

graceful-fs does not use natives directly or indirectly.  See the following code:
gfs.readdir('some-directory', (err, files) => {
  if (err) throw err
  // call something in natives from here.
})

In that case graceful-fs would appear in the backtrace but is not responsible for the call to natives, the caller of gfs.readdir is responsible.

I just looked at the dependencies again, it appears that<EMAIL_ADDRESS>and above use graceful-fs 4.x, older versions use graceful-fs 3.  Unfortunately the unzip module is locked to fstream >= 0.1.30 < 1 so that module needs to be updated.
I'm closing this issue as it is resolved in current versions of graceful-fs.


Update MSDN links, Part 16

@NextTurn : Thanks for your contribution! The author, @jpconnock, has been notified to review your proposed change.

@NextTurn : Thanks for your contribution! The author, @jpconnock, has been notified to review your proposed change.

We're reviewing this pull request.

Hi @NextTurn - Could you remove versioning in your relative links, or indicate why version information might be necessary for a relative link that you use? We're reviewing your other pending PRs (titled "Update MSDN links"). When version information is removed or confirmed as necessary, we'll move each commit to the private repo so we can test the links on staging before merging the content updates. Thanks.

@NextTurn : Thanks for your contribution! The author, @jpconnock, has been notified to review your proposed change.

Done.

Thank you @NextTurn. Thanks again for your contribution.
Private repo PR 71732 replaces this pull request. We moved the commit to the private repo so we can validate formatting changes by using automated validation and staging. We'll close this PR now.


Support for ISO8601 formatted dates

The date and date-time formats don't support ISO8601 formatted dates.
For example, 2016-04-11T18:18:10.2819403+02:00 does not match date[-time] format.
It would be great to handle this format, so I could cast the previous date string to a Date object as in the convert example.
Currently I can validate my JSON against this format with this snippet (using the isDate function from validator lib), but it isn't converted to a Date in the same pass.
I tried to add a new format using the extendFormat function, but casting to Date in convert does not seem to work with my custom format (tonicdev snippet).

The method extendFormat() works fine for me. But your input does not match the given ISO8601 regex. Therefore the validations is invalid and the convert function is not triggered.


HTML

HTML
User Story
As a bootcamp student
I want the prework notes to be structured on a web page
so that I can easily find and read information
Acceptance Criteria
GIVEN a prework Study Guide Website
WHEN I visit the website in my browser
THEN I see four boxes titled HTML, CSS, GIT and JavaScript with associated notes listed

HTML Prework complete


[Feature] Add support for new style ore generation

Hello! So, I'd like to be able to use this mod to add the new, experimental 1.17 ore generation to all biomes, including modded ones. Unfortunately, this mod does not support the new style generation, only the old style - if you want to make ore spawn at smoothly varying frequencies at different heights, you're out of luck, it only supports min and max Y values, nothing else. Support for filtering biomes by BiomeDictionary types would also be nice.

Hey thanks for the feedback. New ore generations is definitely being added in, I just need the time to do it. I have not rushed it yet but I need to get it done before 1.18.
The new huge update I am currently been working on will switch over to using biome registry names and will also support Enum BiomeDictionary.Type. I keep this feature request open and posted when I publish any changes related to this.

Oh nice, thank you!

Huh, interesting question: Does it currently override the new ore gen system? That is to day, if I throw it and the preview data pack together, will I get both kinds of ore gen?

I think you do get both kinds. Might be worthwhile to make a config option for that, actually - so, for those that just want to add extra ores, they can set 'disableOres' to false, or something.

That is a good suggestion. I will look into that!


Do not restart adapter system.adapter.radar2.0 because disabled or deleted

The instance won´t start anymore. I removed it and added it but with no success. Here are the log entrys:
2023-05-12 06:26:14.607 - debug: radar2.0 (32065) Redis Objects: Use Redis connection: <IP_ADDRESS>:9001
2023-05-12 06:26:14.676 - debug: radar2.0 (32065) Objects client ready ... initialize now
2023-05-12 06:26:14.678 - debug: radar2.0 (32065) Objects create System PubSub Client
2023-05-12 06:26:14.680 - debug: radar2.0 (32065) Objects create User PubSub Client
2023-05-12 06:26:14.750 - debug: radar2.0 (32065) Objects client initialize lua scripts
2023-05-12 06:26:14.758 - debug: radar2.0 (32065) Objects connected to redis: <IP_ADDRESS>:9001
2023-05-12 06:26:14.798 - debug: radar2.0 (32065) Redis States: Use Redis connection: <IP_ADDRESS>:9000
2023-05-12 06:26:14.819 - debug: radar2.0 (32065) States create System PubSub Client
2023-05-12 06:26:14.820 - debug: radar2.0 (32065) States create User PubSub Client
2023-05-12 06:26:14.863 - debug: radar2.0 (32065) States connected to redis: <IP_ADDRESS>:9000
2023-05-12 06:26:14.983 - error: radar2.0 (32065) adapter disabled
2023-05-12 06:26:15.037 - warn: radar2.0 (32065) Terminated (NO_ADAPTER_CONFIG_FOUND): Without reason
2023-05-12 06:26:15.712 - error: host.raspberrypi instance system.adapter.radar2.0 terminated with code 3 (NO_ADAPTER_CONFIG_FOUND)
2023-05-12 06:26:15.714 - info: host.raspberrypi Do not restart adapter system.adapter.radar2.0 because disabled or deleted

Found it myself in a forum comment (but don´t know why it worked)

sudo apt-get install libcap2-bin arp-scan bluetooth bluez libbluetooth-dev libudev-dev net-tools
sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which arp-scan`)
sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which node`)
sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which arp`)
sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which hcitool`)
sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which hciconfig`)
sudo setcap cap_net_admin,cap_net_raw,cap_net_bind_service=+eip $(eval readlink -f `which l2ping`)

SHould be also shown in the readme thsat this migt be needed

The big question is why this happens suddenly? My radar2 ran for a few years without any problems.

Nope. The only thing I did was removing dinner old objects from the radar device list and then I restarted b the instance. Bang


GYB gmail access failed after Google no longer supports OAuth 1.0

Dear Developer,
GYB has been my go to tool for backing up and migrating Gmail accounts. It has worked wonderfully. Thank you!
GYB recently stopped working (last automatic backup completed was on May 5). When it runs, GYB could not gain access (access was granted before when automatic backup was setup):

When GYB tries to open a browser page for user to grant GYB access to gmail, this page opens up:
https://support.google.com/a/answer/6224347?p=oauth&rd=1
It looks like Google has changed the authentication process from OAuth 1.0 to OAuth 2.0 (Why do these big companies always break things that work!?).
Could this be fixed soon?
Thanks so much for such a wonderful tool. I hope it could continue to benefit users.
Best regards,
lichen98

GYB 0.30 uses OAuth 2.0 which is supported. Please make sure you've updated and are using the most recent version.


GUM examples should only use https

Chrome is enforcing SSL for GUM, so it doesn't work on http anymore.

Thanks.
I want to leave this example as is it, to make it possible for developers to see how browsers respond to an HTTP URL — though I've done something different for the Media Recorder example.
Having said that, I might add an error message in the page.

+1 for the message. It's an easy detail to overlook.

Would be nice if everything defaulted to https though. Currently;
$ curl -I https://simpl.info/getusermedia
HTTP/1.1 301 Moved Permanently
...
Location: http://simpl.info/getusermedia/

I'd left this to make it possible to test the experience without HTTPS, but
that's just starting to get annoying...
I might get the site to default to HTTPS, as suggested.
On 19 April 2016 at 02:38, William Boman<EMAIL_ADDRESS>wrote:

Would be nice if everything defaulted to https though. Currently;
$ curl -I https://simpl.info/getusermedia
HTTP/1.1 https://simpl.info/getusermediaHTTP/1.1 301 Moved Permanently
...
Location: http://simpl.info/getusermedia/
—
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
https://github.com/samdutton/simpl/issues/74#issuecomment-211826234


MSID: 95388 Version: 1 DOI: 10.1101/2<IP_ADDRESS>5304

MSID: 95388
Version: 1
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>5304
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=95388
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>5304

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/95388v1
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>5304
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/95388/v1/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

@fred-atherden The reviews aren't present here; this article was appealed so I wonder if that's caused something to go wrong?

Hi @JGilbert-eLife, looks like the reviews  were only posted yesterday (29th) so I would expect them to appear today. There is however an issue with DataHub pipelines which has prevented the reviews from being pulled in, so I expect they'll only appear once that issue is resolved.


Update log_posix.c

size error.

Hey thanks for the fix!
Once the CLA is signed I'll merge it in.

Hi @ctiller, I've signed the CLA.

Thanks for the fix!


Getting "No token provided" error if the page is not used for a certain period of time.

Description:
Getting "No token provided" error if the page is not used for a certain period of time. It also seems to happen if another tab is also opened in the same window. Token is not getting refreshed.

Note: It's getting logged in and working normally once the page is refreshed.

There is no easy straighforward way to fix this. Most likely we should fix issue in general for all the microapps. For now I've logged an issue in the Navbar app here https://github.com/topcoder-platform/micro-frontends-navbar-app/issues/27 and suggested some common solution, though that solution also has some downsides, quite complex and is not perfect.
So I guess this would need more discussion with other MFE apps owners.


PostgreSQL automatic upgrades

It would be fantastic if we could do automatic db upgrades when package gets bumped.
Ideally we could use pg_upgrade.

https://github.com/justinclift/docker-pgautoupgrade


Change the Logo / title / subtitle

Description
This is PR for https://github.com/BuidlGuidl/batch8.buidlguidl.com/issues/8
Additional Information

[x] I have read the contributing docs (if this is your first contribution)
[x] This is not a duplicate of any existing pull request

Related Issues
_Closes #8
Your ENS/address: 0xfb8b972b0D1cF9BB242A40F7AEA8E9a1bF89E0E3

Thanks for your PR, @0xzeze! I appreciate that you linked to #8 for clarity. Your commit messages are also nicely labeled, making it easy to know what each one covers 👍
Regarding the PR process (not your code) for a moment, check out these parts of our CONTRIBUTING.md:

Create a new branch with a descriptive name

and

Structure the description neatly to make it easy to consume by the readers. For example, you can include bullet points and screenshots instead of having one large paragraph.
Have a good commit message that summarises the work done.

Your PR is from 0xzeze:origin, which is less descriptive than something like 0xzeze:change-logo-and-title. Let's leave this as-is; something to keep in mind for the future.
You can still change your PR message here on GitHub. Please edit your original message to include a list of changes this PR makes and a screenshot previewing those changes. I personally agree with all of the advice in this video regarding descriptive PRs, even for small changes like this one.
Ping me after you update your PR message and we can get this merged 💪

Thanks for your PR, @0xzeze! I appreciate that you linked to #8 for clarity. Your commit messages are also nicely labeled, making it easy to know what each one covers 👍
Regarding the PR process (not your code) for a moment, check out these parts of our CONTRIBUTING.md:

Create a new branch with a descriptive name

and

Structure the description neatly to make it easy to consume by the readers. For example, you can include bullet points and screenshots instead of having one large paragraph.
Have a good commit message that summarises the work done.

Your PR is from 0xzeze:origin, which is less descriptive than something like 0xzeze:change-logo-and-title. Let's leave this as-is; something to keep in mind for the future.
You can still change your PR message here on GitHub. Please edit your original message to include a list of changes this PR makes and a screenshot previewing those changes. I personally agree with all of the advice in this video regarding descriptive PRs, even for small changes like this one.
Ping me after you update your PR message and we can get this merged 💪

Hello,you can check now. Thank you and thanks for helping

Thanks for updating your PR! Looks great - merging!


Matrix Transpose in C

🚀 Feature
(A clear and concise description of what the feature is.)
Have you read the Contributing Guidelines on Pull Requests?
Yes
Pitch
Transpose of a Matrix in C

/assign


[json-rpc] ensure response data use lower case for hex-encoded string

Motivation
JSON-RPC api response for account address case format is inconsistent: some uses lower case, some uses upper case.
Consistent lower case format can avoid people make mistake like: string compare without ignoring case.
Especially for account address, instead of comparing bytes, developers may direct compare hex-encoded string, which should be case insensitive.
This PR also changes other hex-encoded data type to use BytesView for ensuring lower case across board.
Test Plan
unit tests
Related PRs
#6296

This PR may have modified JSON-RPC server code.
Breaking changes policy:

Chaning JSON-RPC method signatures or removing/modifying fields
in the response in /V1 will not be accepted.
Adding fields is ok.
Adding a new JSON-RPC method is ok.

Please ensure you have also done the following to update the docs:

Update json-rpc/API-CHANGELOG.md.
Add/update type/method documentation under json-rpc/docs.

/land

\land


Use the named export instead of the default export at the Customize Theme Page

Provide the exact quote of the error or issue
Use the named export where it uses the default export at the Customize Theme Page. For example...
from:
import { extendTheme, UsageTheme } from "@yamada-ui/react"
// import styles from './styles'
// import components from './components'
// import tokens from './tokens'

const customTheme: UsageTheme = {
  // styles,
  // components,
  // ...tokens,
}

export default extendTheme(customTheme)()

to:
import { extendTheme, UsageTheme } from "@yamada-ui/react"

export const customTheme: UsageTheme = {
  // styles,
  // components,
  // ...tokens,
}

export const theme = extendTheme(customTheme)()

Does the docs page already exist? Please link to it.
https://yamada-ui.com/styled-system/theming/customize-theme
Are you willing to participate in fixing this issue and create a pull request with the fix?
None

@odendayoko
Have you investigated other documentation for similar statements?

@hirotomoyamada
Sorry...
The following other examples use defaule export and should be corrected.
1. ./theme/tokens/index.ts
from:
import { colors } from "./colors"

export default { colors }

to:
import { colors } from "./colors"

export const tokens = { colors }

2. ./theme/styles/index.ts
from
import { globalStyle } from "./global-style"

export default { globalStyle }

to
import { globalStyle } from "./global-style"

export const tokens = { globalStyle }

3. ./theme/components/index.ts
from:
import { Container } from "./container"

export default { Container }

to:
import { Container } from "./container"

export const components = { Container }

@odendayoko
Thx.

@hirotomoyamada Sorry... The following other examples use defaule export and should be corrected.
1. ./theme/tokens/index.ts
from:
import { colors } from "./colors"

export default { colors }

to:
import { colors } from "./colors"

export const tokens = { colors }

2. ./theme/styles/index.ts
from
import { globalStyle } from "./global-style"

export default { globalStyle }

to
import { globalStyle } from "./global-style"

export const tokens = { globalStyle }

3. ./theme/components/index.ts
from:
import { Container } from "./container"

export default { Container }

to:
import { Container } from "./container"

export const components = { Container }

@odendayoko
Are there anything wrong? I think the  example you showed at first comment is wrong because token is imported with named-import.But other example is not. I can understand why we should use named-export. Please tell me !!
import { createRoot } from "react-dom/client"
import { App } from "./app"
import { UIProvider } from "@yamada-ui/react"
import { theme } from "theme"

const container = document.getElementById("app")

const root = createRoot(container!)

root.render(
  <UIProvider theme={theme}>
    <App />
  </UIProvider>,
)

@Shunii85 @hirotomoyamada
Sorry, I was wrong../theme/index.ts also needs to be modified.
I would like to see a modification to named imports to match the Yamada UI implementation.
2. Changing Styles
from
// ./theme/styles/index.ts

import { globalStyle } from "./global-style"

export default { globalStyle }

// ./theme/index.ts

import { extendTheme, UsageTheme } from "@yamada-ui/react"
import styles from "./styles"
// import components from './components'
import tokens from "./tokens"
import { semantics } from "./semantics"

to
// ./theme/styles/index.ts

import { globalStyle } from "./global-style"

export const styles = { globalStyle }

// ./theme/index.ts

import { extendTheme, UsageTheme } from "@yamada-ui/react"
import { styles }  from "./styles"
// import components from './components'
import { tokens } from "./tokens"
import { semantics } from "./semantics"

3. Changing the Style of Components
from
// ./theme/components/index.ts

import { Container } from "./container"

export default { Container }

// ./theme/index.ts

import { extendTheme, UsageTheme } from "@yamada-ui/react"
import styles from "./styles"
import components from "./components"
import tokens from "./tokens"
import { semantics } from "./semantics"

to
// ./theme/components/index.ts
import { Container } from "./container"

export const components = { Container }

// ./theme/index.ts

import { extendTheme, UsageTheme } from "@yamada-ui/react"
import { styles } from "./styles"
import { components } from './components'
import { tokens } from "./tokens"
import { semantics } from "./semantics"

@odendayoko Thank you! I would.


No need to call gardenContainer.Info() twice between two pure memory operations

No need to call gardenContainer.Info() twice between two pure memory operations

Thanks, @andyliuliming, sounds reasonable to me. Prioritizing for the Diego team to evaluate soon.
Best,
Eric


Rob fixes

What
Introduces a new way of working with Wagtail locally.
How to review
Please follow the README.md from Getting Started to URLs and see if you can break anything

If you run git diff e4486e436523f55446fda96f8f6f03f67acbc64f HEAD you'll see not much has change since the version that I got working in dev (https://dev.azure.com/ofsbeta/discoverUni/_build/results?buildId=4049&view=results)


tools: add support for nv12 in compressed_vipc

Manually transforming to nv12 untill PyAV merge this https://github.com/PyAV-Org/PyAV/pull/996

Feel free to merge if this works


feat: add option to choose starting day of the week

Fixes #231, by choosing the day in the settings:

Hello there 👋 As you might have seen in the docs, it's better to discuss the implementation with the maintainer before starting your work. I assigned the issue to myself, and I implemented it some time ago in a feature branch. So closing this as redundant.


Multiple simultaneous clipping planes

Hi
Looking at the source and documentation, there doesn't seem to be a way to clip multiple planes simultaneously. This would allow to build UI sliders for clipping planes as it is done by, for example, Allen Institute for Cell Science.
What would be the projected effort to build out such functionality?
https://github.com/niivue/niivue/assets/16798824/f5d98d57-1d2a-4a93-a174-d576f194e607

I have submitted a new pull request that will create the clipplanes2 live demo when merged. This live demo showcases two new features:

nv.setClipPlaneThick(): allows the existing clip plane (which allows oblique cuts) to be shown as a slab with arbitrary thickness.
nv.setClipVolume(): defines a clipping volume across columns (x), rows (y) and slices (z).

The live demo also shows how they perform differently. The clip plane only influences the background volume and is illustrated with a graphical orientation rectangle with adjustable color and opacity, while the clip volume influences all volumes. I do like how the Allen Institute Cell Feature Explorer provides two-handled sliders. I use plain HTML for all the live demos to provide minimal, framework agnostic demos. However, for these functions I would recommend using a two-handled slider with your favorite framework (Angular, React, Vue).

That looks perfect and the assumption about the sliders is very reasonable. 👍 It will be super simple to use when niivue-react gets a prop for this.

PR is merged. Please evaluate the live demo and close this issue if it resolves your request.


Webapp pylint fixes

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

@williexu , thanks for making these changes. However i wanted to understand the PYLint strict enforcement on extensions repo. Aren't all these changes we would make /update when we move this to Core CLI?
Thank you.

@panchagnula no, the CI was not running on all extensions properly before (we were running ./scripts/ci/test_static.sh only for a subset).
This has been fixed in the pylint branch.
And we will be merging this into the master branch once all the pylint violations have been addressed.
That being said, does your team want to take over the pylint fixes for webapp?

@williexu  do you want us to take over for fixes beyond the ones you are already making? If so yes, please free to assign those items to me. However, are these changes that can wait for after //BUILD time-frame? we have some theater sessions scheduled for some commands & so might not be able to do it until then.


[Feature request] Support for glTF game assets and physically based rendering

We are discussing porting an existing game engine to LibGDX (the Terasology project). In parallel, I have been researching a game asset workflow to build 3D assets and bring them into the game. It seems common that open source projects, like Blender and Godot engine, are supporting glTF and physically based rendering. Sketchfab also converts many thousands of 3D meshes to glTF format automatically, making this somewhat of an industry standard.
What are some considerations related to glTF support in LibGDX? Are there any plans to support physically based rendering?

https://github.com/libgdx/libgdx/wiki/Issue-Tracker

We are mostly in maintenance mode around here, but you can ask on IRC or Discord as EtK2000 pointed out.

OK, thanks for the reply @NathanSweet. Happy Winter and solstice!

@brylie FYI i'm working on it. I made a POC which implements almost all the 2.0 specification.
If you or other devs want to contribute to it, we could discuss on libgdx discord about it ..

Thanks @mgsx-dev. I will ping the Terasology devs, as there is discussion about incorporating LibGDX into Terasology as well as the importance of the gLTF and PBR for contemporary game/asset development workflow.

With due respect to your freedom to triage the LibGDX backlog, I believe this issue was closed prematurely. In effect, this is a feature request. I see there are several other feature requests in the issue queue, and request that this issue be treated similarly.

It was phrased more as a question, but feel free to change the title and question so it can be opened as a feature request.

OK, thanks for your help @EtK2000 :-)

I don't have the ability to reopen closed issues, but when you're ready you can ping someone who can (for example NathanSweet)

@brylie and others : my POC is available here : https://github.com/mgsx-dev/gdx-gltf .
It still a Work In Progress but most of glTF features (including PBR shader) are implemented. You can try the runnable demos (i suggest the desktop demo to test lot more models than html demo).
According to a recent @NathanSweet post, i think it should remain a libgdx extension. However, I'll make few PRs to improve LibGDX API in order to avoid hacks and monkey patches i had to do.
I suggest to continue discussion about GLTF in my repository issue tracker and discord. I'll soon create issues on my tracker to have a better TODOs overview. Contrubtions welcome !

i don't think gltf makes sense for libgdx, it adds too much bloat, g3dj and g3db are enought imo and are similar to gltf, just need PBR material
https://github.com/PWorlds/LibGDX-PBR
And update blender plugin to export the right material info

I would honestly see DAE support over GLTF support.  DAE offers more features and better cross-platform support.  GLTF works much better if you want to encapsulate some data and contain an entire scene in one file.  However, GLTF tends to merge all its 3D data into one object, just like OBJ does.  This make GLTF support regrettably a bad thing.  DAE nicely keeps things separated the way they should, and over all, it provides superior 3D data support with more detail.
DAE is to FBX what GLTF is to OBJ.  Therefore, DAE is superior for gaming.

@shatterblast  https://github.com/mgsx-dev/gdx-gltf is already usable and pretty good so far. Importers exist for almost all engines anyway. This issue is/was about GLTF, i think other channels (discord) are more appropriate for such debates.

@mgsx-dev Good point.  Why is the issue still open?

@brylie Is this repro sufficient for your needs? https://github.com/mgsx-dev/gdx-gltf If so, is this issue is resolved?

Actually, GLTF looks superior to DAE now.  The lighting support seems much better.  I don't see DAE natively supporting Emissives.

considering issue opener reactions on messages and that gdx-gltf extension being pretty stable now, i'm closing this request.

People are using gdx-gltf all the time now. GLTF is an accepted standard, and modern 3D tools support it. @brylie , I hope gdx-gltf fits your needs, about 1.7 years later, or that you've found some acceptable alternative, like the PBR material mentioned earlier. I was going to close this, but @mgsx-dev struck like lightning :zap: .


Consider using PEP 561 stubs-only package instead of mutating main diskcache package

See https://peps.python.org/pep-0561/#stub-only-packages.

fixed in <IP_ADDRESS>.20240401.
thank you


Write simpler interface

One that works in IO and does not MonadReader.

Not really sure the best way of doing this. Currently IO is already an instance of every typeclass that makes up MonadPusher except for MonadReader. In the future I could create versions of the functions that take Pusher has a parameter and return something similar to MonadPusher without MonadReader. Putting this on hold based on interest in this, and whether the might be a better way.

The current plan is to remove the mtl dependency and return regular values in MonadIO.

Done in https://github.com/pusher-community/pusher-http-haskell/pull/29.


Cannot resolve package

Our custom bundler script couldn't handle this package. After some investigation I discovered a typo in the package.json which I've fixed in #529
Current Behavior:
PS C:\Users\patr\Code\yarn-test> node
Welcome to Node.js v16.13.1.
Type ".help" for more information.
> require.resolve('./node_modules/@duckdb/duckdb-wasm');
Uncaught Error: Cannot find module './node_modules/@duckdb/duckdb-wasm'
Require stack:
- <repl>
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.resolve (node:internal/modules/cjs/helpers:108:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '<repl>' ]

Expected Behavior:
> require.resolve('./node_modules/@duckdb/duckdb-wasm');
<EMAIL_ADDRESS>

@ankoh When can we expect a new build to be pushed to npm? I'm looking forward to integrating this at work 😄

Awesome! Published in v1.13.0.


KAFKA-15404: Fix the flaky DynamicBrokerReconfiguration test.

More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Please let me know when this is ready for review. Thanks.

@showuon @divijvaidya @jolshan
Not able to reproduce this issue locally. I suspect there is a leak in closing the resources during the Kraft mode. Tried the below items, but it didn't work:

Commented out the Disabled tests. Jenkins seems to initialise the test even-though it's disabled.
Enabled both Kraft and zk mode for the testThreadPoolResize, it passes locally but fails on Jenkins.

Could you please take a look and suggest how to fix this?

Checking

@kamalcph so it looks like it isn't a kraft specific issue. Are you saying you also disabled other tests? I believe there is a way to run tests all on their own via Jenkins. I do wonder if the issue is coming from another test.

@kamalcph , I'm proposing we disable the
kafka.server.DynamicBrokerReconfigurationTest.testThreadPoolResize()
and
org.apache.kafka.tiered.storage.integration.OffloadAndConsumeFromLeaderTest first before we fix them.
WDYT? @satishd @divijvaidya ?

WDYT?

Sure, but we can't release 3.6 before fixing them. The thread leaks may be indicating genuine failures and we didn't have a thread leak problem in 3.5.

Right, these are blocking tests for 3.6.0. These tests need to be fixed. Even if we disable them now, we need to raise a blocker JIRA.

2. .OffloadAndConsumeFromLeaderTest

Filed KAFKA-15421 and reopened KAFKA-15399 ticket to track these tests.

I'm going to mark the tickets as blockers for 3.6. Otherwise they can get lost.


User.roles as an array of objects

Hello,
I am interested in indexing and querying users by groups and/or roles, and the internal structure of user.roles is making it difficult to do so with MongoDB.
I am having a similar issue to this person...
My current query for groups is
// user.roles  { group1: ['role1'],  group2: ['role','anotherRole', 'ect'] }

Meteor.users.find({ $where: function() {
    for (var group in this.roles) {
         if (group == 'group1' ) {
              return true;
         }
     }
     return false;
}})

If the internal structure consisted of an array of objects like so:
user.roles = [
   { group: 'group1',  roles: [ 'role', 'anotherRole'] },
   { group: 'group2', roles: ['admin'] }
]

My query for a user with a group could look like this (with a similar query for roles):
Meteor.users.find({ roles: {$elemMatch: { group: 'group1' } }})

And creating an index with the new structure would look like this:
Meteor.users._ensureIndex({ roles.groups: 1 });

...where the alternative may not be possible without hard-coded group names.
In conclusion, would you ever consider changing the internal structure of user.roles?
OR is there an easier way to query or index by groups that I am missing?
Thanks!

Thanks for the thoughtful and detailed question!  I especially appreciate you taking the time to research alternatives.
I think your goal is similiar to my own use case and the quick answer is to give each user a separate field that is an array of the 'groups' that they have access to.  For example, in my use case, we partition users by 'network' so we have a user.networks field that looks something like this:
{
  _id: "abcdefg",
  profile: {
    firstname: "John",
    lastname: "Doe"
  },
  networks: ["00000A", "00000B"],
  roles: {
    "00000A": ["broadcast-alert", "liveview", "checkin"],
    "00000A": ["liveview", "checkin"]
  }
}

We create an index on the networks field so that we can query users quickly by network.  We can also query by role within a network, like this:
var query = {networks: "00000A",
             "roles.00000A": "checkin"}
var usersWithCheckin = db.users.find(query)

There are some issues with doing it this way since, as you pointed out, it prevents indexing by group.  It also limits the names of groups (can't start with '$' and have to be careful with periods).  But so far, I've found the limitations to be manageable.
Actually when I first implemented groups, the way you suggested closely matched my first attempt.  The issues that made me switch to the current structure were:

In our use case, we know the group we want to query and are usually interested in finding users within the group with a specific role.  I don't think MongoDB provides a good way to do a query by group and role with the 'array of objects' structure.  Here's a page with more info on attempting that query.

Having the index would help when querying for a specific role across groups but the general idea of groups is to partition users so that this would not be very common.

Using the group as the key makes it a little easier to work with the roles in javascript.  We can just specify the key directly rather than having to search through the array first to find the right group object.
var userRoles = user.roles["acme"]

// vs

var userRoles2 = _.find(user.roles, function (group) {
  return group === "acme"
})

(I think that's how it would work anyways.)
That being said, I would certainly consider changing the internal structure if we could overcome the query by group and role issue with the array of objects structure.

Doing some further research, it looks like your $elemMatch in the query with both a group and role criteria does achieve the goal:
Meteor.users.find({ roles: {$elemMatch: { group: 'group1', role: 'admin' } }})

Thanks for pointing that out to me!  I think I do remember seeing that when first adding groups but still went with the current structure for some reason, probably to avoid the _.find in the javascript code.
In hindsight, doing it the $elemMatch way would avoid the restriction on group names which is probably more important.  Any other limitations you know of to doing it the $elemMatch way?
Regardless, its definitely a good candidate for roles 2.0.
Regarding roles 2.0, my main goal there is to encourage others to be able to better extend meteor-roles with their own authorization functionality via their own packages.
For example, there's a couple things that I'd like to see extension packages for:

permission hierarchies

time-limited access

Any interest in working on roles 2.0?
:-)

Schema was changed for v2.0 and is available in its branch. roles field is not an array ob objects, but not exactly as it is described in this ticket. Anyway, indexes are now possible.


segfault when invoking passed function pointer

In https://github.com/timbertson/gsel I'm using ctypes to bind to a vala-wrapper so that I can use GTK3 in ocaml. It's admittedly a little roundabout, but it was working very well. I upgraded to fedora 25 recently, and it started segfaulting whenever any callback (from vala into ocaml) was invoked.
I recompiled, reinstalled ocaml/opam/ctypes and managed to reproduce with a very simple C example which showed that invoking an ocaml-provided function pointer failed (taking vala + GTK out of the picture).
And in fact I found that the qsort example has the same problem, since it's also invoking an ocaml-supplied function from C:: https://gist.github.com/timbertson/a8881573f183ed56e1a1d13156516ab7
Compiling this into native code and running in gdb, the segfault happens with this backtrace:
(gdb) run
Starting program: /home/tim/dev/ocaml/gsel/testc/qsort.native
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
sorting!

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ff4010 in ?? ()
(gdb) bt
#0  0x00007ffff7ff4010 in ?? ()
#1  0x00007ffff711761e in msort_with_tmp (p=0x7fffffffd6d0, b=0x75d190, n=2) at msort.c:65
#2  0x00007ffff7117321 in msort_with_tmp (n=2, b=0x75d190, p=0x7fffffffd6d0) at msort.c:45
#3  msort_with_tmp (p=0x7fffffffd6d0, b=0x75d190, n=5) at msort.c:53
#4  0x00007ffff7117abf in msort_with_tmp (n=5, b=0x75d190, p=0x7fffffffd6d0) at msort.c:45
#5  __GI___qsort_r (b=0x75d190, n=5, s=4, cmp=0x7ffff7ff4010, arg=<optimized out>) at msort.c:297
#6  0x00007ffff7bd4c58 in ffi_call_unix64 () at ../src/x86/unix64.S:76
#7  0x00007ffff7bd46ba in ffi_call (cif=cif@entry=0x75d0b0, fn=fn@entry=0x7ffff7117b80 <__GI_qsort>, rvalue=<optimized out>, rvalue@entry=0x7fffffffd890, avalue=avalue@entry=0x7fffffffd8a0)
    at ../src/x86/ffi64.c:525
#8  0x00000000004614b9 in ctypes_call (fnname=<optimized out>, function=<optimized out>, callspec_=<optimized out>, argwriter=<optimized out>, rvreader=<optimized out>)
    at /home/tim/dev/ocaml/gsel/testc/opam/4.03.0/build/ctypes.0.11.2/src/ctypes-foreign-base/ffi_call_stubs.c:404
#9  0x0000000000409721 in camlCtypes_ffi__fun_4992 () at src/ctypes-foreign-base/ctypes_ffi.ml:110
#10 0x0000000000408430 in camlQsort__entry () at qsort.ml:21

Given that this seemed to be caused by a fedora upgrade, there's plenty of chance it's due to other libs changing out from under my feet, and not actually ctype's fault. But I don't know how to debug any of this, so I'm hoping you might have ideas.
ctypes 0.11.2
ocaml 4.03.0
libffi: 3.1-9

Thanks for the report.  I'd like to get to the bottom of this, but it'll probably be a few days before I have time to look at it properly.  In the meantime, running the program under valgrind might give a bit more information.

Running ctypes on your qsort example in a Fedora 25 container works for me.
Here's a Dockerfile that sets up an environment
FROM fedora:25

RUN yum update -y
RUN yum install -y ocaml libffi-devel ocaml-findlib valgrind git make redhat-rpm-config
RUN git clone https://github.com/ocamllabs/ocaml-ctypes.git /ocaml-ctypes
WORKDIR /ocaml-ctypes
RUN make all install
CMD ["bash"]

I built it like this:
docker build -t ctypes-fedora-bug .

and ran it like this:
docker run --rm -it -v $(pwd)/qsort:/qsort ctypes-fedora-bug bash

where qsort is a directory containing the qsort.ml example.
Building and running the qsort example in the container then works as expected:
[root@df3a2c710c40 ocaml-ctypes]# cd /qsort
[root@df3a2c710c40 qsort]# ocamlfind opt -package ctypes.foreign -linkpkg qsort.ml
[root@df3a2c710c40 qsort]# ./a.out
sorting!

Do you think you could give enough details (e.g. a similar Dockerfile) to make it possible to reproduce the crash, @timbertson?

Thanks for looking into this, I'll try to reproduce in docker and let you
know.
On 20 Jan. 2017 1:47 am, "yallop"<EMAIL_ADDRESS>wrote:

Running ctypes on your qsort example in a Fedora 25 container works for me.

Building and running the qsort example in the container then works as
expected:
[root@df3a2c710c40 ocaml-ctypes]# cd /qsort
[root@df3a2c710c40 qsort]# ocamlfind opt -package ctypes.foreign -linkpkg qsort.ml
[root@df3a2c710c40 qsort]# ./a.out
sorting!
Do you think you could give enough details (e.g. a similar Dockerfile) to
make it possible to reproduce the crash, @timbertson
https://github.com/timbertson?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ocamllabs/ocaml-ctypes/issues/500#issuecomment-273794688,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAA3XL-XzoJLGCYN2Q1t88kK4XMkVgBXks5rT3dngaJpZM4LjfO8
.

Hmm, this is quite bizarre. I attempted to reproduce in docker. I got everything building, and it worked fine. Wondering if dependencies had shifted from under me I copied the qsort.native binary from my machine into the docker container, and it ran fine. So a binary compiled on my machine works in docker but segfaults on my machine.
I tried strace the exact same binary on docker and my machine, to see if there were any obvious difference (maybe mine was loading nonstandard libraries). Aside from the path to the binary itself, and some memory addresses, I can't see anything different in a diff between them (I've uploaded each to the gist - strace-docker.log is the one which succeeds)
I also added valgrind logs to the gist if that helps, again in both docker and my machine.
At this point I don't know what it could be though - it's only loading a few system libraries, so all I can think of are differences in those few libraries, or some kernel difference (docker uses the same kernel, but maybe something is in a different state? I notice selinux appears in the strace output, and for the record it's off (well, in "permissive" mode) on my machine)

I don't know if it'll help, but I also put together a more thorough demonstration to figure out where the problem was: https://gist.github.com/timbertson/a5c667b848bda2de746a35d0d39a822b
Specifically, I built my own little shared lib with a call_me function which takes a function and calls it with a string. As expected, passing an ocaml function to call_me fails. But interestingly, passing a symbol from the C library itself also segfaults.
And I guess unsurprisingly at this point, the exact same binary runs successfully in docker.

Thanks for these new details and logs, @timbertson.  We seem to be getting closer to finding the problem.  There's one difference in the strace logs that jumps out as the likely explanation.
The machine strace log has the following just before the crash:
open("/tmp/ffiw4QkLm", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
unlink("/tmp/ffiw4QkLm")          = 0
ftruncate(3, 4096)                = 0
mmap(NULL, 4096, PROT_READ|PROT_EXEC, MAP_SHARED, 3, 0) = 0x7f2441933000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x7f2441932000
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7f2441932010} ---

i.e. the process mmaps a file in /tmp as a writable/executable region, then crashes with SEGV_ACCERR when it tries to access the region.
In contrast, the Docker strace log has this:
mmap(NULL, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd9061f4000

i.e. it mmaps an anonymous region rather than a /tmp file.
This looks very similar to a reported issue with Centos 6.  That issue was fixed by switching to a newer version of libffi.

Ah, very interesting. They seem to be the same version though. Both my machine and the docker container report:
$ dnf info libffi
Installed Packages
Name        : libffi
Arch        : x86_64
Epoch       : 0
Version     : 3.1
Release     : 9.fc24
(...)

Just to be sure, I verified that both also produce the same result for:
$ md5sum /lib64/libffi.so.6.0.2
3569972b94fba04525f5fc31d8d4fa75  /lib64/libffi.so.6.0.2

(/lib64/libffi.so.6 is a symlink to this file in both cases)
Both are earlier than version 3.2.1 which fixed that linked issue. I compiled that version locally, and verified that it still segfaults. Which is a shame, because that would have been an easy fix :(
New strace added to the qsort gist: strace-machine-libffi-3-2-1.log
It's not quote the same, but (if O_TMPFILE does what I assume it does), it's still mmaping a tempfile:
11824 open("/tmp", O_RDWR|O_EXCL|O_DIRECTORY|O_CLOEXEC|O_TMPFILE, 0700) = 3
11824 ftruncate(3, 4096) = 0

Delving into https://github.com/libffi/libffi/blob/60e4250a77eb3fde500bfd68ec40519fe34b21bd/src/closures.c, I notice it's trying a different strategy when it thinks selinux is enabled. I'm assuming permissive counts as enabled in its logic, since it seems to just be scanning /proc/mounts, and this differs between my machine:
$ cat /proc/mounts | grep selinux
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0

... and docker:
# cat /proc/mounts  | grep selinux

and from that I'm guessing the presence of selinux is making libffi try a different strategy. So at this point it's presumably a libffi bug that the fallback strategy segfaults (although I still have no idea why...)

Indeed, it does appear to be a libffi problem.  Opening an issue on the libffi repository may be the fastest way to  a resolution.

@timbertson, could you please check whether the change in #511 (now merged into master) fixes this problem for you?

That change looks promising, but unfortunately I am still having the same problem. I've pinned ctypes and ctypes-foreign to the master branch with opam and upgraded, recompiled + cleaned, but I still get the same behaviour. Here's an strace snippet:
statfs("/selinux", 0x7fff1f4c9f90)      = -1 ENOENT (No such file or directory)
open("/proc/mounts", O_RDONLY)          = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "sysfs /sys sysfs rw,seclabel,nos"..., 1024) = 1024
read(3, "ys/fs/cgroup/perf_event cgroup r"..., 1024) = 1024
close(3)                                = 0
open("/run/user/1000/ffiTsgatO", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
unlink("/run/user/1000/ffiTsgatO")      = 0
ftruncate(3, 4096)                      = 0
mmap(NULL, 4096, PROT_READ|PROT_EXEC, MAP_SHARED, 3, 0) = 0x7fbd51992000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x7fbd51991000
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7fbd51991010} ---

(not sure why /tmp has changed to /run/user/1000 since the previous runs, but I may have upgraded some libraries in the meantime)

Update: The libffi authors asked me to re-test with libffi master. I cannot reproduce the problem with the latest version, but I also cannot reproduce with the old version either. I'm guessing that somewhere in the two distro updates (fedora 25 -> 27) something else changed. But as I can no longer reproduce, I'll close this. The latest strace on my machine looks like this, if that provides any hints:
statfs("/selinux", 0x7fff3015c770)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/proc/mounts", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "sysfs /sys sysfs rw,seclabel,nos"..., 1024) = 1024
read(3, "abel,nosuid,nodev,noexec,relatim"..., 1024) = 1024
close(3)                                = 0
openat(AT_FDCWD, "/run/user/1000", O_RDWR|O_EXCL|O_CLOEXEC|O_TMPFILE, 0700) = 3
write(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
mmap(NULL, 4096, PROT_READ|PROT_EXEC, MAP_SHARED, 3, 0) = 0x7f4ccee3b000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x7f4ccee3a000
exit_group(0)                           = ?
+++ exited with 0 +++


Update dev-tr branch - merge main

Describe your changes
Related issue number or link (ex: resolves #issue-number)
Checklist before opening this PR (put x in the checkboxes)

[ ] This PR does not contain plagiarism

don’t copy other people’s work unless you are quoting and contributing it to them.

[ ] I have signed off on all commits

signing off (ex: git commit -s) is to affirm that commits comply DCO. If you are working locally, you could add an alias to your gitconfig by running git config --global alias.ci "commit -s".

Thank you, @aliok.
Given the circumstances, this PR is the optimal approach. By using the upstream branches to update the dev branch, we can ensure that no changes were made by the contributor, eliminating the need for an in-depth review of the PR's content.

In case of this PR, approvers do not need to review the content itself.
(just updating upsteam/dev branch based on upsteam/main)
Let me force merge this PR as a maintainer.
I set bypass the DCO manually as well (the DCO issue is not from this PR)


fix: missing goarch env

What this PR does / why we need it:
fix: missing goarch env

Does this PR need to be backport to the previous release branch?:

release/3.12

/cc @wanyaoqi

/lgtm


Detail-out Demo scenario / next Milestone

Description
As it is planned to have a demo ready until mid of November, it is crucial to start defining the exact demo flow / scenario, which should be covered/shown. This Demo should be the clear definition of the OCM MVP in terms of functionality and scope.

Deadline for the definition of what should be included in the demo is 21.10.
Deadline for the working demo is 18.11.

Demo-Flow has been presented on October 21st to the whole team.

This issue can be closed, as the Demo-Flow has been detailed out and presented to the team as planned.


Tests for L.GeoJSON static functions

This adds the required tests for the L.GeoJSON static functions mentioned in #7099.

the pipeline seems to still be running but when clicking on details its shows up as finished...

Should i squash all commits when you approve this or is it done automatically?

Should i squash all commits when you approve this or is it done automatically?

Automatically

So is there anything left to do? ;)

Any news on this? @mourner maybe?

Any chance this will ever be merged 😄?


arch: x86: Inline direct ISR functions.

This commit inlines the direct ISR functions that were previously
implemented in irq_manage.c, since the PR #20119 resolved the circular
dependency between arch.h and kernel_structs.h described in the issue
#3056.
Signed-off-by: Stephanos Ioannidis<EMAIL_ADDRESS>

p.s. In the wake of all the FIXMEs in this PR, I think we should really re-assess the use of inline functions here; possible alternatives would be: 1) macros, 2) link-time optimisation

p.s. In the wake of all the FIXMEs in this PR, I think we should really re-assess the use of inline functions here; possible alternatives would be: 1) macros,

Well, one of the reasons inlines are nice is because you get type safety...but since these APIs are not directly application facing I'm not opposed to this.

link-time optimisation

Yes definitely. I remember a few years ago we had a developer look into this but nothing came out of it. I think we could get some impressive footprint gains if we could get LTO working!


Backend support for S3 compatible Minio http://minio.io

I tried to setup a restic+minio setup a couple of days ago, my thinking being that running such setup would be a nice alternative to the typical restic+sftp setup.
However it seems like minio doesn't exactly implement the same API as S3 (as they state in the docs), so something breaks.
I'll update the issue with a message when I have the time to re-run it.  Is there a way to get more debug information out of restic?

You can build restic with debug, just use go run build.go -tags debug. Afterwards you can set the environment variable DEBUG_LOG to a file name and restic will write extensive debug information to this file, e.g.:
$ DEBUG_LOG=/tmp/log restic -r s3://host backup foo
Please be aware that the debug log may contain sensitive things, especially file and directory names.

Did you have the chance to test it again while writing a debug log?

However it seems like minio doesn't exactly implement the same API as S3 (as they state in the docs), so something breaks.

Minio implements the same API as Amazon S3, restic internally uses goamz which only supports Signature V2, Minio only supports Signature v4.
I am planning to converge

https://github.com/minio/minio-go  (API for signature V4)
https://github.com/minio/minio-go-legacy  (API for signature V2)

Also is there a chance that restic is willing to migrate to minio-go? or aws-sdk-go?

Also is there a chance that restic is willing to migrate to minio-go? or aws-sdk-go?

Or better yet willing to accept our pull request?

We're indeed willing to accept a PR! I personally like the scenario of beeing able to backup to a minio server :)

This is currently beeing worked on in #345.

This was implemented with #366, we now use the minio-go library.


Feature: Inherit default schema

Similar to how we have environment that inherits defaults it would be nice to have .env.schema that are the "base" required configurations and .env.production.schema that enhances the former so we can have environment specific schema validation.

Workaround at the moment is to just explicitly manage all of your schemas.


Dirichlet process gone bad: stick is broken in wrong place

I have trained a model on text8 corpus with the following config. (Please notice that this example sometimes work and show accurate result with other configs.)
./run.sh train.jl --epochs 5 --alpha 0.05 --prototypes 10 --min-freq 20 --remove-top-k 70 --window 5 text8 text8.dic text8.model

When I check apple word, first the amount senses (meanings):
julia> expected_pi(vm, dict.word2id["apple"])
10-element Array{Float64,1}:
 0.197259
 0.216447
 0.58626
 3.24536e-5
 1.54719e-6
 7.37607e-8
 3.51647e-9
 1.67644e-10
 7.99224e-12
 4.00096e-13

We have 3 senses and 7 free slots - nothing unusual. Then I ask to describe each sense:
julia> nearest_neighbors(vm, dict, "apple", 1, 10)
10-element Array{Tuple{AbstractString,Int64,Float32},1}:
 ("macintosh",2,0.6276491f0)
 ("intel",2,0.5980226f0)
 ("ibm",2,0.59220535f0)
 ("compaq",1,0.5730073f0)
 ("inc",2,0.572671f0)
 ("store",2,0.56161773f0)
 ("raskin",1,0.56127656f0)
 ("corp",1,0.55665475f0)
 ("ceo",1,0.54154074f0)
 ("ceo",2,0.54141444f0)

julia> nearest_neighbors(vm, dict, "apple", 2, 10)
10-element Array{Tuple{AbstractString,Int64,Float32},1}:
 ("apples",1,0.76360685f0)
 ("sweet",1,0.70247304f0)
 ("juice",1,0.6916403f0)
 ("cakes",1,0.6847711f0)
 ("fermented",1,0.681853f0)
 ("olive",1,0.6792287f0)
 ("fruit",1,0.6718393f0)
 ("peas",1,0.6700381f0)
 ("berries",1,0.66832954f0)
 ("roasted",1,0.66814494f0)

julia> nearest_neighbors(vm, dict, "apple", 3, 10)
10-element Array{Tuple{AbstractString,Int64,Float32},1}:
 ("macintosh",1,0.9284175f0)
 ("computers",1,0.8870821f0)
 ("pc",1,0.88180965f0)
 ("compatible",1,0.8577318f0)
 ("amiga",1,0.83944887f0)
 ("ibm",1,0.8265453f0)
 ("desktop",1,0.8234609f0)
 ("portable",1,0.81334895f0)
 ("pcs",1,0.8022719f0)
 ("dos",1,0.8022494f0)

As you can see the first and the third senses actually we same, why did AdaGram broken it into 2 different senses?

Those are two quite different senses, aren't they? Apple Inc (the company) vs Apple computers (the product). (Although 'ibm' appears in the nearest neighbour list for both senses, I think those also differ by being related to IBM the company and IBM PCs)
When this "worked" for you, what senses did you get?

Oh, and I see two different senses of 'macintosh' also appear in the nearest neighbour lists. It seems to be mistaken into splitting macintosh into two senses (in addition to Macintosh apples).

I have seen this behavior before as well, and was wondering if my corpus is not large enough or something else is wrong. Actually, sometimes I find that two senses of a word are near enough that they appear in each other's nearest neighbors list.


Sort is incorrect when sorting numbers

According to @AndreasArvidsson, sort is implemented by casting items as strings and then sorting based on the string representation of the numeral, resulting in the following bug:
Case:
let list = [9, 3, 11, 90];
Result:
let list = [11, 3, 9, 90];
Expected:
let list = [3, 9, 11, 90];

Possible solution:
if its a number, sort it as a number otherwise cast as a string and sort.
ie. don't think about cases like 2d lists etc, just fix the implementation for number.

What about heterogeneous collections, e.g. lists of numbers and strings?

Also a potentially loaded question: what is a number?

I can write integers with underscores as thousands separators in several programming languages, for example 10_000, but naively calling Number('10_000') won't be helpful.
Do we have to handle big numbers?

Good points @auscompgeek — if we end up going this route, we should definitely add the "sort" action to the required test suite to ensure that each new language handles sort correctly. We'd likely need to have information about the language inside of the Sort action.

Let's just use locale compare:
var collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
var myArray = ['1_Document', '11_Document', '2_Document'];
console.log(myArray.sort(collator.compare));

From https://stackoverflow.com/a/38641281.  That implements natural sort order

Locale compare won't solve the 10_000 problem I don't think, but I'm happy to punt on that for now, as the locale compare should be trivial to impl and get us 90% of the way there


Update package-lock.json.

Coverage decreased (-0.1%) to 98.136% when pulling f081089aba21ba0be0eb65379d3c0d7b9aedb485 on fix_vulnerabilities into bc7095984a4a94208a8d8aa5979fc025ac2d3776 on master.


zoom out of home-page map, limit zoom on chromosome page

resolves #20 and #16 .

Limits the zoom to the size of the chromosome on the chromosome signals plot
Zooms out slightly on the homepage map so that all of Africa is visible

👍🏻


Update exposed-apis-create-app-webapp.md

Made a change to the PS
Fixes https://github.com/MicrosoftDocs/microsoft-365-docs/issues/12679

@JohanFreelancer9 Please copy review

@mjcaparas Please merge this PR. Thanks


Enable checkmarks as bullet points

At the moment, we can only do bullet points as regular bullets. It would be nice to be able to have other characters, e.g. ✔  as bullet points too.
Context: https://github.com/prisma/docs/pull/1158/files#diff-660d9de0c55ea278cd6f7a8e0cf7324ac24b6e2f18589e32a7990eaf90576f29R534

I would love this:
✔ Good thing
✔ Other good thing
✘ Bad thing
✘ Terrible thing

I would love this:
✔ Good thing
✔ Other good thing
✘ Bad thing
✘ Terrible thing


Add unit tests to ConfigApi

Closes #63

Coverage remained the same at 88.745% when pulling 88963bb165aff44bbfff8ae8d6024c95611118c2 on add-tests-config-api into 4ad963fea8ff786c0a569c5ea281c9d4f6bd9fdd on main.


Null check in KafkaWriterTask

Currently if the call fails before result is populated, the finally block will fail due to NPE. Add a sanity check to avoid this.

Closing this PR to be recreated.