Update README.md

Change the Rights to the correct year

This PR is closed as the changes are merged with the MAster branch


Data refs that start with "use" are not visible in Vue dev tools

Vue devtools version
6.4.5
Link to minimal reproduction
https://github.com/gogo-rulez/vue-devtools-bug
Steps to reproduce & screenshots

npm install
npm run dev
open in browser
open vue devtools
the refs starting with "use" are not listed in the setup tab of App.vue

What is expected?
To see all of the refs defined in App.vue file
What is actually happening?
Only refs which do not start with "use" are visible in the devtools setup tab
System Info
System:
    OS: Windows 10 10.0.22000
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz
    Memory: 1.90 GB / 15.73 GB
Binaries:
    Node: 16.15.0 - ~\nvm\nodejs\bin\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 8.19.2 - ~\nvm\nodejs\bin\npm.CMD
Browsers:
    Edge: Spartan (44.22000.120.0), Chromium (106.0.1370.47)
    Internet Explorer: 11.0.22000.120

Any additional comments?
We went on and downloaded the devtools source code to look for the cause.
The only thing that we could find is in this file
/packages/app-backend-vue3/src/components/data.ts
inside function processSetupState  the startsWith method is used like so !key.startsWith('use)
this may or may not be the thing that is causing the problem

useXXX is a convention for composables (Composition API functions), for example useMousePosition(). The devtools hides them because they are not supposed to be used outside of setup. It's probably a good idea to rename your ref to something else.

So is this considered the expected behavior?
I'm asking because I just started to work on a large codebase which uses the term userXXXX fairly often, and after hours trying to figure out where half of my refs went found this issue. In the codebase a lot of the refs are missing in the devtools because they start with use. This makes it basically impossible to debug the application.
I would suggest implementing it so that it filters refs only if a capital letter follows the use, so that useMousePosition() is hidden but user is not.
But IMO even this implementation should still be something that can be toggled in the settings, as I personally would consider this a breaking change.

Just had the same, building a login form. username was not showing up, everything else did. Maybe throw a warning or a notice at least, or if possible, check if it's not a ref and hide it?

I tried to implement a better check using regex. Still not perfect for things like username but will work with userName
https://github.com/vuejs/devtools/pull/1997

Wow. I've spent hours trying to understand what I'm doing wrong because some of my variables, for example userAccount, don't show up in the tools. This seems really sketchy to hide variables based on naming.


Update template for PIO version 0.10.0-incubating

Works for me.

Looks good to me. Thanks @chanlee514 !


Full API access seems excessive

I have a cluster that holds data that falls under HIPAA.  That means a lot of security that a normal app does not get.  The cluster I am using only has open ports to the internet on the boxes with Node.js on them, our app servers.  If I give full API access I would also be giving full cluster control to those boxes, which seems really bad.  One of those boxes is compromised and my cluster is compromised.
My request is two fold:

Is there a way we can reduce the API requirements?
If the module does not need full access, can we accurately document what access it does need to function correctly?

The API requirements can be avoided by following the instructions for running outside of the Google Cloud Platform which can be found here https://github.com/GoogleCloudPlatform/cloud-trace-nodejs#running-elsewhere.
For step 2, it may be easier for you to create a service account key instead of running a gcloud login command from your production machine. The process for creating and setting up service account keys is documented here https://developers.google.com/identity/protocols/application-default-credentials#howtheywork.
I will update the README to include the service account key option for authorization.
cc @justinbeckwith

@blargism Please let me know whether service account keys satisfy your use case. Setup is now documented in the readme under the running elsewhere section.

I think so.  I will reopen if I run into issues.


Improve logging details in network connections

Given the following output from the SDK:
otel             | 2021/06/16 16:58:42 connected to Wavefront proxy at address: wavefront-proxy:2878
otel             | 2021/06/16 16:58:42 resetting wavefront proxy connection
otel             | 2021/06/16 16:58:42 connected to Wavefront proxy at address: wavefront-proxy:2879

It'd be helpful if the line resetting wavefront proxy connection included which connection was being reset. In this case it's probably "wavefront-proxy:2879", but just including it in the message would make it clear.

This log message isn't in the codebase anymore - it was part of the TCP handler that could be used to connect to Wavefront proxy instances. I'll close this issue.


Missing mount information in Storage pool tab when VM using shared data disk is deleted.

Server version - V0.51.0
Had a convoy-nfs stack deployed from catalog.
Enable Virtual Machine support in UI.
Add a virtual machine - testnew1 with disk - data1234 from convoy-nfs driver.
Add a virtual machine - testnew2 with same disk from convoy-nfs driver.
Got to storage pool tab .
Deleted testnew2 VM.
Go to storage pool tab: (Deleted VM entry is still listed)

Refresh storage pool tab:( VM name is missing)

No VMs in 1.2..

Obsolete.


Update configure-server-endpoints.md

Updated the document to remove - OptionalParamsPolicy - as it is not available  in the onboarding package for windows Server 2012 and 2016,
Fixes https://github.com/MicrosoftDocs/microsoft-365-docs/issues/12926

@JohanFreelancer9 Please copy review

@JohanFreelancer9

@mjcaparas Please merge this PR. Thanks

@mjcaparas Gentle reminder.


Added new API integration for disallowing automatic file format upgrades

When adding the optional upgrade path feature to Realm Browser, it was necessary to expose the 'disallow file upgrade' option in the Core via the Cocoa binding.
I tried to keep this new API private, and all internal modifications to be as unobtrusive as possible, but please let me know if you think there's anything that needs changing.
/cc @jpsim @tgoyne

Alright, I removed the RLMRealm method that I originally added and refactored the Browser to rely solely on RLMRealmConfiguration for that functionality now. At some point, we should probably do a review of the other private, pre-configuration APIs in there and see if they need deprecating.
Is there anything else this needs before merging?

 Thanks. This looks good to me. Further thoughts @bdash?

:+1:

This could use a test, but that requires a test file so it could end up being an annoying amount of work for something that's almost certainly correct, so eh. If you do want to add a test I'd just grab the smallest file from core's set of v2 realms and verify that it throws an exception when opened with this set.
:+1:

Alrighty! If everyone's cool with this, I'll merge it in now and then update the Browser's podfile to stop pointing to this branch.
I agree with @tgoyne in that it might be best to have a test in place, if only to simply ensure this doesn't cause any issues down the line. But I'm not sure how we can keep an 'intentionally old' Realm file around in the CI in order to keep checking this, so it might be something I'll look at later, and put in a separate PR.
Thanks!


Made registry version and API version dynamic parameters

This provides support for registry version 2 while maintaining backwards compatibility for version 1. I also built upon a previous set of commits making the API version dynamic by allowing it to be passed as a variable in the rake file or via a command line parameter.
Registry version can be set with
set :registry_version, '2'

API version can be set with
set :api_version, '1.20'

You can also automatically detect if a given registry is v2 by hitting /v2 path on the server.  If its a 200, its a 2.0 compatible registry.
Documented here https://github.com/docker/distribution/blob/master/docs/spec/api.md#api-version-check

Oh nice. That would be a good addition to eliminate the need to specify the version.

Thanks for the contribution. I like the registry v2 support but would like to see it incorporate the suggestion by @deedubs.
But, the API version isn't something you can just change and have things work. It might be the case at the moment, but isn't going to be in the future. Changing the API version can also totally change the arguments required, the way the JSON is encoded, etc. Overriding them like this is going to break things down the road.
Also, you added a bunch of new functionality but no tests for that new behavior. Can we get some tests for that? Thanks!

@relistan I agree on the API version comment. That being said, hardcoding it doesn't feel right either, since people use different API versions. For example, v1.12 is hardcoded at the moment, which does not work for our environment. Since there's no way to override it, it renders centurion unusable for us. Maybe it would be better to state which Docker API versions we support? I'm open to suggestions on that.
Regarding the tests--since the tests contain a registry version number, the existing tests will suffice to test registry v2 support. Any suggestions on how to handle that?

I think I would refactor this into 2 classes, something like DockerRegistry::V1, and DockerRegistry::V2, and a factory to determine which one to use at runtime. That way you can follow the development of the v2 api without affecting backwards compatibility.

@imdevin567 The thing is that 1.12 just happens to be the same everywhere right now. It turns out that future API versions also support the same code right now, so bumping it fixes the issue. And we should do that. But if you look at this file's history you'll see that they don't all move to the same version at the same time. The idea with a versioned API is that you can continue to use the older version of any endpoint until deprecated and just update your use of individual endpoints as needed. Docker has unfortunately broken this behavior a few times.
@deedubs is right that this really should be two classes and the DockerRegistry class switches which backend it uses. The easy way to do that is to use Forwardable and have a class var that stores which backend to pass to.

Closing due to inactivity


Refactor all the things!

It's no secret Jeet could use a major refactoring overhaul. I'd like to see if @HugoGiraudel would still be interested in helping out with that now that @clear-y is around to make sure his excellent Sass work gets merged in a timely fashion, and I'd like to put @clear-y and myself in charge of the Stylus version.
In the end, I'd like both versions to mirror each other.
I think once this is done, we can release v6.

Closing this as @jakecleary is working on this in v7.


Design prototypes for low-overhead worker composition

The problem at hand is that nesting workers for advanced messaging structures brings a lot of overhead with it. This PR (as well as the previous pipe and channel PRs) attempt to find a solution to this problem in a way that is both fun to use and performant.
This PR takes the approach of embedding a small actor system within a worker, each with their own address and state required for their function to be executed, but while sharing the worker relay, mailbox, and routing mechanisms.

As Alan Kay et al put it, it's turtles all the way down! 🐢
We can talk about the details but, in principle, I think this is the way to go.
It also gives us a system which is tractable to  being reasoned about a'la CSP.
Also probably the most powerful foundational abstraction we're going to get that won't  adding in proper types and re-inventing Occam-π.

This looks great, and is a very interesting approach. I can't wait to dig into it when I get back.

@SanjoDeundiak the idea behind this feature is to replace the BehaviorHook system currently used to attach additional behaviour to a pipe or channel.
The problem with the existing system is that different behaviours may conflict with each other (or require special interactions) that are hard to express. Generally I got the feeling that this approach would get messy pretty quickly.
I'm also still working on this, ideally every SystemHandler would be able to accept it's own message type (not just the parent type) -- even if it's just a small shim that decodes payloads on the fly.

@thomcc @mrinalwadhwa i think this is ready to merge today

@thomcc done

Landed in #2477.


Add codegen for http component in runtime extension

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This PR is the reopened version of https://github.com/awslabs/smithy-typescript/pull/912


Feature/pdpdevtool 2789 adddependencies

One last thing, the copyright is missing in some files (in vscode-extension package), I think we need to add it to everywhere


Fix "saveAs is not defined"

I'm a complete JavaScript noob, but this seemed to fix the error I got when clicking the "Download files" button on https://fondu.io

Thank you a lot! Looks fine to me


BUG, DOC: Allow custom line terminator with delim_whitespace=True

Title is self-explanatory.  Closes #12912.

The tokenizers in tokenizer.c, and the CParser tests seem to have a lot of repetition, although reworking the latter seems easier to do than the former.  Can / should this PR also include refactoring changes as well to those parts of the code?

no make smaller / simpler PRs that do 1 thing

they can of course be built upon one another

why do you think adding all of this untested code is a good idea?
you would basically have to duplicate all of the test suite with a custom terminator in order to validate this
you need to use functions that are already tested
iow each of the cases needs to all a function

What functions are you talking about?  If you look at the other tokenizer functions, they all duplicate the same or have very similar case work.  This function in fact is a near duplicate of the tokenize_whitespace save replacing checks for \n and \r with self->lineterminator.  That's why I asked about the refactoring.

well then refactor first - we can't add more code like this

Managed to refactor code so that it only splits based on whether or not whitespace is used as a delimiter, so there are only two tokenizing functions now instead of three (or four after my second commit).

@gfyoung ok much better. pls also run asv's for csv to make sure no degredation.
So macros are good because they make the code shorter / more understandable while hopefully not sacrificing perf. more combining code is better (again could be done later), but since you are already working on it....

@jreback : any ideas as to that OSX failure?  It doesn't seem related to anything that I changed.

@jreback : there seems to have been a recent update to python-dateutil (just today), causing a test failure in tslib on OSX.  I can reproduce this failure on Linux too FYI.

@gfyoung ok! my pip install catches things then, great! (the osx build will pip install python-dateutil to catch things just like this :>), while the 3.5 build uses conda (which is with a stable build). IIRC this has some reverses from previous things, so will have to sort them and see. Maybe we should ban certain versions of dateutil. These can cause weird things to happen.

@jreback : is it possible to put in a stopgap measure FTTB?

see #12944 (I skipped the test for now on master), so rebase.

Whoot!  Squashed it down into one function!  Hopefully Travis will give the green light this time around.  I will also do some timing analysis for read_csv and post it in the conversation.

This PR
io_bench.frame_to_csv.time_frame_to_csv           188.25ms
io_bench.frame_to_csv2.time_frame_to_csv2         312.94ms
...formatting.time_frame_to_csv_date_formatting    13.36ms
...h.frame_to_csv_mixed.time_frame_to_csv_mixed   218.47ms
...m.time_read_csv_infer_datetime_format_custom    15.82ms
....time_read_csv_infer_datetime_format_iso8601     2.64ms
..._ymd.time_read_csv_infer_datetime_format_ymd     2.92ms
...nch.read_csv_skiprows.time_read_csv_skiprows    16.74ms
...nch.read_csv_standard.time_read_csv_standard    14.00ms
..._dates_iso8601.time_read_parse_dates_iso8601     1.93ms
...h.write_csv_standard.time_write_csv_standard    50.49ms
For Master
io_bench.frame_to_csv.time_frame_to_csv           195.29ms
io_bench.frame_to_csv2.time_frame_to_csv2         303.08ms
...formatting.time_frame_to_csv_date_formatting    12.99ms
...h.frame_to_csv_mixed.time_frame_to_csv_mixed   224.39ms
...m.time_read_csv_infer_datetime_format_custom    15.53ms
....time_read_csv_infer_datetime_format_iso8601     2.64ms
..._ymd.time_read_csv_infer_datetime_format_ymd     2.80ms
...nch.read_csv_skiprows.time_read_csv_skiprows    16.04ms
...nch.read_csv_standard.time_read_csv_standard    13.23ms
..._dates_iso8601.time_read_parse_dates_iso8601     1.78ms
...h.write_csv_standard.time_write_csv_standard    51.60ms

@jreback : Travis is giving the green light, and I don't see any major timing discrepancies.  Ready to merge if there is nothing else.

thanks @gfyoung didn't realize how much duplicative code there was already in tokenizer.c sheesh 👍

as an aside, adding delim_whitespace option to python parser is trivial.


govuk_publishing_components unnecessarily bundles rails dependency

I was wondering why the govuk-developer-docs had a rails dependency: it comes from govuk_publishing_components, which the Developer Docs only uses for a handful of components (example).
Rails is a pretty meaty dependency and it seems a shame to include it in the gem unnecessarily. It also causes some confusion for things like the dependency management spreadsheet, where one would be forgiven for assuming govuk-developer-docs is a rails app.
I've spiked removing rails as a hard dependency, and was still able to use components locally (in my Developer Docs build) without any rails dependency. The spike branches are below:

https://github.com/alphagov/govuk-developer-docs/pull/3866
https://github.com/alphagov/govuk_publishing_components/pull/3204

Making rails a development dependency of govuk_publishing_components (as I suspect it is needed for local development, defining routes and viewing the component locally etc) was my first step.
What complicates things is that govuk_publishing_components has a hard dependency on govuk_personalisation, which itself has a hard dependency on rails, so a second step is needed. Given that govuk_personalisation is only used in the account layout (and the other components are otherwise untouched), I think we could do something here such as: 1) removing govuk_personalisation as a hard dependency, then 2) documenting that should anyone need to use the account layout, they need to specify govuk_personalisation as an additional dependency.
TLDR: would it be possible to decouple govuk_publishing_components from Rails? Just thinking out loud, thought I'd document in an issue.

