Need to put a bikeshed version tag into the output document

If I run the latest version of bikeshed on an unchanged .bs file, and it produces very different output, it would be nice to have a bikeshed version tag in the html so I can tell that bikeshed version drift is the reason.

I already output a version tag, I just don't update it. I guess this is actually asking for me actually follow some sort of semantic versioning?

Where is the version tag in generated html?

Right where it's supposed to be - <meta name=generator content="Bikeshed 1.0.0">

I see; then yes, my request is that the version be incremented, and that it always match a tag in the repository.

It sounds like you're asking for tagged releases that you can pin yourself to?
I'm not currently planning on doing that.


Spinner: use data attributes when initialising indirectly

If the options for a Spinner are declared as data attributes, the data attributes are only used during instantiation if the Spinner is initialised via the user performing a mousedown event on the element (data attributes API).
If you call a Spinner method on an element prior to instantiation, the Spinner will get instantiated but the data attributes aren't passed through.
I have a use case where my Spinner starts off in a disabled state, and I enable it later if the user performs a certain action.  In this case, the data-min and data-max values from my markup don't get applied because the call to disable initialises the Spinner without using the data attributes.  Then, when I enable the Spinner later, I am able to go below data-min and above data-max (the default limits of 1 and 999 are applied instead).    This JSFiddle demonstrates the issue.  I haven't checked to see if any of the other plugins have the same issue.

@jwarby I understand your issue here when starting with a disabled spinner and therefore invalid data from the user to set a max and min. However, we have a history in this library about initialization. This is from the Fuel UX 3 documentation, but I believe the ability to update the options when initialized a second time should not be present in any of our controls.

Fuel UX controls cannot be re-initialized. Passing new options to an already initialized control will do effectively nothing. Many controls have convenience methods that allow some internal variables to be changed; otherwise use Javascript to call the control's destroy() method and initialize again with the newly desired markup and options. The destroy() method will attempt to return the pre-initialization markup for the element being destroyed.

Would it be possible to replace the disabled spinner control in the DOM with new un-initialized markup?
Forgive me if I am misunderstanding you. @kevinparkerson Do you have any additional thoughts? You are more familiar with version two.

@interactivellama I think there is a little bit of confusion, which is probably me not explaining properly sorry.
In my use case, I have set data attributes for min, max and the disabled state.  When I call the enable method, I am expecting the spinner to already be initialised with my data attributes but it isn't.  The call to enable the spinner has the side effect of initialising the spinner before being applied.  With my fix, the side effect-initialisation makes use of the DOM data attributes.
As far as I can tell, my fix won't allow you to re-initialise the spinner with different options because there is a check on line 206 which checks if the spinner is already initialised (if (!data) { ... }).
Does that make any more sense....?


[FLINK-35857] fix redeploy failed deployment without latest checkpoint

What is the purpose of the change
Fix operator won't use latest checkpoint to  redeploy deployment.
Brief change log

Redeploy failed deployment with latest checkpoint if upgradeMode=SAVEPOINT/LAST_STATE

Verifying this change
Unit tests + manual verification
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changes to the CustomResourceDescriptors: (no)
Core observer or reconciler logic that is regularly executed: (no)

Other implementation details
As the FLINK-35857 described, if  a deployment first started without
setting execution.savepoint.path but enable periodic checkpointing and external checkpoint storage  run troble into failed status,  operator won't use  latest checkpoint to redeploy.
The root cause is when deployment  first started without setting execution.savepoint.path , operator will set  spec.job.upgradeMode = STATELESS and serialize as status.reconciliationStatus.lastReconciledSpec in the method
AbstractFlinkResourceReconciler.updateStatusBeforeFirstDeployment.
However, when  redploying failed deployment, the method AbstractJobReconciler.resubmitJob will read the upgradeMode of lastReconciledSpec and decide whether to redeploy from latestSavepoint based on whether it is STATELESS.
Thus, it should update  status.reconciliationStatus.lastReconciledSpec using the right upgradeMode  before redeploy failed deployment

Thank you for the fix @chenyuzhi459 this was a very nice catch :)

@chenyuzhi459 Can you list all the configurations you have? I have the similar issue (job restart cannot be from checkpoint) and I've tried to use your fix in v1.10. but I still have the issue - every time the operator restart a failed job, it always from scratch, no checkpoint is being used. I don't want to restart from a save point, either.
Thanks!

@chenyuzhi459 Can you list all the configurations you have? I have the similar issue (job restart cannot be from checkpoint) and I've tried to use your fix in v1.10. but I still have the issue - every time the operator restart a failed job, it always from scratch, no checkpoint is being used. I don't want to restart from a save point, either. Thanks!

The oeprator conf:
kubernetes.operator.job.restart.failed: true

The flinkdeployment conf:
spec:
    job:
       upgradeMode: savepoint

@jwan666  Do you specify upgradeMode in your flinkdeployment ?

@chenyuzhi459 Can you list all the configurations you have? I have the similar issue (job restart cannot be from checkpoint) and I've tried to use your fix in v1.10. but I still have the issue - every time the operator restart a failed job, it always from scratch, no checkpoint is being used. I don't want to restart from a save point, either. Thanks!

The oeprator conf:
kubernetes.operator.job.restart.failed: true

The flinkdeployment conf:
spec:
    job:
       upgradeMode: savepoint

@jwan666 Do you specify upgradeMode in your flinkdeployment ?

Thank you! I have upgradeMode set to savepoint as well.


fix: stuck mise with flag --verbose

@jdx This is an odd one, i would expect that the env() call in the Debug implementation of Config would already initialize the env but for some reason this leads to described behaviour. If i call env() explicitly before the debug! macro it works as expected. Any idea why that might be?
Resolves #1830

it looks like this broke the python test for some reason. I tried running it again but it failed.

It seems the following code (env() and path_dirs())  from impl Debug for Config causes a deadlock. Need to dig deeper to figure out why exactly...
if let Ok(env) = self.env() {
    if !env.is_empty() {
        s.field("Env", &env);
        // s.field("Env Sources", &self.env_sources);
    }
}
let path_dirs = self.path_dirs().cloned().unwrap_or_default();
if !path_dirs.is_empty() {
    s.field("Path Dirs", &path_dirs);
}

So far what i figured out is that OneCell::get_or_try_init is no-reentrant and might cause a deadlock if called recursively. Reworking the code to initialize env seems to mitigate that issue but causes another one related to Tera template resolution using exec.
Locally i could only reproduce this once, where the template resolution (e.g. {{exec(command='echo \"test\"')}}) would execute (print out the command) in an endless loop, after touching the TOML file it was gone and non-reproducible though.

@jdx I assume the following code resembles a global singleton pattern in Rust?
pub fn try_get() -> Result<Arc<Self>> {
    if let Some(config) = &*CONFIG.read().unwrap() {
        return Ok(config.clone());
    }
    let config = Arc::new(Self::load()?);
    *CONFIG.write().unwrap() = Some(config.clone());
    Ok(config)
}

It seems that this does not work as intended when the EnvDirective::PythonVenv does call Config::get(). So Config uses EnvDirective on initialization (load_env()) to resolve the environment but also relies on Config to create a venv. This causes the reentrant behaviour on OnceCell and when mitigated a stackoverflow due to endless load_env() calls.

@jdx I assume the following code resembles a global singleton pattern in Rust?

yeah, I'm not using Lazy here because in the unit tests I need the ability to clear the value in a single process. It seems I recognized this was an issue when I wrote it: https://github.com/jdx/mise/blob/a8ac6cdca6d3322b6d406fa32d27c89ec488a9ee/src/config/env_directive.rs#L167
I'm not sure what to do here. We have a high-level paradox: env loading happens before we load the tools, but we need to load the tools so we know which python version to load.

I also don't see a straight forward solution right now.
What could be done as a workaround is simply comment out the entire debug! macro or the parts (Env, Path Dirs) of the impl Debug for Config causing the deadlock.

converted to draft until one of us figures out a better solution here

where is this debug call? could we just only show the env if it is already loaded?

The debug! call causing this is at https://github.com/jdx/mise/blob/main/src/config/mod.rs#L94

I'm thinking we change this conditional: https://github.com/jdx/mise/blob/main/src/config/mod.rs#L606
instead of calling .env() we call self.env_with_sources.get()

I fixed this issue today


Removed CodePen from article: Read and write spatial data

Removed CodePen from article: Read and write spatial data

#sign-off

Staged in https://github.com/MicrosoftDocs/azure-docs-pr/pull/242279


Entering any value in exit prompt does not clear the screen

Describe the bug
Entering aby value in the exit prompt does not clear the screen

To Reproduce
Steps to reproduce the behavior:

Go to exit prompt
Enter any value
See error

Expected behavior
Should clear the screen

Fix at ee5d405f51c3ad514563cb34cf77c290ec9d8792


get_option for mutliselect array

