Set an externalTrafficPolicy.

What this PR does / why we need it:
As discussed in #3458, it would be very convenient to have the externalTrafficPolicy setting for the associated Service settable. This commit makes it so.
Which issue this PR fixes:
fixes #3458

/ok-to-test

@timstoop You might want to consider applying for Kubernetes org membership. You have contributions to the charts repo. Your tests (pull-charts-e2e) would be automatically run if you were a member. You could use myself and one of the other charts maintainers (connect with them to verify first) as sponsors.

@timstoop -- need to resolve a conflict in Chart.yaml, and then this lgtm after that.

/assign krancour

/lgtm


Escaping accents on search

I'm trying to escape accents for the search and i am a bit lost. Is there a better or worst approach to do it efficiently?
I have tried adding a custom function for search_callback:
var defaultDiacriticsRemovalMap = [
				{'base':'A', 'letters':/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},
				{'base':'AA','letters':/[\uA732]/g},
				{'base':'AE','letters':/[\u00C6\u01FC\u01E2]/g},
				{'base':'AO','letters':/[\uA734]/g},
				{'base':'AU','letters':/[\uA736]/g},
				{'base':'AV','letters':/[\uA738\uA73A]/g},
				{'base':'AY','letters':/[\uA73C]/g},
				{'base':'B', 'letters':/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},
				{'base':'C', 'letters':/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},
				{'base':'D', 'letters':/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},
				{'base':'DZ','letters':/[\u01F1\u01C4]/g},
				{'base':'Dz','letters':/[\u01F2\u01C5]/g},
				{'base':'E', 'letters':/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},
				{'base':'F', 'letters':/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},
				{'base':'G', 'letters':/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},
				{'base':'H', 'letters':/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},
				{'base':'I', 'letters':/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},
				{'base':'J', 'letters':/[\u004A\u24BF\uFF2A\u0134\u0248]/g},
				{'base':'K', 'letters':/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},
				{'base':'L', 'letters':/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},
				{'base':'LJ','letters':/[\u01C7]/g},
				<...>
];
var tempSearchString;
for(var i=0; i<defaultDiacriticsRemovalMap.length; i++) {
	tempSearchString = searchString.replace(defaultDiacriticsRemovalMap[i].letters, defaultDiacriticsRemovalMap[i].base);
}
var text = node.text;
for(var i=0; i<defaultDiacriticsRemovalMap.length; i++) {
	text = (node.text || '').replace(defaultDiacriticsRemovalMap[i].letters, defaultDiacriticsRemovalMap[i].base);
}
console.log('text', text, 'search', tempSearchString);
return ((text || '').indexOf(tempSearchString) != -1)

But it doesn't work. What is wrong with what i am doing ?

It seems like the correct strategy - just make sure your regexes are OK (does the console.log call reveal that all letters are replaced accordingly?)
Then make sure the issue you are facing is not related to upper / lower case - maybe that is the reason you are not seeing any matches.
Best regards,
Ivan

Hey, do you managed this issue? I have very same problem, and your regex is OK but ONLY LAST ELEMENT of defaultDiacriticsRemovalMap array working, I think this is for loop problem. Here is my post on stackoverflow: http://stackoverflow.com/questions/35479978/jstree-search-plugin-and-special-chars

Yes i fixed the issue on my end. Here's my answer on your post :
http://stackoverflow.com/questions/35479978/jstree-search-plugin-and-special-chars/36222549#36222549
.
I can paste the answer here too if you want.
Good day to you.
2016-03-23 21:48 GMT-04:00 Romualdas<EMAIL_ADDRESS>
Hey, do you managed this issue? I have very same problem, and your regex
is OK but ONLY LAST ELEMENT of defaultDiacriticsRemovalMap array
working, I think this is for loop problem. Here is my post on
stackoverflow:
http://stackoverflow.com/questions/35479978/jstree-search-plugin-and-special-chars
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/vakata/jstree/issues/1328#issuecomment-200610743


misdetections get logged as lineage_id = 0

.. but this is the same as for mergers
we should label them as lineage_id = -1

@ilastikdev please next time add a description why and when this is a problem.
To clarify to others: @ilastikdev is talking about the values found in ilastik's export table, where we might like to distinguish mergers (that are no longer present in the image because their segmentation was refined), from false detections.

We did indeed have a special value for false detections in ilastik's tracking before we switched to hytra, and this was even noted in a comment in the method that computes the lineages: https://github.com/chaubold/hytra/blob/master/hytra/core/hypothesesgraph.py#L604. Nevertheless we set every node to 0 that is not used. I'll change it to 1 to conform to the old ilastik standard, but that means you have to change your test as well.

"I'll make sure this is 1 to conform..." you meant -1 here?

No 1. Because, if you read the line of code I linked, you'd see that ilastik used 1 for false detections before

Just a note: gui of manual tracking displays -1 track label for annotating a false detection, and
1 for the first track annotated.
I know  label 1 is avoided in the tracking solution for regular tracks, but this will inevitably lead to some confusion, because tracking with learning uses both: manual tracking and hytra tracking.
I will for now, test mergers as 0's and false detections as 1's.
User that may have to post-process the tracking result will be confused.

running latest new-conservation-tracking branch mergers and also resolved mergers get logged as 0's
also false detections still get logged as 0's
which is not what we want

works now with hytra/master and
ilastik/fix-wrong-division-assertion

however, original mergers get logged properly as 0's
resolved mergers however do get logged as 1's
but they should be logged as their proper track id's
this is not an export problem - it is a problem of a tracking solution


Update Lifecycle

Add more options for initial order of operations. Minor cleanup, and update to Readme.
Fixes #56 (and possibly #48??)

I don't want a new option for this. I think a better solution would be to just iterate through the existing windows and add it then if electron-debug called after app.isReady.

Closing for lack of response.


SerializableException: The system cannot find the file specified