From a "not really looked into" point of view, I'm imagining Rails is pretty firmly wedged as a dependency here. Key things are:

The Component Guide functionality, which itself is a rails engine (I'd guess there's probably a possibility that could be a separate gem or only enabled if Rails present
The folder structure and necessary auto-loading for the templates to all operate in the Rails way. Even benignly calling for a component to render outside Rails requires loading up ActionController: https://github.com/alphagov/govuk_publishing_components/blob/c08a2d69c689bce7a457eba7b57785ed7875f8fb/lib/govuk_publishing_components.rb#L48-L61

If your goal is to remove the Rails dependency from govuk-developer-docs, I'd probably suggest that an easier direction of travel would be to utilise govuk-frontend directly in the dev docs and not use the intermediary layer of govuk_publishing_components. I imagine, assuming you only have a few component usages, that you might find the only loss is having to write some extra HTML as you'd have lost the .erb file.

Thanks Kevin - you're right about my motivation. I'll explore switching Developer Docs to use govuk-frontend.


[API] HDB data types mapping to JavaScript Date Type

Implement the data type conversion as stated by the SAP documentation for hdb types that should be converted to Date type.
Mapping in hdbUtils.js

This issue is closed as the project is no longer maintained


Wifi settings mixed up

Via: https://twitter.com/matthiasr/status/612231911872831488

Won't fix in time due to lack of test hardware.

Should be fixed now.


Error Running the Notebook

Hi, when I tried running the notebook "Urban Sound Classification using CNN.ipynb", I came across this error on Jupyter Notebook. May I know what is wrong?

Sorry this error is not clear to me. May be I can be of some help, if you share full error message.

The full error message is as follow:
WARNING:tensorflow:From /usr/local/lib/python2.7/dist-packages/tensorflow/python/util/tf_should_use.py:175: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use tf.global_variables_initializer instead.

ValueError                                Traceback (most recent call last)
 in ()
8         batch_y = train_y[offset:(offset + batch_size), :]
9
---> 10         _, c = session.run([optimizer, cross_entropy],feed_dict={X: batch_x, Y : batch_y})
11         cost_history = np.append(cost_history,c)
12
/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in run(self, fetches, feed_dict, options, run_metadata)
893     try:
894       result = self._run(None, fetches, feed_dict, options_ptr,
--> 895                          run_metadata_ptr)
896       if run_metadata:
897         proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)
/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _run(self, handle, fetches, feed_dict, options, run_metadata)
1098                 'Cannot feed value of shape %r for Tensor %r, '
1099                 'which has shape %r'
-> 1100                 % (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
1101           if not self.graph.is_feedable(subfeed_t):
1102             raise ValueError('Tensor %s may not be fed.' % subfeed_t)
ValueError: Cannot feed value of shape (0, 0) for Tensor u'Placeholder_1:0', which has shape '(?, 10)'

The error message suggest the label place holder's shape and the data that fed have different shapes. I would recommend you to print train_y to make sure it has correct shape and data.


Seems to break with HA Core 2024.8.1

Just wanted to identify that the Google Photos integration seems to break with 2024.8.1 (but not 2024.8.0), in the event others see the same (or to see if Daanoz/others are aware and working on this already), as I couldn't find anything about this posted yet when searching.
Here is what I saw:

Existing/working integrations (devices) stopped working. Was unable to read the photos/albums any further.
Confirmed the back end client OAuth/etc were correct, API enabled, etc. Re-configured this just in case but no change.
When attempting to add or re-add the album / "device" in HA, it sent me through a never ending loop of trying to re-authorize. Even though that was already done/working and didn't need refreshed.
Completely removing and re-adding the HACS integration didn't fix anything, nor did completely redoing the back end Google OAuth/API configuration steps.

Side note - other Google-based services which also use back end Google OAuth continued to work - also using Google Nest and Google SDK integrations which did not seem to break. So this may be specific to either Google Photos API or Google Photos integration.
I restored HA Core to 2024.8.0 and everything has been working smoothly since, while I await further guidance / acknowledgement.
Thank you.

Also seeing this too.

Did a quick test, but could not yet confirm the issue. Any logs available when it occurs?

Just home to check and it seems to be working again on my home network and also on my 4G phone signal.
Was not working on my office wifi, or office PC.
I'll check again in the morning.

Alright, upgraded all my test setups and home setup to 2024.8.1, but no luck reproducing it yet.
I'm starting to think it might be a combination of integrations or maybe a system limitation the integration runs into.
Could you share some details about your setup? Maybe other (google) integrations that are installed, type of system (RasberryPi, minipc, ..), number of albums in your google photos account, and amount of photos in the active albums?

Hardware: Home Assistant Green
Core: 2024.8.0 (restored from 2024.8.1 - upgrading to 2024.8.1 is immediately when my issues began)
Supervisor: 2024.08.0
OS: 13.0 (upgraded from 12.x after restoring core back to 2024.8.0 - would have been the latest 12.x during the issue I saw)
Frontend: 20240806.1
Other Google integrations - these all continued to work after going to 2024.8.1:

Google Assistant SDK
Google Calendar
Google Cast
Google Nest

I am sharing one album as a 'device' through Google Photos integration - but my account has 11 albums. The one I am sharing has 102 pictures in it (I understand you may only grab a subset at a time).
Let me know if there's more I can provide.

To follow up, I did a full backup and implemented core 2024.8.2 (so I am skipping 2024.8.1) and that upgrade went fine, Google Photos and other integrations continue to work. Maybe a fluke at my end if others except 1 have not reported anything.
Keep in mind I did restore back to 2024.8.0 core (which was working for me) before upgrading to 2024.8.2 (working), so I don't know if someone else seeing broken functionality with 2024.8.1 would see a "fix" if they from 2024.8.1 with broken integration to 2024.8.2.

Alright, did another set of testing, still can't locate the issue. The message Setup of camera platform google_photos is taking over 10 seconds. has been there for a while, and thats the only hint that might point to something thats off. It shouldn't break anything, as it's just a warning it's starting slow. Anyway, if I cache the available albums locally that should speed up the start up time, but that requires some refactoring of the component which I will do in due time.
For now I propose to close this issue, if anyone has new information feel free to reopen it.


socket-<IP_ADDRESS> (LTS 5.10) fails test suite

Citing from http://hydra.cryp.to/build/1671607/nixlog/3/raw:
Test suite AddrInfo: RUNNING...
"t0001.0"
AddrInfo: AddressInfoException "Servname not supported for ai_socktype"
Test suite AddrInfo: FAIL

Cc: @feuerbach

Since https://github.com/lpeterse/haskell-socket/issues/12 is fixed, can this be closed?

SGTM


trivial problem: passing number to connection.send() cause crash in ._debug due to no .slice method

The connection.send(data) is designed to handle any type which have toString method, such as Number(1), {a:1},  etc..., all right?
BUT: if i really pass a Number(1) to it, it crashes at first line in the sendUTF method.
Obviously caused by data.slice(0,80), so it should be checked, i know it's boring.
WebSocketConnection.prototype.sendUTF = function(data, cb) {
this._debug('sendUTF: %s', data.slice(0,80) + '|...');
better be
-->     data = String(data)
-->     this._debug('sendUTF: %s', data.slice(0,80) + '|...');
BTW, later data.toString() is not necessary.
If you have time, you can check it.

Good catch!  I accidentally introduced this bug in 5f0c4901ac646c50d89db6a728540204eec8593c when I added some extra debugging.

Just released v1.0.18 including this fix.


Reducers and action creators aren't a one-to-one mapping

This part of README worries me a lot:

Reduxible provides some utility functions to make redux actions and reducer simpler. You can define actions like below.
const actions = {
  ADD_TODO: {
    creator: (todo) => {
      return {
        payload : {
          todo
        }
      };
    },
    reducer: (payload, state) => {
      const { todo } = payload;
      const todos = [ ...state.todos, todo ];
      return {
        todos
      };
    }
  }
};

It reinforces a very common misconception about Redux: namely that action creators and reducers are one-to-one mapping.
This is only true in trivial examples, but it is extremely limiting in real applications. Beginners exposed to this pattern couple reducers and action creators, and fail to realize they're meant to be many-to-many and decoupled.
Many reducers may handle one action. One reducer may handle many actions. Putting them together negates many benefits of how Flux and Redux application scale. This leads to code bloat and unnecessary coupling. You lose the flexibility of reacting to the same action from different places, and your action creators start to act like “setters”, coupled to a specific state shape, thus coupling the components to it as well.
I suggest you to refrain recommending this approach, or at least add a warning that Redux doesn't endorse it.

Or maybe provide it as a simple helper for reducers and actions that are really coupled, still adding a warning about it of course.

Or maybe provide it as a simple helper for reducers and actions that are really coupled, still adding a warning about it of course.

As soon as you have such helper used in a codebase new people start to structure their code in similar ways because they think that's how it should be done.
The point of Flux and Redux is to make it easy to suddenly start reacting to the same action in a different place. You don't know which actions you'll need to handle in different places in advance.
One needs to look at the code not just from "how it looks now" perspective but also "how will it evolve" and "how can we reduce risks when requirements change". This pattern locks you into a very particular way of doing things. When you'll get more requirements you'll have to rewrite the part that used this helper anyway. This is why I consider providing such helper harmful, even if it seems to make code simpler in some cases. Requirements change!

As soon as you have such helper used in a codebase new people start to structure their code in similar ways because they think that's how it should be done.
The point of Flux and Redux is to make it easy to suddenly start reacting to the same action in a different place. You don't know which actions you'll need to handle in different places in advance.
One needs to look at the code not just from "how it looks now" perspective but also "how will it evolve" and "how can we reduce risks when requirements change". This pattern locks you into a very particular way of doing things. When you'll get more requirements you'll have to rewrite the part that used this helper anyway. This is why I consider providing such helper harmful, even if it seems to make code simpler in some cases. Requirements change!

Hi, @gaearon :)
I'm so glad to your feedback. Reduxible started for my personal toy project for studying React, Flux, Redux. So it can have many holes. The feedback like this is very helpful for me and for Reduxible.
You're correct. I have tried to make redux modules (what called by ducks in here.) look good. To me, redux modules in there, so verbose and has too many repeats of action names. I want to make it short and simpler. But I missed a point of relations between action creator and reducer.
I have added some warning messages to README.md. And also, I'll try to fix functions for fit with basic concepts for Flux and Redux.
Thanks again @gaearon.
And Happy new year :smile:

Have added warning messages and refactor functions for support M:N relationship.

I have a case where I'm building a chat app, but the data in the back end has only messages list. So is it ok to put CONTACTS and MESSAGES reducer receive messages and each one will take his par ? Or you only talking about a ui action that may be interesting to couple parts of the application ?

look great, but need to connect more than one reducer to the action. I agree that this approach tide together action and reducer.


Improve build time

Closes #1937
I disabled stats: 'errors-only' to have webpack say exactly how long it takes for the build.
I tried incremental: true in tsconfig.json but it had no effect. From what I understand, this currently only works when using tsc without extra build tools, since they haven't added any APIs for it yet.
npm run build

Before
After

~6s
~5s

npm run watch (updates)

Before
After

~3.5s
~0.5s 😍

IssueHunt Summary

Referenced issues
This pull request has been submitted to:

#1937: Build time improvements

IssueHunt has been backed by the following sponsors. Become a sponsor

I disabled stats: 'errors-only' to have webpack say exactly how long it takes for the build.

I'm currently using this is my webpack.config.js:
	stats: {
		all: false,
		errors: true,
		moduleTrace: true,
		builtAt: true
	},

Webpack still shows a lot of useless information, instead of trying to filter it we decided to just use the SizePlugin

@bfred-it commented on Jul 6, 2019, 6:19 AM GMT+2:

Webpack still shows a lot of useless information, instead of trying to filter it we decided to just use the SizePlugin

Only thing missing from that is a timestamp, to know that the build actually happened. For example when the build fails, what errors belong to this build and which errors belong to the previous build. But maybe thats for another issue.

I added the build-at date as you suggested 👍
I learned 2 things about the fork plugin:

it already uses the --incremental flag
it also shows the build time

It also shows some extra useless information that I can't disable though, so if you know how to do that, let me know:
No type errors found
Version: typescript 3.5.2

Great work 🤸♂


Data classification: The generated Console App and Web API projects are running failed when using metric "Log-Loss Reduction".

System Information (please complete the following information):
Windows OS: Windows-11-Enterprise-22H2
ML.Net Model Builder 2022: <IP_ADDRESS>6301 (Main Build)
Microsoft Visual Studio Enterprise: 2022(17.4.5)
.Net: 6.0
Describe the bug

On which step of the process did you run into an issue:
The generated Console App and Web API projects are running failed when using metric "Log-Loss Reduction".

TestMatrix
https://testpass.blob.core.windows.net/test-pass-data/wikipedia-detox-250-line-data.tsv
To Reproduce
Steps to reproduce the behavior:

Select Create a new project from the Visual Studio start window.
Choose the C# Console App (.NET Core) project template.
Add model builder by right click on the project.
Select "Data classification" scenario.
On the Data page, choose the data source.
On the Train page, choose metric "Log-Loss Reduction" to complete the training.
On the Consume page, click the "Add solution" button to generate the Console App and Web API projects.
Run the generated Console App and Web API projects.

Expected behavior
The generated Console App and Web API projects should be running successfully when using metric "Log-Loss Reduction".
Screenshot

Additional context
After changing "LoglossReduction" to "LogLossReduction", the bug can be fixed.

The bug has been fixed on the latest main build <IP_ADDRESS>6701.

@zewditu Verified on the latest main build <IP_ADDRESS>6701, the bug is still repro in "File (.csv, .tsv, .txt)" data source with new error.
https://testpass.blob.core.windows.net/test-pass-data/wikipedia-detox-250-line-data.tsv


GCC failing to identify SMM[UL\LA]R idioms causes performance issues

For tracking
multAcc_32x32_keep32_R, mult_32x32_keep32_R and co macros, involved in Q.31 FFTs,Fast DF1 Biquad / Fast FIRs are supposed to be converted in single ARMv7M-E DSP instruction (SMM[UL\LA]R variant)
This is OK with Arm Compilers and clang but not for GCC (any version)
https://godbolt.org/z/7GWqdE3xv
Expected successful conversion (e.g. CLANG):
https://godbolt.org/z/3149Knxoc
SMM[UL\LA]R are not part of ACLE, so inline asm may be required

@FabKlein There is already a __SMMLA in CMSIS-Core for gcc. No SMMUL yet ...
Same for clang ...

For visibility - is there any way to emit SMMUL from GCC that does not involve inline assembly? Neither gcc-cmsis.h or arm_acle.h provide intrinsics for it.

@christophe0606 Indeed, I tried mimicking intrinsics from cmsis_gcc.h and it works well:
__STATIC_FORCEINLINE int32_t __SMMUL (int32_t op1, int32_t op2)
{
 int32_t result;

 __ASM ("smmul %0, %1, %2" : "=r" (result): "r"  (op1), "r" (op2) );
 return(result);
}

It's just strange that it's omitted from that header file, while e.g. SMMLA exists.

@CookiePLMonster It is handled by the CMSIS project. You may open a github issue there to ask them why it was not done, and if they could add it to the header.
(Perhaps there is already an open issue)

Would that be https://github.com/ARM-software/CMSIS_6/issues ?

@CookiePLMonster
It is.


Updates

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: renemadsen:x: oleksiygarnikYou have signed the CLA already but the status is still pending? Let us recheck it.


firefox out of date on release-17.09; needs newer rust version

Issue description
The latest version of Firefox depends on a newer version of rust, so it is not as easy as usual to bump it on the release-17.09 channel. See #31706.
Firefox is currently at version 56.0.2 in release-17.09; lots of security vulnerabilities have been patched in newer versions of firefox.

Please note that in the FF 57 in the unstable channel currently fails to build on 32 bit platform - #32074.
Can we hope that stable won't break 32bit support of FireFox?

FWIW firefox has been updated to 57.0.2 in the latest release of nixos-17.09 channel.

And it supports 32 bit - I'm writing this from a 32 bit firefox 57.0.2 installed from the nixos 17.09 channel.
FWIW, nixos unstable still fails to install firefox 32 bit.
Thanks a lot - the issue seem to be resolved.

Right, I had tested those, and it's in channel now.


Break Castle.Core dependency from Rhino.ServiceBus and add support for S...

...pring proxy detection
This change removes the Castle binding from Rhino.ServiceBus but might be troublesome if other containers rely on castle and depend on the actual type resolving. But I'm not sure whether many use them mixed due to the versioning problems.
Also adding support to resolve actual type behind Spring generated proxy.

Pulled in and will be included with 2.3.0 Nuget


Update ESTAT API URL and other improvements

Supersedes and incorporates #107 (thanks @zymon!)
SDMX-ML:

Handle text elements like <com:AnnotationURL/> that have no text, rather than being simply empty.
Handle additional XML namespaces mapped on on <mes:StructureSpecificData> and similar, with a specimen and test.

Add sdmx.rest.URL class for constructing REST API URLs.
All endpoints are now tested for every supported data source, even if they are expected to fail; sources.json and the test suite records and reports the expected failures.

The codecov/patch check failure here is acceptable: this PR changes some code in the tests of specific data sources, but these are not run on every push to a PR branch. These tests pass locally and will be run on schedule on main.


Prevent xss

This PR is in reference to the issue https://github.com/graphite-project/graphite-web/issues/2520 for preventing an Cross-site scripting (XSS) attack when saving the dashboard.
It uses the Django's django.utils.html.strip_tags() function to sanitize html input elements, in this case, the name of the dashboard, to prevent the XSS attack.
Currently my approach is to apply the sanitization on the fields that are inputted from the html template and rendered on the graphite web page compared to doing it via a middleware that would inspect HttpRequest objects - this IMO would mostly likely be a little inefficient. Sanitizing on the fields that require it is more faster.
The Dashboard save functionality has a possible security issue allowing for an XSS attack, this PR fixes it. In the future, the sanitize utility function can be used for other input fields that require it.

Codecov Report

Merging #2620 into master will decrease coverage by 0.10%.
The diff coverage is 77.77%.

@@            Coverage Diff             @@
##           master    #2620      +/-   ##
==========================================
- Coverage   80.21%   80.11%   -0.11%
==========================================
  Files          87       87
  Lines        9335     9282      -53
  Branches     1988     1979       -9
==========================================
- Hits         7488     7436      -52
+ Misses       1564     1562       -2
- Partials      283      284       +1

Impacted Files
Coverage Δ

webapp/graphite/dashboard/views.py
98.54% <66.66%> (-0.72%)
:arrow_down:

webapp/graphite/util.py
90.63% <100.00%> (+0.92%)
:arrow_up:

webapp/graphite/tags/utils.py
89.18% <0.00%> (-0.94%)
:arrow_down:

webapp/graphite/readers/rrd.py
85.48% <0.00%> (-0.67%)
:arrow_down:

webapp/graphite/functions/params.py
86.73% <0.00%> (-0.33%)
:arrow_down:

webapp/graphite/carbonlink.py
51.61% <0.00%> (-0.32%)
:arrow_down:

webapp/graphite/functions/views.py
94.28% <0.00%> (-0.31%)
:arrow_down:

webapp/graphite/node.py
92.59% <0.00%> (-0.27%)
:arrow_down:

webapp/graphite/readers/multi.py
92.15% <0.00%> (-0.16%)
:arrow_down:

webapp/graphite/tags/localdatabase.py
93.51% <0.00%> (-0.15%)
:arrow_down:

... and 11 more

Continue to review full report at Codecov.

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

Cool! Thanks a lot, @StephenDsouza90 , for fixing this.

The problem isn't in the dashboard save per-se, it is caused by the dashboard name being displayed in an unsafe manner.  Stripping potential "bad" sequences from the dashboard name isn't a bad idea, but to properly fix the XSS we'll also need to make sure that we html-escape the name everywhere it's displayed.

The problem isn't in the dashboard save per-se, it is caused by the dashboard name being displayed in an unsafe manner. Stripping potential "bad" sequences from the dashboard name isn't a bad idea, but to properly fix the XSS we'll also need to make sure that we html-escape the name everywhere it's displayed.

Hi @DanCech thanks for the quick feedback!
I'm still a bit unclear on what more needs fixing, if you can point me in the right direction and guide me.
I understand the problem isn't in the dashboard save functionality, but rather the "name" that's being rendered that allows for an XSS attack, but this is exactly what i've tried to tackle - I strip out potential "bad" sequences in the name and in the dashboard's state before it gets saved to the database. This should render the name everywhere correctly since the name will be fetched from the database which is the source of truth and it's saved in a safe manner.
For an attacker trying to inject XSS into the name will be the only person who will be affected by XSS for that current state and session, unless he/she refreshes the page - for other end-users/clients, it shouldn't affect them as what gets saved into the database will be "safe" and that's what will be rendered to them.
So still wondering if this solution is good enough? Or maybe if you could give me a scenario where this attack can still be exploited, I could try to work around that.

Hi,
I'm still awaiting feedback and next steps on how to move forward with this PR based on my last comment. Would be great if one of you could point me in the right direction.

Basically whenever we display the name it should be html-encoded so that any "special" characters are encoded as html entities rather than interpreted as html.
The docs for the strip_tags function explicitly state that it does not produce strings that are html-safe https://docs.djangoproject.com/en/3.0/ref/utils/#django.utils.html.strip_tags, and that html entities should be escaped when displaying the string.

Hi @DanCech
Thanks again for the feedback, you're right, my bad!
I just checked there are two ways to solve this. We can go with Mozilla Bleach that does it in a clean way:

>>> import bleach

>>> bleach.clean('an <script>evil()</script> example')
u'an <script>evil()</script> example'

Or we can go with Django's escape() function:

Returns the given text with ampersands, quotes and angle brackets encoded for use in HTML. The input is first coerced to a string and the output has mark_safe() applied.

>>> from django.utils.html import escape

>>> escape('an <script>evil()</script> example')
'an <script>evil()</script> example'

With bleach, the only disadvantage is that we'll be adding yet another library, which might not be a good thing.
I'll go ahead with the escape() for now unless there is any objection.

The escaping needs to be done when we're actually inserting the name into the html on the client side, so you'd want to use the htmlEncode function in dashboard.js to do that for dynamic content and a python library when we're building html server-side.

a possibly helpful example of escaping in the wrong place vs escaping in the right place: https://github.com/graphite-project/graphite-web/pull/2587

Thanks @ploxiln and @DanCech for pointing me in the right direction! Appreciate it. I'll be working on this later today.

The escaping needs to be done when we're actually inserting the name into the html on the client side, so you'd want to use the htmlEncode function in dashboard.js to do that for dynamic content and a python library when we're building html server-side.

If I understand @DanCech correctly, would the following be a good enough solution? i.e. to htmlEncode the dashboard name at the time of input in dashboard.js just before it gets saved in the backend - So what gets saved is what gets rendered? Something like this:
function saveDashboard() {
       <...>
       <...>
       if (button == 'ok') {
         // html-encode dashboard name from input
         text = htmlEncode(text);

         // hmtl-encode dashboard name
         setDashboardName(text);

         // save html-encoded dashboard name
         sendSaveRequest(text);
       }
       <...>
       <...>
}

https://github.com/graphite-project/graphite-web/blob/0ed7dd7500521fd3ef7acd011d615dbccec3ad2a/webapp/content/js/dashboard.js#L2723-L2737

You don't want to store the html-encoded dashboard name in the database, because then when you load it and html-encode it again you'll mangle it.  eg if you have a dashboard name like Testing > TestDash it'll html-encode to Testing > TestDash and that will be rendered correctly.  If you store the encoded string in the database then next time you load that dashboard it'll be html-encoded as Testing &gt; TestDash (because & html-encodes to & and will literally display in the browser as Testing > TestDash.  You want to store the actual name in the database and just html-encode it at the point it's inserted into an html document (either on the server side or in the client).

Thanks @DanCech and @ploxiln for pointing me in the right direction. Really appreciate it and thanks for answering my questions to get a better understanding of what solution is required.
I added a commit for the fix, let me know if it's inline to the solution you had in mind.


Support Ruby 3.0

Using Ruby 3.0, Pusher::PushNotifications.publish fails:
> Pusher::PushNotifications.publish(interests: [])
ArgumentError: wrong number of arguments (given 1, expected 0; required keyword: interests)

A bit more detail here.
the caze gem seems to be the culprit here. Neither the has_use_case nor export methods properly delegate keyword args resulting in the above error. they should handle *args, and **kwargs, like:
...
    define_singleton_method(use_case_name, Proc.new do |*args, **kwargs|
      ...
      use_case.send(use_case_name, *args, **kwargs)
      ...
    end
...

thanks again @jordansgrant, your PR has been merged and released as 2.0.1


Feature request: web edition

Is it possible to make an web edition of cats? My website makes use of the typescript ace playground editor which is still on typescript 0.9. It is not easy to upgrade this project and it seems that cats is the only project which is capable of newer typescript releases. The feature of writing typescript plugins within the website it selves it very cool check it out (http://www.vangulik.org/Ergometer/) It would be great if there will be a web edition of cats (maybe  more limited) which can run in a normal website.

Right now the dependencies on nodewebkit and other native features are limited. The main non-html API being used are the menubar and file IO. So it would be possible for example to:

replace nodewebkit menubar with the qooxdoo menubar (relative small effort).

Replace file IO with and API that gets its content for example from GItHUB (a bigger effort).

So certainly possible. That being said, the effort is right now focused on making it more feature complete.
However if anyone want to give this a go, more than happy to accept patches.
I’ll see if I can make the API that are “native" very explicit, so that is very clear what need to be changed from an implementation point of view.

On 07 Feb 2015, at 20:27, Tijmen van Gulik<EMAIL_ADDRESS>wrote:
Is it possible to make an web edition of cats? My website makes use of the typescript ace playground editor which is still on typescript 0.9. It is not easy to upgrade this project and it seems that cats is the only project which is capable of newer typescript releases. The feature of writing typescript plugins within the website it selves it very cool check it out (http://www.vangulik.org/Ergometer/ http://www.vangulik.org/Ergometer/) It would be great if there will be a web edition of cats (maybe more limited) which can run in a normal website.
—
Reply to this email directly or view it on GitHub https://github.com/jbaron/cats/issues/143.

Thank you for the quick reply. Making the native / none native clear would be a great help. I was already starting on converting cats to web, but I stopped because it was for me not clear what exactly needed to be done and how much effort it would be.


Tutorial Page btp-free-tier-account.md Issue. PROD

Tutorial issue found: https://github.com/sap-tutorials/Tutorials/blob/master/tutorials/btp-free-tier-account/btp-free-tier-account.md contains invalid tags. Even though your tutorial was created, the invalid tags listed below were disregarded. Please double-check the following tags:

software-product>sap-business-technology-platform; freetierservices

Affected server: PROD

pull request created: https://github.com/sap-tutorials/Tutorials/pull/20743


Rework event generation

This PR makes a number of (interrelated) improvements to the event generation system:

Previously, for methods overridden by other interfaces (think getEntity, getLiving, getHuman, etc), only one accessor and mutator would be generated. Due to the confusing way in which java determines which return type would be used, the method called wouldn't always be implemented. This PR generates accessors and mutators for all overridden methods - using only one field.

Instead of having all generated event classes extend from AbstractEvent, the base class can be specified using the new @ImplementedBy annotation, or the event generator plugin system. This is used to implement methods which don't conform to the accessor/mutator pattern expected by the class generator (getXXX, setXXX, isXXX).

The sponge event factory test has been extended to call all of the methods on event class, instead of just generating the classes. This ensures that all events generate as expected.

The event generator plugin system allows plugins or implementations to customize the resolution of event base classes, through registering an EventFactoryPlugin. This allows a different superclass to be chosen on a per-event basis, without introducing the requirement of a bytecode manipulation framework.
Several events have had methods modified or annotations added in order to correctly compile into bytecode.

Pretty.

The event generator plugin system allows plugins or implementations to customize the resolution of event base classes, through registering an EventFactoryPlugin. This allows a different superclass to be chosen on a per-event basis, without introducing the requirement of a bytecode manipulation framework.

This sounds cool, but what does it actually mean to a plugin developer?

This sounds cool, but what does it actually mean to a plugin developer?

It means you can raise custom events which cannot be fully generated by the class generator by specifying an abstract base class which implements the additional methods. The EventFactoryPlugin is capable of handling base-class resolution outside the scope of the normal annotation-based behaviour in the base system.


Freezes on macOS 10.13.6 wake from sleep

VSCode Version: 1.34.0
OS Version: macOS 10.13.6

Steps to Reproduce:

Open files from network shares then put Mac to sleep
Awaken Mac from sleep

Does this issue occur when all extensions are disabled?: Yes/No

We are building exploration builds that use a much newer version of our UI framework (Electron version 4.0.x). I wonder if this issue reproduces with one of these builds, could you try? Download:

macOS: Download
Linux: Download
Windows: Download

This is still an issue in the latest version (1.35.1) on 10.14.5. Is there any work in progress on it? It seems that the wake from sleep will disconnect the network shares (main issue) and then Code freezes and shows the "not responding" message with options to wait , reload or close. If you reconnect the SMB share and then reload, you'd expect the same files to reopen but they don't. Previous behaviour seemed to be that Code would complain the file wasn't found and reconnecting the network share would resume normal behaviour. Any way we could revert to that?


Best way to check tshark compatibility

How can I test that my tshark version is working correct? I am currently using tshark 2.6.20 and have some problem using nemesys_fms.py and do not know if this is a problem with my pcaps/code/whatever or if this might be a compatibility issue you are warning when starting the fms code...

That is a little bit tricky, since each dissector is written by other authors and tshark seems to allow a lot of freedom about how a dissector may format its JSON representation. Thus, a failure may be caused by a specific dissector behaviour that I did not observe in the past and thus not consider when parsing the JSON. In this case, the tshark output is not interpreted correctly and this "incompatible" in a way. On the other hand, it may simply be the case that I did not observe a specific field in any of my test cases for a protocol and thus did not add the definition. In this case it is a simple matter of defining it in the respective nemere.validation.messageParser.ParsingConstants subclass. This also lacks proper documentation, but if you encounter any such situation, I would be happy to assist. In this case, please add some details, e. g., the exception you encounter.

I see that is most unfortunate, but makes sense somehow. Thank you very much for your detailed explanation! I will see if there are tshark related pecularities that I find and are not yet handled and report/open PR accordingly if I can...


Keyboard navigation support

I'm impressed with your works. Can you direct me to or show how to create an UI that supports keyboard navigations like in native Bootstrap? Ideally, some basic navigations around navbar, menu, search, table, listvew ect.. Thanks in advance.

You should specify your case, there are tons of keyboard navigation usage options in an application.

Thanks for your response. Let me try with this diagram.

Once the page is loaded the focus is set first NAV button inside Purple div, the user should be able to navigate between NAV's with Left and Right arrows. Enter key event to select (given that no further drop down, creating complications).
From Purple user should be able to move down to Yellow and first land on Search box for instance (focus is set on this). User inputs search term and press Enter key.
User then Down arrow to search results and up again as desired. Enter event on each item is ready.
User should able to go Up to Purple or down to Cyan and Up again as desired.

OK. This isn't an issue of #QuantumUI. If you want to use keyboard there are two common way make an application managable with keyboard.
First one is (Accessible Rich Internet Applications (WAI-ARIA))[http://www.w3.org/TR/wai-aria/]
The second one is using javascript keydown event.
All components of #QuantumUI support keyboard events based on their requirements.
You can develop your custom solution by combination WAI-ARIA and javascript. Also, there are lots of documentation and plugins on internet.


Access to log should throw KafkaStorageException after the log has been marked offline

@ijuma I find NullPointerException in the server.log after the log directory is offline. Here is the explanation why there is NullPointerException and why it caused test failure:

KafkaApi thread (and probably ReplicaFetcherThread as well) is reading/writing log of a partition.
That partition is marked offline because the log directory is offline. AbstractIndex.closeHandler() will set mmap to null.
KafkaApi thread calls Log.roll(), which further calls TimeIndex.lastEntry(). The mmap, which is now null, is used. This causes NullPointerException.
The KafkaApiThread dies due to NullPointerException. Then requests from controller is not handled properly, which causes the system test failure.

Currently all read/write access to the log (and thus the log segment and index files) is protected with Log.lock. Log.closeHandlers() will also grab this lock before setting setting mmap to null. I think the right solution to this issue is to always check whether the log has been closed before trying to read/write the log, as is done in this patch.
I can change Log.dir to Option[File] if it is preferred.

@lindong28 there are 10 test failures. I asked @junrao to review this.

My suggestion is the following: introduce an accessor for dir and do the null check there.

The jenkins failures seem consistent and relevant?

For those failed unit tests, instead of setting dir to null when closing a log, we could probably just add an explicit boolean to indicate whether the log is closed or not.

@junrao @ijuma @guozhangwang Thanks for the comments. I have updated the patch as suggested.
I will reply to the comments as soon as possible. But since this is a blocker, if you think it is more efficient and preferred to fix it without me (because I may be sleeping due to time zone difference), please feel free to simply commit your fix :)

retest this please

@junrao @ijuma @guozhangwang I have updated the patch to address all comments and verified that the system test can pass after the fix.
Despite the NullPointerException issue, the other bug, which is likely the one that causes the system test failure, is that ReplicaManager.handleLogDirFailure() didn't properly mark the partition as offline in the allPartitions map. allPartitions map is not properly because handleLogDirFailure() tries to update the allPartitions while using an iterator based on the allPartitions.values.iterator. The issue is fixed after I transform the iterator to a set of partitions.

Thanks for the fix @lindong28. Aside from my question about introducing a withLock method, can we add a unit/integration test that verifies both fixes? Generally, system test failures indicate that unit/integration coverage is lacking.

@ijuma Sure. I added a test to verify that log.roll() will throw KafkaStorageException after the log.closeHandlers() is called.
I am not able to add test for the bug related to the iterator because that bug only happens if the log4j INFO is enabled. This is related to the line info(s"Partitions ${newOfflinePartitions.mkString(",")} are offline due to failure on log directory $dir") in ReplicaManager.handleLogDirFailure(). log4j INFO is disabled in integration test but enabled in the system test. That is why only system test catches this bug.

The usual issue with info/debug logs not being enabled during test runs. That's fair enough, we have a separate JIRA for that. Supposedly, if the logs were at info level, some integration tests would fail?

@junrao, is this ready to be merged?

@lindong28 : Thanks for the patch. LGTM.
A minor thing. isClosed is protected by the lock. So it probably doesn't need to be volatile. We can fix it in your followup patch.

Thanks for the quick turnaround @lindong28 @junrao @ijuma !


[release-v1.11] Create eventing-kafka-tls-networking.yaml artifact

Similar to https://github.com/openshift-knative/eventing/pull/369 but for EKB

some label fixes

/retest

/retest


add abmetrix system service

Description of the Change
using adminlogs and service mesh as an example, adding the capability to launch the abmetrix testing service.  I can cut and paste like the best of em.  But, I don't have the ability to test this out.  Also, need to figure out where the container image gets specified.

@nabilschear I'm trying to understand. Is there a case where we would want to enable / disable abmetrix on an image-by-image basis? If not, it might be better to take the approach the SSH image has where it's always enabled.

I saw that metatron also had some flags to turn on and off.  So, I figured that abmetrix was in a similar state.  Also, there's a lot of layers configs and overrides.  I'm not exactly sure where it is different than SSHD/metatron.  The only place where they seem to diverge is in types.go where there's extra params.

It looks like there is a big toggle as a command line flag for the executor, then a task attribute toggle.
I don't mind having containers require to opt in at first, gain confidence that the thing works, then make it opt out (like sshd).

I'm also curious about the failure mode if this container fails to start up. Does that halt a task?
Is there any way we can make this container "nice to have"? and never be able to crash a task?

@solarkennedy wouldn't systemd try a few times and then give up?

what's the next step for testing this out?

@nabilschear So, I think that you should get a dev stack and test it there. Nonetheless, I would make a couple changes to not make this controlled by container params and just make an executor-wide configurable.

i got into some git trouble, but I think I've got it implemented like sshd now.

i'm still going to experiment with this a little and see whether we can make it more optional.

ok @sargun and @solarkennedy, i think this is ready to go now.  I've tested the following conditions that all do what we want with this current build:

if there's no abmetrix container image in config.sh, task will still launch without abmetrix
if there is a container image but CONTAINER_ABMETRIX env var is set to false, task will still launch without abmetrix
if there is a container image but the abmetrix crashes on startup, task will still launch with dead systems abmetrix service
and obviously, if there is a container image (and optionally CONTAINER_ABMETRIX is true too), then abmetrix will start up and run correctly.

LGTM.


Form submission issue - Gatsby v2

Minor issue with the the form submission in Gatsby v2
For reference: https://github.com/gatsbyjs/gatsby/issues/7997
Change request: ./scr/components/Contact/Contact.js
line #37: fetch("/", ...) -> fetch("/?no-cache=1", ...)

@leeant06 	Does changing that on line 37 solves the problem for you?

@mohsenkhanpour : By adding ?no-cache=1 as shown above, the problem should be fixed.

Upgrading gatsby and gatsby-plugin-offline fixed the issue.

Hi guys,
I can't get the form working.
I've tried the no-cache=1 workaround but it's not working for me.
Is it working for you?

Forget it, it's actually working, don't know why but it took a long time to appear on netlify admin.


Fix startup crash on Android version < M

This change is

Review status: 0 of 1 files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


An option to overwrite starting offset

Possible solution for #1

I also thought on a more customisable way to do this. There can be an option to call custom function right after member assignments were received and before _updateSubscriptions(). This function will receive partition assignments and will be able to fetch/commit required offset for each or all received partitions.
This way it will be possible to use different offset for each partition (for example based on metadata value in previously committed offset). And by using some flag this function can change offsets only for the first time or on each rebalance.


Failed to login

This is the log file：
Error: System.Net.Http.HttpRequestException: 由于目标计算机积极拒绝，无法连接。 (<IP_ADDRESS>:7890)
---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝，无法连接。
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.g__Core|289_0(IPAddress[] addresses, Int32 port, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.g__Core|289_0(IPAddress[] addresses, Int32 port, CancellationToken cancellationToken)
at CRD.Utils.HttpClientReq.<>c.<b__7_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem queueItem)
at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.EstablishProxyTunnelAsync(Boolean async, CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem queueItem)    at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at CRD.Utils.HttpClientReq.SendHttpRequest(HttpRequestMessage request)
Response:

using a vpn?

使用 vpn？

yes

then i can't really help you to solve this

My previous version is usable, maybe there is another way?

nothing changed on the login process in the recent versions

Yesterday I was using version 1.5.13 and it worked fine, but now it fails. I updated to the latest version and it says login failed.

what VPN - because it seems your vpn routes everything through <IP_ADDRESS>:7890

try it with this version - https://github.com/Crunchy-DL/Crunchy-Downloader/releases/tag/v<IP_ADDRESS>

Thank you for your willingness to resolve this issue, but unfortunately it still shows login failed.

This is the log file：
Error: System.Net.Http.HttpRequestException: 由于目标计算机积极拒绝，无法连接。 (<IP_ADDRESS>:7890)
---> System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝，无法连接。
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.g__Core|289_0(IPAddress[] addresses, Int32 port, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.g__Core|289_0(IPAddress[] addresses, Int32 port, CancellationToken cancellationToken)
at CRD.Utils.HttpClientReq.<>c.<b__8_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem queueItem)
at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.EstablishProxyTunnelAsync(Boolean async, CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)    at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem queueItem)    at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at CRD.Utils.HttpClientReq.SendHttpRequest(HttpRequestMessage request)

that is the error is there something before?

This is the prompt that appears after I download the latest version. I could log in normally a few versions ago. Now, as soon as I log in, I get this prompt

enable the log mode in the settings and look into the file after you restared the downloader

尝试使用此版本 - https://github.com/Crunchy-DL/Crunchy-Downloader/releases/tag/v<IP_ADDRESS>

The log is a reminder of this version

i updated the release - https://github.com/Crunchy-DL/Crunchy-Downloader/releases/tag/v<IP_ADDRESS>
try it again - i also tested it now with clash and it worked fine

It works fine now, thank you very much


Dealing with initial values and rerendering

Description
Very often it is desirable to set initial values for a component in a template (especially in forms). Bindings are very nice for this, however what happens when the component changes its value?
Look at the following pseudoish code:
@customElement('my-child')
export class ChildComponent extends LitElement {

  @property({type: Object})
  value = {firstname: '', lastname: ''};

  render() {
    return html`<button @click="${(): void => {
      const value = {...this.value};
      value.firstname = 'Daisy';
      this.value = value;
      }}">Click me</button>`
  }
}

Now the initial value could set via property binding:
html`<my-child .value="${{firstname: 'Donald', lastname: 'Duck'}}"></my-child>`

Sadly, now sometimes if ChildComponent itself mutates its state, the changes will be overriden by the property binding of the parent. So, the change is lost. Given this is just a pseudo example I don't if this would happen in this example though. Is this expected/is this an anti pattern?
Possible remedies I see:

add a second initialValue property (I think that is not nice)
instead of mutating state within the component fire an event and get bind the new data to the component.
introduce a directive called once, which would only bind a value once.

Thanks,
Christian
Acceptance criteria
I think either something like a new directive would be nice or an addition to the docs.

I suspect that initial and default values are better dealt with in JavaScript, where the language provides more and more facilities for merging objects, accessing properties of possibly nullish values, and nullish coalescing.
In the example you gave you can make sure to preserve any outside value by using object spread even more:
@customElement('my-child')
export class ChildComponent extends LitElement {

  @property({type: Object})
  value = {};

  render() {
    return html`
       <p>${this.value. firstname ?? 'Not Set'}
      <button @click="${this._onClick}">Click me</button>
    `;
  }

  _onClick() {
    this.value = {
      firstname: 'Daisy',
      ...this.value;
    };
  }
}

There are too many options to show really. An important point to make is that it's probably best if you don't have state that's both internally an externally mutable. You don't want the component to overwrite externally set state even with good options for defaults.

At first I wasn't sure what you were going for with your example, I think your point being in your example firstname not being set by an outside binding?
I like the idea of using an object that contains both initial and current value. Being able to use spread is super handy there. Using two separate properties you do not really get that. That said I think you mentioned some important points when using lit-element and I believe those should be in the docs, so when I get the chance I will try to add a little section to the docs.
Thanks, @justinfagnani


Fastnlight: Watch americanbookpublishers.org

Fastnlight requests the watch of the watch_keyword americanbookpublishers\.org. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

americanbookpublishers\.org has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Ryan M in Charcoal HQ


doc: Update the style

Try to align with the Git man pages as much as possible.

Did a minor update. Use a definition list.


[feature] Expose event to listener functions

When using the built-in IPC methods, the first parameter to the listener function is the event. That event object is currently hidden when using electron-promise-ipc. It would be useful if that object were passed into the callbacks. That would allow much greater flexibility for developers to write the same logic that they could otherwise write with vanilla Electron. I am not looking to alter the request/response logic or send my own responses. There are a few properties found only on event.sender that are useful to me.

Can you tell me a little more about your use-case? I wrote this library as
an abstraction over the event-based IPC flow.  "Vanilla" electron still
works fine if you want to use events.
On Sun, Jun 16, 2019 at 12:05 AM bcallaghan-fri<EMAIL_ADDRESS>wrote:

When using the built-in IPC methods, the first parameter to the listener
function is the event. That event object is currently hidden when using
electron-promise-ipc. It would be useful if that object were passed into
the callbacks. That would allow much greater flexibility for developers to
write the same logic that they could otherwise write with vanilla Electron.
I am not looking to alter the request/response logic or send my own
responses. There are a few properties found only on event.sender that are
useful to me.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/sibnerian/electron-promise-ipc/issues/8?email_source=notifications&email_token=AAW3BRF2E3GBQBJACRABY6DP2W3XZA5CNFSM4HYQJ462YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GZXE67Q,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAW3BRC3FQOS37F2KCS4PZTP2W3XZANCNFSM4HYQJ46Q
.

I'm currently writing an Electron application that makes heavy use of promises in both the main and renderer processes. Nearly all of the IPC "events" in this app are actually single-fire RPC functions. I found myself using the following pattern extensively.
return new Promise((resolve, reject) => {
    ipcRenderer.once('response', (event, data) => resolve(data));
    ipcRenderer.send('request');
});

This library provides a very clean abstraction over this pattern, as well as more robust error handling and re-entrancy. My existing functions have only used the event object to send responses. I now have a similar function that opens a second BrowserWindow, waits for user interaction, and returns a single value back to the original renderer process. This second window should be a child modal of the first, but that requires a reference to the original window. I can get this reference through event.sender.getOwnerBrowserWindow() in the standard ipcMain callback. I would like to keep the Promise-based abstraction while also gaining the ability to use the event.sender object.

OK, I think I see the issue:

ipcRenderer makes a call to ipcMain requesting data.
ipcMain handles this call with .on() and wants to open a pop up window
to get that data (this is the part I’m not sure about)
To open that window it needs a handle to event.sender, which is not
exposed in the current API.

Is that correct?
I think we can figure out an API that works for this. Would it be as simple
as passing the event as the last argument to the .on() listener function?
So instead of calling listener(...dataArgs) it’d call
listener(...dataArgs, event).
On Sun, Jun 16, 2019 at 1:10 AM bcallaghan-fri<EMAIL_ADDRESS>wrote:

I'm currently writing an Electron application that makes heavy use of
promises in both the main and renderer processes. Nearly all of the IPC
"events" in this app are actually single-fire RPC functions. I found myself
using the following pattern extensively.
return new Promise((resolve, reject) => {
ipcRenderer.once('response', (event, data) => resolve(data));
ipcRenderer.send('request');
});
This library provides a very clean abstraction over this pattern, as well
as more robust error handling and re-entrancy. My existing functions have
only used the event object to send responses. I now have a similar
function that opens a second BrowserWindow, waits for user interaction, and
returns a single value back to the original renderer process. This second
window should be a child modal of the first, but that requires a reference
to the original window. I can get this reference through
event.sender.getOwnerBrowserWindow() in the standard ipcMain callback. I
would like to keep the Promise-based abstraction while also gaining the
ability to use the event.sender object.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/sibnerian/electron-promise-ipc/issues/8?email_source=notifications&email_token=AAW3BRH6RLSA44CG4D5YNLDP2XDKVA5CNFSM4HYQJ462YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXZFKLI#issuecomment-502420781,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAW3BRHVR4O6B3R7VVJZRLLP2XDKVANCNFSM4HYQJ46Q
.

OK, I think I see the issue:

ipcRenderer makes a call to ipcMain requesting data.
ipcMain handles this call with .on() and wants to open a pop up window
to get that data (this is the part I’m not sure about)
To open that window it needs a handle to event.sender, which is not
exposed in the current API.

Is that correct?
I think we can figure out an API that works for this. Would it be as simple
as passing the event as the last argument to the .on() listener function?
So instead of calling listener(...dataArgs) it’d call
listener(...dataArgs, event).

@bcallaghan-fri friendly ping!

Sorry for the delayed response. I usually only work on this project on the weekends.
Yes, you have the process correct. Passing event as the final argument should work. The main process handler would then look something like this.
promiseIpc.on('my-event', (arg1, arg2, event) => {
    const window = BrowserWindow.fromWebContents(event.sender);
    // Additional logic using the sender's window
});

Resolved in #9.


1.9 documentation updates

Related issue
Closes #609
Closes #613
Closes #652
Closes #663
Closes #670
Closes #672
Closes #675
Closes #677
Closes #678
Closes #679
Closes #680
Closes #684
Closes #689
Closes #729
Closes #736
Closes #692
Closes #693
Closes #697
Closes #695
Closes #700
Closes #701
Closes #702
Closes #703
Closes #704
Closes #705
Closes #706
Closes #707
Closes #708
Closes #713
Closes #714
Closes #719
Closes #726
Closes #727
Closes #728
Closes #731
Closes #732
Closes #734
Closes #735
Closes #738
Closes #739
Closes #741
Closes #742
Proposed Changes

Brings documentation current with 1.9 release.

Checklist

[x] I have read the contributing guidelines.
[x] I have inspected the website preview for accuracy.
[x] I have signed off my issue.

Ready for review.


Explore Godot 3D and implement voxels collisions in physics testbed

Godot 3D tutorial: https://docs.godotengine.org/en/stable/tutorials/3d/introduction_to_3d.html#spatial-node
Starting to learn with it!
This tutorial does not cover the basics pretty well. Let's find others:
https://www.reddit.com/r/godot/comments/an0iq5/godot_tutorials_list_of_video_and_written/
Godot and MagicaVoxel: https://www.reddit.com/r/godot/comments/9497gz/how_to_3d_voxels_to_pixel_art_with_viewports/
The 3D tutorials are not as complete as the 2D ones (https://godotforums.org/discussion/15767/request-beginner-3d-step-by-step-tutorial) and most of them are inside videos.
For example:
https://www.youtube.com/watch?v=VeCrE-ge8xM
Let's take a look to this eBook: https://godottutorials.pro/free-ebook-godot-game-development/ link
This tutorial seems to be a good reference: https://godottutorials.pro/fps-godot-tutorial/ (the same than the one included in the book).
And this article bout Godot tutorials for Beginners is also pretty interesting, pointing to 3D resources: https://conceptartempire.com/godot-tutorials/
I would focus in this youtube tutorial:
https://www.youtube.com/watch?v=VeCrE-ge8xM Godot 3.1: Creating a Simple 3D Game: Part 1 (Intro, Nodes & 3D Physics) #GodotEngine
All of those were started in https://github.com/Voxelers/mcthings/issues/137

Also, a good learning resource are the Godot demos about 3D. Once we have learnt the basic concepts around 3D learning by examples could be the best option.
The final of the trip is implementing https://github.com/Voxelers/mcthings/issues/137

Ok, let's focus on: https://godottutorials.pro/fps-godot-tutorial/ I will try to follow it as I did for the 2D game tutorial.

One of the most important things in 3D is to feel comfortable moving in the 3D world. Godot tries to mimic Blender but I can not reproduce the experience. I can zoom in and zoom out with "scrolling mouse". And I can rotate using the 3D axis GUI at top right like in Blender, or using right click and the mouse moves at the same time.
According to the Settings:

It should be like Blender. Maybe the issue is that I am using a touch pad.

Ok, the tutorial reached a point when it says: "Go ahead and create an environment." At this momento we must do a lof of things alone. Resize/scale the ground so it holds all the objects. Start adding all the objects, rotating them as needed to recreate the environment. I will try to do it but probably, the tutorial must give some steps on howto create the "environment".

I have found that it is critical to understand how to position the camera in order to see the scene. You must understand how to do it in order to be comfortable. Use the Preview button to see how everything looks from the camera vision.

And of course playing with lights is critical. In this case example I am turning of/off a directorial light.

The tutorial is going pretty well. After creating the environment from the models, partially, I have created the player, with her camera, so it is a first person shooter: the camera are the eyes of the player!
And right now, I am learning howto implement the movement of the player. It is pretty similar to what we did in 2D but in 3D, so it is a bit more complex. In the process I have seen that in GDScript you can use types!
var moveSpeed : float = 5.0
The basic idea is the same:

When an input is event is detected (keyboard or mouse), capture it:

func _input (event):
	# did the mouse move?
	if event is InputEventMouseMotion:
		mouseDelta = event.relative

When drawing every frame (if we have 60 fps, 60 calls per second), godot calls the _process method. In this method we implement the rotation

func _process (delta):

	# rotate camera along X axis
	camera.rotation_degrees -= Vector3(rad2deg(mouseDelta.y), 0, 0) * lookSensitivity * delta

	# clamp the vertical camera rotation
	camera.rotation_degrees.x = clamp(camera.rotation_degrees.x, minLookAngle, maxLookAngle)

	# rotate player along Y axis
	rotation_degrees -= Vector3(0, rad2deg(mouseDelta.x), 0) * lookSensitivity * delta

	# reset the mouse delta vector
	mouseDelta = Vector2()

In delta we have the delta time between frames. It is used to measure the time the mouse has been pressed in order to adjust
the amount of rotation to be done. With "lookSensitive" we can adjust the rotation speed. mouseDelta comes from the _input method. Not yet sure why to rotate camera in X we use the mouseDelta.y.
It is curious that for "godot y" rotation we use the camera, and for x, we use the player scene complete. Not sure why yet.

Ok, shooting also implemented. It is pretty easy to understand it.

Don't forget to implement https://github.com/Voxelers/mcthings/issues/122 in Godot!


Grant write access to the auto-merge workflow

https://issues.redhat.com/browse/HACBS-1600
Signed-off-by: Luiz Carvalho<EMAIL_ADDRESS>

Codecov Report

Merging #290 (a903695) into main (68f0cb6) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files

@@            Coverage Diff            @@
##              main      #290   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           62        62
  Lines         1738      1738
=========================================
  Hits          1738      1738

Should we use a secret for the name of the bot, currently  appstudio-staging-ci[bot]?
Knowing the name of the bot gives a potential hacker a gleam of hope.


Make Template Coq work if called from a tactic

I would like to use Template Coq from within Ltac.
The main problem seems to be the Program usage of tmLemma. In tactics, Program is probably not needed, because a template program can just generate subgoals.
I plan to work on this myself this week eventually, just wanted to document the feature request somewhere.

Sounds good, I guess the problem with tmLemma is that it’s supposed to return a global name no?

Now working for a subset of the programs (Lemma, Definition cannot be nested inside a proof)


ci: bump pymdown-extensions from 9.5 to 10.0

Description
Bumps pymdown-extensions from 9.5 to 10.0.
Added manually due to dependabot issues with rebasing to main branch.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] Refactor/improvement

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist

[x] My commit message is conventional
[x] I have run pre-commit on all files before creating the PR
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I have checked my code and corrected any misspellings

:tada: This PR is included in version 1.9.2-beta.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Reduce size of -install docker images for CI builds

For the CI builds we use -install Dockerfiles that pre-compile the dependencies for the project. These are typically found in the ci/kokoro/docker/ directory. These images are fairly large (I just clocked one at 2GiB), and could be smaller if we:
-# Removed the intermediate build artifacts for the dependencies (all those .o files) after installing, or
-# Used a stage and copy copied the /usr/local directory to the final stage, but that breaks caching to do quick rebuilds of the image in a PR.

Looks like this was done by googleapis/google-cloud-cpp#3458


Release builds to the forge

Hi @Phil-Friderici
Could you release v1.0.0 of this module to the forge?
Once @crayfishx 's v2.0.0 gets merged, we can ask Puppet to approve this module and they will want to see that all tagged releases are on the Forge.

1.0.0 and 1.0.1 ;-)

Will put them on the forge in one go after reviewing and merging v2.0.0, ok ?

I see you've merged 2.0.0 - woot! thanks for all the work and collaboration @Phil-Friderici and @ghoneycutt .... If we can get a forge release that would be awesome.

working on that at the very moment :)

feels a bit fishy to add metadata.json when it was not included in the original 1.0.0

uploaded them https://forge.puppet.com/ericsson/cgroups


No VR distortion when entering VR mode

Entering VR mode on desktop doesn't enter with distortion.
(Mac OS, 0.5 runtime)

The VR button is only enabled after you enter fullscreen.  This means that we would be requesting Fullscreen w/vrDisplay option after Fullscreen has already happened.  This unfortunately won't work.
The solution may be to move the VR goggles icon up along side the fullscreen icon.   What do you think @borismus?

Are you using a WebVR build? Have you tried with WebVRConfig.FORCE_ENTER_VR = true?

Yup, I'm trying this with Chromium with enable-webvr flag set and Firefox with the dom.vr.enabled = true.
I'm not aware of a WebVRConfig.FORCE_ENTER_VR  Where is that config found?   I looked in both the polyfill and boilerplate.

Ah found it.   Still the same result though.

For distortion, try with force enable distortion. It's a boilerplate
config. Ah but maybe not checked in. Also, likely adding an enter VR mode
button from non full screen view
On Fri, Oct 23, 2015 at 1:18 PM Casey Yee<EMAIL_ADDRESS>wrote:

Ah found it. Still the same result though.
—
Reply to this email directly or view it on GitHub
https://github.com/borismus/webvr-boilerplate/issues/45#issuecomment-150679518
.

For theVR button in non full screen view, for a quick and dirty job, you could just add the ability to pass a class to the created vr button. That way, developers can just position the button any way they like using css or jquery.

(It's checked in now).
@Willfire19 yes, that probably makes sense to add to the webvr-manager.js configuration. Would gladly accept a PR :)


Documentation for documentation field is misleading

The docs for the documentation field say

If no URL is specified in the manifest file, crates.io will automatically link your crate to the corresponding docs.rs page.

This sounds as if setting no URL is equivalent to setting the docs.rs URL. That is however not the case: in the crates.io search result list, the "Documentation" link will only show up if documentation is explicitly set in the toml file.
I am not sure if this is a bug in the cargo docs or the crates.io frontend, but it is certainly surprising.

Seeing as the individual crate pages will list documentation, I would personally chalk this up as a crates.io bug.
From #11685, my suspicion is that this is either an optimization or an oversight.  Apparently, adding the docs.rs link to the crate's page is done via Javascript and I imagine doing that for every crate on a search page might be a bit much.

@rustbot label A-documenting-cargo-itself

This should be reopened since https://github.com/rust-lang/cargo/pull/14562 got reverted.


NativeDemo crashed on iOS device

Test on iPad.  The crash is related with privacy.
After adding below setting in the plist file, the crash is fixed.
"Privacy - Camera Usage Description"
See:
http://www.techotopia.com/index.php/An_Example_Swift_iOS_8_iPhone_Camera_Application#Seeking_Camera_and_Photo_Library_Access

The iOS version is 10.1

Still crash when connect to room


Fixing default config lookup for bookshelves_view_type in BookshelfController

A wrong setting key (bookshelf_view_type) was used. So the configured default in .env was not used. This PR fixes this issue.
How to reproduce:

Set APP_VIEWS_BOOKSHELVES=list in .env File
Use a new user and open a random bookshelf (/shelves/{slug})

Expected: See books as list.
What actually happens: Default grid view is shown.

Thanks for offering a PR @philjak but this was not a bug or incorrect value used; Those are two different views with two different preference keys. There's currently no .env option for the default shelf view option.

@ssddanbrown Ahh, ok. Sorry. I just recognized that the default behavior changed during the last updates


Nielsen hyperlink broken (404)

Issue in ./help/components/dimensions/us-dma.md
https://experienceleague.adobe.com/docs/analytics/components/dimensions/us-dma.html?lang=en

@rdaubec06 - this is fixed now. Thanks for bringing it to our attention.


Front End Question

If I'm not incorrect, It seems that this book is specifically for writing the back-end API for a web application.
Can you recommend a technology/book to add the front end to the app?
Thanks..

Hello Dexter,
first of all, thank you for purchasing my book!
As for your question, there are a lot of good programming books about front-end and back-end interaction that I would like to recommend, including the series "ASP.NET Core and Angular" (also written by me), available here:
https://www.amazon.com/ASP-NET-Core-Angular-Full-stack-development/dp/1803239700/
I wrote this book together with "Building Web APIs with ASP.NET Core", and they share the same framework (.NET 6): however, we're just releasing the next edition (with .NET 8), which should be available in the next few weeks.
Other than my Angular book series, here are some other useful resources that I could recommend for using ASP.NET Core + React.JS:

https://www.udemy.com/course/building-applications-with-react-and-aspnet-core/ (good video course)
https://learn.microsoft.com/en-us/aspnet/core/client-side/spa/react?view=aspnetcore-8.0&tabs=visual-studio (great tutorials)


Update CI workflow triggers

Updates the CI workflow triggers so that all CI workflows are kicked off on every PR and then skipped if not relevant.
This is in contrast to how it works today, where CI jobs are not queued if no changes were made to the relevant library.
Doing it this way will allow us to make the CI workflows required checks in order to merge PRs.

@tnorling - I'm not familiar enough with the details of what you're doing to provide a useful review.  If you want to walk me through it, i could approve then.

@tnorling - I'm not familiar enough with the details of what you're doing to provide a useful review. If you want to walk me through it, i could approve then.

@shoatman I want to make build/test required checks on PRs in order to merge as I noticed last week we had tests failing consistently for 2 weeks and it wasn't caught.
The way our workflows are run today don't allow us to mark these required because they only get queued and return a response if the PR contains changes to the relevant libs so the PR check will end up getting stuck in "waiting for status" state if there's no changes to msal-browser, for example.
This PR changes the approach to always queue everything and then skip if it's not needed, giving Github's status checker a response for all CI workflows on all PRs (Skip, Pass, Fail).


(PUP-5025) RPM Epoch should be included in ensure field

Prior to this commit, the RPM provider did not include non-zero
epoch values in the :ensure field when calling RPM to install or
query packages.
This commit ensures that non-zero epochs are included.

/cc @haus what weirds me out about this a little is that apparently, the epoch value overrules any other part of the release string, so we'd treat 1:1.2.3-4 as greater than 0:3.4.5-7and so on. This is evidenced by https://github.com/puppetlabs/puppet/blob/master/lib/puppet/provider/package/yum.rb#L223-#L235.
Just checking - does that seem right? We've never included epochs in our ensure field before, so I wanted to make sure everything is sane.

I don't know much about this. @branan @haus @geoffnichols @shrug?

This seems like the right thing to do.

Fedora 22 is on the 2015.2 async list at https://confluence.puppetlabs.com/display/PROD/PE+2015.2.1+Agent+Platforms, so let's target stable for this PR.