I have a mutli select dropdown for Ansible tower job. I know multiselect isn't supported for ansible tower jobs but I'm trying to make it work. I modified the launch_ansible_job.rb and it works when I provide a array of AWX tower job ID's but I'm not sure how to fetch the dialog and pass it to launch_ansible_job job_template_id as a array.
In the logs I see that its an array of job ID's.
[----] I, [2022-03-24T10:39:24.179620 #328:2aebe3b4b564] INFO -- automation: Q-task_id([r390_service_template_provision_task_1369])  Adding Option: {dialog_job_template_id => ["44", "45"]} to Provisioning id: 1371
but the get_option doesn't work. Below screenshot shows that the data type has been changed to array instead of string.

If I use - ${/#miq_provision.miq_provision_request.get_option(:dialog).fetch(dialog_job_template_id)}
then I get the following error
[----] W, [2022-03-24T10:39:58.818579 #326:2ae2ac7c996c] WARN -- automation: Q-task_id([r390_miq_provision_1371]) Error during substitution: key not found: "dialog_job_template_id"
[----] W, [2022-03-24T10:40:08.423385 #326:2ae2ac7c996c] WARN -- automation: Q-task_id([r390_miq_provision_1371]) Error during substitution: key not found: "dialog_job_template_id"
This is how the mutliselect looks like.. It displays job names but the values are job_id and its an array..

I tried ${/#miq_provision.miq_provision_request.get_option(:job_template_id)} but the logs show that its empty and no job_ids.
[----] I, [2022-03-24T10:37:22.587393 #328:2aebe92aa260] INFO -- automation: Q-task_id([r389_miq_provision_1368])  job_template_id is:
[----] I, [2022-03-24T10:37:22.587818 #328:2aebe92aa260] INFO -- automation: Q-task_id([r389_miq_provision_1368])  job_id is:
[----] I, [2022-03-24T10:37:22.588334 #328:2aebe92aa260] INFO -- automation: Q-task_id([r389_miq_provision_1368])  job_id inspect is: nil
This is how I tested after I modified the launch_ansible_job.rb. As you can see I provide the raw data

but I need to make it work using get_option or any other way to fetch the dialog.
Any idea how I can fetch the multiselect dialog and parse it as an array?

@miq-bot assign @akhilkr128

Is there a temporary workaround or a patch that I can I apply and test?

I couldn't find a workaround for this one. I will update here when we add this feature.

@akhilkr128 Can you tell me location of the ruby file get_option function is defined? I can try and modify it as per my need.
I tried searching but couldn't find the right source code the get_option

@akhilkr128 It shows we supports array in the comment. Can we not just modify data.kind_of?(Array) ? data.first : data and return array?
def self.get_option(key, value, from)
# Return value - Support array and non-array types
data = value.nil? ? from[key] : value
data.kind_of?(Array) ? data.first : data
end

@kbrock Is this how you wanted me to test?
  def self.get_option(key, value, from)
  # Return value - Support array and non-array types
  data = Array.wrap(value || from[key]).first
  data.kind_of?(Array) ? data.first : data
  end

  def get_option(key, value = nil)
    MiqRequestMixin.get_option(key, value, options)
  end

Sorry, I was just making a fly by suggestion for ruby only. I am not sure if this is relevant for your conversation.
   def self.get_option(key, value, from)
-   data = value.nil? ? from[key] : value
+   data = value || from[key]
-   data.kind_of?(Array) ? data.first : data
+   Array.wrap(data).first
  end

  def self.get_option(key, value, from)
-   data = value || from[key]
-   Array.wrap(data).first
+   Array.wrap(value || from[key]).first
end

def self.get_option(key, value, from)
  Array.wrap(value || from[key]).first
end

@kbrock nope that doesn't help. I tested it and still its empty. Doesn't return array or any value.

@kbrock @akhilkr128  where is the source code for the get_option for the following code? I want to modify that and test it. Could you please let me know? I think its not the same as  [mentioned above]
              prov = $evm.root['miq_provision_request'] || \
                    $evm.root['miq_provision'] || \
                    $evm.root['miq_provision_request_template']

              test = prov.get_option(:job_template_id)
              @handle.log(:info, "test is:  #{test}")

@Fryguy @kbrock @akhilkr128 I created a new function called get_option_array in miq_ae_service_miq_request_mixin.rb and it returns array. But the object_send only returns the first value. Is there a way to return all values instead of first value?
As you can see that the dialog has two values.. 49 and 52.
[----] I, [2022-04-26T09:56:06.060867 #325:2afe50cf0ac0]  INFO -- automation: Q-task_id([r521_service_template_provision_task_1531]) <AEMethod catalogiteminitialization> Adding Option: {dialog_job_template_id => ["49", "52"]} to Provisioning id: 1533
But the data returns is as follows..
            prov = $evm.root['miq_provision_request'] || \
                  $evm.root['miq_provision'] || \
                  $evm.root['miq_provision_request_template']

            test = prov.get_option_array(:job_template_id)
            @handle.log(:info, "test is:  #{test}")

[----] I, [2022-04-26T09:57:57.607297 #325:2afe56aa76dc]  INFO -- automation: Q-task_id([r521_miq_provision_1533]) <AEMethod launch_ansible_job> test is:  ["49"]
We may have to modify the object_send or something else to return all values. Any idea what I need to do in order to get all values as array?
  def get_option_array(key)
    data = object_send(:get_option, key)
    Array.wrap(data)
  end

Sure I can do that. But the data is retrieved from object_send right?
data = object_send(:get_option, key)
The above code only retrieves only the first value. I'm not sure how the MiqRequestMixin will help?

@kTipSSIoYv Edited my response above with some more explanation.

@Fryguy I can confirm it works as expected after patching.

@kTipSSIoYv Can you submit your patches as a set of pull requests?  From the discussion here they seem simple enough, and get_option_array seems like a reasonable addition to the project.


chore: v1beta1 Conversion Support for Provisioning/Deprovisioning/State

Fixes #N/A
Description
How was this change tested?
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

446 of 620 (71.94%)  changed or added relevant lines in 30 files are covered.
68 unchanged lines in 15 files lost coverage.
Overall coverage decreased (-1.0%) to 78.438%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/controllers/deprovisioning/drift.go
3
4
75.0%

pkg/controllers/provisioning/controller.go
0
1
0.0%

pkg/controllers/state/informer/daemonset.go
0
1
0.0%

pkg/controllers/state/statenode.go
38
40
95.0%

pkg/controllers/deprovisioning/consolidation.go
17
20
85.0%

pkg/controllers/deprovisioning/helpers.go
26
29
89.66%

pkg/controllers/state/cluster.go
23
28
82.14%

pkg/apis/v1beta1/nodepool.go
0
7
0.0%

pkg/controllers/deprovisioning/controller.go
21
29
72.41%

pkg/controllers/deprovisioning/types.go
22
35
62.86%

Files with Coverage Reduction
New Missed Lines
%

pkg/controllers/deprovisioning/controller.go
1
81.43%

pkg/controllers/deprovisioning/helpers.go
1
85.29%

pkg/controllers/deprovisioning/consolidation.go
2
80.95%

pkg/controllers/deprovisioning/types.go
2
81.3%

pkg/controllers/provisioning/scheduling/topology.go
2
87.26%

pkg/controllers/provisioning/scheduling/topologygroup.go
2
98.05%

pkg/controllers/provisioning/provisioner.go
3
71.56%

pkg/controllers/state/cluster.go
3
90.15%

pkg/apis/v1alpha5/provisioner.go
4
77.78%

pkg/scheduling/volumeusage.go
5
76.68%

Totals

Change from base Build<PHONE_NUMBER>:
-1.0%

Covered Lines:
7985

Relevant Lines:
10180

💛  - Coveralls


Link to GLOSS1 not working as expected

We've linked a technical term to GLOSS1, but the link is taking me somewhere else entirely when I click on it.
The issue is coming up in learn_terminal. In the second sentence, the word "Terminal" is wrapped in <term> with an @ref attribute pointing to a term in GLOSS1. It's encoded like this:
<term ref="gloss:TERM1">Terminal</term>. I checked, and TERM1 is the correct xml:id for "terminal" in GLOSS1.
When I click the link on the website, it brings me to the final div of learn_terminal (xml:id="learn_terminal_further"). I'm not sure why this is happening or if the same thing is happening with other links to GLOSS1.

Update: There is another term linking to GLOSS1 that is working as expected in the following paragraph. It is encoded the same way as above: <term ref="gloss:SUBV1">Subversion</term>.

@LEMDO-PM The link is working perfectly for me. It pops up the definition of "terminal". Is it possible you have JavaScript turned off, or you haven't super-reloaded the page, or you're loading a local built copy of the document without running a local web browser?

Weird! Super-reloaded and it is now working. I'm not sure why that happened. Thanks!

@LEMDO-PM I think one possibility is that you clicked the link so quickly after loading the page that the JS that turns the links into popups was still running. Initially the link would have been to an item in the appendix, but the JavaScript turns it into a call to show a popup and then hides the appendix. So the link may have taken you down to the appendix, which then disappeared. That could only happen if you loaded the page and then immediately clicked on the link.


Add a hello objectron notebook

This PR adds an introductory-level notebook to the Objectron dataset as required by @mynameisvinn

@haiyangdeperci This is a great example of Objectron. Nicely done!


Keep datetimepicker input/output values un-localised

Fixes #4846
Setting a non-English locale for the date picker causes day/month names in the dates accepted and returned by the date picker to be translated, which Django's date parsing doesn't handle. Override the date formatter to always use English.
(While this is technically a regression in Wagtail 2.3, it only occurs if locale settings have been extensively customised as described on #4846, and so I think this is a minor enough issue that it doesn't warrant a 2.3.1 release by itself. I'll leave the milestone as 2.3.1 to keep track of it if we do decide to make a 2.3.1 release though)

For future reference, it looks like the php-date-formatter library has broken handling of default configuration options - they get replaced by the most recently instantiated formatter object - which means that calling new DateFormatter() with no options won't give us an English formatter as expected:
/* instantiate a custom date formatter */
df1 = new DateFormatter({dateSettings: {days: ['Sünday', 'Mönday', 'Tüesday', 'Wëdnesday', 'Thürsday', 'Frïday', 'Säturday']}})
df1.formatDate(new Date(), 'l d m y')
-> "Wëdnesday 05 12 18"

df2 = new DateFormatter()  /* should use default English dates, but doesn't */
df2.formatDate(new Date(), 'l d m y')
-> "Wëdnesday 05 12 18"

/* creating another custom one clobbers the setings of both existing formatters */
df3 = new DateFormatter({dateSettings: {days: ['Sünday', 'Mönday', 'Tüesday', 'Weeeednesday', 'Thürsday', 'Frïday', 'Säturday']}})

df1.formatDate(new Date(), 'l d m y')
-> "Weeeednesday 05 12 18"
df2.formatDate(new Date(), 'l d m y')
-> "Weeeednesday 05 12 18"


DataPoint should implement clone

Hi, facing similar issue. I think it should either implement clone, or Client::write method should take a ref instead of ownership.
My use case is the following: I have a DataPoints accumulator that is built up over time and flushed once certain size is reached through batch-write, the data is stored in a Vec[DataPoint]. But that behavior cannot be implemented if DataPoint is not clonable (as vec cannot be cloned), or if write cannot take a ref and forces ownership.
Also, thanks to the dev for developing and maintaining this lib !! :)

Fixed in version 0.3.1
Thank you for opening the issue and explaining the use case.


Add mesh CLI option and fix thermal mesh

Starting point to resolves #305

(Draft until decided on approach in sync with #320)

I will not draft it.. but merge it and 320 rebased  based on it.

I agree 320 needs to be rebased, I mostly just want to be sure we want to change the type here.
Feels silly to change the type, then immediately change it again, but yeah I think a tuple either just for a diagonal supercell, or a custom Union of tuples, is looking like the way to go, so this should be a sensible starting point.


Added correct translations to Russian in article

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

W379A-TCJ4H-MAT74

This PR was closed and then re-opened in an attempt to clear a specific Travis build failure

LGTM 👍 :dart:
Thank you for the PR ✨ 🎉
We're happy to accept these changes and look forward to your future contributions :clap:
Happy coding! :octocat:


As a user, I want to specify a storage folder so that I know where my data will be saved.

Issue solved. #97 #122


After deleting a repo on admin panel, UI should remember the last sort type

Fixes https://github.com/go-gitea/gitea/issues/3200

Codecov Report

Merging #6033 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #6033      +/-   ##
==========================================
- Coverage   38.72%   38.72%   -0.01%
==========================================
  Files         339      339
  Lines       49013    49013
==========================================
- Hits        18982    18980       -2
- Misses      27284    27286       +2
  Partials     2747     2747

Impacted Files
Coverage Δ

routers/admin/repos.go
0% <0%> (ø)
:arrow_up:

models/repo_list.go
63.29% <0%> (-1.27%)
:arrow_down:

Continue to review full report at Codecov.

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


Finetune the VAE decoder

How to finetune the vae decoder?
I'm facing the error below
ModuleNotFoundError: No module named 'datasets.train_vae_dataset'

Thank you for pointing this out. I just uploaded the datasets.train_vae_dataset file!


fix: force the files to have unix eols

fixes https://github.com/tnicola/cypress-parallel/issues/58

Thanks @tlehwalder !


Render correct data from backend

@stefanalund I'd like to work on this.

@BA1RY awesome, assigning you. Please note that the backend is still in development so there might be a bit of a bumpy ride (ping @freben)

Thank you @stefanalund. I see that we are consuming data for catalog from mock-factory-data.json. Do I need to add temporary data to the json file for developing the frontend as the backend is still in development?

Hey!
The backend just gained a /catalog/entities endpoint. If you can make the frontend view start out fetching from http://localhost:7000/catalog/entities and displaying their metadata.name property in the list, then that's a good start.
After starting the backend, it has no entities in it. What you do, is that you can add so called locations to it. They are then periodically refreshed. To add a location, do something like curl -H "Content-Type: application/json" -d '{"type":"file","target":"/some/path"}' http://localhost:7000/catalog/locations. Typed out on a phone, so I hope I got that right :) Replace the path with the absolute path of one of the files here in your local repo. After Less than 10 seconds the entities endpoint should start returning the contents of that file.
Like alund said, this may be a bit bumpy since things are a bit raw the following couple days as the interfaces mature, but don't hesitate to ask if things are unclear. I left for the day now but I'll keep an eye out and will try to lay some more groundwork tomorrow for this if you're blocked.

Oh to make yarn start work in packages/backend, you currently have to give it three env variables on the command line. I don't have them at hand right now, sorry about that. If you figure them out (just give them dummy values), great. Otherwise I'll make sure to help make this easier tomorrow.

Thank you @freben . I really appreciate it. Could you please provide more details on how to make yarn start work? I wasn't able to figure out the environment variables.

@freben Just to clarify, backend data is being served over GraphQL and queries need to be made accordingly. Please correct me if I'm wrong.

Not yet. The GraphQL aggregator will not be made until a bit later, when the underlying features are stabilized.
I made a pull request for updating the backend README to reflect the current reality.

@stefanalund I have a question. Do you want me to get data from backend for catalog like how it's been implemented in sentry or should I make changes to existing mock-factory.ts file to make fetch requests to backend?

@BA1RY I think @freben is better positioned to answer whether it is worth mocking the data for now or actually call out to the catalog-backend.

@stefanalund Understood.
@freben I have a few queries.

Like you instructed, I was able to get the backend running. Each api response item is in this format.
{  "apiVersion": "backstage.io/v1beta1",  "kind": "Component",  "metadata": {    "uid": "aafab2c1-b35a-4150-8104-245dd711d9ef",    "etag": "ZjlhMzQ2OWUtM2ZjNy00ZDUyLTg2YzctODFjOGYyNjE1YTBj",    "generation": 1,    "name": "component1"  },  "spec": {    "type": "service"  } }
Which of the above data do we need to extract and store in frontend (Example: name, uid) and in what format?

Do you want me to get data from backend for catalog like how it's been implemented in sentry or should I make changes to existing mock-factory.ts file to make fetch requests to backend?

There are three functions getAllComponents(), getComponentByName(name: string), removeComponentByName(name: string) in ComponentFactory interface inside
data/component.ts. How do you want me to handle the last two functions? I'm confused about this.

Yeah feel free to mirror sentry for now with the API_HOST env as a basis. We are about to settle how we want to handle config being passed to plugins later in this milestone, but that's not done yet.
For some basics about the entity format, see the type declarations here, and some context here.
We haven't fleshed out all the fields yet, but you have at least kind and metadata.name that you want for the views.
Don't worry about the existing ComponentFactory stuff, it should be thrown away. Just having the word "Component" in there is misleading. The overarching term is "entity". The catalog contains entities. Some of those entities are of the kind "Component".
Make some new API to replace it, maybe named CatalogApi. We will want to make that a core API later, but you may skip that step for now. It would probably have a method entities and a method entity.
The first can take some optional filters. If you like, you can skip that step for the first PR.
The second needs three parameters, all strings: kind, name, and namespace. The first two may be for example "Component" and "my-component-1". The last one will always be the string "default" currently.
These will end up reaching these backend endpoints.

Hey @BA1RY,
After a chat internally this morning, @spotify/backstage-core will take ownership of this feature.
It's part of the release we're working on right now, but please feel free to pick up something else!
Thanks for your help!

Sure @benjdlambert :smiley:

This issue overlaps a lot with implementation from #978
Will postpone a some of this work like hooking up the filters until PR's #1043 and #1047 get merged.

Closing this as remaining work is in #990


Bug: incorrectly highlighting inline text?

Not sure if this is caused by a bug in highlighting inline text, but in one case, markshell highlights the whole line, while nothing has been marked as code:

For repro, markshell https://github.com/waldekmastykarz/cli-microsoft365/blob/552d9fd2b83f8c3487e1d8b274b4965b6275ec78/docs/manual/docs/cmd/spo/site/site-add.md

Still present in 0.0.6-beta2

Looked in my case always like this:

Might be fixed in today's nightly build.

Cool! Will give it a  try

Fixed in 📦<EMAIL_ADDRESS>- removed background.

Confirmed fixed


Register StyledStrings.jl 1.0 in general

As of JuliaLang/julia#49586 we have the StyledStrings stdlib. Thanks to it being an external stlib, we can also register it in General.
I think we can be a bit sneakier though, and do the following:

Overhaul parts of the codebase to make it Julia 1.0 compatible (I already have most of this work saved)
Register this as version 1.0 in general
Revert that overhaul
Register version 1.11 in general
Profit (backwards compatibility)

I think we want to do this just before 1.11, so the registered 1.0 version behaves as near-identically as possible. This issue is mainly to serve as a tracked reminder for me to do so.

Support for 1.0 is now a work in progress over at https://github.com/julialang/StyledStrings.jl/tree/julia1-compat

Hope to register this package ASAP  @tecosaur

The current plan is to register this around the Julia 1.11 release, so that 1.0 can be as "up to date" as possible, since past that release my plan is to only push bugfixes to pre-1.11.

Why wait for v1.0 (or v1.11) in the first place?

I see it as rather important that the compat-registered version of StyledStrings mirrors the version in 1.11 as closely as possible.
Rather crucially, the compat version also needs to vendor the new AnnotatedString functionality from Base.
Currently there are three changes that I'm trying to get reviewed and merged for 1.11:

https://github.com/JuliaLang/julia/pull/53715, I think this functionality is rather important, but I don't like the form that my current best idea of implementing it takes. Reviews/suggestions here would be appreciated.
https://github.com/JuliaLang/julia/pull/54289, resulting from a long chat I had with Lilith last week. I anticipate this should be merged soon.
immanent PR as per https://github.com/JuliaLang/julia/issues/53042#issuecomment-2080982369, which should also be a quick merge once the PR is made (within the next day or few).

Julia v1.11.0 is already in the beta testing phase, but the (weak) dependent packages are in trouble with testing.

I do sympathise with this, I'm just not sure if quickly releasing something so that package management is happy is the right approach?
Perhaps I'm just slightly caught by the sunk cost fallacy, but it feels to me that the code that will be in 1.11 is so very close to ironed down that it might be best to wait the just a little longer :crossed_fingers: to be able to register the "fully mirrors the functionality in 1.11" version.

It is up to the package to determine if the incomplete StyledStrings are compatible with the package, so it should not matter how compatible it is with v1.11.
However, the problem is at the stage of installing packages.
In any case, you are the one who knows best about this library. So, v0.x registration probably should not take place.

This process has been dragging on a bit. I'll tell you what, I'll see if I can't get the items I listed sorted within a week or so, and then make the aforementioned 1.0 release.
If not I'm willing to re-evaluate the idea of a pre-release just so weakdeps are resolvable.

Update: we're reaching the end of the week and ... it's all been merged!
Now I just need to backport/grab the changes, make sure all the tests still pass on older version, and then we'll have the compat release I've been talking along for so long :grinning:

The compat version is about to be registered :slightly_smiling_face:

https://github.com/JuliaRegistries/General/pull/106027


Viltali's CNC Tap Result Validation

Setup:
350mm Trident
Vitali's CNC Tap
Revo Nozzles

I've defined tap_version with RC8 which based off of the other issue page should work. Currently using a hand measured probe offset of -0.630 on my older PEI sheet. When running first AUTO_TAP it's giving a value of 1.250

And when validated when going to G0 Z0.25 the nozzle is definitely higher.

When running Force=1 I end up with the same result

@phazil Hmmmm. I'm not sure of the differences between R8 and Viltali's
Doing the rough math that seems like
Viltali = travel mean * 25 = 0.625...
Current math for R8 is (travel mean * 10) + 1

@phazil newest version has new math for Vitalii, it should work better for you now. Let me know if it's still off. Thanks for helping with this and staying active!

Here's new results with the new method(s?). Probe offset calibrated to around -0.680 on this textured sheet. Got a value of 1.067.

@Anonoei

Multiple of 21.5 was validated by:

eightfinger
CWeed14
Mezabaru

See eightfinger's initial message about it here


DOC: Add a few components to the sphinx example

A few updates to the sphinx example in the docs directory:

Added sphinxcontrib-bibtex and added bibliography to wealth_distributions.[md,rst] to test bibliography directive.
Added two dummy files for evaluating inline {doc}

Nice! This looks good to me, and I like the fact that we're reducing the number of "expected warnings" to deal with. Thanks!


Run integration tests in docker

No JIRA, but necessary for Jenkins.  Copied from UI and lightly edited.
Have you read CONTRIBUTING.md lately? If not, do that first.
I, the developer opening this PR, do solemnly pinky swear that:

[ ] I've documented my API changes in Swagger

In all cases:

[ ] Get two thumbsworth of review and PO signoff if necessary
[ ] Verify all tests go green
[ ] Squash and merge; you can delete your branch after this
[ ] Test this change deployed correctly and works on dev environment after deployment

jenkins test

Getting network failures here.  Any ideas?
[info] - should ping *** FAILED *** [info]   akka.stream.StreamTcpException: Tcp command [Connect(leonardo-fiab.dsde-qa.broadinstitute.org:30443,None,List(),Some(10 seconds),true)] failed [info] - should create, monitor, and delete a cluster *** FAILED *** [info]   akka.stream.StreamTcpException: Tcp command [Connect(leonardo-fiab.dsde-qa.broadinstitute.org:30443,None,List(),Some(10 seconds),true)] failed

Note: https://broadinstitute.atlassian.net/browse/GAWB-2811 is currently causing all Leo FIAB tests to fail.

jenkins test

jenkins retest

jenkins retest


add support for user provided firewall names

Do you need complete custom naming support, e.g. through a list variable:
variable "fw_names" {
type = list(string)
default = [
"fw1-az1",
"fw2-az1",
"fw1-az2",
"fw2-az2",
]
}
Or just be able to set a prefix, and have the module append it with some suffix to make it unique?

Please test master branch with this new argument:
module "transit_firenet_1" {
source = "git::https://github.com/terraform-aviatrix-modules/terraform-aviatrix-aws-transit-firenet"
custom_fw_names = [
"fw1-az1",
"fw2-az1",
"fw1-az2",
"fw2-az2",
]
...
}

Implemented


The container job-exporter fails to boot when the pai service starts

When the pai service starts, the job-exporter container of the master node and the work node fails to start, but the other services are still started normally.
master：
Traceback (most recent call last):
File "/job_exporter/main.py", line 201, in <module>
main(args)
File "/job_exporter/main.py", line 131, in main
configured_gpu_counter.set(get_gpu_count("/gpu-config/gpu-configuration.json"))
File "/job_exporter/main.py", line 86, in get_gpu_count
gpu_config = json.load(f)
File "/usr/local/lib/python3.7/json/init.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/usr/local/lib/python3.7/json/init.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 7 column 5 (char 101)
work：
Traceback (most recent call last):
File "/job_exporter/main.py", line 201, in <module>
main(args)
File "/job_exporter/main.py", line 131, in main
configured_gpu_counter.set(get_gpu_count("/gpu-config/gpu-configuration.json"))
File "/job_exporter/main.py", line 86, in get_gpu_count
gpu_config = json.load(f)
File "/usr/local/lib/python3.7/json/init.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/usr/local/lib/python3.7/json/init.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 7 column 5 (char 101)
dev-box version：v0.12.0

Can you provide your k8s config map for the gpu-configuration?
Maybe the gpu-configuration.json in the config map is invalid.
You can get the config map from such url: http://master_ip:9090/#!/configmap/default/gpu-configuration?namespace=default

gpu-configuration.json:
{
"nodes" : {
"<IP_ADDRESS>" : {
    "gpuType" : "GTX 1660",
    "gpuCount" :
}

}
}
gpu-configuration.json.template:
{
"nodes" : {
{% for host in cluster_cfg['layout']['machine-list'] if 'gpu' in cluster_cfg['layout']['machine-sku'][cluster_cfg['layout']['machine-list'][host]['machine-type']] %}
"{{cluster_cfg['layout']['machine-list'][ host ]['nodename']}}" : {
"gpuType" : "{{ cluster_cfg['layout']['machine-sku'][ cluster_cfg['layout']['machine-list'][ host ][ 'machine-type' ] ]['gpu']['type'] }}",
"gpuCount" : {{ cluster_cfg['layout']['machine-sku'][ cluster_cfg['layout']['machine-list'][ host ][ 'machine-type' ] ]['gpu']['count'] }}
}{% if not loop.last %},{% endif %}
{% endfor %}
}
}
gpu-configuration.yml:
Copyright (c) Microsoft Corporation
All rights reserved.

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
<IP_ADDRESS>: GTX 1660
gpu-configuration.yml.template:
Copyright (c) Microsoft Corporation
All rights reserved.

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
{% for host in cluster_cfg['layout']['machine-list'] if 'gpu' in cluster_cfg['layout']['machine-sku'][ cluster_cfg['layout']['machine-list'][host]['machine-type']] -%}
{{cluster_cfg['layout']['machine-list'][host]['nodename']}}: {{ cluster_cfg['layout']['machine-sku'][ cluster_cfg['layout']['machine-list'][host]['machine-type']]['gpu']['type'] }}
{% endfor %}

gpu-configuration.json:
{
"nodes" : {
"<IP_ADDRESS>" : {
    "gpuType" : "GTX 1660",
    "gpuCount" :
}

}
}
gpu-configuration.json.template:
{
"nodes" : {
{% for host in cluster_cfg['layout']['machine-list'] if 'gpu' in cluster_cfg['layout']['machine-sku'][cluster_cfg['layout']['machine-list'][host]['machine-type']] %}
"{{cluster_cfg['layout']['machine-list'][ host ]['nodename']}}" : {
"gpuType" : "{{ cluster_cfg['layout']['machine-sku'][ cluster_cfg['layout']['machine-list'][ host ][ 'machine-type' ] ]['gpu']['type'] }}",
"gpuCount" : {{ cluster_cfg['layout']['machine-sku'][ cluster_cfg['layout']['machine-list'][ host ][ 'machine-type' ] ]['gpu']['count'] }}
}{% if not loop.last %},{% endif %}
{% endfor %}
}
}
gpu-configuration.yml:
<IP_ADDRESS>: GTX 1660
gpu-configuration.yml.template:
{% for host in cluster_cfg['layout']['machine-list'] if 'gpu' in cluster_cfg['layout']['machine-sku'][ cluster_cfg['layout']['machine-list'][host]['machine-type']] -%}
{{cluster_cfg['layout']['machine-list'][host]['nodename']}}: {{ cluster_cfg['layout']['machine-sku'][ cluster_cfg['layout']['machine-list'][host]['machine-type']]['gpu']['type'] }}
{% endfor %}

Your gpu-configuration.json is:
{
"nodes" : {
  "<IP_ADDRESS>" : {
    "gpuType" : "GTX 1660",
    "gpuCount" :
  }
}

It's not a validate json.
The gpuCount filed can not be empty
It should be:
{
"nodes" : {
  "<IP_ADDRESS>" : {
    "gpuType" : "GTX 1660",
    "gpuCount" : 1
  }
}

Please check the /your_config_path/layout.yaml and make sure you modified this file correctly, such as:
gpu:
      type: GTX 1660
      count: 1

Please refer to changing-gpu-count-and-type.

Do I need to restart the k8s service and then push the configuration to the ~/.kube/config file again?

The most safety way is remove the current k8s and redeploy with correct config. Then push the configuration to the ~/.kube/config, then start all services...
Here is a simple way but may NOT WORK:
You can try to update the configMap in k8s manually with the correct json file. Then use paictl
to restart the job-exporter services.

Ok, thank you. Now my service has been started normally, but I will have a lot of problems in v0.13.0 version of the same operation. I would like to know when the container image of v0.14.0 will be released.

I am not sure about this, please as our PM: @scarlett2018 . Since this issue is resolved, will close it

Ok, thank you. Now my service has been started normally, but I will have a lot of problems in v0.13.0 version of the same operation. I would like to know when the container image of v0.14.0 will be released.

0.14.0 is released. @EthanSheng405  feel free to open issues for problems you met, thanks for helping us improve.
https://github.com/microsoft/pai/releases/tag/v0.14.0


Add better handling for MISSING Cycleway tag

Follow the more modern style of other parsers/evs and have a designated "missing" value.  This value WILL get passed along to the response object, which is the same behavior as other details with a "missing" value.
This isn't critical but I think is something that brings my earlier changes in line with other practices in this repo, so would be nice to include.

lgtm. assuming this means we should almost never get "OTHER" returned?

Yep, which is good.


Removing deprecated methods and regenerating longrunning

Generated using https://github.com/googleapis/toolkit/pull/1197 .

Codecov Report

Merging #283 into master will increase coverage by 0.27%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #283      +/-   ##
============================================
+ Coverage     73.64%   73.92%   +0.27%
  Complexity      360      360
============================================
  Files            65       65
  Lines          1795     1806      +11
  Branches        148      148
============================================
+ Hits           1322     1335      +13
+ Misses          402      400       -2
  Partials         71       71

Impacted Files
Coverage Δ
Complexity Δ

.../com/google/api/gax/batching/BatchingSettings.java
81.25% <ø> (+9.02%)
3 <0> (ø)
:arrow_down:

...ava/com/google/longrunning/OperationsSettings.java
77.31% <100%> (+2.78%)
7 <1> (ø)
:arrow_down:

Continue to review full report at Codecov.

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

LGTM


can't decode byte ....ordinal not in range(128)

I am trying to run the RNN for creating a chatbot (per these instructions: https://caffe2.ai/docs/RNNs-and-LSTM-networks.html ) except I am using my own .txt file that I saved in ascii and every time try to run
python char_rnn.py --train_data myexample.txt
in my terminal, I get the following error:

'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

and then it makes reference to line 255 in char_rnn.py like this:

char_rnn.py(255)GenerateText()
-> text += ch

For reference I am using Python 2.7 on a Mac OS.
Any ideas would be very much appreciated. Thank you!

Probably your myexample.txt file has non-ASCII symbols (e.g. symbols with accent, caron, umlaut)?

@Maratyszcza thank you for your answer! I actually just solved the issue by deleting
" from future import unicode_literals " from char_rnn.py and now it is running!

Glad you found the solution. I'm closing the issue then.


Make diff filter properly single-line hunk headers.

At least git diff generates a hunk header that looks like
@@ -0,0 +1 @@ when the resulting file has a single line.
This makes FilterByPatch properly handle that.

@dugan: Ping.


Added introductory resources in a new Quantum Hardware folder

All Submissions:

[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[x] The commit message is descriptive enough to convey what you are trying to contribute.

What kind of change does this PR introduce? (Is it a new learning resource, tutorial or something else?)
New learning resource

What issue is this tackling? (https://github.com/QForestCommunity/launchpad/issues/1)

Looks like a good starting point, could each bullet point have a brief description as to what the link entails?
In the meanwhile, I'll try and find a few resources to add to your existing collection as well.

Sure, will add the descriptions.

There's an upcoming course on edX on the hardware of quantum computers. If it looks good to you, maybe add it to the list!

Have enrolled myself in this course to check out the material. Will need some more time to go through it all. If the current collection of material looks good then is it okay if we could go ahead with this for now and I can send in another pull request updated with details of the course?

There's an upcoming course on edX on the hardware of quantum computers. If it looks good to you, maybe add it to the list!

Have enrolled myself in this course to check out the material. Will need some more time to go through it all. If the current collection of material looks good then is it okay if we could go ahead with this for now and I can send in another pull request updated with details of the course?

Sounds good :smile:


Bonus sound ID

I'd like to change this notifcation sound, default ID is #4,212. What number should I pick to change it to something different? tried a bunch and it doesn't change at all

Anyone else able to confirm this bug?


Add support for shared paths

This PR allows to define an array of shared paths relatives to shared dir that will be symlinked to the release dir.

I am not clear about the practical use case for this. Could you please share why you feel this is needed?

When a new release is deployed, some data should persis across deployments and releases (the uploads folder, the parameters.yml file in a Symfony app, the log files, etc).
This data can be put at the shared folder, and linked to each release during the symlink phase.
For example, if you set the following var in your ansible playbook:
ansistrano_shared_paths:
  - config/parameters.yml
  - logs
  - web/uploads

the result will be the following structure
|--current -> /opt/app/releases/20150301002359
|--releases
|  |--20150101000000
|  |  |--config
|  |  |  |--parameters.yml -> /opt/app/shared/config/parameters.yml
|  |  |--logs -> /opt/app/shared/logs
|  |  |--src
|  |  |--web
|  |     |--uploads -> /opt/app/shared/web/uploads
|  |--20150301002359
|     |--config
|     |  |--parameters.yml -> /opt/app/shared/config/parameters.yml
|     |--logs -> /opt/app/shared/logs
|     |--src
|     |--web
|        |--uploads -> /opt/app/shared/web/uploads
|--shared
    |--config
    |  |--parameters.yml
    |--logs
    |--web
       |--uploads

Capistrano provides this feature with the parameters linked_dirs and linked_files.

I had similiar use cases and had to overcome those manually - by calling extra tasks to create symlinks. So I'm + 1 on this pull request. Looks good and valuable to me.

I see, I have overcome these particular situations in the past with Symfony either using getLogDir kernel or an additional include /opt/parameters.yml for config_prod.yml but this seems to be a possibly better approach (specially in the case of the uploads folder) and I cannot see any reason against it since the default won't do anything because of the empty array.
Thoughts @carlosbuenosvinos @theUniC ?

It's fine for me.


Related links are broken!

Here are the updated:
Lou's Pseudo-3d Page: http://www.extentofthejam.com/pseudo/
Racer 10k: https://github.com/onaluf/RacerJS (the playable game is not avaiable)

Fixed! Thanks.


Compare std::vector as hash table

std::vector<bool> could be a good way to create the hash table in a space efficient way that is also very simple to use.
https://en.cppreference.com/w/cpp/container/vector_bool

Unfortunately, it appears that while this implementation is as space efficient as the current, it is FAR slower. Therefore closing this PR and sticking with the current implementation.

it is FAR slower

Out of curiosity what's the rough difference?

The performance I'm finding is very odd. So strange, in fact, that I was very convinced there must be some kind of bug in my code that was making the runtime so excessive. Basically, for a small number of edges, the performance is about three times as slow. This is, unfortunately, the best case scenario. For large numbers of edges, it seems that the runtime is even slower than the Python XSwap implementation. In fact, its so slow that I haven't even completed a full GiG permutation, because I worry that it might simply continue indefinitely.
Just as an example, permuting GiG with multiplier=0.001, I found the following:

Custom hash table: 0.121 sec
std::vector<bool>: 37.36 sec

This was with the most simple implementation of std::vector<bool> I could manage. I can only imagine this may have something to do with the fact that this is not a standard container.


adminlte.php how to access config('app.locale')

hello, how can I find which language is selected from within the adminlte.php file.
my code :
$defaultLocale = config('app.locale');
but not working

Form what adminlte.php file you want to access the configuration? You can't access config from another config file, just the environment:
$defaultLocale = env('APP_LOCALE', 'en');

Please, give more details...

$defaultLocale = env('APP_LOCALE', 'en');
I can access with this method
but
$defaultLocale = config('app.locale');
I can't access this config method

thank you so much.
My adminlte.php => $appConfig = include(config_path('app.php'));
and$appConfig['locale']is working


Switch over to transformers

Like it says on the tin.
Also brought in the MarkdownTransformer while I was at it.

> require("./lib/index.js") // local dev import
{ StreamTransformer: [Function: StreamTransformer],
  TracebackTransformer: [Function: TracebackTransformer],
  MarkdownTransformer: [Function: MarkdownTransformer] }

$ npm publish
...
+<EMAIL_ADDRESS>
:tada:

:clap:


general updates

I think it's caused by my laptop's arm CPU. try removing package-lock.json and reinstalling

Okay, I tried that and got further but I am now getting
TypeError: Cannot read properties of undefined (reading 'split')
    at b (file:///home/lubomir/projects/gtif-cerulean-client/node_modules/@eodash/eodash/dist/node/cli.js:2:2569)
    at file:///home/lubomir/projects/gtif-cerulean-client/node_modules/@eodash/eodash/dist/node/cli.js:2:1567

Could you please advise what I could try?

I'm not sure what could be causing this as well, but try updating your Node version to ^20.15.0 or Node 22

Upgrading node 20 to latest worked. Thank you!


Fix/#512 config overwritten

After the fix. users can inject null and "" by using values.yml or environment variable
For example, in server.yml
environment: ${server.env:dev}

There are two ways to inject null or empty string:

Using values.yml

server.env:
// Setting empty string
server.env: ""

Using environment variable:
echo server.env=

Codecov Report

Merging #516 into master will increase coverage by 0.05%.
The diff coverage is 66.66%.

@@             Coverage Diff              @@
##             master     #516      +/-   ##
============================================
+ Coverage     49.65%   49.71%   +0.05%
- Complexity     1822     1824       +2
============================================
  Files           260      260
  Lines         11171    11174       +3
  Branches       1579     1580       +1
============================================
+ Hits           5547     5555       +8
+ Misses         4972     4968       -4
+ Partials        652      651       -1

Impacted Files
Coverage Δ
Complexity Δ

...ain/java/com/networknt/config/ConfigInjection.java
74.39% <66.66%> (+0.97%)
25 <0> (+1)
:arrow_up:

...fig/src/main/java/com/networknt/config/Config.java
68.53% <0%> (+1.68%)
3% <0%> (ø)
:arrow_down:

.../src/main/java/com/networknt/utility/HashUtil.java
63.33% <0%> (+3.33%)
11% <0%> (+1%)
:arrow_up:

Continue to review full report at Codecov.

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

Linking issue: #512

@jiachen1120 : please update the documentation indicating that both "" and null are valid values.
thank you


Simple API for prototyping

We've sought to expose an extremely flexible API, which is as a consequence somewhat complicated to get started with. This PR presents a straw proposal for an optional alternative API that's much friendlier and less versatile.
Drawbacks include:

No specialization for a particular application protocol
Valid certificates are even more strongly required than with the main API, since there's no way to manually trust one. Therefore prototyping a complete client-server system may actually be harder than with the main API, defeating the purpose.

Are there ways we can improve on those? If not, is this worth doing at all?

I like the direction of this, I've also been thinking about how we can "scale down" the minimum required API examples to get something useful.
Some stream-of-consciousness thoughts:

Not sure the feature carries its weight, as most applications relying on quinn will pull in the executor anyway -- it shouldn't be a problem. On the flip side, this makes the simple API less accessible. So this seems like a suboptimal trade-off.
BTW, also not completely sure about hiding the driver spawning. Have you looked at other tokio crates and checked if "internal" vs "external" spawning is more often used?
We need to consider the "cliff" between the simple API and the complex API. Ideally it's really easy to understand how to translate the simple API to the more powerful API.
So I think we should just add connect() and listen() methods to Endpoint, probably.
Did you actually test that these work? Since the client doesn't set any trust roots by default, I don't think this could actually work as is. In other words, I also think we should set default trust roots (in my recollection you removed the webpki-roots as default).

On the flip side, this makes the simple API less accessible

A default feature means it's there unless you specifically opt out, so I'm not sure there's an accessibility cost. It is a pretty marginal dependency cost, though...

Have you looked at other tokio crates and checked if "internal" vs "external" spawning is more often used?

Haven't done a principled review. I think external is more correct in the general case because it ensures the caller doesn't have to jump through hoops to control executor use, but it's a minor footgun.

So I think we should just add connect() and listen() methods to Endpoint, probably.

Associated functions, you mean? connect of course already exists as a method, and listen is something you decide before constructing the endpoint. I do strongly agree that a more gracefully integrated "simple" API would be preferable to this draft, and that might be a good way to go.

Did you actually test that these work?

Nope! :D

In other words, I also think we should set default trust roots (in my recollection you removed the webpki-roots as default).

Default web trust roots are currently set in ClientConfigBuilder::default. On review they're not making it into EndpointBuilder::default, but I think that was an oversight. It's important to me that it be possible to operate without the web roots, but I agree that it's a fine default. Though #451 would be much preferable to what we're doing now.

I did mean associated functions. If we have those and default web trust roots, this would be pretty good. We could potentially iterate on internal vs external driver spawning from there.
Personally I'm always a bit on the fence about #451 (because I feel Mozilla is a better steward for my default trust roots than some of the OS vendors), but it probably makes sense for this.

The big problem with webpki-roots is not that it's less trustworthy, but that it doesn't provide updates without updating the entire program; I think most projects can't be expected to distribute updates as frequently and reliably as Firefox does.

Ah, very good point.

Inspiration for simple API from quiche's README: https://github.com/cloudflare/quiche

Closing in favor of https://github.com/quinn-rs/quinn/pull/1250.


Failed to connect

Hi,
trying to login with dyson cloud to retrieve the credentials, I keep getting Failed to connect error once I enter the email address.
I have tried to log out from the app and also created a new account, any help is appreciated!
Thanks.

it worked today! :)


Configure actions to transition to a different story?

It would be nice if an action could trigger a transition to a different story to simulate interactivity, similar to how you can create simple prototypes with Invision, Framer.js, etc.
For example, say you have a "Toggle" widget with two states, "on" and "off", it would be nice if you could set up the actions for each story to switch to another story to simulate the toggle actually occurring:
storiesOf('Toggle', module)
  .add('on', () => {
    return <Toggle value={true} onChange={action('onChange', 'off')} />
  })
  .add('off', () => {
    return <Toggle value={false} onChange={action('onChange', 'on')} />
  });

Wow. Thats  a cool feature.

We can do it like this:
import { linkTo } from @kadira/storybook

storiesOf('Toggle', module)
  .add('on', () => {
    return <Toggle value={true} onChange={linkTo('Toggle', 'off')} />
  })
  .add('off', () => {
    return <Toggle value={false} onChange={linkTo('Toggle', 'on')} />
  });

Thanks to @jeef3 's PR #86, now we've the story linking functionality.
Released with v1.8.0.


Cloning and Translation fixes

Small corrections based on @MatteoPiovanelli-Laser comments on 87a394854dda9a45b36d757b3d3ce135ac18d24d

I have one more comment on the Translate method in the AdminController of the Localization module:
The redirect you do at the end should probably be to the EditorRouteValues of the metadata:
I think those two match for some simple contentItem cases, but not for more advanced ones (e.g. blogposts seem to be ok; blogs are not).


Drawing multiple point labels

I'm trying to draw multiple labels (for example world placenames) on the map.
For this I've created  a custom WritableLayer, in the ViewChanged event the features that needs to be drawn are selected (based on the BoundingBox).
For the Style property of the layer there is a LabelStyle (with property Text for the placenames) defined.
As there is only 1 Style property for the Layer, all the labels get the same name:

So the question is: How can I draw each feature with it's own name?

fixed by using the feature.styles property for a unique LabelStyle per feature, and not using the Layer.Style property.


关于库迁移的问题

A problem occurred configuring root project 'ReSmartFactory'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not find com.qihoo360.replugin:replugin-host-gradle:2.3.4.
     Searched in the following locations:
       - https://dl.google.com/dl/android/maven2/com/qihoo360/replugin/replugin-host-gradle/2.3.4/replugin-host-gradle-2.3.4.pom
       - https://repo.maven.apache.org/maven2/com/qihoo360/replugin/replugin-host-gradle/2.3.4/replugin-host-gradle-2.3.4.pom
       - https://maven.google.com/com/qihoo360/replugin/replugin-host-gradle/2.3.4/replugin-host-gradle-2.3.4.pom
       - https://jitpack.io/com/qihoo360/replugin/replugin-host-gradle/2.3.4/replugin-host-gradle-2.3.4.pom
       - http://maven.geelib.360.cn/nexus/service/rest/repository/browse/replugin/com/qihoo360/replugin/replugin-host-gradle/2.3.4/replugin-host-gradle-2.3.4.pom
     Required by:
         project :

想咨询下，2.3.4版本是否还未完成迁移至自建Nexus私服？

您好，请问这个问题您解决了吗？我这边从网页上确实可以访问，但是AS就是拉不下来

已修改maven库


AttributeError: 'Namespace' object has no attribute 'ibpr'

When I run train.py to reproduce first MNIST results I get error as (line numbers would probably be incremented by 6-7 lines as I modified train.py due to my cluster constrains):
Traceback (most recent call last):
  File "/cnvrg/expressive-losses/train.py", line 353, in <module>
    main(args)
  File "/cnvrg/expressive-losses/train.py", line 325, in main
    train_or_test(model, model_ori, t, train_data, eps_scheduler, opt)
  File "/cnvrg/expressive-losses/train.py", line 162, in train_or_test
    if (not args.ibpr) and (not args.ccibp) and (not args.mtlibp) and (not args.sabr) and (not args.expibp):
AttributeError: 'Namespace' object has no attribute 'ibpr'

To run the code, I simply removed the flag  (not args.ibpr) and. Not sure if that was the right thing to do.

Thanks for spotting this and sorry about that. The flag was inadvertently left in when cleaning the code, I now removed it: https://github.com/alessandrodepalma/expressive-losses/commit/3df64fa997e275605c331054499f36cc9f213187.


Feature: Pick up Starred Groups|Users|Chats

I'm in a ton of slack groups within our org and such and I use the starring feature heavily. It would be cool if #clicky pulled those groups in and put them in the top of the list like the typical slack client does, making it easy to share things to the people I share things with most.
Thanks for making a handy plugin!

Interesting idea, thanks for the feedback. Definitely something I'll consider adding in a future release :smile:.

Closing this for now as it doesn't appear that you're able to star channels/groups/anything in Slack currently.

First no issue with the close -- if I cared that much I should probably submit a PR :)
That said I'm a bit shocked by the assertion you can't star things in slack. Your comment might be in reference to the API which I can't claim to have reviewed, but at least in the thick and web clients you can star just about any entity -- be it a channel, a user, a chat or even an individual post.

Ok great, upon further inspection it looks like the is_starred property isn't returned by Slack's API unless it's set to true (annoyingly inconsistent with everything else in their API, but there you go), which explains why I'd not seen it before.
Shouldn't be a problem then, I'll implement a Starred section which can be enabled from the Settings page. :+1:


cuda running out of memory and testval_net without cuda

I keep running into problems with memory. How much memory is needed to run the model on pascal_voc?
I have a GTX 1050 (2GB). I was able to run the trainval_net, but the testval_net keeps saying it's out of memory. When I try to run the test without cuda, I get different set of errors (TypeError, due to THCudaIntTensor vs THIntTensor), which I believe are coming from the nms layer as it uses nms_gpu
I tried setting the post_nms_nop_n to a 30 (and is it ok to go any lower?), and I still am running into problems, even with resnet50.
Any suggestions or workarounds for this problem?
Running with cuda and post_nms_top_n set to 30
python test_net.py --cuda
Called with args:
Namespace(batch_size=1, cfg_file='cfgs/vgg16.yml', checkepoch=1, checkpoint=10021, checksession=1, class_agnostic=False, cuda=True, dataset='pascal_voc', large_scale=False, load_dir='save_dir', mGPUs=False, net='res101', parallel_type=0, set_cfgs=None, vis=False)
Using config:
{'ANCHOR_RATIOS': [0.5, 1, 2],
 'ANCHOR_SCALES': [8, 16, 32],
 'CROP_RESIZE_WITH_MAX_POOL': True,
 'CUDA': False,
 'DATA_DIR': '/media/Files/Research/faster-rcnn.pytorch/data',
 'DEDUP_BOXES': 0.0625,
 'EPS': 1e-14,
 'EXP_DIR': 'default',
 'FEAT_STRIDE': [16],
 'GPU_ID': 0,
 'MATLAB': 'matlab',
 'MAX_NUM_GT_BOXES': 20,
 'MOBILENET': {'DEPTH_MULTIPLIER': 1.0,
               'FIXED_LAYERS': 5,
               'REGU_DEPTH': False,
               'WEIGHT_DECAY': 4e-05},
 'PIXEL_MEANS': array([[[102.9801, 115.9465, 122.7717]]]),
 'POOLING_MODE': 'crop',
 'POOLING_SIZE': 7,
 'RESNET': {'FIXED_BLOCKS': 1, 'MAX_POOL': False},
 'RNG_SEED': 3,
 'ROOT_DIR': '/media/Files/Research/faster-rcnn.pytorch',
 'TEST': {'BBOX_REG': True,
          'HAS_RPN': False,
          'MAX_SIZE': 1000,
          'MODE': 'nms',
          'NMS': 0.3,
          'PROPOSAL_METHOD': 'gt',
          'RPN_MIN_SIZE': 8,
          'RPN_NMS_THRESH': 0.7,
          'RPN_POST_NMS_TOP_N': 30,
          'RPN_PRE_NMS_TOP_N': 1000,
          'RPN_TOP_N': 5000,
          'SCALES': [600],
          'SVM': False},
 'TRAIN': {'ASPECT_GROUPING': False,
           'BATCH_SIZE': 115,
           'BBOX_INSIDE_WEIGHTS': [1.0, 1.0, 1.0, 1.0],
           'BBOX_NORMALIZE_MEANS': [0.0, 0.0, 0.0, 0.0],
           'BBOX_NORMALIZE_STDS': [0.1, 0.1, 0.2, 0.2],
           'BBOX_NORMALIZE_TARGETS': True,
           'BBOX_NORMALIZE_TARGETS_PRECOMPUTED': False,
           'BBOX_REG': True,
           'BBOX_THRESH': 0.5,
           'BG_THRESH_HI': 0.5,
           'BG_THRESH_LO': 0.1,
           'BIAS_DECAY': False,
           'BN_TRAIN': False,
           'DISPLAY': 10,
           'DOUBLE_BIAS': True,
           'FG_FRACTION': 0.25,
           'FG_THRESH': 0.5,
           'GAMMA': 0.1,
           'HAS_RPN': True,
           'IMS_PER_BATCH': 1,
           'LEARNING_RATE': 0.001,
           'MAX_SIZE': 1000,
           'MOMENTUM': 0.9,
           'PROPOSAL_METHOD': 'gt',
           'RPN_BATCHSIZE': 256,
           'RPN_BBOX_INSIDE_WEIGHTS': [1.0, 1.0, 1.0, 1.0],
           'RPN_CLOBBER_POSITIVES': False,
           'RPN_FG_FRACTION': 0.5,
           'RPN_MIN_SIZE': 8,
           'RPN_NEGATIVE_OVERLAP': 0.3,
           'RPN_NMS_THRESH': 0.7,
           'RPN_POSITIVE_OVERLAP': 0.7,
           'RPN_POSITIVE_WEIGHT': -1.0,
           'RPN_POST_NMS_TOP_N': 2000,
           'RPN_PRE_NMS_TOP_N': 12000,
           'SCALES': [600],
           'SNAPSHOT_ITERS': 5000,
           'SNAPSHOT_KEPT': 3,
           'SNAPSHOT_PREFIX': 'res101_faster_rcnn',
           'STEPSIZE': [30000],
           'SUMMARY_INTERVAL': 180,
           'TRIM_HEIGHT': 600,
           'TRIM_WIDTH': 600,
           'TRUNCATED': False,
           'USE_ALL_GT': True,
           'USE_FLIPPED': True,
           'USE_GT': False,
           'WEIGHT_DECAY': 0.0005},
 'USE_GPU_NMS': True}
Loaded dataset `voc_2007_test` for training
Set proposal method: gt
Preparing training data...
voc_2007_test gt roidb loaded from /media/Files/Research/faster-rcnn.pytorch/data/cache/voc_2007_test_gt_roidb.pkl
done
4952 roidb entries
load checkpoint save_dir/res101/pascal_voc/faster_rcnn_1.pth
load model successfully!
test_net.py:191: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
  im_data = Variable(im_data, volatile=True)
test_net.py:192: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
  im_info = Variable(im_info, volatile=True)
test_net.py:193: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
  num_boxes = Variable(num_boxes, volatile=True)
test_net.py:194: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
  gt_boxes = Variable(gt_boxes, volatile=True)
/media/Files/Research/faster-rcnn.pytorch/lib/model/rpn/rpn.py:68: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.
  rpn_cls_prob_reshape = F.softmax(rpn_cls_score_reshape)
/media/Files/Research/faster-rcnn.pytorch/lib/model/faster_rcnn/faster_rcnn.py:98: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.
  cls_prob = F.softmax(cls_score)
THCudaCheck FAIL file=/home/amsha/builds/pytorch/aten/src/THC/generic/THCStorage.cu line=58 error=2 : out of memory
Traceback (most recent call last):
  File "test_net.py", line 243, in <module>
    rois_label = fasterRCNN(im_data, im_info, gt_boxes, num_boxes)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/media/Files/Research/faster-rcnn.pytorch/lib/model/faster_rcnn/faster_rcnn.py", line 47, in forward
    base_feat = self.RCNN_base(im_data)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/container.py", line 81, in forward
    input = module(input)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/container.py", line 81, in forward
    input = module(input)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/media/Files/Research/faster-rcnn.pytorch/lib/model/faster_rcnn/resnet.py", line 97, in forward
    residual = self.downsample(x)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/container.py", line 81, in forward
    input = module(input)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/batchnorm.py", line 37, in forward
    self.training, self.momentum, self.eps)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/functional.py", line 1195, in batch_norm
    Variable(running_mean), Variable(running_var), training, momentum, eps, torch.backends.cudnn.enabled
RuntimeError: cuda runtime error (2) : out of memory at /home/amsha/builds/pytorch/aten/src/THC/generic/THCStorage.cu:58

Running without cuda:
python test_net.py
Called with args:
Namespace(batch_size=1, cfg_file='cfgs/vgg16.yml', checkepoch=1, checkpoint=10021, checksession=1, class_agnostic=False, cuda=False, dataset='pascal_voc', large_scale=False, load_dir='save_dir', mGPUs=False, net='res101', parallel_type=0, set_cfgs=None, vis=False)
WARNING: You have a CUDA device, so you should probably run with --cuda
Using config:
{'ANCHOR_RATIOS': [0.5, 1, 2],
 'ANCHOR_SCALES': [8, 16, 32],
 'CROP_RESIZE_WITH_MAX_POOL': True,
 'CUDA': False,
 'DATA_DIR': '/media/Files/Research/faster-rcnn.pytorch/data',
 'DEDUP_BOXES': 0.0625,
 'EPS': 1e-14,
 'EXP_DIR': 'default',
 'FEAT_STRIDE': [16],
 'GPU_ID': 0,
 'MATLAB': 'matlab',
 'MAX_NUM_GT_BOXES': 20,
 'MOBILENET': {'DEPTH_MULTIPLIER': 1.0,
               'FIXED_LAYERS': 5,
               'REGU_DEPTH': False,
               'WEIGHT_DECAY': 4e-05},
 'PIXEL_MEANS': array([[[102.9801, 115.9465, 122.7717]]]),
 'POOLING_MODE': 'crop',
 'POOLING_SIZE': 7,
 'RESNET': {'FIXED_BLOCKS': 1, 'MAX_POOL': False},
 'RNG_SEED': 3,
 'ROOT_DIR': '/media/Files/Research/faster-rcnn.pytorch',
 'TEST': {'BBOX_REG': True,
          'HAS_RPN': False,
          'MAX_SIZE': 1000,
          'MODE': 'nms',
          'NMS': 0.3,
          'PROPOSAL_METHOD': 'gt',
          'RPN_MIN_SIZE': 8,
          'RPN_NMS_THRESH': 0.7,
          'RPN_POST_NMS_TOP_N': 30,
          'RPN_PRE_NMS_TOP_N': 1000,
          'RPN_TOP_N': 5000,
          'SCALES': [600],
          'SVM': False},
 'TRAIN': {'ASPECT_GROUPING': False,
           'BATCH_SIZE': 115,
           'BBOX_INSIDE_WEIGHTS': [1.0, 1.0, 1.0, 1.0],
           'BBOX_NORMALIZE_MEANS': [0.0, 0.0, 0.0, 0.0],
           'BBOX_NORMALIZE_STDS': [0.1, 0.1, 0.2, 0.2],
           'BBOX_NORMALIZE_TARGETS': True,
           'BBOX_NORMALIZE_TARGETS_PRECOMPUTED': False,
           'BBOX_REG': True,
           'BBOX_THRESH': 0.5,
           'BG_THRESH_HI': 0.5,
           'BG_THRESH_LO': 0.1,
           'BIAS_DECAY': False,
           'BN_TRAIN': False,
           'DISPLAY': 10,
           'DOUBLE_BIAS': True,
           'FG_FRACTION': 0.25,
           'FG_THRESH': 0.5,
           'GAMMA': 0.1,
           'HAS_RPN': True,
           'IMS_PER_BATCH': 1,
           'LEARNING_RATE': 0.001,
           'MAX_SIZE': 1000,
           'MOMENTUM': 0.9,
           'PROPOSAL_METHOD': 'gt',
           'RPN_BATCHSIZE': 256,
           'RPN_BBOX_INSIDE_WEIGHTS': [1.0, 1.0, 1.0, 1.0],
           'RPN_CLOBBER_POSITIVES': False,
           'RPN_FG_FRACTION': 0.5,
           'RPN_MIN_SIZE': 8,
           'RPN_NEGATIVE_OVERLAP': 0.3,
           'RPN_NMS_THRESH': 0.7,
           'RPN_POSITIVE_OVERLAP': 0.7,
           'RPN_POSITIVE_WEIGHT': -1.0,
           'RPN_POST_NMS_TOP_N': 2000,
           'RPN_PRE_NMS_TOP_N': 12000,
           'SCALES': [600],
           'SNAPSHOT_ITERS': 5000,
           'SNAPSHOT_KEPT': 3,
           'SNAPSHOT_PREFIX': 'res101_faster_rcnn',
           'STEPSIZE': [30000],
           'SUMMARY_INTERVAL': 180,
           'TRIM_HEIGHT': 600,
           'TRIM_WIDTH': 600,
           'TRUNCATED': False,
           'USE_ALL_GT': True,
           'USE_FLIPPED': True,
           'USE_GT': False,
           'WEIGHT_DECAY': 0.0005},
 'USE_GPU_NMS': True}
Loaded dataset `voc_2007_test` for training
Set proposal method: gt
Preparing training data...
voc_2007_test gt roidb loaded from /media/Files/Research/faster-rcnn.pytorch/data/cache/voc_2007_test_gt_roidb.pkl
done
4952 roidb entries
load checkpoint save_dir/res101/pascal_voc/faster_rcnn_1.pth
load model successfully!
test_net.py:191: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
  im_data = Variable(im_data, volatile=True)
test_net.py:192: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
  im_info = Variable(im_info, volatile=True)
test_net.py:193: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
  num_boxes = Variable(num_boxes, volatile=True)
test_net.py:194: UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
  gt_boxes = Variable(gt_boxes, volatile=True)
/media/Files/Research/faster-rcnn.pytorch/lib/model/rpn/rpn.py:68: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.
  rpn_cls_prob_reshape = F.softmax(rpn_cls_score_reshape)
Traceback (most recent call last):
  File "test_net.py", line 243, in <module>
    rois_label = fasterRCNN(im_data, im_info, gt_boxes, num_boxes)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/media/Files/Research/faster-rcnn.pytorch/lib/model/faster_rcnn/faster_rcnn.py", line 50, in forward
    rois, rpn_loss_cls, rpn_loss_bbox = self.RCNN_rpn(base_feat, im_info, gt_boxes, num_boxes)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/media/Files/Research/faster-rcnn.pytorch/lib/model/rpn/rpn.py", line 78, in forward
    im_info, cfg_key))
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/media/Files/Research/faster-rcnn.pytorch/lib/model/rpn/proposal_layer.py", line 148, in forward
    keep_idx_i = nms(torch.cat((proposals_single, scores_single), 1), nms_thresh)
  File "/media/Files/Research/faster-rcnn.pytorch/lib/model/nms/nms_wrapper.py", line 18, in nms
    return nms_gpu(dets, thresh)
  File "/media/Files/Research/faster-rcnn.pytorch/lib/model/nms/nms_gpu.py", line 10, in nms_gpu
    nms.nms_cuda(keep, dets, num_out, thresh)
  File "/home/amsha/virtualenv/torch-master-13022018/lib/python3.6/site-packages/torch/utils/ffi/__init__.py", line 199, in safe_call
    result = torch._C._safe_call(*args, **kwargs)
TypeError: initializer for ctype 'struct THCudaIntTensor *' must be a pointer to same type, not cdata 'struct THIntTensor *'

edit: added the outputs

Hi, did you solve this problem?

unfortunately, still no.

@ahmed-shariff I think it is because you gpu memory is low, and during testing, you have 300 rois for roi pooling, which takes a lot of memory though. You may want to reduce the number of rois during test, say to 128 instead, which is the number during training.

That is set by TEST.RPN_POST_NMS_TOP_N, right? That is the value i tried setting as low as 30, and still am running into the same problems. I'll keep digging, and see what comes up.
Also, any suggestions to run the script without cuda?

Something I still couldn't understand is the purpose of the third value in the im_info, what is it used for? When training on my custom dataset I was able to train it without having to set a value for the third slot of im_info.

I think there is some memory leak in the code, I added some del to delete intermediate variables when not needed then added torch.cuda.empty_cache() at the beginning of big for loops and now it proceeds. Now I got a bad memory access:
    keep = keep[:num_out[0]]
RuntimeError: cuda runtime error (77) : an illegal memory access was encountered at /opt/conda/conda-bld/pytorch_1524577177097/work/aten/src/THC/generic/THCStorage.c:36

But that could be some other error

@dashesy that sounds like you may have deleted variables still being used?

@ahmed-shariff no, I later realized I had hit another out-of-memory that caused it, used more del + empty_cache and it went through. It is a memory issue.

@dashesy you are able to run this code without adjusting any of the configuration parameters on a GPU with 2GB memory?

@ahmed-shariff It is a 1070 (8GB ram) but 1GB is used by X, so with 7GB. I doubt 2GB will be enough.

Agree :D
I am closing this issue for now. Thus, conclusion: 2GB of GPU ram aint enough to train using this implementation. If I am correct, i'd need atleast 4GB (to run witch batch size 1).


WIP: Use escape backslash for ABS_PLATFORM_BUILD_ROOT to enable Jcov result

@sophia-guo I'm happy with this, do you need to test it before I merge?

@karianna I have added another change for java9 and up. Testing now. Will update when it's done.

Revert changes for java9 and up. Will work on java8 first.

@karianna it's good to go. Thanks.


Is it possible to use etcdctl v3 for substring match?

only prefix substring match, like a reverse prefix match
assume such keys in etcd
/ab/cd/ef
/ab/cd
/ef
/ab/c

etcdctl get --substring --keys-only /ab/cd/ef/gh
/ab/cd/ef
/ab/cd
/ab/c

No. Only prefix matching is supported.


Error - 403. Your client does not have permission to access this page at this time. Contact us on<EMAIL_ADDRESS>

Error - 403. Your client does not have permission to access this page at this time. Contact us on<EMAIL_ADDRESS>

Duplicate of #199


ngModel.$setViewValue should return a promise

In the case of a debounced value update, currently $setViewValue does not allow the user to detect when the update is truly executed, resulting in a potentially premature call to $render - this affects the UI Bootstrap datepicker.  If ngModelOptions has no debounce, it should then resolve immediately.
The usage should be promise based, so it can support code like

ngModel.$setViewValue('foo')
  .then(ngModel.$render);

I can see that the use case is that you want to re-render the directive when the user interacts, which happens to occur when you hit $setViewValue but I am not sure whether this is the right way to go about this.
First of all, why does the widget need re-rendering, when you are writing to the $viewValue? Is it not the case that the rendering should be done irrespective of whether the value is finally written to the scope?
Or am I missing something? Is it that the $viewValue is failing to update due to the debounce? So when you re-open the date picker it is reading the "invalid" $viewValue and displaying that rather than the actual value?

Currently we have code that executes $render right after $setViewValue in UI Bootstrap - this needs to change in order to properly support debouncing with ngModelOptions, but I want to avoid sniffing for what the user has set and do a $timeout based on that to execute the render.
What this means is that when $render is executed, since the $viewValue has not been updated, the $render function is using an older version of $viewValue when it executes.

So a question to ask is are you using $render correctly in this case?

I didn't write the code, so I can't say :) .
One would normally call $render after calling $setViewValue, no?

$setViewValue is generally called after the user changes an input: it extracts the value from the input and sets it on the ngModel. $render needs to be called after the model changes to update the input.
A common problem is that widgets format the $viewValue before it's set on the model, and they want to propagate this change back to the input, and for that they need $render.

Really $render was never designed to be called by directives themselves, it is just a method for you can monkey patch to provide the rendering functionality that will be called by ngModelController when it deems that the widget needs to be re-rendered...

I see - it would appear that UI Bootstrap likely is using $render & $setViewValue incorrectly here.
Closing as invalid.

Fyi, I did some digging into the usage of $render & $setViewValue in UI Bootstrap. The intention call the $formatters programmatically due to a change in configuration that would affect the formatting of the model value. A PR has been opened for that: https://github.com/angular/angular.js/pull/10764


Support for multiple device configurations

Am I understanding correctly that the UsbBusAllocator and UsbDeviceBuilder APIs don't support creating a device with multiple USB configurations? For example a device that would look like this:

Configuration 1:

Interface 1

Configuration 2:

Interface 1
Interface 2

Correct, multiple configurations are not supported because I originally deemed that something that is not very useful in practice and I left out the complexity.
What were you looking to implement with multiple configurations?

Thanks for the quick answer!
The use-case I have in mind is a device with the default configuration for applet interfaces (not familiar enough with USB to know if there is such a notion of default configuration) and an alternative configuration with a platform interface. Applet interfaces could be like USB serial or some HID interface, while the platform interface provides a way to install/uninstall/update applets or update the platform itself (or other platform-level operations). Currently, I have a single configuration with all interfaces (applet interfaces and platform interface). This works fine, but I was wondering if I should also provide a way to have the platform interface in its own configuration, and was looking if it was at all possible.
As you can see, this is not motivated by a concrete use-case, but just as an exploration of what would be possible. I understand the goal of keeping usb-device simple, so this is fine for me to close this issue. If I ever have a concrete use-case I would reopen or create a new issue.

Most practical devices I've seen that completely switch modes for e.g. firmware update (kind of what you're planning) just de-enumerate and then re-enumerate as a different device altogether (different VID:PID, different singular configuration). I think that has a better chance of working with operating systems and drivers and it is doable with usb-device.

Yes, I also thought about doing that. The problem is that this needs cooperation from the applets (which are not necessarily trusted or considered reliable). So for it work, there must be some physical input (like a button or a power cycle) to tell the platform to switch the exposed device from applets to platform. But I agree that this would probably be a better alternative even with this issue.

If you assume running those applets might make your device not respond to USB events anymore, it wouldn't be able to respond to the request to change configuration either though.

The USB drivers are implemented in the platform (applets can only select from a subset of those and can't influence the USB behavior outside of the API provided by the driver). So I don't think that this should be an issue.

If the platform thing is always available, you vould make it always respond to e.g. a specific control transfer that resets the device into "platform mode"

If I understand correctly, this would essentially be a vendor way of implementing configurations. SetConfiguration would just be a control transfer asking to the device to USB reset into a different USB device.
I think I get the high-level idea, but I'm still missing the details. Here is how I see it:

The host sends a (Host to Device, Vendor, Device) Setup packet with some data asking to change "configuration". I see how to do that with the rusb crate which I use.
On the device, whenever I poll the UsbDevice, regardless of its result, I should read the control pipe if something was returned. To do that, I use the UsbDevice::bus() function to access the bus and then UsbBus::read() to read the control pipe directly from the bus.
If it's a request to reset, I drop everything (the UsbDevice and the UsbBusAllocator) and recreate a new UsbBus (cheating on ownership since the device was lost with the UsbBusAllocator), UsbBusAllocator, and finally UsbDevice, then call UsbDevice::force_reset() to make sure the device gets re-enumerated.

Does this sound like what you had in mind?


feat(WEG-60): Filters

This PR adds the functionality of the filters to the homepage and sidebar.  It also adds the map layout, home, info and emergency buttons.
Info: The tests fail right now I believe because of a 429 error (too many requests). This might solve itself later. Otherwise we need to find another solution (eg. preloading all items in a json and read the json then). But I think this is part of another ticket. This was solved in https://github.com/technologiestiftung/wegweiser-frontend/pull/43
See in action:
https://user-images.githubusercontent.com/2759340/193882080-01431f09-c8ad-4f8c-9184-ef851e8cb298.mov

:tada: This PR is included in version 1.0.0-rc.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[suggestion] Change data structs to aggregates (in C++20)

Currently when compiling with C++, most data structs (XxxCreateInfo, XxxDesc, vectors, rects/boxes, etc.) provide a constructor with all members as parameters. This may be desirable, but since C++20 introduced designated initializers, the ctors prevent this usage:
SwapChainDesc desc{
    .IsPrimary = true,
    .Width = xxx,
    .Height = yyy,
};

I think it would be very benefitial to add a preprocessor to disable the ctors in C++20.
Alternatively removing them should work, as the compiler is going to provide a per-member constructor for aggregates anyways (applies for all post-C++11 versions).
https://en.cppreference.com/w/cpp/language/aggregate_initialization

What happens if somebody doesn't use (forget to/don't know about) designated initializers and writes code like this:
SwapChainDesc desc;
desc.Width = 1280;
desc.Height = 1024;
desc.ColorBufferFormat = TEX_FORMAT_RGBA8_UNORM_SRGB;
desc.DepthBufferFormat = TEX_FORMAT_D32_FLOAT;
desc.BufferCount = 2;
pFactory->CreateSwapChain(&desc, ...);

Or you mean just remove the ctors, but not default initializers?

Just the ctors, not the default initializers, as the standards allow them past C++14.

no default member initializers | (since C++11) (until C++14)

So keep all default initializers, and only provide the ctor if version <= C++11.
If you don't mind, I can submit a PR to do this, but it might be after a few weeks.

Perhaps the best solution is to do as in vulkan.hpp. There is an  VULKAN_HPP_NO_STRUCT_CONSTRUCTORS macro used for this.

Perhaps the best solution is to do as in vulkan.hpp. There is an  VULKAN_HPP_NO_STRUCT_CONSTRUCTORS macro used for this.

Some structs (e.g. LayoutElement) have overloaded constructors. Removing them will break existing code. I would also argue if
LayoutElement{
  .InputIndex = 1,
  .BufferSlot = 0,
  .NumComponents = 3,
  .ValueType = VT_FLOAT32
};

is going to be better than
LayoutElement{1, 0, 3, VT_FLOAT32}

You will be able to do
LayoutElement{nullptr, 1, 0, 3, VT_FLOAT32}

but, nullptr will be required as HLSLSemantic is the first member of the struct.
Moreover, client code will need to be compiled with different preprocessor settings than core modules, which may cause some problems.
So I honestly think it is not worth it. In the end,
SwapChainDesc desc;
desc.IsPrimary = true;
desc.Width = xxx;
desc.Height = yyy;

even saves one line of code.

Some structs (e.g. LayoutElement) have overloaded constructors. Removing them will break existing code. I would also argue if
LayoutElement{
  .InputIndex = 1,
  .BufferSlot = 0,
  .NumComponents = 3,
  .ValueType = VT_FLOAT32
};

is going to be better than
LayoutElement{1, 0, 3, VT_FLOAT32}

You will be able to do
LayoutElement{nullptr, 1, 0, 3, VT_FLOAT32}

but, nullptr will be required as HLSLSemantic is the first member of the struct.
Moreover, client code will need to be compiled with different preprocessor settings than core modules, which may cause some problems.
So I honestly think it is not worth it. In the end,
SwapChainDesc desc;
desc.IsPrimary = true;
desc.Width = xxx;
desc.Height = yyy;

even saves one line of code.


JSC_INEXISTENT_PROPERTY_WITH_SUGGESTION is hidden if the inexistent property is set in unrelated code.

Hello, not sure if this is expected behavior.
Below code is minimal sample tested in ADVANCED mode on: https://closure-compiler.appspot.com/
/**
 * @constructor
 * @struct
 */
function SGlobal() {
	this.className = "SGlobal";
}
/** @type {number}*/
SGlobal.scale = 1;

/**
 * @constructor
 * @struct
 * @param {number} x
 */
function ZoomManager(x) {
	this.m_x = x * SGlobal.scale;
}

/**
 * @param {number} time
 * @param {number} x
 */
ZoomManager.prototype.onDisplace = function(time, x) {
	this.m_x = x + time * SGlobal.scaleT; // <--- THIS IS A TYPO, property was 'scale'
};

ZoomManager.prototype.neverCalled = function() {
	//SGlobal.scaleT = 4;
};

var obj = new ZoomManager(10);
obj.onDisplace(0.5, 1);
var dist = obj.m_x;
console.log(dist);

This code has a typo and the compiler correctly points the error:
JSC_INEXISTENT_PROPERTY_WITH_SUGGESTION: Property scaleT never defined on SGlobal. Did you mean scale? at line 25 character 31
But if you are unlucky like me and have a second typo in other unrelated part of your code the warning goes away and no warning or error is printed. Here I put the second typo in a method of the class that is never called
ZoomManager.prototype.neverCalled = function() {
	SGlobal.scaleT = 4;  // <--- SECOND TYPO, replace this code in above example
};

What is interesting is that the compiler somehow knows that the output is undefined because is producing compiled code with NaN:
'use strict';
var a = new function() {
  this.g = 10;
}();
a.g = NaN;
console.log(a.g);

I was under the impression that the compiler warned me whenever an undeclared property of a @struct was tried to use.

I suspect this is happening because by doing SGlobal.scaleT = 4; inside ZoomManager.prototype.neverCalled you have created a property named scaleT. Hence it's no longer an inexistent property, i.e. the compiler sees that a property with that name exists somewhere in the code.  Hence the inexistent property error should be reported by closure compiler and this seems WAI to me. We'll discuss this in the internal bug triage meeting.

Closing as WAI per my comment above.