Versions:
VS 2017 Community 15.7.1
AxoCover <IP_ADDRESS>
OpenCover 4.6.519
Issue:
Test execution started.
Test execution failed.
SerializableException: The system cannot find the file specified
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at AxoCover.Common.ProcessHost.ServiceProcess..ctor(IProcessInfo processInfo) in C:\projects\axotools\AxoCover.Common\ProcessHost\ServiceProcess.cs:line 54
   at AxoCover.Models.Testing.TestProcess`1..ctor(IProcessInfo processInfo, IOptions options) in C:\projects\axotools\AxoCover\Models\Testing\TestProcess.cs:line 28
   at AxoCover.Models.Testing.Execution.ExecutionProcess..ctor(IHostProcessInfo hostProcess, String[] testPlatformAssemblies, IOptions options) in C:\projects\axotools\AxoCover\Models\Testing\Execution\ExecutionProcess.cs:line 20
   at AxoCover.Models.Testing.Execution.ExecutionProcess.Create(String[] testPlatformAssemblies, IHostProcessInfo hostProcess, IOptions options) in C:\projects\axotools\AxoCover\Models\Testing\Execution\ExecutionProcess.cs:line 26
   at AxoCover.Models.Testing.Execution.AxoTestRunner.RunTests(TestItem testItem, Boolean isCovering, Boolean isDebugging) in C:\projects\axotools\AxoCover\Models\Testing\Execution\AxoTestRunner.cs:line 90
   at AxoCover.Models.Testing.Execution.TestRunner.<>c__DisplayClass31_0.<RunTestsAsync>b__0() in C:\projects\axotools\AxoCover\Models\Testing\Execution\TestRunner.cs:line 51

This happens when I try to do Cover tests.
Run and debug tests work normally.

Thx for the suggestion but I still get the same result.

Are you using default settings in AxoCover? Otherwise if there is no strange setting we need to debug the code.

Yes i think I am using default settings when problem first occurred I reinstalled AxoCover hoping it would fix it but it didn't, I didn't change settings since.

Hi,
I've been had the same problem with axocover and it was fixed when updating to release 1.1.7
My VS current version is 2017 15.9.11
Sometimes happend again, then I just reopen VS to solve.
Don't know why it happens. Maybe it's beacause your code versioner is deleting the .axocover folder in the repository folders?


[UNDERTOW-2131] ContentEncodingRepository avoids iterator allocations

Fixes UNDERTOW-2131
ContentEncodingRepository.getContentEncodings(HttpServerExchange) allocates many ArrayList iterators in hot paths for handling requests. It may be worthwhile to avoid using for-each loops and instead use old fashioned for loop with List.get(int) to avoid additional allocations during request processing.
java.util.ArrayList$Itr
at java.util.ArrayList.iterator()
at java.util.AbstractCollection.addAll(Collection)
at io.undertow.server.handlers.encoding.ContentEncodingRepository.getContentEncodings(HttpServerExchange)
at io.undertow.server.handlers.encoding.EncodingHandler.handleRequest(HttpServerExchange)

@carterkozak curious for your thoughts on this one given how we utilize content encodings.

@schlosna This change looks reasonable to me, although it may be worth adding a short comment describing why the index-based loop is preferred over a for-each.
For our use-case in particular, I have to wonder if we'd be better off with a custom implementation given we only use a single content-encoding that we know at compile-time. We could avoid all the intermediate collections/sorting/etc.

@carterkozak good call, added comment to suppress IntelliJ ForLoopReplaceableByForEach using induction for loop for iteration to avoid allocation

@fl4via thanks for the review! I looked at the CI failures and those don't seem related to this change, are there known CI flakes? Is there anything else I need to do before this merges?
Thanks!

@schlosna the failures are related to JDK17, and they came up since we enabled CI with that JDK version. We are currently working on fixing those, rest assured they are not caused by your PR. Thanks for the PR btw!


VideoCompressor

AcceptanceCriteria

[ ] class VideoCompressor is moved from Anymator to Shimmer.
[ ] PR is open in Anymator to remove the code and use Shimmer instead, waiting for this one to be merged.
[ ] Usage is documented

I don't see this in shimmer. It's super project specific and I don't think we'll ever need this in another project.

I remember you @JensRavens saying it should be moved to shimmer when we reviewed that PR on Anymator ;-) But I'll gladly drop it.
@jmarsh24: Please remove the TODO: Move to Shimmer comment in Anymator at your earliest convenience.


minor typo in README.md

Fixed a minor typo in README.md

It looks like #2972 already resolves this...


SysOutputInfo serialization and refactoring Features

These are the things we discussed in https://github.com/neulab/explainaboard_web/pull/135

[ ] provide serialization and deserialization methods for SysOutputInfo. SysOutputInfo needs to be stored in the DB so we need a way to convert it into a dict. This is currently implemented in explainaboard_web but it's buggy. It'll be great if we can move it to this repo so it's always up to date. SysOutputInfo is pretty complex so it'll be great if we have unit tests for it too.
[ ] add type annotation for Features class. My guess is it's something like this.

class Features(dict[str, FeatureType])
   ...

Could we use inheritance to "group" Sequence, Span, Value and Set so we know they have overlaps in their attributes?
FeatureType is a union of 7 different types with very different interfaces. It also includes dict, list, and tuple which are very general types so I think that may be a little difficult to maintain. I looked through the default_features() methods for all the tasks and I couldn't find where these types are used (dict, list, tuple). Could you please point me to where these types are used?

Regarding serializing and deserializing SysOutputInfo. I think the following may work?

serialization: whatever is used by json serialization, since we already have it for generating reports
deserialization: from_dict https://github.com/neulab/ExplainaBoard/blob/main/explainaboard/info.py#L231

Duplicate of #446


Make the docker-compose documentation service reuse the caches from prediction and interface

Overview
Currently, when running docker-compose -f local.yml build, the documentation service ignores the caches created by the prediction and interface services. This results in re-downloading all the python requirements.
Expected Behavior
The documentation service should use the available caches and not re-download any python requirements.
Technical details

Relevant docker-compose issue (also includes a few suggestions)

Another issue which displays the desired behavior

This feature should be implemented in the compose/documentation/Dockerfile-dev, compose/prediction/Dockerfile-dev, compose/interface/Dockerfile-dev, and local.yml files.

Acceptance criteria

[ ] when running docker-compose -f local.yml build on a clean system, the python requirements files should not be downloaded by documentation service.
[ ] when running docker-compose -f local.yml build on a clean system, the documentation service should use the caches provided by the prediction and interface services.

NOTE: All PRs must follow the standard PR checklist.

A friend of mine proposes that we should build our own base image which is based on the union of the pip requirements. Those, the base image is only supposed to be compiled once. If services use different versions of a library, they have to install them themselves after the base image was created. Just throwing in my two cents :)


Feature/flight zero

Add Kill and Arm
Add initial angular velocities
This is the code currently on the quadcopter

I'm closing this because this branch is stale with respect to dev. I'll make a new one with the same changes, but focusing on #29 only.

should we delete some branches that aren't being used then?


Farmanahmed888 patch 1

@farmanahmed888 Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.


Summary workflows: automate running multiple challenges and participants

Currently calculating the benchmarking metrics requires one summary workflow run per participant per challenge. For each of those runs the nextflow config has to be adapted for in- and output file- and challenge names, and individual input files have to be copied manually into the summary workflow directory structure.
This procedure is not feasible for (n participants) * (m challenges) = (many many).
Figure out concepts for (partial) automation.
Also revisit #230
Solving #400 might help as well

Thoughts on
Directory structure
APAEVAL
  |-- EVENT (Identification_01)
      |-- TOOL (tool1)
            |-- FILE1 (tool1_challengecode1_01.ext)
            |-- FILE2 (tool1_challengecode2_01.ext)
            ...
      |-- TOOL (tool2)
            |-- FILE1 (tool2_challengecode1_01.ext)
            ...
  |-- EVENT (AbsQuant_02)
      |-- TOOL (tool1)
            |-- FILE1 (tool1_challengecode1_02.ext)
            |-- FILE2 (tool1_challengecode2_02.ext)
            ...
      |-- TOOL (tool6)
            |-- FILE1 (tool6_challengecode1_02.ext)
            ...

@mrgazzara what do you think? This is pretty much what we have in our specifications, except that we would group by event instead of challenge on a higher level, and have the challengecode only in the filenames.
The reason I'm suggesting this order is that we have one SWF per event. For each run we then have to specify tool name, input file, and challenge id (which has to be the same as the ground truth file name without extension).  If we solve #230, we can specify a list of challenges within one run  (still per tool, that's why TOOL is my second level directory).
If this structure is not feasible for you, I guess any permutation of event-tool-challenge would do for the directory nesting, as long as it is consistent across all events, tools, and challenges.
It would also be good to name the ground truth files as CHALLENGECODE_GENOME.bed. The GENOME part is needed in the filename of the ground truth in order to select the correct annotation to work with. We just need @dominikburri to confirm that _ is working, or whether it has to be a . separator. If a ground truth file is used in multiple challenges we could maybe do a softlink solution to nevertheless have distinct filenames with all distinct challenge codes?
I believe with this rigorous naming scheme we should be set up nicely for automation.

Possibility for
Programmatic download fromGDrive
https://github.com/wkentaro/gdown
(First answer here worked for me.)

@ninsch3000 Thanks for the nice suggestions here. I think your suggestions for the file names and directory structure makes a lot of sense. I will have to try out the link for downloading from GDrive, but we can also host the resulting bed files at https://majiq.biociphers.org/data/apaeval.
For the challengecode names I am thinking just keeping them as the suggested sample file names as we mentioned in the meeting to make them more human readable / interpretable. (e.g. those listed here https://docs.google.com/spreadsheets/d/1iZ-4RknIfLsfBJ8ank6w9JrkeVq0PEvoeLbtKUwghmA/edit#gid=899136187&range=B1:B55). These contain underscores that separate the same 3 fields (dataset/publication, experimental condition, replicate). Would you like them to be something else to make parsing easier?
The last thing I was thinking about with this naming structure is how to potentially group / name things that amount to a different configuration of the same tool. That's not a big issue now, but it could be. Say, for example, we run PAQR with replicates grouped together in the same experimental condition. Or we run QAPA with their prebuilt and filtered annotation vs. a new build using a different annotation. I think it makes the most sense to have a variation of the TOOL names above to handle these variations, but we can decided that later if/when we decide to test different configurations of the same tools.
I will work on renaming everything and putting them in the directory structure out outlined above!

No valid ideas for solving #230 yet. Ideally we could specify input directory instead of input file in the nextflow config. Hoping to get help from @abredondo

Yes we had considered running groups of samples. I think this can be handled in the 'replicate' field of the challenge code that where it’s called “group” or something similar. Matching group level ground truth files would also have to be made so it can be run through the SWFs in the same exact way if/when we do these comparisons.
Of course we’ll make / update a Gsheet to keep track of every challenge code ;)

@ninsch3000 The results we have so far have all been renamed and given the suggested directory structure above in the Barash lab GDrive for APAeval data here: https://drive.google.com/drive/folders/1kc2YjN2lljKDw-DR0TyHCZHctLMUm-KH?usp=sharing
I will work on re-doing the links to point to this new structure on the EWF progress GSheet over the next day


tf.raw_ops.Transpose aborts with negative perm value

Issue type
Bug
Have you reproduced the bug with TensorFlow Nightly?
Yes
Source
source
TensorFlow version
tf 2.17
Custom code
Yes
OS platform and distribution
Linux Ubuntu 22.04 LTS
Mobile device
No response
Python version
3.11.7
Bazel version
6.5.0
GCC/compiler version
clang 16
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
tf.raw_ops.Transpose aborts with negative perm value. gist
Standalone code to reproduce the issue
import tensorflow as tf

tf.raw_ops.Transpose(
    x=tf.random.normal([2,1]),
    perm=[-1,0],
    name=None
)

Relevant log output
2024-02-20 19:35:25.981306: F tensorflow/core/framework/tensor_shape.cc:356] Check failed: d >= 0 (0 vs. -1)
Aborted (core dumped)

@Sehun0819 If removing negative values from the perm argument isn't possible, could you define a mapping function that converts negative values to their positive counterparts based on the dimensions of your tensor. If the negative values are intentional and represent specific transposition directions, please consider using alternative operations that support them. For example, tf.reverse might be suitable depending on your use case?
Thank you!

@sushreebarsa Thank you for your response. But I just wanted to inform you it crashes. Please check it.

@sachinprasadhs I was able to replicate this issue here, please have a look.
Thank you!


[T2A2][W10-A4] Wang Zexin

Ready for review

@wangzexin Some comments added. Please close the PR after reading comments.


feat: add Windows LTSC 2022 Nano Server support

Motivation
Following PR #32, based on how microsoft is building dotnet nano image, it seems it's now possible to provide official nano server image.
Supersede #9

@ldez Do you think it can close #1 ?

Ah yes, you're right :+1: .
Then wdyt about adding renovate or dependabot on this repository ?

I think it's a bad idea.

mmmh :thinking: then how it could be fixed ?

how it could be fixed?

It cannot, it should be handled by hand.


Speaking Times Widget: Edge case with deleted person and structure time

Description: Scenario: There are several people with different structure levels on a list of speakers. There is one person who contributes an structure level for the speaking time widget. All other people have other structure levels. If this one person is deleted from the list of speakers because he or she was placed on the list by mistake and there is no other person with an identical structure level, the structure level is deleted from the speaking time widget. This is correct. The problem is that the person's speaking time is deducted from the total speaking time of the structure level. This is incorrect.
What should happen:
It would be good to include a possibility to transfer the resulting speaking time to the outline level via dialog prompt in order to reset the time.
This requirement is directly linked to the issue #3296 . Once this issue has been resolved, the majority of this problem should also be solved. Nevertheless, automating the time transfer would simplify processes and better intercept edge cases. Especially if a person has already spoken at the same structure level and a subsequent person who has already spoken is to be deleted. This time could be edited manually by solving the issue #3296 , but this manual editing can lead to unwanted errors.

we need revisit this after some customers actually used this function

The time widget is manually changeable now. Because of that this issue will be closed


Multiclass classification and pre-trained word embedding (word2vec & GloVe) support and it's comparison

Hi Denny,
Thanks very much for the great blog and the source code. I just started with machine learning and this article helped me a lot to learn machine learning, especially with text classification.
I extended your code to support multiclass classification and to use word embeddings with either word2vec or GloVe. The code is available at: https://github.com/cahya-wirawan/cnn-text-classification-tf
I made a comparison of multiclass classification and with/without pre-trained word embeddings. The 20newsgroup text dataset has been used for this purpose. I used only
4 from 20 available topics from the dataset, but it is easy to change it, I provided a configuration file to simplify the support for multiclass functionality, difference datasets and pre-trained word embedding.
Moreover, I have compared the result of this cnn text classification with naive bayesian and support vector machine (SVM) using the scikit-learn: https://github.com/cahya-wirawan/ML-Collection/blob/master/TextClassification.py
Here is the result:

Metric
Naive Bayes
SVM
CNN w/o pre-trained word embedding
CNN with word2vec
CNN with GloVe

Accuracy
0.83
0.91
0.88
0.95
0.95

Training time
< 1s
< 1s
> 6h
> 6h
> 6h

The accuracy of text classification using CNN but without pre-trained word embedding is less then SVM, but still better than the accuracy of NB. The pre-trained word embeddings improves so the accuracy of CNN and outperform the SVM's accuracy with 0.95. It seems it doesn't matter which pre-trained word embedding it uses, their accuracy are quite the same.
The down side of this higher accuracy comparing to Bayes or SVM is the training time. Neural Network needs several hours or more for the training to achieve this accuracy, where SVM just needs a second to train the same dataset with respectable accuracy.

Thanks for sharing the code!

Thanks for sharing!
One thing I would like to point out. You mentioned here, it takes about 6 hours to train your CNN implementation. In your code, I found that number of epochs are up to 200. I guess that's why it might be taking so long? Have you tried with lesser number of epochs, like in Yoon Kim et.al  and Denny Britz's variations of code (25 epochs and 30 epochs, accordingly)?

I changed the embedding file to glove.6B.50d  and increased the batch size. However, I still got out of GPU memory OOM error, how can I fix this problem on device GTX1060 3GB?

me too, I couldn't load word2vec Google News corpus, I have same memory issue. GTX650 gpu

Instead of increasing the batch size, try to reduce the batch size from the default 64 to 32 or smaller until it doesn't crash. If it crash also during the evaluation, try to reduce the dev_sample_percentage from 0.1 to 0.05 or lower.

Actually, I have been decreasing batch sizes..even up until 10
but it gives me :
Load word2vec file /GoogleNews-vectors-negative300.bin
word2vec file has been loaded
E tensorflow/stream_executor/cuda/cuda_driver.cc:1147] failed to synchronize the stop event: CUDA_ERROR_LAUNCH_TIMEOUT
E tensorflow/stream_executor/cuda/cuda_timer.cc:54] Internal: error destroying CUDA event in context 0x49b6b60: CUDA_ERROR_LAUNCH_TIMEOUT
E tensorflow/stream_executor/cuda/cuda_timer.cc:59] Internal: error destroying CUDA event in context 0x49b6b60: CUDA_ERROR_LAUNCH_TIMEOUT
F tensorflow/stream_executor/cuda/cuda_dnn.cc:2508] failed to enqueue convolution on stream: CUDNN_STATUS_EXECUTION_FAILED
Aborted (core dumped)

I have been decreasing batch size, but it still seems like bigger files with word embeddings (like GoogleNews) can't be loaded. I have tried with glove 100 d, and it works.
When I try to run 20 newsgroup however, with any type of embedding, it is giving me this error:
W tensorflow/core/common_runtime/bfc_allocator.cc:275] Ran out of memory trying to allocate 200.0KiB.  See logs for memory state.
W tensorflow/core/framework/op_kernel.cc:993] Resource exhausted: OOM when allocating tensor with shape[128,1,4,100]

@cahya-wirawan Thanks for your hints! Finally, I successfully run the code on GTX1080 8GB with small batch size and a small percentage of dev_samples. So I'd like to ask that if I want to use pre-trained word embeddings smoothly, what's the requirements of the devices?

@cahya-wirawan In NB and SVM experiment, I found that you used all the 20newsgroups data, then I tried to use the same data as you used in CNN experiment, the SVM classification got the nearly same results as CNN model with word embeddings. Maybe CNN with word embeddings can outperform SVM model on other datasets.

Actually I used only 4 newsgroups (alt.atheist, com.graphics, sci.med and soc.religion.christian)  for my comparison above. I trained also with all 20 newsgroups, and the accuracy of all classifiers decreased, but with similar order (cnn get still the best accuracy and bayes the worst).

@cahya-wirawan You're right! I tried 6 categories classification and found that CNN with word embeddings start to outperform SVM. Thanks for your immediate reply!  : )

@cahya-wirawan Thank you for sharing the code! However I have a problem with using .txt word2vec files. I get the following error:
Load word2vec file data/embeddings/word2vec/GoogleNews-vectors-negative300.txt
Traceback (most recent call last):
File "train.py", line 168, in
cfg['word_embeddings']['word2vec']['binary'])
File "C:\src\Users\JeroenB\cnn-text-classification-tf-master-embeddings\cnn-text-classification-tf-master\data_helpers.py", line 150, in load_embedding_vectors_word2vec
word, vector = parts[0], list(map('float32', parts[1:]))
TypeError: 'str' object is not callable
Any idea what the issue might be?

Were you guys able to reproduce the results (95% validation accuracy after only 2 epochs) from the word embeddings tutorial? Lots of people (myself included) can't seem to reproduce those.

I checked again my trained data for above comparison using tensorboard,  and according to the chart below, I reached the accuracy of between 0.6 and 0.7 after 2 epochs. I trained only 4 newsgroups from 20 with the default batch size of 64, data length of 2032, that means 2032/64=31 steps/epoch ( I hope my calculation is correct :) ) . Also I doubt that we can reach accuracy of 95% after just 2 epochs. According to the chart, I reached 95% accuracy after 7 epochs.

@cahya-wirawan how to get probability values for each output class? Please help me out with this.

@aksharma90 The probability can be calculated from the score using softmax function. I added the probability of each output in my latest commit (changes in eval.py). The output of prediction and it's probability are saved in prediction.csv file.

Hi @cahya-wirawan
Thank you so much for the functionality of multiclass classification you did.
I still have issues when loading my own local data, after following I did:
1, saved text files in 5 categories as subfolder names in the folder: /data/bbcdata
and there are 5 folders with corresponding txt files in bbcdata folder: "business","entertainment","politics","sport","tech"
2, updated the config.yml file as following
line 16: default: localdata
line 52: container_path: "/data/bbcdata"
Did I missed something to run the ./train.py

Could you help me about that?
Thank you so much!
Aven

Which issues did you get?

Hi @cahya-wirawan ,
I got the following errors:
Load word2vec file data/GoogleNews-vectors-negative300.bin/GoogleNews-vectors-negative300.bin
word2vec file has been loaded
2017-06-29 15:47:19.195688: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_driver.cc:1037] failed to synchronize the stop event: CUDA_ERROR_LAUNCH_FAILED
2017-06-29 15:47:19.196050: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_timer.cc:54] Internal: error destroying CUDA event in context 000001F766A5DE00: CUDA_ERROR_LAUNCH_FAILED
2017-06-29 15:47:19.196369: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_timer.cc:59] Internal: error destroying CUDA event in context 000001F766A5DE00: CUDA_ERROR_LAUNCH_FAILED
2017-06-29 15:47:19.196738: F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:2478] failed to enqueue convolution on stream: CUDNN_STATUS_EXECUTION_FAILED
What are the issues here and what are the possible solutions? Thanks

The GPU issue in tensorflow has often something todo with its low memory. So try to reduce the batch size from the default 64 to 32 or smaller. If it has also problem during the evaluation, try to reduce the dev_sample_percentage from 0.1 to 0.05 or lower.

Hi
Is there anyone that works with Persian data with word2vec or Doc2vec?

Hi @queirozfcom
I checked the code again to get a high accuracy faster. It seems that this is possible if we use a higher learning rate. I added a dynamic learning rate with a high learning rate at the beginning to get high accuracy faster. The learning rate decay exponentially from 0.003 to 0.0001.
After using a dynamic learning rate, I can get also an accuracy of 95% after just 2 epochs (or even earlier)

Hi @raziehaskari
maybe you can check this link https://sites.google.com/site/rmyeid/projects/polyglot

@skullbone20 I changed
word, vector = parts[0], list(map('float32', parts[1:]))
to
word, vector = parts[0], list(map(np.float32 parts[1:])) and that worked for me.

Hello, Thank s for your sharing!
I have a problem in my experiment. My traininig data and testing data are independent files, how can I use the pretrained w2v?

@cahya-wirawan thank you so much for had added calculus of probability 👍 .

Hello everyone! First of all thank you for sharing!
I was wondering if someone has worked with CNNs with Word2Vec and SMV+Tf-idf for text classification. I've been applying both approaches in a dataset and both approaches give similar results. In fact, the best f1 (macro) is with SMV+Tf-idf. Does this make sense to any of you? Thank you very much!

I reduced my batch size as well as the percentage I am still getting this error
Traceback (most recent call last):
File "./train.py", line 170, in
cfg['word_embeddings']['word2vec']['binary'])
File "/home/gopika/Downloads/cnn-text-classification-tf-master/data_helpers.py", line 119, in load_embedding_vectors_word2vec
with open(filename, "rb") as f:
IOError: [Errno 2] No such file or directory: '../../data/input/word_embeddings/GoogleNews-vectors-negative300.bin'
What is supposed to be in the place of 'filename'?

I think the accuracy been mentioned here is the result with metadata retained. If removing the metadata like header, footer and subject, the accuracy is much lower.

Hi @cahya-wirawan ,
I am a beginner for text classification and ML, your work really helped me a lot. I am using my own dataset and it has 20 classes. I was able to do the training and evaluating using the trained data. I need to evaluate with some new sentence inputs. In the eval.py file, y_test = [2, 1] , what are the parameters 2 and 1 actually?

Hi Cahya: Thanks for this great article and Github code. You sure are making our lives a lot easier and we couldn't be any more grateful to you for doing so.
I have a couple of questions:

How are you dealing with spelling mistakes?
In the Evaluation, if we encounter new words (that are not in the training data), the model is not recognizing it. Is there a way we can use pre-trained word embedding for those words? For example, I see deer in training but tiger in evaluation, the model is not recognizing that it's an animal after all.
Please help if you can.
Thanks,
Jagan

@cahya-wirawan Thanks for your great work.
I have the same set of questions that @jagganaidu posted above. Can you please clarify?

I have a little trouble understanding the directory structure for multi-class classification.
Do the names of subfolders have to be names of the classes or they can be numbered like 1,2....?
And in the categories section in the yml file, do we need to add these folder names there?

thanks for sharing!!
helped me a lot..

2032

how did u find the data length (2032)?


Need to update the marked lib dependency: Security issues patched

Need to update the marked dependency to at lease >=0.3.9 or preferably the latest version (0.5.0 I believe). There are a few security issues that have been resolved.

I've submitted PR #3 fwiw. Would be great to get this merged. It's a great project, and I'd love to use it (unforked). 😄 Thanks!

The dependency is updated in the latest, along with a corresponding change to handle incorrectly-but-previously-tolerated headers with incorrect syntax.

Updated the mocha dependency as well, thanks for pointing this out in the PR.


add decorator to CyclicLRScheduler

Add decorator to CyclicLRScheduler.

Huge thanks! @mravanelli dunno how this did not triggered an error before btw.

@underdogliu FYI.


Modify http data string sanitizing to account for cookie delimiter

When sanitizing http data strings, a & was treated as the only possible delimiter, while cookies use ; instead. This accounts for the cookie delimiter as well.
This assumes that a string is the proper type for cookie data in the http interface, as sent by the tornado client in https://github.com/getsentry/raven-python/blob/5.1.1/raven/contrib/tornado/init.py#L191 and shown in http://sentry.readthedocs.org/en/latest/developer/interfaces/#sentry.interfaces.http.Http. The previous tests indicate it's a dict instead.

@jbarbuto grats for the work and thanks a lot. Sorry it took me so long to review.

Changes Unknown when pulling 8a12fa1b09c431f94d244d5eb5c178664e178dde on jbarbuto:sanitize_http_cookies into ** on getsentry:master**.


NGSolve PML Tutorial crashes kernel

https://ngsolve.org/docu/latest/i-tutorials/unit-1.7-helmholtz/pml.html
I'm trying to run the above Tutorial from the NGSolve documentation. The kernel crashes when assembling the bilinearform a .  The linear from b assembles without issue.  Other tutorials that don't use the mesh.SetPML() function run without issue.

Hi @NGsolve team,
is there any way to increase the verbosity of the assembly process? That might help me in tracking down why assembly without PML works, while the issue reported by @j-1git  appears when mesh.SetPML() is used.
Thanks!

I increased 'verbosity of the assembly process' by increasing the msg_level
ngsglobals.msg_level=7
Definition for msg_level at line 106 in https://github.com/NGSolve/ngsolve/blob/master/comp/python_comp.cpp
There may be another way to increase messaging. I'm new to both Ngsolve and Colab.

Hi, I have further investigated a bit this issue.
I believe that the kernel is crashing because of this line which, to me, following the two commented lines below, looks like the code should call the same method but after switching off simd_evaluate.
Who is responsible of catching that exception?
I'd like to understand if this error handling is the issue here, because we have had problems with catching exceptions before (see e.g. #1 and #2).

This is the stack trace of the crash
#0  0x00007fe57d44660a in ngfem::ElementTransformation::UserDataStack::UserDataStack (atrafo=..., this=<synthetic pointer>) at /tmp/ngsolve-src/fem/elementtransformation.hpp:188
#1  ngfem::ElementTransformation::PushUserData (this=0x0) at /tmp/ngsolve-src/fem/elementtransformation.hpp:199
#2  ngfem::SymbolicBilinearFormIntegrator::T_CalcElementMatrixAdd<double, double, double> (this=this@entry=0x55a5e1afc890, fel=..., trafo=..., elmat=..., symmetric_so_far=@0x55a5e1e14120: false, lh=...) at /tmp/ngsolve-src/fem/symbolicintegrator.cpp:1358
#3  0x00007fe57c5bfa8d in ngfem::SymbolicBilinearFormIntegrator::CalcElementMatrix (this=0x55a5e1afc890, fel=..., trafo=..., elmat=..., lh=...) at /tmp/ngsolve-src/fem/symbolicintegrator.cpp:1825
#4  0x00007fe57f005c05 in ngcomp::S_BilinearForm<double>::DoAssemble(ngcore::LocalHeap&)::{lambda(ngcomp::FESpace::Element, ngcore::LocalHeap&)#2}::operator()(ngcomp::FESpace::Element, ngcore::LocalHeap&) const (__closure=0x55a5e00292e0, lh=..., el=..., el=...) at /tmp/ngsolve-src/comp/bilinearform.cpp:1501
#5  0x00007fe57f008d46 in std::__invoke_impl<void, ngcomp::S_BilinearForm<double>::DoAssemble(ngcore::LocalHeap&)::{lambda(ngcomp::FESpace::Element, ngcore::LocalHeap&)#2}&, ngcomp::FESpace::Element, ngcore::LocalHeap&>(std::__invoke_other, ngcomp::S_BilinearForm<double>::DoAssemble(ngcore::LocalHeap&)::{lambda(ngcomp::FESpace::Element, ngcore::LocalHeap&)#2}&, ngcomp::FESpace::Element&&, ngcore::LocalHeap&) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#6  std::__invoke_r<void, ngcomp::S_BilinearForm<double>::DoAssemble(ngcore::LocalHeap&)::{lambda(ngcomp::FESpace::Element, ngcore::LocalHeap&)#2}&, ngcomp::FESpace::Element, ngcore::LocalHeap&>(ngcomp::S_BilinearForm<double>::DoAssemble(ngcore::LocalHeap&)::{lambda(ngcomp::FESpace::Element, ngcore::LocalHeap&)#2}&, ngcomp::FESpace::Element&&, ngcore::LocalHeap&) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#7  std::_Function_handler<void (ngcomp::FESpace::Element, ngcore::LocalHeap&), ngcomp::S_BilinearForm<double>::DoAssemble(ngcore::LocalHeap&)::{lambda(ngcomp::FESpace::Element, ngcore::LocalHeap&)#2}>::_M_invoke(std::_Any_data const&, ngcomp::FESpace::Element&&, ngcore::LocalHeap&) (__functor=..., __args#0=..., __args#1=...) at /usr/include/c++/11/bits/std_function.h:291
#8  0x00007fe57f050c69 in std::function<void (ngcomp::FESpace::Element, ngcore::LocalHeap&)>::operator()(ngcomp::FESpace::Element, ngcore::LocalHeap&) const (__args#1=..., __args#0=..., this=<optimized out>) at /usr/include/c++/11/bits/std_function.h:560
#9  operator() (r=..., __closure=0x55a5e1b13cd0) at /tmp/ngsolve-src/comp/fespace.cpp:1795
#10 operator() (ti=..., ti=..., __closure=0x55a5e1b13cc0) at /usr/local/include/core/taskmanager.hpp:239
#11 std::__invoke_impl<void, ngcore::ParallelForRange<long unsigned int, ngcomp::IterateElements(const ngcomp::FESpace&, ngfem::VorB, ngcore::LocalHeap&, const std::function<void(ngcomp::FESpace::Element, ngcore::LocalHeap&)>&)::<lambda(ngcore::IntRange)> >(ngcore::T_Range<long unsigned int>, ngcomp::IterateElements(const ngcomp::FESpace&, ngfem::VorB, ngcore::LocalHeap&, const std::function<void(ngcomp::FESpace::Element, ngcore::LocalHeap&)>&)::<lambda(ngcore::IntRange)>, int, ngcore::TotalCosts)::<lambda(ngcore::TaskInfo&)>&, ngcore::TaskInfo&> (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#12 std::__invoke_r<void, ngcore::ParallelForRange<long unsigned int, ngcomp::IterateElements(const ngcomp::FESpace&, ngfem::VorB, ngcore::LocalHeap&, const std::function<void(ngcomp::FESpace::Element, ngcore::LocalHeap&)>&)::<lambda(ngcore::IntRange)> >(ngcore::T_Range<long unsigned int>, ngcomp::IterateElements(const ngcomp::FESpace&, ngfem::VorB, ngcore::LocalHeap&, const std::function<void(ngcomp::FESpace::Element, ngcore::LocalHeap&)>&)::<lambda(ngcore::IntRange)>, int, ngcore::TotalCosts)::<lambda(ngcore::TaskInfo&)>&, ngcore::TaskInfo&> (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#13 std::_Function_handler<void(ngcore::TaskInfo&), ngcore::ParallelForRange<long unsigned int, ngcomp::IterateElements(const ngcomp::FESpace&, ngfem::VorB, ngcore::LocalHeap&, const std::function<void(ngcomp::FESpace::Element, ngcore::LocalHeap&)>&)::<lambda(ngcore::IntRange)> >(ngcore::T_Range<long unsigned int>, ngcomp::IterateElements(const ngcomp::FESpace&, ngfem::VorB, ngcore::LocalHeap&, const std::function<void(ngcomp::FESpace::Element, ngcore::LocalHeap&)>&)::<lambda(ngcore::IntRange)>, int, ngcore::TotalCosts)::<lambda(ngcore::TaskInfo&)> >::_M_invoke(const std::_Any_data &, ngcore::TaskInfo &) (__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:291
#14 0x00007fe58fdf541d in std::function<void (ngcore::TaskInfo&)>::operator()(ngcore::TaskInfo&) const (__args#0=..., this=0x7ffc64e0d930) at /usr/include/c++/11/bits/std_function.h:560
#15 ngcore::TaskManager::CreateJob(std::function<void (ngcore::TaskInfo&)> const&, int) (afunc=..., antasks=antasks@entry=1) at /tmp/netgen-src/libsrc/core/taskmanager.cpp:307
#16 0x00007fe57f0515e7 in ngcore::ParallelForRange<long unsigned int, ngcomp::IterateElements(const ngcomp::FESpace&, ngfem::VorB, ngcore::LocalHeap&, const std::function<void(ngcomp::FESpace::Element, ngcore::LocalHeap&)>&)::<lambda(ngcore::IntRange)> > (costs=..., antasks=1, f=..., r=...) at /usr/local/include/core/taskmanager.hpp:236
#17 ngcomp::IterateElements(ngcomp::FESpace const&, ngfem::VorB, ngcore::LocalHeap&, std::function<void (ngcomp::FESpace::Element, ngcore::LocalHeap&)> const&) (fes=..., vb=<optimized out>, clh=..., func=...) at /tmp/ngsolve-src/comp/fespace.cpp:1781
#18 0x00007fe57eff1fff in ngcomp::S_BilinearForm<double>::DoAssemble (this=0x55a5e1b1b100, clh=...) at /usr/include/c++/11/bits/shared_ptr_base.h:1290
#19 0x00007fe57ef8fee3 in ngcomp::BilinearForm::Assemble (this=0x55a5e1b1b100, lh=...) at /tmp/ngsolve-src/comp/bilinearform.cpp:732
#20 0x00007fe57f59f22d in operator() (__closure=<optimized out>, reallocate=false, self=...) at /tmp/ngsolve-src/comp/python_comp.cpp:2481
#21 pybind11::detail::argument_loader<std::shared_ptr<ngcomp::BilinearForm>, bool>::call_impl<std::shared_ptr<ngcomp::BilinearForm>, ExportNgcomp(pybind11::module&)::<lambda(std::shared_ptr<ngcomp::BilinearForm>, bool)>&, 0, 1, pybind11::gil_scoped_release> (f=..., this=0x7ffc64e0e020) at /usr/local/include/pybind11/cast.h:1164
#22 pybind11::detail::argument_loader<std::shared_ptr<ngcomp::BilinearForm>, bool>::call<std::shared_ptr<ngcomp::BilinearForm>, pybind11::gil_scoped_release, ExportNgcomp(pybind11::module&)::<lambda(std::shared_ptr<ngcomp::BilinearForm>, bool)>&> (f=..., this=0x7ffc64e0e020) at /usr/local/include/pybind11/cast.h:1136
#23 operator() (__closure=0x0, call=...) at /usr/local/include/pybind11/pybind11.h:193
#24 _FUN () at /usr/local/include/pybind11/pybind11.h:171
#25 0x00007fe57f28236e in pybind11::cpp_function::dispatcher (self=<optimized out>, args_in=0x7fe591453c90, kwargs_in=0x0) at /usr/local/include/pybind11/pybind11.h:768
#26 0x000055a5dd4fc098 in _PyObject_FastCallKeywords ()
#27 0x000055a5dd56f4d9 in _PyEval_EvalFrameDefault ()
#28 0x000055a5dd5699ee in _PyEval_EvalCodeWithName ()
#29 0x000055a5dd5696f3 in PyEval_EvalCode ()
#30 0x000055a5dd6334c2 in ?? ()
#31 0x000055a5dd63383d in PyRun_FileExFlags ()
#32 0x000055a5dd6336e6 in PyRun_SimpleFileExFlags ()
#33 0x000055a5dd60b163 in ?? ()
#34 0x000055a5dd60ae0c in _Py_UnixMain ()
#35 0x00007fe5920b0bf7 in __libc_start_main (main=0x55a5dd4f7db0 <main>, argc=2, argv=0x7ffc64e0e938, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc64e0e928) at ../csu/libc-start.c:310
#36 0x000055a5dd60acea in _start ()

Note to future self: to obtain it without making Colab kernel crash I created a standalone python file test.py with the code, and run it in a notebook cell with
!gdb -batch -ex r -ex bt -args python3 test.py

The same code works as expected when disabling LD_PRELOAD
!LD_PRELOAD="" gdb -batch -ex r -ex bt -args python3 test.py

which suggest that this may be related to #1 and #3.

Hi @j-1git
the ngsolve package has been updated and now the MPL tutorial works correctly.
I have added it to our tests, see https://colab.research.google.com/github/fem-on-colab/fem-on-colab/blob/main/ngsolve/test-ngsolve-mpl.ipynb
Feel free to reopen if this does not solve the issue with your code.


Milestones

Here's a list of milestones. I'll try to add them as official milestones later. I think the permissions need to be changed for me to do so.
I'd like to have three versions of the storyline for the February 3 MeetUp.
Onward.

Looks good! Do you think the statements should be shorter?


style: update icons to match theme

Description
Updated icon colors on the toolbuttons to match the theme
Related links
Parent Issue:

https://github.com/autowarefoundation/autoware/issues/4534

How was this PR tested?
Notes for reviewers
None.
Interface changes
None.

Effects on system behavior
None.

Cloud you share the screen shot of new theme?

By the way, this icon might work well for people who have switched to Ubuntu’s dark theme, but wouldn't it be hard to see for those using the default theme?

I see :+1:
You are in the process of changing it to default to dark theme
https://github.com/autowarefoundation/autoware/issues/4534

@yukkysaito the new icons are still readable under the default theme. It has low contrast but it is alright.
@KhalilSelyan these 2 need to be updated from the tools.repos:

tier4_automatic_goal_rviz_plugin

https://github.com/autowarefoundation/autoware.universe/pull/6351

This is how they were initially generated, we just need to update the colors.

2D Rough Goal Pose: Material Symbols Outlined: pin_drop
2D Dummy Pedestrian: Material Symbols Outlined: directions_walk
2D Dummy Car: Material Symbols Outlined: directions_car
2D Dummy Bus: Material Symbols Outlined: airport_shuttle
2D Checkpoint Pose: Material Symbols Outlined: flag
Delete All Objects: Material Symbols Outlined: delete
2D Dummy Bicycle: Material Symbols Outlined: two_wheeler
2D Dummy Unknown: Material Symbols Outlined: package_2
Third Person View: Material Symbols Outlined: video_camera_front
Bird Eye View: Material Symbols Outlined: raven
2D Append Goal: Material Symbols Outlined: sports_score
2D Append Checkpoint: Material Symbols Outlined: flag

style(update): autoware tools icons #6351

This is how they were initially generated, I've updated the colors:

2D Rough Goal Pose: Material Symbols Outlined: pin_drop
2D Dummy Pedestrian: Material Symbols Outlined: directions_walk
2D Dummy Car: Material Symbols Outlined: directions_car
2D Dummy Bus: Material Symbols Outlined: airport_shuttle
2D Checkpoint Pose: Material Symbols Outlined: flag
Delete All Objects: Material Symbols Outlined: delete
2D Dummy Bicycle: Material Symbols Outlined: two_wheeler
2D Dummy Unknown: Material Symbols Outlined: package_2
Third Person View: Material Symbols Outlined: video_camera_front
Bird Eye View: Material Symbols Outlined: raven
2D Append Goal: Material Symbols Outlined: sports_score
2D Append Checkpoint: Material Symbols Outlined: flag

I used the same links, but they provide bigger icons now for some reason ? should i use some online resizer or something for them ?

I've updated the links again.
https://github.com/autowarefoundation/autoware.universe/pull/8868#issuecomment-2357870266
could you replace the images with these? 64x64 is alright. But styles will match the old ones now.
especially the raven looks normal now.

Ideal solution would be to just have the svg icons in the source folder and have custom cmake command to call a python script to color and generate png in the install folder at compile time.
But it would be too much work for just a couple kilobytes.


[bug] "AssertionError: Failed at object (object mode frontend)" exception from simple code

Minimal repro code:
import sys, os, re
import numpy as np
from typing import *
import numba

@numba.jit
def numbaFailure(scores: np.ndarray, cooc: np.ndarray):
    rows, cols = scores.shape
    points = []
    for i in range(rows):
        xavv, coxv = scores[i], cooc[i]
        groups = sorted(set(coxv), reverse=True)
        idxgrp = [set(np.argwhere(coxv == x).flatten()) for x in groups]

if __name__ == '__main__':
    print(numba.__version__)
    x = np.random.random((10, 10))
    y = np.abs((np.random.randn(10, 10)*1.732)).astype(np.int)
    numbaFailure(x, y)

Error:
0.38.0
Traceback (most recent call last):
  File "x.py", line 21, in <module>
    numbaFailure(x, y)
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/dispatcher.py", line 360, in _compile_for_args
    raise e
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/dispatcher.py", line 311, in _compile_for_args
    return self.compile(tuple(argtypes))
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/dispatcher.py", line 618, in compile
    cres = self._compiler.compile(args, return_type)
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/dispatcher.py", line 83, in compile
    pipeline_class=self.pipeline_class)
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/compiler.py", line 871, in compile_extra
    return pipeline.compile_extra(func)
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/compiler.py", line 365, in compile_extra
    return self._compile_bytecode()
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/compiler.py", line 802, in _compile_bytecode
    return self._compile_core()
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/compiler.py", line 789, in _compile_core
    res = pm.run(self.status)
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/compiler.py", line 251, in run
    raise patched_exception
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/compiler.py", line 243, in run
    stage()
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/compiler.py", line 436, in stage_objectmode_frontend
    cres = self.frontend_looplift()
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/compiler.py", line 416, in frontend_looplift
    flags=loop_flags)
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/transforms.py", line 211, in loop_lifting
    cfg = compute_cfg_from_blocks(blocks)
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/analysis.py", line 213, in compute_cfg_from_blocks
    cfg.add_edge(k, target)
  File "/home/lumin/.local/lib/python3.6/site-packages/numba/controlflow.py", line 83, in add_edge
    assert dest in self._nodes
AssertionError: Failed at object (object mode frontend)

Numba 0.38.0, llvmlite 0.23.0

Thanks for the report. I can reproduce. I'm fairly sure the root cause is that the closure inlining pass is modifying the IR on the instruction level during the "no python" pipeline, when this pipeline fails and "object mode" is used instead, the IR is restored from a block level copy not an instruction level copy. The problem is essentially the same as in this ticket https://github.com/numba/numba/issues/2657 (bad jump label left in the IR after nopython mode transforms).

Hi I didn't finish reading your problem but I once had the same error. The reason is I put the function who uses a called function forward which is why it gave me such a error. hope it helps

@hiteyoshi I didn't quite get you. Do you mean you put the function in another calling function?


Complex display conditions to show or hide module settings

I'd like to suggest a improvement on how to determine if a module setting should be shown or not. I believe that currently show_if and show_if_not conditions are all combined using AND operators. Sometimes I encounter situations in which this alone is not enough to properly show and hide my settings so I either have to show settings always, cluttering my module and having settings visible which have no effect in certain configuration (confusing users) or I have to implement the same setting multiple times - and then it could happen that two of them are shown at the same time.
Instead it would be great to have a proper condition evaluation. I saw this in Elementor and found it very convenient to use and it can achieve great results. They have a "conditions" field in the setting which can look like this:
'conditions' => [
    'relation' => 'and',
    'terms' => [
        [
            'name' => 'c',
            'operator' => '==',
            'value' => 'on',
        ],
        [
            'relation' => 'or',
            'terms' => [
                [
                    'name' => 'a',
                    'operator' => 'in',
                    'value' => ['default', 'on'],
                ],
                [
                    'relation' => 'and',
                    'terms' => [
                        [
                            'name' => 'a',
                            'operator' => '==',
                            'value' => 'on',
                        ],
                        [
                            'name' => 'b',
                            'operator' => '!==',
                            'value' => 'on',
                        ],
                    ],
                ],
            ],
        ],
    ],
],

As you see, you have the conditions field which points to a dictionary. The dictionary has an optional relation field (which is AND by default when not set), an a terms field which points to an array of conditions. Each condition has the name field (which is the setting), the operator (e. g. <,<=,>,>=,==,!==,in) and value (which is either a single value or an array of values). Besides that, each entry in the terms array can be another conditions field.
I'm not sure how complicated it would be to implement this but it would be a great improvement and help to keep module settings clean.

This is something we are considering for a future release. But I don't like that example. It think its too verbose. We want to come up with something that is both simple and effective for the use case. I'll keep you posted :smiley:

15 months later and still no solution for it. Instead of "come up with something better" just make a first iteration with show_if_or and show_if_and. It is confusing for the user having settings, which does not change anything.


Fix for Webpack keeping fontFamily parameter for iOS

@oblador After #775 has been closed, this is another try to make fix for Webpack.
As you will see, I did the same thing on fontReference you did for Android, so it won't make break changes for iOS.

Think this actually also broke iOS, did you try your changes? Anyway, I refactored it and think it should be fine now. Please test with your setup, and the example project.

Please do!

@yairopro Could you fix the lint error and test that this PR works on iOS and Android? Would like to get it in the next release along with some other breaking changes.

I won't be able to check it befaore sunday, sorry.

Disregard my last message. Anyone coming here using Material UI Icons, for version 5.x you need to change the font family in your font-face style injector from "Material Icons" to "MaterialIcons".  This is working for me
const iconFont = require('react-native-vector-icons/Fonts/MaterialIcons.ttf');
  console.log('iconFont', iconFont)
  const iconFontStyles = `@font-face {
    src: url(${iconFont});
    font-family: "MaterialIcons";
  }`;

  const style = document.createElement('style');
  style.type = 'text/css';
  if (style.styleSheet) {
    style.styleSheet.cssText = iconFontStyles;
  } else {
    style.appendChild(document.createTextNode(iconFontStyles));
  }

  document.head.appendChild(style);```


[SPARK-5969][PySpark] Fix descending pyspark.rdd.sortByKey.

The samples should always be sorted in ascending order, because bisect.bisect_left is used on it. The reverse order of the result is already achieved in rangePartitioner by reversing the found index.
The current implementation also work, but always uses only two partitions -- the first one and the last one (because the bisect_left return returns either "beginning" or "end" for a descending sequence).

Can one of the admins verify this patch?

Could you add a regression test for this issue?  It looks like you have one in the JIRA ticket, so adding one hopefully should not be much work.  Take a look at python/pyspark/tests.py for examples of this.  Make sure to add a comment referencing the JIRA number.

I added the regression test. It also tests that sortByKey returns sorted sequence and tests also ascending sequence, which are not strictly necessary for SPARK-5969, but I added them anyway.

Jenkins, this is ok to test.

Test build #28315 has started for   PR 4761 at commit bc2647f.

This patch merges cleanly.

Test build #28315 has finished for   PR 4761 at commit bc2647f.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28315/
Test FAILed.

I have amended the regression test commit to pass lint-python.

Test build #28334 has started for   PR 4761 at commit 95896b5.

This patch merges cleanly.

Test build #28334 has finished for   PR 4761 at commit 95896b5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/28334/
Test PASSed.

@davies, does this look good to you?  Sorry for letting this patch fall off my radar (slowly getting caught up on a backlog of reviews).  If things look good, I can fix the merge conflict (which is probably just a conflict in tests) and get this committed.

LGTM

Alright, merging this into master (1.4.0) now.  Thanks!

Should this be backported anywhere?

This is a bug since the beginning (0.8), could we back port it for all 1.0+ branches?

I've cherry-picked the fix into branch-1.2 (1.2.3) and branch-1.3 (1.3.2).  I'm going to omit the the pre-1.2 backports for now because I hit a test merge conflict and also because I think it's unlikely that we're going to release another 1.1.x version.

Make sense, thank you!


NodeOS 1.0.0-RC3 "refactor"... with a Bonus

After some hiatus, there has been some work here on the project, and after some work... here is it the (in)famous RC3 with the so much talked refactor :-D
It was known that NodeOS architecture was still too much dependent of the original centrilized design in part done due to the CUSL. This made it dificult to maintain because code was heavily cohexive, and the whole build process was painfully slow. After splittin it in several projects for each layer it was shown that this main project was almost empty having all the logic on each layer, so after some initial serious intention to port NodeOS to ARM once for all (but unsuccesful? More on this later), the conclusion was that it was needed to clean-up the code first. A lot. And so I did :-)

Now all the logic regarding the generation of NodeOS for each platform is moved to the main NodeOS project itself, making each layer and sub-project to generate just simple and focused products that later are aggregated. Just plain ol' school UNIX filosophy. For example, nodeos-barebones now just only generates a .cpio.gz initram to be embedded in the kernel (and the kernel itself, but it's planned to be moved out too in the foresee future), without worrying about what particular NodeOS flavor will use it since it will be later customized, or nodeos-usersfs now don't have any dependency on the other layers, making it easier to understand how to create other custom users filesystems. It also convert and pack the different layers as the format needed by the target platform, being that a tarfile or an ext2 filesystem or whatever, customizing them by adding or removing specific files if needed.
nodeos-rootfs module has been finally deprecated and replaced by the nodeos-bootfs tool, that generate the /boot partition or ISO image only when needed. It was there for legacy reasons before making each user to have their own root filesystem, but it was just a no-op in the cases where there was no need for a boot partition, so finally it was removed.
One important point is that each layer now has its own tests, that help to easily and sooner identify the problems that could arise by making each layer more independent, and in fact some of them has appear during the process of adding them (and a test is not good enough if it doesn't show some bugs ;-) ). One of the biggest missing testing areas was to check that the prebuild release images of NodeOS where in fact bootable, that has been fixed both by creating a wrapping module on top of the libblkid library to be able to detect the partitions by their UUID instead of hardcoded device, and by showing the Syslinux bootloader prompt for just 0.1 seconds so the test can be able to detect and hook on it and append console=ttyS0 to the kernel command line, so now it's not only possible to capture its output and control the console but also the users can move the partitions around and add their own boot arguments without problems. The wrapper for libblkid has not be done without problems, due to the lack of documentation of how internally it works (at first I was not interested on compile it but just only to know how it detected the partitions UUIDs, because util-linux is a huge monolithic library) and later due to a lot of legacy code that prevented to compile it easily with recent tools (I needed to hack its code to make it compile with node-gyp...).
Since now each layer is more independent and has their own tests it makes sense to also generate their own prebuild images automatically, and the fact is that this has helped to improve the NodeOS build time A LOT. By (ab)using the prebuild-install module now they checks if there's available a prebuild image for the target platform, and if so then it's used instead of download its source code and compile it, and to don't need to download useless build dependencies for them, I've also created the buildDependencies module to download them for you in case they are needed by reusing the devDependencies field. So, do you remember the infamous step of pick some microwave pop-corn and go to see a movie from the NodeOS build instructions? Well... now with a decent internet connection and a somewhat fast laptop, maybe you'll not be able to finish your cup of coffee while using the BigRedButton script to build and test all the NodeOS supported architectures and platforms at once. Yes, so fast is it now :sweat_smile:
nodeos-cross-toolchain and the NodeOS layers build process now accept arguments following the QEmu scheme, and their generated products have been changued to follow them too. This has the side effect that now the $PLATFORM environment variable only define the format of the final products and has nothing to do with the architecture details. It also makes it easier to port to new platforms and architectures and to test them too by having a clear build matrix to follow. It keeps to convert the usage of specific "generic" CPUs identifiers to the more abstract Node.js architecture, so it would not be needed to be translated them several times but just once.
buildDependencies or nodeos-bootfs have not been the only modules created for this RC. tar2ext has been created to generate partition images for usersfs in a similar way to how cpio2tar works, and nodeos-mount-filesystems has been totally rewritten and splitted in the modules nodeos-boot-singleUser, nodeos-boot-singleUserMount and nodeos-boot-multiUser to improve flexibility in environments where it's only desired to exec a single Node.js app instead of hosting a full multi-user environment. Not only that, that to ensure the single apps also run on an isolated environment similar to the one of the full NodeOS experience, the mechanism to create them has been put in the new jocker, the Javascript Docker module :-P By the moment it's just an augmentated chroot, but being on an independent module would help to move forward to use real LXC containers in the future in a simple way.

As you can see there has been a lot of work here :-D But there's still a lot to do. For example, buho module needs to be improved to be able to check on dependencies upgrading to update them too in a similar way to how Greenkeeper works (maybe we could integrate it?), or Node.js itself it's stalled on the 6.x branch due to cross-compilation problems on the version of the v8 Javascript engine included in Node.js 7.x, or the need to update fuse-bindings to make use of FUSE 3.0.0 or support several standard libraries on the prebuild images (glibc and musl) publishing releases of both, but definitelly the most important things that need to be fixed is the support to exec interactive console apps in nsh and the removal of the several projects forks by getting them to be merged upstream, so let's start to give them some pressure ;-) Oh, and as always, improve the documentation of the different sub-projects, of course...
Regarding ARM, now both nodeos-cross-toolchain and nodeos-nodejs support them and host prebuild images for Raspberry Pi 2, but NodeOS itself can be tested due to problems with QEmu, seems regarding to the loading address of the kernel image. It needs to check if they run in fact on real hardware to confirm that's a QEmu problem, but until that it has been added support for the Raspberry Pi original because it now has been added support for the board (also untested for the same reasons), and plan to add support for the versalitepb board since it's the default one for ARM machines on QEmu and one year ago I was able to boot NodeOS on it (althought getting a kernel panic when executing the /init binary), so at least let's hope to be able to tests the ARM architecture too :-)
And now, the...
Bonus
The RC3 was published last week, but I have been really busy this week and also caught a cold so my mind was not in the perfect state to concentrate and write this essay, so since I had back in my mind the feeling that I almost got something "interesting" to work, I employed the few spare time I got to work on it a little bit each time, and finally this morning I got it:
piranna@slimbook-C16B:~/Proyectos/NodeOS$ npm run docker

><EMAIL_ADDRESS>docker /home/piranna/Proyectos/NodeOS
> scripts/docker

mount procfs: Resource busy
Hello! I'm a user init script :-)
Welcome to NodeOS!: username:  nodeos
·                 : password:
~ >

Yes, that's it: NodeOS fully booting inside Docker!!! :-D The problem with usersfs has been solved thanks to the refactor by being able now to convert the generated tarfile to a Docker Volume and assigning it directly to /tmp inside the NodeOS filesystem hierarchy, and it's configured to support FUSE filesystems (needed by ExclFS) and OverlayFS (needed by the by-user root filesystem). It's fairly experimental since I needed to tweak some things, for example I needed to change the Docker storage driver to overlay2 because the default aufs one was freezing my machine needing to reboot, and that makes it impractical for debugging it and make it work (maybe now that's fixed it could work but it's untested, YMMV). To be honest I've needed to do some tricks like disable the usage of node-bin-getty to manage the console because I was not being able to make it owner of the console (maybe I'm doing something wrong?) and exec directly logon and also seems to be there a "little" problem with the user ID:
~ > pstree
init
├── exclfs
├─┬ nsh
│ └── pstree
└── nodeos-reverse-

~ > ls proc/
[ '1',
  '110',
  '16',
  '45',
  '47',
  'acpi',
  ...

As we can see here, although we login with the nodeos account we are having the UID 0 and seeing the administrative processes, but at least it works to show how much few processes with administrative permissions are needed for a fully working system, that's one of the purposses of NodeOS :-D I'm not sure if it could be a problem on NodeOS (I have checked the files directly on the layers managed by Docker and they have the correct UIDs and GIDs) or about Docker ignoring the UIDs and using just only root for everything because the LXC containers already isolate the processes from the underlying system so by design it's supposed they are given the least possible permissions (I didn't found any example that execute a process not as root inside a Docker instance so far...). In any case, that's a huge milestone and promise some very interesting things for the future of NodeOS ;-) Next step, vagga ;-)

hi，i‘m ’trying to support arm64 this days，but i met alot of problems，can you tell me how to easily support arm64 on nodeos??


Use the right NSFetchedResultsControllerDelegate method. Fix for Dele…

Issue: Link
Short description

Fix the Issue where one of the NSFetchedResultsControllerDelegate method was not being called.

Solution

The method signature of the delgate has been changed. Hence I just replaced the method with the right one. func controller(NSFetchedResultsController<NSFetchRequestResult>, didChange: NSFetchedResultsSectionInfo, atSectionIndex: Int, for: NSFetchedResultsChangeType)

Implementation

Detail in a checklist the steps that you took to implement the PR.

[x] Remove `@nonobjc public func controller(controller: NSFetchedResultsController, didChangeObject anObject: AnyObject, atIndexPath indexPath: IndexPath?, forChangeType type: NSFetchedResultsChangeType, newIndexPath: IndexPath?)'
[x] Replace with public func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?)

GIF

Find a descriptive GIF for your PR. Because we :heart: fun at Carambalabs.
…gate method not being called. (CoreDataObservable with no informations #307)

Awesome, thank you very much for the fix @akshaynhegde. Merging it.
It solves https://github.com/carambalabs/SugarRecord/issues/307


Move to JuliaMath

@tkelman Can we move this to JuliaMath?

Yes, will do, good spot. I invited @rprechelt to that organization. Will do a batch of these, I'm giving some "fair warning" notification time in the other cases.

I think you can just move these.

Fine, done.

I assume you will be updating METADATA?

Yes but it doesn't actually need to be done immediately since the github redirect will take care of it in the meantime. Just a housekeeping issue in case someone ever creates a new different JuliaLang/AppleAccelerate.jl repository, which would break the automatic redirect.


Master

add python courses

This is not a proper PR with proper commits. Please check it "harshdattani  wants to merge 15 commits into PareshMayani-Useful-Links from master".
Either clone a fresh project from GDG Ahmedabad or update your forked repository with GDG Ahmedabad repo!


DCA Block Error

I attempted to generate the model summary of your Unet model with the "attention=True" setting, and I encountered the following error. Did you incorporate a DCA block in your network?
File "Dual-Cross-Attention.py", line 1120, in
out = model(in1)
File "/home/praful/.local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "Dual-Cross-Attention.py", line 1097, in forward
x11, x22, x33, x44 = self.DCA([x1, x2, x3, x4])
File "/home/praful/.local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "Dual-Cross-Attention.py", line 884, in forward
x_out = self.m_sum(x, raw)
File "Dual-Cross-Attention.py", line 892, in m_sum
return [xi + xj for xi, xj in zip(x, y)]
File "Dual-Cross-Attention.py", line 892, in
return [xi + xj for xi, xj in zip(x, y)]
RuntimeError: The size of tensor a (512) must match the size of tensor b (64) at non-singleton dimension 2

Here my input image size is 3X64X512

DCA code is designed for square image sizes, you need to update the code
such that it takes non-square inputs.
On Fri, Sep 1, 2023 at 5:37 AM Praful Hambarde @.***>
wrote:

Here my input image size is 3X64X512
—
Reply to this email directly, view it on GitHub
https://github.com/gorkemcanates/Dual-Cross-Attention/issues/7#issuecomment-1702463973,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASFOJR6MKEZGQFOBF3TRPX3XYGUEJANCNFSM6AAAAAA4HJHXBE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Regards,
Gorkem Can Ates

Could you give some idea for code modification for non square input??

Hello,have you solved this problem?

You need to customize the output size in pool embedding to support non-square inputs.


Assertj is no longer present in Quarkus BOM

Assertj is no longer present in Quarkus BOM

(CI was green)


Create lhbk

@marionramsteiner Pull request merged. Please notice that free educational license for JetBrains tools is for high and higher schools students, i.e. those who are over 13 of age. Thank you!


Run validators on the same file processed by the parse and populate pipeline

While compiling modules, the current approach is that every time when a module with a specific name and revision and a new hash is encountered, the compilation results from this version of the module overwrite the compilation results for that name and revision stored in redis. This is a problem, because we can not be sure that the version compiled last is the same as the version of the module the backend has accepted (parsed and copied to /var/yang/all_modules).
One way I can think of resolving this is that during regular runs, the compile_modules.py script will not upload any of the results to redis. After the HTML and JSON reports have been generated for all the directories we currently compile, the script would be run again with a different setting on the all_modules directory. This is when it would upload the compilation results to redis. Almost all of these would already have been encountered in one of the directries we've already compiled, so we'd only need to pull out the cached data and send it to redis. The rest of the modules would be compiled normally.

The more detailed explanation of this issue:
So there's these two files https://github.com/Juniper/yang/blob/master/17.2/17.2R1/junos/show-rsvp.yang, https://github.com/Juniper/yang/blob/master/17.3/17.3R1/junos-es/show-rsvp.yang.
Both of the modules are named show-rsvp and the revision in both of them is 2017-01-01, but the contents are very different.
Currently what the backend should do is take the first one it encounters, put it in the all_modules directory, and from that point on ignore any different files with the same name and revision. So populate.py will upload data parsed out of the first module to redis.
compile_modules,py will first find the first one, upload the compilation data for show-rsvp@2017-01-01 to redis, then it will find the second one and overwrite the compilation data for show-rsvp@2017-01-01 again. So now we end up with compilation data for the second file and parse and populate data for the first file mixed in the same redis entry.


Fix third party vulnerabilities identified by npm audit

axle:oidc-rs justin$ npm audit
...
found 1 moderate severity vulnerability in 142 scanned packages
run `npm audit fix` to fix 1 of them.

Looked pretty trivial, should be good to go.


Better reporting of paths that cannot be enumerated with Get-Childitem

This may actually finally put #5 to bed.
It doesn't fix the fact that the directories can't be enumerated, but it does ensure that they're reported properly.
Not sure if Write-Warning or Write-Error is more appropriate for this case, but since write-warning is used already for failures to open archives, I stuck with that.

The reason I didn't wrap this in a Try/Catch is that if you do, the processing for Get-ChildItem stops and files that would have been enumerated after the exception are just lost.


write README

just getting some ink on the paper - thoughts on the readme?

ooh git-crypt looks nice

this looks excellent


Unique together constraints including the locale cause IntregrityError

Issue Summary
When using the locale in unique_together or a UniqueConstraint on a snippet then submitting a violating form leads to a IntegrityError.
Steps to Reproduce

Get a current version of the Wagtail bakery demo project.

Edit bakerydemo/breads/models.py as follows.
@register_snippet
class BreadCrumbs(TranslatableMixin, models.Model):
    title = models.CharField(max_length=255)

    panels = [
        FieldPanel('title'),
    ]

    def __str__(self):
        return self.title

    class Meta(TranslatableMixin.Meta):
        unique_together = TranslatableMixin.Meta.unique_together + [
            ('title', 'locale'),
        ]

Run ./manage.py makemigrations && ./manage.py migrate && ./manage.py runserver.

Go to http://localhost:8000/admin/snippets/breads/breadcrumbs/

Click the "add bread cumbs" button

Enter "test" in the title field and save the snippet.

Click the "add bread cumbs" button again

Enter "test" in the title field and save the snippet agin.

Observe the IntegrityError:

Any other relevant information. For example, why do you consider this a bug and what did you expect to happen instead?
The expected behavior would be to see an error message like the following:

I have tried other variants of unique_together constrains, e.g. two char fields or a char field and another foreign key field (other than the locale) and they all work and lead to nice error messages like the one shown above.
Here is a different example snippet with a working unique_together constraint to a foreign key.

@register_snippet
class CrumbType(models.Model):
    title = models.CharField(max_length=255)
    ingredient = models.ForeignKey(to=BreadIngredient, related_name="+", on_delete=models.PROTECT)

    panels = [
        FieldPanel('title'),
        FieldPanel('ingredient'),
    ]

    def __str__(self):
        return self.title

    class Meta:
        unique_together = [
            ('title', 'ingredient'),
        ]

I have confirmed that this issue can be reproduced as described on a fresh Wagtail project: (yes / no)

Technical details

Python version: Run python --version. Python 3.9.13
Django version: Look in your requirements.txt, or run pip show django | grep Version. Version: 4.0.5
Wagtail version: Look at the bottom of the Settings menu in the Wagtail admin, or run pip show wagtail | grep Version:. Version: 3.0.1
Browser version: You can use https://www.whatsmybrowser.org/ to find this out. -- Not a browser issue -> Any

Hi @tbrlpld , I have replicated this error on my local machine.
I think this most likely has to do with a bug in the view/function used to add a new item. I guess some additional checks need to be added to ensure the integrity of the unique constraints.
I haven't been able to locate the exact code where this is being done. Could you guide me on this?
Thanks

Hi @Sanyam-Garg. Thanks for replicating this!
Unfortunately I am unfamiliar with the view / validation logic myself, so I won't be of much help there.

@tbrlpld , I tinkered around the code of the validation logic but to no avail.
However, I found this which seems to be the solution to the exact problem. I don't quite understand all of it but looks like its doing the job.

The 'locale' field has 'editable=False' iirc.

Field.editable¶
If False, the field will not be displayed in the admin or any other ModelForm. They are also skipped during model validation. Default is True. https://docs.djangoproject.com/en/4.1/ref/models/fields/#editable

I do get why direct editing of this field is prohibited, but I wouldn't be against a less restrictive approach and make this field editable by removing the attr.
Same situation applies for the uid field.

Thanks for digging this up @allcaps!

Just tried this and can confirm, removing locale from the excluded list/set makes this work
    def validate_unique(self, exclude=None):
        if exclude and "locale" in exclude:
            exclude.remove("locale")
        return super().validate_unique(exclude)


fix: add missing options.customStyleName

add missing options.customStyleName which supported by babel-plugin-import

Thx
Merged to v0.2.5


License has placeholders

Hi folks, Just notifying that the repo's LICENSE has placeholders instead of real data.

Forget it, its just the template

Actually, I think you're right; it should be
Copyright 2016 Docker, Inc.

https://github.com/docker/libnetwork/blob/master/LICENSE#L189
Are you interested in opening a PR to fix this?

@thaJeztah yep and that seems to be the APPENDIX: How to apply the Apache License to your work. part after the END OF TERMS AND CONDITIONS :) Do you think its still relevant to change?


[BEAM-14065] Upgrade vendored bytebuddy to version 1.12.8

R: @kennknowles

The CI failures look possibly like flakes:
java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextNode(HashMap.java:1469)
	at java.util.HashMap$ValueIterator.next(HashMap.java:1498)
	at java.util.AbstractCollection.toString(AbstractCollection.java:461)
	at java.lang.String.valueOf(String.java:2994)
	at java.lang.StringBuilder.append(StringBuilder.java:131)
	at org.apache.beam.sdk.transforms.ParDoLifecycleTest$ExceptionThrowingFn.validate(ParDoLifecycleTest.java:392)

in org.apache.beam.sdk.transforms.ParDoLifecycleTest.testTeardownCalledAfterExceptionInFinishBundleStateful: https://ci-beam.apache.org/job/beam_PreCommit_Java_Commit/21347/testReport/org.apache.beam.sdk.transforms/ParDoLifecycleTest/testTeardownCalledAfterExceptionInFinishBundleStateful/
And:
09:23:46 > Task :beam-test-infra-metrics:validateConfiguration
09:23:46 W0307 17:23:44.399526 3830908 helpers.go:549] --dry-run=true is deprecated (boolean value) and can be replaced with --dry-run=client.
09:24:15 Unable to connect to the server: dial tcp <IP_ADDRESS>:443: i/o timeout

in https://ci-beam.apache.org/job/beam_PreCommit_CommunityMetrics_Commit/5078/console

What is next on this PR?

@aaltay I think I've addressed all of the feedback from the initial round of review, and that it's ready for another pass

@kennknowles - PTAL?


[go_router] the page opened incorrectly

Steps to reproduce

Use the config below

final GoRouter _router = GoRouter(
  routes: <RouteBase>[
    GoRoute(
      path: '/',
      redirect: (context, state) => '/home',
      routes: <RouteBase>[
        GoRoute(
          path: 'home',
          builder: (BuildContext context, GoRouterState state) {
            return const HomeScreen();
          },
        ),
        GoRoute(
          path: 'details',
          builder: (BuildContext context, GoRouterState state) {
            return const DetailsScreen();
          },
        ),
      ],
    ),
  ],
);

call context.push('/details') to open details in home page

Expected results
open the details page successfully
Actual results
opened the home page
Code sample
Code sample
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

void main() => runApp(const MyApp());

/// The route configuration.
final GoRouter _router = GoRouter(
  routes: <RouteBase>[
    GoRoute(
      path: '/',
      redirect: (context, state) => '/home',
      routes: <RouteBase>[
        GoRoute(
          path: 'home',
          builder: (BuildContext context, GoRouterState state) {
            return const HomeScreen();
          },
        ),
        GoRoute(
          path: 'details',
          builder: (BuildContext context, GoRouterState state) {
            return const DetailsScreen();
          },
        ),
      ],
    ),
  ],
);

/// The main app.
class MyApp extends StatelessWidget {
  /// Constructs a [MyApp]
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      routerConfig: _router,
    );
  }
}

/// The home screen
class HomeScreen extends StatelessWidget {
  /// Constructs a [HomeScreen]
  const HomeScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Home Screen')),
      body: Center(
        child: ElevatedButton(
          onPressed: () => context.push('/details'),
          child: const Text('Go to the Details screen'),
        ),
      ),
    );
  }
}

/// The details screen
class DetailsScreen extends StatelessWidget {
  /// Constructs a [DetailsScreen]
  const DetailsScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Details Screen')),
      body: Center(
        child: ElevatedButton(
          onPressed: () => context.go('/'),
          child: const Text('Go back to the Home screen'),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[Paste your output here]

@MeandNi
Can you check if this issue resembles your case or not ?
Also, instead of context.push, can you try with context.pushReplacement() or context.replace() and check if they help ?

@MeandNi Can you check if this issue resembles your case or not ? Also, instead of context.push, can you try with context.pushReplacement() or context.replace() and check if they help ?

This is not a problem. Well, I probably misunderstood the meaning of redirect. it Is expected that redirect will make all subRoutes unreachable, is it right? @chunhtai  If so, this issue can be closed.

@chunhtai If so, this issue can be closed.

@MeandNi Please don't directly tag team members for attention. There's a triage process in place through which issues get routed to the team.
Have you tried using context.pop() ?

@MeandNi
The the redirect will force it to go /home since as long as the goroute is part of the match
I guess this is what you meant to do
redirect: (context, state) {
  if (state.uri.path == '/') {
    return state.uri.replace(path: '/home');
  }
  return null;
}

or something like
GoRouter(
  routes: <RouteBase>[
    GoRoute(
      path: '/',
      redirect: (context, state) => '/home',
    ),
    GoRoute(
          path: '/home',
          builder: (BuildContext context, GoRouterState state) {
            return const HomeScreen();
          },
        ),
   GoRoute(
     path: '/details',
     builder: (BuildContext context, GoRouterState state) {
       return const DetailsScreen();
     },
   ),
  ],
);

Either way, the current behavior is WAI


pull request for e2e test at 12/30/2016 16:56:11

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Show status on individual completed courseware

Shows if the current waypoint, bonfire you are standing it was completed already.

This looks pretty good:

In the future, when making UI changes, it would be helpful if you included a screenshot of the relevant part.
I do believe that for accessibility this icon should have a title tag of "Completed".

I would like others opinions before I push this live.
@FreeCodeCamp/issue-moderators - Thoughts?

I'm good with this. It adds information without adding UI clutter and in most cases users won't see it anyways since going back to a completed challenge is not the usual use-case of challenges.

Thanks!

Thanks for merging.. @ltegman: Since FCC constantly evolving with new challenges even the existing campers will benefit from it.


Restore support for PHP 7.4

@vitorccs would you consider restoring support for PHP 7.4?

Hi @Xint0-elab In order to restore support for PHP 7.4, you may want to clone this repo and remove the "mixed" type from both
https://github.com/vitorccs/laravel-csv/blob/31f0cff5c2b6cd2daddbad3ceb57c2c3b56036e0/src/Services/Writer.php#L105
https://github.com/vitorccs/laravel-csv/blob/31f0cff5c2b6cd2daddbad3ceb57c2c3b56036e0/src/Services/Writer.php#L140
I have added some unit tests which requires PHP 8.x, e.g:
https://github.com/vitorccs/laravel-csv/blob/31f0cff5c2b6cd2daddbad3ceb57c2c3b56036e0/tests/Services/ExportableServiceTest.php#L173

Since this is a breaking change I would suggest incrementing the major version to 2.0 for removing support for PHP 7.4; and keep support for PHP 7.4 in version 1.x.

Hi @Xint0-elab, most packages like Zend Framework and Doctrine increment the MINOR version - see below
https://medium.com/@sampart/semantic-versioning-when-you-change-the-required-programming-language-version-16a3a3555c95
If you still want to keep compatibility with PHP 7.4, you can create a PR which addresses both code changes I mentioned above and we could release under v1.0.1
So
v1.1.0 => Add Lazy Support + PHP 8
v1.0.1 => Add Lazy Support (PHP 7.4)
v1.0.0 => The main version (PHP 7.4)

OK, could you please create branch 1.0.x so I can make a pull-request to that branch with the changes?

Hi @Xint0-elab here is the v1.0.1
https://github.com/vitorccs/laravel-csv/tree/v1.0.1
Can you please check before we make a new release?

@Xint0-elab Release published. Thx for your help.


Glasses And Goggles Visual Change

Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog
:cl:Alekshhh

tweak: Changed glasses and goggles visually

does everything need a resprite?

he likes spriting let him cook

I am pretty sure I gave the goggles outlines, they previously did not have any
I didn't realize the orange and super gar had nice shading I swear it was different before, the green gars had nothing subtle about them at all though. I will copy the orange gar's shading on them
I don't get the glasses comment. they're fine
I wouldn't call any of this oversimplifying, not sure how you got to that conclussion
yeah I like to sprite why you being a hater

gar family are nice

I like the sprites. Emo has a wrong opinion?!?

I don't mind how the three "star" ones look, they always were a bit flat IMO, but I really dont like the glasses or goggles look. The glasses in particular look kinda, off? Like their downwards tilt introduced more problems with the sprite than had they just been flat like the old ones. Cant get into specifics though, I'm not an artist, and certainly no spriter.

I also don't like suggested star goggles sprite


Hardware Authenticator TPM Attestation

Hi there, I had a quick question about the hardware authenticator.
It appears that certain devices (e.g. Surface Pro 3) will use RS256 (with alg code -257) as the signature algorithm for verification, but the attestation is generated via RS1 (with alg code -65535). Is there any reason for this discrepancy?

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

ID: 90cabf96-7b2b-9eb6-c428-ff4b44a97312
Version Independent ID: 922d390b-52b6-db2a-0aab-f338e8c21b85
Content: Dev guide - Web Authentication - Microsoft Edge Development
Content Source: microsoft-edge/dev-guide/windows-integration/web-authentication.md
Product: microsoft-edge
Technology: windows-integration
GitHub Login: @MSEdgeTeam
Microsoft Alias: msedgedevrel

Decided to close this as it seems unlikely to get a response from the doc team in particular.


feat: support solc output artifact format

Motivation
Blocked by https://github.com/gakonst/ethers-rs/pull/2024
Closes https://github.com/foundry-rs/foundry/issues/4051
Supports the nested evm object format

Solution

the deny check fails for some unknown reason, also mentioned https://github.com/foundry-rs/foundry/pull/4052#issuecomment-1374469226


ECO-197: Update value prop on search screen

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
0

Sum
1


BLD: Fix conda build and add 'pyxrf' command

conda-recipe and setup.py copied from dataportal project and edited for this UI

Need @tacaswell 's help for this one. Closing this PR for now.


ItemStack.Builder#fromBlockSnapshot does not preserve block entity data

From the docs:
Attempts to reconstruct a BlockSnapshot including all data and TileEntity related data if necessary for creating an ItemStack representation.

Test code (position data necessary re: #1960):
// Player p;
String command = "give pie_flavor minecraft:diamond 1";
BlockState state = BlockState.builder().blockType(BlockTypes.COMMAND_BLOCK).build();
BlockSnapshot snapshot = BlockSnapshot.builder()
        .blockState(state)
        .add(Keys.COMMAND, command)
        .world(p.getWorld().getProperties())
        .position(p.getWorld().getLocation().getBlockPosition())
        .build();
ItemStack stack = ItemStack.builder().fromBlockSnapshot(snapshot).build();
p.getInventory().offer(stack);

And the command block gets successfully added to the inventory, but when placed has no command in it.

Misunderstood the issue.