Impala import errors in docker image

In new Hue docker images (gethue/hue:20221031-140101) I'm getting the following errors during docker image start:
[31/Oct/2022 22:51:59 -0700] query_api ERROR Some application are not enabled: No module named 'impala.server'
Traceback (most recent call last):
File "/usr/share/hue/apps/jobbrowser/src/jobbrowser/apis/query_api.py", line 45, in <module>
from impala.server import get_api as get_impalad_api, _get_impala_server_url
ModuleNotFoundError: No module named 'impala.server' .

Also  UI can't load with the following error:
[31/Oct/2022 22:53:53 -0700] middleware INFO Processing exception: No module named 'impala.conf': Traceback (most recent call last):
File "/usr/share/hue/build/env/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3.8/contextlib.py", line 75, in inner
return func(*args, **kwds)
File "/usr/share/hue/apps/jobbrowser/src/jobbrowser/views.py", line 117, in apps
return render('job_browser.mako', request, {
File "/usr/share/hue/desktop/core/src/desktop/lib/django_util.py", line 242, in render
return _render_to_response(
File "/usr/share/hue/desktop/core/src/desktop/lib/django_util.py", line 161, in _render_to_response
return django_mako.render_to_response(template, *args, **kwargs)
File "/usr/share/hue/desktop/core/src/desktop/lib/django_mako.py", line 127, in render_to_response
return HttpResponse(render_to_string(template_name, data_dictionary), **kwargs)
File "/usr/share/hue/desktop/core/src/desktop/lib/django_mako.py", line 116, in render_to_string_normal
result = template.render(**data_dict)
File "/usr/share/hue/build/env/lib/python3.8/site-packages/mako/template.py", line 439, in render
return runtime._render(self, self.callable_, args, data)
File "/usr/share/hue/build/env/lib/python3.8/site-packages/mako/runtime.py", line 874, in _render
_render_context(
File "/usr/share/hue/build/env/lib/python3.8/site-packages/mako/runtime.py", line 916, in _render_context
_exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File "/usr/share/hue/build/env/lib/python3.8/site-packages/mako/runtime.py", line 943, in _exec_template
callable_(context, *args, **kwargs)
File "/tmp/tmp64o8k9f0/jobbrowser/job_browser.mako.py", line 39, in render_body
from impala.conf import COORDINATOR_URL as IMPALA_COORDINATOR_URL
ModuleNotFoundError: No module named 'impala.conf'

Looks like this happens because for some reason Hue can't import /usr/share/hue/apps/impala/src . This can be tested by executing the following command in docker container:
 /usr/share/hue/build/env/bin/python3.8 -c 'from impala.conf import COORDINATOR_URL as IMPALA_COORDINATOR_URL'

In older hue docker images (gethue/hue:20220524-140101) it works fine and I do not see any issues.
As a workaround it is possible to manually set PYTHONPATH env with all the packages, for example:
PYTHONPATH="/usr/share/hue:/usr/share/hue/apps/about/src:/usr/share/hue/apps/beeswax/gen-py:/usr/share/hue/apps/beeswax/src:/usr/share/hue/apps/filebrowser/src:/usr/share/hue/apps/hbase/gen-py:/usr/share/hue/apps/hbase/src:/usr/share/hue/apps/help/src:/usr/share/hue/apps/hive/src:/usr/share/hue/apps/impala/gen-py:/usr/share/hue/apps/impala/src:/usr/share/hue/apps/jobbrowser/src:/usr/share/hue/apps/jobsub/src:/usr/share/hue/apps/metastore/src:/usr/share/hue/apps/oozie/src:/usr/share/hue/apps/pig/src:/usr/share/hue/apps/proxy/src:/usr/share/hue/apps/rdbms/src:/usr/share/hue/apps/search/src:/usr/share/hue/apps/security/src:/usr/share/hue/apps/spark/src:/usr/share/hue/apps/sqoop/src:/usr/share/hue/apps/useradmin/src:/usr/share/hue/apps/zookeeper/src:/usr/share/hue/build/env/lib/python38.zip:/usr/share/hue/build/env/lib/python3.8:/usr/share/hue/build/env/lib/python3.8/lib-dynload:/usr/lib/python3.8:/usr/share/hue/build/env/lib/python3.8/site-packages:/usr/share/hue/desktop/core/src:/usr/share/hue/desktop/libs/aws/src:/usr/share/hue/desktop/libs/azure/src:/usr/share/hue/desktop/libs/hadoop/src:/usr/share/hue/desktop/libs/indexer/src:/usr/share/hue/desktop/libs/libanalyze/src:/usr/share/hue/desktop/libs/liboauth/src:/usr/share/hue/desktop/libs/liboozie/src:/usr/share/hue/desktop/libs/librdbms/src:/usr/share/hue/desktop/libs/libsaml/src:/usr/share/hue/desktop/libs/libsentry/src:/usr/share/hue/desktop/libs/libsolr/src:/usr/share/hue/desktop/libs/libzookeeper/src:/usr/share/hue/desktop/libs/metadata/src:/usr/share/hue/desktop/libs/notebook/src:/usr/share/hue/desktop/libs/dashboard/src:/usr/share/hue/desktop/libs/kafka/src:/usr/share/hue/build/env/local/lib/python3.8/dist-packages:/usr/local/lib/python3.8/dist-packages:/usr/lib/python3/dist-packages"

After this everything works fine in the new Hue docker image, but I'm not sure if it's correct way to fix the problem. Maybe some fix shoud be done in Hue Dockerfile?

Hey @Aakcht, thanks for reporting the issue.
We'll take a look!

Does this still happen if you give the configs for Hive/Impala?

I can't test it with Impala config(since I don't have Impala available), but the issue still happens with Hive config on the new docker image.

To add to my previous comments, here is how it is possible to see the difference between the old and the new image with docker:
# for new image, this throws import error:
docker run --rm -it gethue/hue:20221031-140101 /usr/share/hue/build/env/bin/python3.8 -c 'from impala.conf import COORDINATOR_URL as IMPALA_COORDINATOR_URL'

# for old image, this works without errors:
docker run --rm -it gethue/hue:20220524-140101 /usr/share/hue/build/env/bin/python3.8 -c 'from impala.conf import COORDINATOR_URL as IMPALA_COORDINATOR_URL'

Update: An internal tracking JIRA has been created to look further into this issue. Thanks.

Hey @Aakcht, the latest docker images should be good now.
We have removed shipping impyla package which was messing up with the Impala path I believe.


Add helper for better test synchronization.

ISTM that, rather than synchronizing with wait_for_infoview_contents(...) to wait for the contents to match after a pin update, we can instead just wait until the infoview's pins are no longer loading or processing. I've only ported pin_spec.lua for now as a proof-of-concept, just wanted to first make sure we agree that this is a better way of doing this before going ahead with the full port.

Nice. This definitely looks nicer -- though can it be even nicer if it's just done in assert.infoview_contents automatically?

@rish987 this looks really nice I think, and more reliable! Going to merge immediately I think. I saw you said you had more in mind, obv send a follow-up with anything else? And well done as usual this is great.

Yeah it's still going to be a bit flaky since the fileProgress notifications seemed unreliable in Lean 3 (sometimes the infoview would get data before we got a single notification). Will follow up on it.

Ah, fun, ok, well it still seems in my unscientific tests to pass more often than before, so progress...


Feature: Doc Type groups

When working with a large number of components it would helpful to be able to categorize them into groups and also search/filter them in the create overlay. I wouldn't mind working on a PR if this is something you'd consider.

Coming back to this with renewed interest. I think it would really benefit our editors. I'm willing to submit a PR. Thoughts?

@dnwhte I've come around to your idea. Considering how the Data Type selection (on the Document Type Editor) is grouped, I can see it making sense when you have a larger number of blocks available.

I'm cool with you submitting a PR 👍
But I must also be honest, since Umb8 was released, I burnt out a little, my enthusiasm/motivation/commitment/mojo (whatever you call it) for our Umb7 packages has somewhat dwindled. With no current plans for future releases, etc. So it's nothing personal if I take a while to respond to PRs, etc. ❤

Completely understandable.
I have additional features I'd like added as well, so I'll probably fork it and run a custom build.
I'll also create a PR here for any feature I do add (including groups) just in case you're interested.


Surveys in DashBoard does not work

Summary:
Clicking on the Survey button in the dashboard does not do anything.
Steps to reproduce:
How can we reproduce the issue?
Click on Survey Button
Expected Behaviour
It should have opened Survey Activity
Observed Behaviour
Nothing happens on clicking
Device and Android version:
Redmi 7A Android-9
Screenshots:

I'll be working on it


Add support for bytes formatted images to submit_image and submit_gallery

Feature Summary and Justification
This feature enables a user to upload an image or images each represented as a Bytes Object to Reddit through the submit_image and submit_gallery functions.
For context, my own use-case involves backblaze.com, particularly this function of their API.
To summarize, a successful request to the backblaze API returns images as bytes objects. After looking into PRAW documentation I discovered that I could only submit an image through it by first downloading and saving the file before providing each of the modified functions the filepath(s) of any images I wanted to submit. Given my use case, this would mean I would need my machine to download, save, upload, and then delete any number of images on my system each time I made use of those functions.
These changes mean an object can be pulled in from a foreign API and passed directly to PRAW for uploading. It skips the awkward saving and deleting steps which should save processing time when scaled.

The "image_path" input parameter for both functions has been changed to "image". It still accepts image paths--it's only the name of the input parameter that has changed so as to more clearly indicate that Bytes Objects now work too. In the case of submit_gallery, the input can be mixed. So there could be any number of image paths and Bytes Objects submitted to the same gallery.
References

Python Bytes Objects

Majority of the failures appear to be caused by:
from PIL import Image
ModuleNotFoundError: No module named 'PIL'

Is the import of new modules permitted? Or does the addition of this module spell death for this PR?

Let's not add a new dependency as BytesIO would be sufficient.
I'll have to take a deeper look at this be just skimming though it, it seems that there is going to be breaking changes. These will need to have a deprecation period. You can tell that you have breaking changes if the existing tests fail without any changes.

Alright, sounds great. Would you like me to make changes and resubmit? Or are you going to make the corrections yourself? I haven't contributed to anything open-source before so I'm unsure of guidelines surrounding this sort of thing.

You got a great start! There is a few options here:

replace the existing image path parameter (like you've done)

this requires a deprecation

add a new parameter
make the existing parameter accept a file like object as well as a path (this isn't the most preferable option as it can cause confusion with path in the parameter name.

The preferable option is to deprecate the existing parameter, rename it, and have it accept both. This shouldn't be too difficult. Take a look at the existing deprecations for some examples of how it's been done.
This should get you started. Let me know if you need any help!

The preferable option is to deprecate the existing parameter, rename it, and have it accept both. This shouldn't be too difficult. Take a look at the existing deprecations for some examples of how it's been done.

I think that is common for many libraries, but have a distaste for the variability of the type. I'd prefer to have mutually exclusive keyword arguments media_path, and media_object and use a runtime exception (or whatever we commonly use for that) if both or neither are provided. Thoughts?

but have a distaste for the variability of the type

That is a good point.
I do like the idea of adding a new parameter to the media methods (including inline media) for file like objects. My only suggestion is to do _fp instead of _object. _object feels odd and makes me think there is a PRAW type that would need to be used.

I'd prefer to have mutually exclusive keyword arguments media_path, and media_object and use a runtime exception (or whatever we commonly use for that) if both or neither are provided. Thoughts?

The original version I wrote actually supported that, though not exactly as you've described. I decided to merge both parameters into one because I wasn't sure what the preferred way of handling the issue of both types being submitted was.
So, right now the checklist looks like:

Use BytesIO as the exclusive dependency to handle Bytes Objects
Implement mutually exclusive keyword arguments for media_path, and media_fp (not object)
Add a runtime exception if neither are provided for submit_gallery or if both are provided for submit_image (which means they are now optional parameters for both functions)

Do I have all that right?

media_fp works for me, as long as we're consistent (I'm not sure if file objects are passed anywhere else in praw).

Made the changes discussed here, though so far only to submit_image and submit_gallery. Both of those work, but because the changes were only made there several other functions now fail because they lack the new parameter (media_fp.) Will need to go through and adjust those functions to add it.
I removed the PIL import but couldn't figure out how to make use of BinaryIO (or even how to use it, Google was unhelpful.) Instead I decided to make use of the already included dependency of BytesIO proved useful enough however. The implementation works as follows:
magic_number = [int (aByte) for aByte in media_fp[:8]] # gets the format indicator                 file_headers = {                      tuple([int (aByte) for aByte in bytes([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])]): 'png',                     tuple([int (aByte) for aByte in bytes([0x6D, 0x6F, 0x6F, 0x76])]): 'mov',                     tuple([int (aByte) for aByte in bytes([0x66, 0x74, 0x79, 0x70, 0x69, 0x73, 0x6F, 0x6D])]): 'mp4',                     tuple([int (aByte) for aByte in bytes([0xFF, 0xD8, 0xFF, 0xE0])]): 'jpg',                       tuple([int (aByte) for aByte in bytes([0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46])]): 'jpeg',                      tuple([int (aByte) for aByte in bytes([0x47, 0x49, 0x46, 0x38, 0x37, 0x61])]): 'gif',                    } for size in range(4, 10, 2): # size will equal 4, 6, 8                     file_extension = file_headers.get(tuple(magic_number[:size]))                      if file_extension is not None:                          mime_type = mime_type.get(file_extension, "image/jpeg") # default to JPEG                         file_name = mime_type.split("/")[0] + "." + mime_type.split("/")[1]                         break
Every file format has a unique number of bytes in its header to indicate what format the file is in. This is the same every time for a format of a given type. PNG files for example contain the following decimal values (converted from hexidecimal): 137 80 78 71 13 10 26 10. These byte values are converted to a list of integers and used as a key for a hashmap to pull out the file type that is ultimately supplied before uploading.
Otherwise, media_path has been reverted to its original functionality. Overall I think I'm going to reach a point where I plateau due to not understanding the deeper workings of PRAW--that's probably when I'll need to hand it off to Joel for final touchups--since you offered.
Thoughts?

I don't understand the point of the conversion data inside of PRAW. Anything needed to convert from the PIL image format to BytesIO objects should happen on the caller-side. It looks like you can "save" to a BytesIO file in this way: https://stackoverflow.com/questions/646286/how-to-write-png-image-to-string-with-the-pil

I don't understand the point of the conversion data inside of PRAW. Anything needed to convert from the PIL image format to BytesIO objects should happen on the caller-side. It looks like you can "save" to a BytesIO file in this way:

The idea was to avoid converting as much as possible in this case. For example, the backblaze api returns a regular encoded (hexadecimal) String. I reasoned that this would be ubiquitous among similar services and therefore the simplest type a web browser could return, which I think means it has the best chance of being the format an end-user would make use of when passing to PRAW. Otherwise the file is probably stored on their local machine, so why wouldn't they just supply the filepath at that point?
( Changing it to require an image converted from PIL (or any other library) would not be difficult; it's just a matter of deciding which input format is preferable. )

Changing it to require an image converted from PIL (or any other library) would not be difficult; it's just a matter of deciding which input format is preferable.

For the media_fp it should be an object that has a read method just like File objects and when read it returns the bytes just as a file opened in rb mode. Any conversion to get into that format should happen on the user-side code not inside of PRAW.
There's an example here of saving a PIL file to a BytesIO object: https://stackoverflow.com/a/646297
You'll likely need to seek the BytesIO object back to position 0 after saving: output.seek(0).

So upon further reviewing your last post, I'm a little confused @bboe. The link you provided talks about converting an image to a bytes string, which is already the format the current code accepts--there's no conversion going on inside of PRAW in my latest update to this PR. The current flow would be for someone to utilize the code from your Stack Overflow link, reproduced here:
`
import io
with io.BytesIO() as output:
image.save(output, format="GIF")
contents = output.getvalue()
_outside_ of PRAW, and then they would submit thecontentsvariable (a string) tosubmit_imageor as one image insubmit_galleryin themedia_fp` parameter. It almost sounds like it already does what you're talking about--do you mind elaborating a bit?

How do I run tests on PRAW without pushing new code? This is a little too slow and tedious...

Should be able to do so by running pytest locally in the repository root.

Okay, after some effort I've managed to ensure all the unit tests are passing. A brief summary of what that means:

media_path and media_fp are both now considered optional parameters in the _upload_media() function.
Prior to my PR when media_path was the only input parameter, this code handled null inputs by assigning a default value to media_path. I just reused that to handle when both media_path and media_fp are null. (This means functions like submit_video which also make use of the _upload_media() function can remain unchanged while still retaining their funtionality.)

I added a test called "test_submit_gallery__invalid_image_fp", which can be viewed here:
`

subreddit = Subreddit(self.reddit, display_name="name")
    message = (
        "'image_fp' dictionary value at index 0 contains an invalid bytes object."
    )
    with pytest.raises(TypeError) as excinfo:
        subreddit.submit_gallery("Cool title", [{"image_fp": "invalid_image"}])
    assert str(excinfo.value) == message

    message = "media_fp does not represent an accepted file format (png, mov, mp4, jpg, jpeg, gif.)"
    encoded_string = "invalid_image".encode()
    with pytest.raises(TypeError) as excinfo:
        subreddit.submit_gallery("Cool title", [{"image_fp": encoded_string}])
    assert str(excinfo.value) == message

    message = "'NoneType' object has no attribute 'post'"
    png_image_header = [0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]
    invalid_png_image = bytes(bytearray(png_image_header) + encoded_string)

    with pytest.raises(AttributeError) as excinfo:
        subreddit.submit_gallery("Cool title", [{"image_fp": invalid_png_image}])
    assert str(excinfo.value) == message

This handles invalid objects, invalid file headers, and corrupted images being passed inmedia_fp`; the code I've added catches all of these and outputs (hopefully) descriptive error messages a layman could understand.
Let me know what you think. Hopefully it's getting there.

I'm taking a look at this currently.

Okay so there are a few things that are odd with our code that I think we should change prior to introducing your change.

_read_and_post_media should take a file pointer rather than try to open the file. This change will enable passing file-like objects to work more transparently.

_upload_media should not do any expected mime type checking. Instead it should only take the following arguments:

file_name (the name of the file, not the path)
fp (the File-like object)
mime_type (the mime type that will be sent)
upload_type (same as the current argument)

The expected mime type checking, and opening of the file should happen in another function like _prepare_media_upload which will only be used when a filename is provided. When a fileobject is provided, then it is necessary that the caller provides the mime-type.

Thoughts?

Amending my previous post. After looking into the code a bit further, it appears that merging media_fp and mime_type into a single dictionary would overly confuse the submit_gallery function too much to be convenient, so I'm going to default to your initial implementation suggestion.

So after reviewing the code I ultimately decided to throw out my response to point 2 and actually just go with what you recommended @bboe, it ended up being the best way forward in terms of readability and code complexity (or lack thereof!) I've removed the mime checking and replaced it with a user-supplied mime_type string.
I've added the following to try and ensure parity with media_path:
if isinstance(media_fp, bytes):
                mime_type = mime_types.get(
                    mime_type.partition("/")[1], "image/jpeg"
                )  # default to JPEG

The idea being to ensure a mime_type is always supplied which is a vestige of the old code.
Currently I'm adding little scraps of documentation inside of submit_image, submit_gallery, and upload_media so that mime_type has a documented reference for anyone who looks into the code in the future.

I believe that's already what it's doing, assuming this is the slice of code you're referencing (which explicitly includes the keyword "open"):

def _read_and_post_media(self, media_path, media_fp, upload_url, upload_data):
        response = None
        if media_path is not None and media_fp is None:
            with open(media_path, "rb") as media:
                response = self._reddit._core._requestor._http.post(
                    upload_url, data=upload_data, files={"file": media}
                )
        elif media_path is None and media_fp is not None:
            response = self._reddit._core._requestor._http.post(
                upload_url, data=upload_data, files={"file": BytesIO(media_fp)}
            )
        return response

Here it is media_path that is being opened before being sent along in the POST request, not media_fp. This functionality was not introduced by me however. It was already present. I may be misunderstanding what you mean though.

What @bboe is meaning is to change the existing functionality in PRAW before your changes:

Okay so there are a few things that are odd with our code that I think we should change prior to introducing your change.

To comment on what was said here, I agree with the first point. The second point, I think _upload_media could have the following signature:

file_name (the name of the file, not the path)
fp (the File-like object)
upload_type (same as the current argument)

I think the mime type could be removed here because it could be derived from the file name (which is what PRAW currently does). For the third point, I do think there should be a separate function like what @bboe suggested, however, it should require file_name if a BytesIO like object is passed. If a file pointer (i.e., BufferedReader) is passed, fp should have a name attribute containing the file name.

I also wanted to add that this PR should also include the methods for uploading images for inline media, emojis, widgets, and the stylesheet.

file_name (the name of the file, not the path)
fp (the File-like object)
upload_type (same as the current argument)

So would media_path still exist as a parameter? E.g., would the final function look like this:
def _upload_media(
        self,
        *,
        expected_mime_prefix: Optional[str] = None,
        path: Optional[str] = None,
        fp: Optional[bytes] = None,
        file_name: Optional[str] = None,
        upload_type: str = "link",
    ):

And to comment on the inline media/emoji/widget part, I'd like to nail down exactly how this part should work first. It will make copying the functionality over easier once the existing code in the PR has been finalized (submit_image, submit_gallery, _upload_media.)

To comment on this part:

it should require file_name if a BytesIO like object is passed. If a file pointer (i.e., BufferedReader) is passed, fp should have a name attribute containing the file name.

Could you provide an example of how that would differ from a BytesIO like object? Right now fp would just be an encoded String.

A BufferedReader is what is returned from with open("file_name", "r") as fp: and fp will have a name attribute with the value of file_name.

Going to continue working on this soon. Been otherwise occupied but I haven't abandoned this.

Just checking if you're still wanting this to be merged in? Is there anything we could help with?

I would. I did some work on inline images and that was giving me some
trouble. I'm going to be away until Tuesday but I'll push that up so you
can take a look at it. Thanks!
On Sun, Oct 23, 2022, 10:47 AM Joel Payne @.***> wrote:

Just checking if you're still wanting this to be merged in? Is there
anything we could help with?
—
Reply to this email directly, view it on GitHub
https://github.com/praw-dev/praw/pull/1891#issuecomment-1288129646, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AKJ6CFLJRQ6ACTARTSOU3E3WEVFZDANCNFSM54XBUT5A
.
You are receiving this because you authored the thread.Message ID:
@.***>

Using a BufferedReader for upload would be a welcome change.


Wrong output path

In ExcelProvider.fsproj, the  tag is \bin\Debug instead of bin\Debug. i.e., there's a leading \ that probably shouldn't be there. When you compile in debug mode, it writes the output to C:\bin\Debug.

This was fixed by moving to SDK-style proejct files


fix React warning: Unknown prop 'acceptedFiles' on  tag

…the element.

Please just add first commit
184e99494cb65d63db63ddc891fd15cb7cc130d4

done

please close this request,
and please accept new request #267


Reduced the number of times we read the same bytestream (from a jar) from 3 to 2.

Resolves https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/issues/216.
The DependencyReportTask now produced a even more gargantuan 'Component' with data needed to also find constants, so that the latter does not need the additional ByteArray.
I expect this should measurably reduce the number of allocations and therefore memory consumption. It should also mean less CPU usage, since we don't have to visit the same bytecode twice.
It may be possible to reduce this further, but that can be done (if ever) separately.

Build failed https://gradle.com/s/vhh22w5sgc7ww


jwt refresh

Hi
I have connectivity all working.
Yet the IOT console shows the following error when the jwt token expires. -
mqtt: SERVER: The authorization token expired.
Should the token be refreshed before its expiry to prevent this error.
The error does not impact operation.

Cool, just to clarify:

Sample is working without issue
Want to avoid seeing token expiration error

IF that's the case, I am guessing we'd need to calculate a value for the token expiration that would be +- some portion of its expiration time and refresh it before the token expires as opposed to waiting for the error and refreshing on error?

Yes. Spot on all working. Just want to avoid the error.
I think the resolution is correct. As I understand at the moment it waits for it to expire then regenerates on reconnect.

Are you planning a fix?

I'll happily accept the issue and will fix it when I can.

Hi,
I had the same issue. When the JWT expiration is set to 3600 seconds, Google disconnects after 1hour and 20 minutes with the JWT expired error. So just disconnect after 3600 seconds and reconnect again (jwt is refreshed upon connecting in the code). This solution is also prescribed by Google:
https://cloud.google.com/iot/docs/how-tos/credentials/jwts#refreshing_jwts

Hi Any update on this?

@fabltd The behavior you are seeing is happening because there is a +-20 minute "grace" period that can extend or reduce the expiration of the certificate. If you wanted to, on your own, explicitly refresh the JWT, just add some code to the main loop like:
unsigned long lastMillis = 0;
unsigned long jwtMillis = millis();
void loop() {
  mqttClient->loop();
  delay(10);  // <- fixes some issues with WiFi stability

  if (!mqttClient->connected()) {
    connect();
  }

  // TODO: replace with your code
  // publish a message roughly every second.
  if (millis() - lastMillis > 60000) {
    lastMillis = millis();
    //publishTelemetry(mqttClient, "/sensors", getDefaultSensor());
    publishTelemetry(getDefaultSensor());
  }

  if (millis() - jwtMillis > (39*60*1000)) {
    getJwt();
  }
}

I'm not sure this should be the default behavior of the library.

@gguuss In my experience you need to disconnect and reconnect in order to refresh the JWT

The JWT will refresh when it expires. There was a bug in how TLS was connected that was fixed.

@gguuss I have the same problem, just wanted to report this as a bug. I spend hours and figured out everything abow. Calling getJwt before the next keepalive should be enough according to the google article you mentioned about refreshing the JWT. But it isn't with 1.1.8, I just tried all above workaround attempts, only reconnect works... which is not nice. For that short period, there is no connection with the device and the service is down for some seconds, logs are cluttered with unmeaningful disonnects, etc.
I see this TLS bugfix with the added line with the skip variable, but honesty, I don't understand yet what implication it has with the situation. :)
Can you please confirm that this TLS commit fixes this in the next release?
My other issue is that I cannot really grasp the reasoning behind marking this as an enhancement as keeping a connection open is kind of pretty basic requirement in IoT. Frankly, without this workaround suggested above given user is struggling with server-side disconnected devices, that given the state of the 1.1.8 code, does not even recognise the disconnects and sits there for long time before some watchdog kicks in.
I know everyone should implement watchdogs, keepalives and such stuff, but aside from that this is a bug imho, with all my due respect to the team who made this code, that is awesome. You know, I just cannot really enter my door sometimes 😄
Cheers!

I have just merged a new change into master that preemptively reconnects the client. Feel free to try it out, I'll probably stabilize it and release a new version soon.

Anecdotally, I have been running an ESP8266 since yesterday and am no longer seeing any Authorization token expired messages so this should be fixed in master and I'll close when I complete the next release.

Sir, thank you, Sir. :)

Anecdotally, I have been running an ESP8266 since yesterday and am no longer seeing any Authorization token expired messages so this should be fixed in master and I'll close when I complete the next release.

I started testing this afternoon, and I can confirm it's been running without the token expired log message.

I'll close the issue after releasing the library, this hopefully will happen early next week!

This should appear in the Arduino library as v1.1.9 when the release gets picked up, closing!


Add the request/response conversion to/from zend-http

This PR adds the request/response conversion to/from zend-http.
To do:

[x] PSR-7 response to Zend\Http\Response
[x] Zend\Http\Response to PSR-7 response
[x] Zend\Http\Request to PSR-7 request

The PSR-7 request and response are built using zend-diactoros.

@weierophinney the PR is complete, you can review, thanks.


SSL pinning only for DER format

[x] I've read, understood, and done my best to follow the *CONTRIBUTING guidelines.

What did you do?
I cope with SSL certificates pinning. I downloaded the certificate via Firefox in PEM format with crt file extension.
What did you expect to happen?
The certificates are pinned.
What happened instead?
Framework didn't pin my certificates as a result I got the error "Cancelled. Code: -999". Then I tried to debug the code inside the library. I figured out that the function SecCertificateCreateWithData returns nil if the certificates are not in DER format.
So to fix the issue I had to export the certificates as in DER formats with crt file extension.
Please, update the documentation or implementation.
Alamofire Environment
Alamofire version: 4.5.1
Xcode version: 9.0
Swift version: 4.0
Platform(s) running Alamofire: iOS 9-11
macOS version running Xcode:  10.12.6
Demo Project

Launch the project, see at the console.
Enable the certificate apinasagov_der as Target Membership.

Alamofire-SSLPinning-Issue.zip

Hmm, you're right, it's not mentioned in the documentation. We'll be rewriting the certificate pinning for Alamofire 5, so we'll see about both better error handling and better documentation then. See #2249. I'll see if we want to updates the docs in the meantime.

Similar to #2384, supporting a custom error here would require radically refactoring how we currently handle the authentication challenge methods.

As I said on #2384, I've got a prototype working that should allow better error handling for this case. Hopefully we can integrate it into Alamofire 5.

I'm tracking these enhancements in #2477.

@jshier  Any documentation for Pinning SSL certificate with Alamofire 5?


usb.core.find device object how can i write(No response from developer)

after getting device object i'm trying to write like this but getting error
dev.write(endpoint=0x00,data=[0x7E,0xA1,0x81, 0x83,0x81, 0x40,0x00,0x01, 0x41], timeout=4000)
error as:
File "C:\Users\Lab7\AppData\Local\Programs\Python\Python37\lib\site-packages\usb\core.py", line 231, in get_interface_and_endpoint
raise ValueError('Invalid endpoint address ' + hex(endpoint_address))
ValueError: Invalid endpoint address 0x0

I don't think you can use write for endpoint 0. Try dev.ctrl_transfer instead?

This is not an issue. Please use mailing list for technical support.


Add option to re-unpack image or manually invalidate unpacked data if certain options are changed

Options like rotation can affect data unpacking. This means that if we do:
with Raw(filename='somefile.raw') as raw:
    raw.save(filename='somefile.ppm')
    raw.options.rotation = 180
    raw.save(filename='somefile_rotated.ppm')

It won't work for some filetypes / cameras (because data is already unpacked and cached after the first unpack call).
We should either invalidate the unpacked data if one of these options is used and unpack again, or have an option to force unpacking on the unpack method and any method that calls it (eg. save).
A discussion should happen about how this is done.

At the moment, it looks like we'd have to close / open the file each time it's saved. This would break the expectation in Python land of "the file is open as long as the context manager is in use".
@campaul I'm starting to think we should just document these options and let people handle the context managers / open / closing as they see fit if their camera requires it.


Feature request: "lfs worktree add" command that's similar to "lfs clone"

Since using worktrees is my MO, and since it's a suggested workaround for #766, It would be great to have an explicit command that does as much lfs work as possible in bulk when you want to add a new worktree.
From recent experience, git worktree add took more time than a git lfs clone plus a git lfs fetch --all so I suspect there are savings to be had there that are very similar to the savings you're getting from git lfs clone for cloning a repo.
In truth, it probably needs to be little more than a wrapper around worktree add (sans filters), cd <worktree dir>, and lfs pull.

Worktree support would be something I'd like to see in LFS, though I'm not sure where it fits within our current roadmap. I'm going to CC in some other LFS folks and try and get some more :eyes: on this.
/cc @technoweenie @rubyist @sinbad @larsxschneider

Actually using the worktrees once you have them works great. It's especially good for LFS because lfs-fetch does store all the large files in one place so all your worktrees can share them.
Creating a new worktree, however, is slow like a git clone would be slower than a git lfs clone.
I have a git alias that does what I'm suggesting, but I think it would make a simple command and make a lot of sense alongside lfs clone.

@dakotahawkins What does your "git alias" do? I suspect it:

Creates a worktree with a disabled LFS filter
Run git lfs pull
Is this right? If yes, then I believe the https://github.com/github/git-lfs/pull/1382 could speed this up a lot 😄

Yeah that's pretty much what it does. #1382 would speed the lfs checkout side of things up but an lfs worktree add would still speed up the download by doing it in batch for anybody who either doesn't want to or doesn't know how to make an alias to do that.

I'm also going to try speeding up checkout by writing information directly to the index file, but #1382 would still be necessary for a lot of other uses of the filters!

Yeah I added worktree support a while ago but as with git checkout it still suffers from the multiple-smudge-process-fork performance issue. In the past my suggestion for this has been that we add more wrapper functions, for checkout, pull, merge mainly since those are more heavily used, but worktree obviously suffers just as badly as clone, it's just that fewer people use it.
I do believe #1382 will basically make all of the wrapper commands redundant. You mention that it won't address the batching, but actually it might be able to if we're smart about it. Although the main benefit of the first iteration of the filter streaming would be just to re-use the filter process, there's no reason why we can't refine this, and cheat: we could just pretend to get the real LFS content when called, but actually just write the pointer to begin with, and remember the list of files. When the filter process is terminated, we could then perform the batch calls to grab the real data, effectively an internal git lfs pull specifically for those files/oids. It would require the update-index optimisations too to attain top speed, but that would address the batching issue. We could potentially start calling batches as we hit 100 items in the filter, and start fetching the data, but the checkout would have to wait until the end of the process to avoid clashing with other index updates. We'd have to examine practical issues like how reliable is it that we'll get a terminate event we can do this 'mop up' with, and make sure that git doesn't have any unwritten index data at this point which will screw up any modifications we make to the working copy at the end of our filter stream process (maybe you can confirm that @larsxschneider?), but I think there are lots of opportunities opened by this model.
For that reason I think spending time on more wrapper functions would be a mistake at the moment.

That's probably true, in which case close this with "no plans to implement".
I'd add a more generic concern that all of that seems like it will require locking the index for a relatively long time while a bunch of various operations must all succeed (file I/O, network transfers, etc) in order to wind up in a good state. If just part of one of those operations fails for any reason, you'd be hosed!

Does LFS do any kind of global safety operation with the index (like copy it to a temp location and copy it back if part of something that involves index-writing fails)? At least that way it might have failed, but your index is at least back where it started.

I'd add a more generic concern that all of that seems like it will require locking the index for a relatively long time while a bunch of various operations must all succeed (file I/O, network transfers, etc) in order to wind up in a good state.

I don't think so - as I say you can write the pointer data to the working copy when the filter request initially comes through, so if the process is halted in the middle the state is stable & clean - the clean filter does a passthrough on pointer files in the working copy, not only because of this kind of problem but also because you can exclude folders you don't want actual LFS content for.
When it comes to updating the index at the end it would be the same as git lfs checkout.

Does LFS do any kind of global safety operation with the index (like copy it to a temp location and copy it back if part of something that involves index-writing fails)? At least that way it might have failed, but your index is at least back where it started.

Since we only ever update the index via git update-index we don't have to. Obviously any future direct writing to the index for performance will need to be a lot more careful.

@sinbad I like you batching idea. However, the big problem is to trigger the last batch for Git-LFS. I already tried to send a "git is done" event in my filter protocol but this is not easy as Git can die in any function. Maybe I send a "git is done and no errors happened" - this should be easier.

@larsxschneider yeah that makes sense - I think it would be ok that this event only happens on successful completion, because the intermediate state (pointers in working copy) is still 'safe'. Also only doing the checkout at the end on success reduces the number of possible state combinations we have to handle. My main concern is that the 'terminate' message should happen only when git is completely done modifying both the working copy and the index, so we're free to do any post-processing.

Sending a "git is done" event is difficult because Git would shutdown the filter process quickly after anyways. Can we intercept this shutdown? Could this be our trigger for the last batch?

Somewhere here: https://github.com/github/git-lfs/blob/c21de411141a7536689a63e1f82bcc02f46fdf83/git-lfs.go#L16-L33

Can't git send a graceful termination message then wait for the filter to exit? This is what for example the custom transfers system in git-lfs itself does when talking to external processes.

OK I think I found a way. Let's see what Git core thinks about it:
https://github.com/larsxschneider/git/blob/e128326070847ac596e8bb21adebc8abab2003fc/Documentation/gitattributes.txt#L441-L448


Username Validation

In auth.py, create user input validation for when the user creates a username for their TaskTok account.
Ensure that the input from the user is:

Valid characters (Letters and numbers only)
Within range (4-20 characters)
Is a string still after validation

Can I work on this one?

Ummm... who are you?

Validation based on original issue # 1 requirements, completed. Refer to issue #15 for further validation.

issue implemented by @jfergesonumgc


Added env's to be able to configure timouts

Signed-off-by: Boris Popovschi<EMAIL_ADDRESS>Issue #164
Description of changes:
Added FIRECRACKER_INIT_TIMEOUT_SECONDS env to configure init timeouts and FIRECRACKER_REQUEST_TIMEOUT_MILLISECONDS for request timeouts.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@nmeyerhans @xibz @sipsma PTAL

@samuelkarp Done.

Guys, PTAL

Take a final look guys;)


private link

You might want to remove this link (and possibly to delete the file from docusign)
https://github.com/KleeUT/StepUpMfaExample2021/blob/main/web/src/OnLoadDataFetcher.tsx#L97

Thank you.


运行报错

大佬，我配好这个环境运行代码的时候报错
Traceback (most recent call last):
File "D:/下载/smart_classroom_demo-master/smart_classroom_demo-master/smart_classroom_app.py", line 7, in
from smart_classroom.dynamic_attendance_app import DynamicAttendanceApp
File "D:\下载\smart_classroom_demo-master\smart_classroom_demo-master\smart_classroom\dynamic_attendance_app.py", line 15, in
from pipeline_module.face_detection_module import FaceDetectionModule
File "D:\下载\smart_classroom_demo-master\smart_classroom_demo-master\pipeline_module\face_detection_module.py", line 3, in
from face_recog.models import face_recog
File "D:\下载\smart_classroom_demo-master\smart_classroom_demo-master\face_recog\models\face_recog.py", line 9, in
pose_predictor_68_point = dlib.shape_predictor(predictor_68_point_model)
RuntimeError: Unable to open D:\下载\smart_classroom_demo-master\smart_classroom_demo-master\weights\shape_predictor_68_face_landmarks.dat
你知道是什么原因吗？

别用中文路径

好的，解决了，感谢大佬


logger levels

At some point this new logger is probably going to be commited, but I do wonder how much the current (I assume they won't change in @hadis1000 commits) log levels make sense, do we need more and should we change current logging statements?
I assume most of us either have the logger completely on or completely off, but it would be nice to make this as sensible as possible.
enum class loglevel {
  NONE,    /**< don't log at all */
  ERROR,   /**< an ERROR which should not be ignored */
  WARNING, /**< a WARNING which might be ignored */
  INFO,    /**< a INFO which can be ignored */
  DEBUG,   /**< verbose INFO which can be ignored */
  DEBUG1   /**< verbose DEBUG which can be ignored */
};

Also I think we now use neither warning nor error with #106

With https://github.com/ZerataX/yacx/pull/109 will automatically a warning created, if error != NVRTC_SUCCESS


Add refreshContextSwitcher to LuigiClient

Description
To see how it works, switch your Console repo to the branch from THIS PR
Changes proposed in this pull request:

Add refreshContextSwitcher method to LuigiClient
Catch certain postMessage in ContextSwitcher component and refresh environment list

Related issue(s)

Resolves #290

I know it is not super easy to achieve, but would be great to see an e2e test for that feature.
Implementation suggestion: Enhancing the example to also read from session storage and if there is something, add it to the list. With cypress you store some value that the refresh will pick up.

After you add a new environment in the sample app and switch to it it looks like this:
 - not nice.

Let's keep this PR opened until we have a proper discussion about the context chooser. Let's talk about it after the holiday season.


OpenFolderDialog crashing application

https://github.com/AvaloniaUI/Avalonia/blob/9dbcc98a8709d8b185f6f0dc69df19e6873cb97c/src/Windows/Avalonia.Win32/SystemDialogImpl.cs#L112
I keep getting an exception thrown at this location when attempting to execute .ShowAsync() on a FolderOpenDialog. Here is a summary of my code:
private OpenFolderDialog dialog_Source; // Field
{
dialog_Source = new OpenFolderDialog();
dialog_Source.Title = "Select User Folder";
var path = await dialog_Source.ShowAsync(this);
}

Runs fine on Win10 x64, and macOS Big Sur (even in Recovery Mode), but I cannot get this to run in Windows PE. I have run other .NET Core apps fine in this environment, so I know it should be possible. Running this as a self-contained deployment so it should have all the dependencies. Any ideas?
Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
   at Avalonia.Win32.SystemDialogImpl.<>c__DisplayClass2_0.<ShowFolderDialogAsync>b__0() in /_/src/Windows/Avalonia.Win32/SystemDialogImpl.cs:line 112
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.<>c.<.cctor>b__277_0(Object obj)
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
   at UserBackup.MainWindow.click_button_Source(Object sender, RoutedEventArgs e) in ....MainWindow.axaml.cs:line 87

@imerzan Does it still fail if you use the managed system dialogs?

@Splitwirez I can check. Is this implemented within Avalonia or do you mean checking Microsoft.Win32.OpenDileDialog ?

@Splitwirez I can check. Is this implemented within Avalonia or do you mean checking Microsoft.Win32.OpenDileDialog ?

@imerzan It's a feature within Avalonia - there's an extension method called UseManagedSystemDialogs() in the Avalonia.Dialogs namespace. Just add that to your AppBuilder.
(You'll find that in the form of the BuildAvaloniaApp() function in Program.cs, unless you've moved it or something)
Side note: Loosely speaking, Microsoft.Win32.FolderBrowserDialog is more or less the opposite of the managed system dialogs.
Also, I should probably clarify: although this may allow you to band-aid your way around the initial problem, I'm not entirely certain whether that initial problem is expected under WinPE or a bug of some sort...

OK, I was able to get that to build.
Runs in WinPE, and the folder open dialog opens without any issues, but it appears to be a really archaic interface that doesn't have much functionality.
Trying to get the updated Win7/10 interface since it allows for click-to-unlock on Bitlocker Locked Drives where it automatically prompts for a Bitlocker Recovery Key. The Managed Dialog doesn't appear to have it.
I'm guessing WinPE is missing a system dependency of some sort for the Avalonia Interface, not sure how I could maybe pack it in with my self-contained app.

@Splitwirez OK, I was able to get that to build.
Runs in WinPE, and the folder open dialog opens without any issues, but it appears to be a really archaic interface that doesn't have much functionality.

@imerzan Yeah, I don't disagree there. That UI is provided by Avalonia itself, and well...I've tried to improve it a bit since the 0.10.x releases, but I'm not sure those improvements would be enough for your use case...

Trying to get the updated Win7/10 interface since it allows for click-to-unlock on Bitlocker Locked Drives where it automatically prompts for a Bitlocker Recovery Key. The Managed Dialog doesn't appear to have it.

...BitLocker whatnow? Yeah I fear that's...likely beyond my capabilities, unfortunately :C

I'm guessing WinPE is missing a system dependency of some sort for the Avalonia Interface, not sure how I could maybe pack it in with my self-contained app.

Not sure if that's a thing you can do, nor how, but...best of luck in your search. Hopefully someone else here will have a more...satisfactory answer/solution to offer.

...BitLocker whatnow? Yeah I fear that's...likely beyond my capabilities, unfortunately :C

Yeah, its a System Management tool I'm building for my org, we have a lot of systems with full disk encryption (bitlocker).
When using the native Windows File Explorer if you try access a locked disk it will give the Key Identifier and prompt for a recovery key to be entered.
I currently have the tool working via .NET5 (Console) but trying to port it to a GUI.
Most likely encountering a WinPE limitation. Appreciate the help :)


Time to hand this over the community

Maybe it's time to consider The Pull Request Hack for this project? Would be great if the community could now start maintaining it.

should be closed by the resolution of #1678


XForwardedHeadersFilter doesn't work right when route and resource are the same.

In XForwardedHeadersFilter.updateRequest(HttpHeaders updated, URI originalUri,
String originalUriPath, String requestUriPath)
Consider:
originalUri=http://localhost/foos/foos
originalUriPath=/foos/foos
requestUriPath=/foos
This code which creates the prefix for X_FORWARDED_PREFIX_HEADER
prefix = originalUriPath.replace(requestUriPath, "");
Actual:
prefix = ""
Expected:
prefix = "/foos"
I would expect the equivalent of Apache Commons Lang StringUtils.removeEnd(originalUriPath, requestUriPath) is the fix.
Real life use case would be a Spring Data REST service where your route was named the same as a collection resource.
Work Around: Don't name your route the same as a resource.

PRs are welcome


Missing Indel

Freebayes seems to be missing a deletion that I see in my BAM file at chr4:55133936 CT > C.
I see other haplotypes called in the region around this shown below:
chr4	55133918	.	CTCTCTGCCCAAGTATGCC	CTCTCTGCCCAAGTATACT,CTCTCTGCCCAAGTATGCTT,ATCTCTGCCCAAGTATGCT,CTCTCTGCGCAAGTATGCT,CTCTCTGCCAAAGTATGCT,CTCTCTGCCCAAGTATGC,CTCTCTGCCCAAGTATGTT,CTCTCTGCCCAAGTATGAC,CTCTCTGCCCAAGTATGCT,GTCTCTGCCCAAGTATGCC,CTATCTGCCCAAGTATGCC,CTCTCTACCCAAGTATGCC,CTCTCTGACCAAGTATGCC,CTCTCTGTCCAAGTATGCC,CTCTCTGCACAAGTATGCC,CTCTCTGCCAAAGTATGCC
chr4	55133937	.	TTTTTTTAGTGTGCATCAGAGGC	TTTTTTTAGTGTACATCAGAGGT,TTTTTTTAGTGTGTATCAGAGGT,TTTTTTTAGTATGCATCAGAGGC,TTTTTTTAGTGTACATCAGAGGC,TTTTTTTAGTGTGAATCAGAGGC,TTTTTTTAGTGTGTATCAGAGGC,TTTTTTTAGTGTGCATAAGAGGC,TTTTTTTAGTGTGCATCGGAGGC,CTTTTTTAGTGTGCATCAGAGGC,TTTTTTTAGTGTGCATCAGAAGC,TTTTTTTAGTGTGCATCAGAGGA,TTTTTTTAGTGTGCATCAGAGGT
Haplotype at 55133918 is of length 19 which means it ends at 55133937. The next Haplotype it looks at starts at position 55133937. Since the deletion I am looking at is the deletion of T at 55133937, perhaps it gets left out in the allele gathering step.
I changed a line in the AlleleParser::getNextAlleles() method from
long int nextPosition = currentPosition + lastHaplotypeLength;
to
long int nextPosition = currentPosition + 1;
which forces it to look at every position.
I then get the following haplotypes which includes the deletion I am looking for:
chr4	55133934	.	GCC	ACT,GCTT,GC,GTT,GAC,GCT
chr4	55133936	.	CTTTTTTTA	CTTTTTTA,CTTTTTTTTA,TTTTTTTTA
I am attaching an IGV screenshot of the BAM file and can provide supporting files in an email.

I am running freebayes (version: v1.1.0-46-g8d2b3a0-dirty) with the command:
freebayes --fasta-reference ref.fa test.sorted.bam  -t target.bed --pooled-continuous --min-alternate-count 2 --min-alternate-fraction 0.0000001    --min-base-quality 30  --use-reference-allele  --haplotype-length 20  --use-duplicate-reads > test.vcf

See my comments in #433


A newbie question. Connect Activity with bottom bar item.

Hi,
How can I connect different activities with the bottom bar, for example if I press  the second bar item, then will go to a different activity without losing the menu bar at the bottom.
I don't want just simple to change e.g a textView on the same activity like your demo, but to go on new activity that I have create already.
public void onMenuTabSelected(@IdRes int menuItemId) {
                if (menuItemId == R.id.bottomBarItemOne) {
                    // What need to write here to go to new activity without losing the bottom bar menu?
                }
            }

Do you have a wrapper activity that holds the BottomBar on its content view?
Then have the clicks start your individual tab activities.
That seems a little overboard though, any reason your not just inflating fragments?

I did it!
With fragments,here :
public void onMenuTabSelected(@IdRes int menuItemId) {
                if (menuItemId == R.id.bottomBarItemOne) {
                    // The user selected item number one.
                    FirstFragment firstFragment = new FirstFragment();
                    getSupportFragmentManager().beginTransaction().replace(R.id.content_id,firstFragment).commit();
                }

content_id is the id from the content_main.xml file


Fetching bib data of drafting rules documents

Is it possible to fetch the bib data of drafting rules documents like:

Rules for the structure and drafting of UK standards

Style guide for British Standards

Style guide for PAS standards

Style guide for BSI Flex standards

Another question:
From which repository relaton-bsi gets the bib data?
I know, for example, that relaton-iso takes it from relaton-data-iso, but what would be the case of relaton-bsi?

@manuelfuenmayor relaton-bsi fetches documents directly from BSI's website, so there is no static data repository.
@andrew2net can we have a list on relaton.org which gems fetch their data from, and the status of the repository updates? Thanks.

relaton-bsi gets documents directly from https://knowledge.bsigroup.com/search

Rules for the structure and drafting of UK standards
Style guide for British Standards
Style guide for PAS standards
Style guide for BSI Flex standards

If there is a need, we could maintain a static supplementary dataset for citation of these documents. I know these documents aren't available from the BSI search site.


⚠ Bofrost.de has degraded performance

In 507bb2b, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 2047 ms

Resolved: Bofrost.de performance has improved in d59081c after 7 minutes.


Preview of Bulk Stream

Description
This PR exposes the Bulk Streaming feature under the PREVIEW flag. Working as an opt-in feature through CosmosClientOptions.AllowBulkExecution (for a lack of a better name), or CosmosClientBuilder.WithBulkExecution, the SDK will send all point operations (Create, Read, Replace, Upsert, Delete) operations to the BulkAsyncContainerExecutor to be packed and sent as a single request for throughput optimized scenarios.
Batch requests can return a MultiStatus Status Code, which might mean that some operations succeeded, but others failed (like in the case of throttling), so the BatchExecutorRetryHandler is in place to retry individual operations that might have faced Throttles by evaluating through ResourceThrottleRetryPolicy and honoring the CosmosClientOptions.ConnectionPolicy.RetryOptions configuration.
This mode will squeeze the RU/s on the container, meaning that due to the increase of volume of data flow (versus doing these operations individually, which would take more time), it could incur into more 429s than sending them invididually, but if the RU budget is enough, the throughput (operations/sec) is much higher.
Type of change

[X] New feature (non-breaking change which adds functionality)

Closing issues
Closes https://github.com/Azure/azure-cosmos-dotnet-v3/issues/584

/azp run


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_292nphiz4j/clone/recipe/meta.yaml:16: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_292nphiz4j/clone/recipe/meta.yaml:21: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_292nphiz4j/clone/recipe/meta.yaml:43: missing_license_family: The recipe is missing the about/license_family key.
WARNING: /tmp/abs_292nphiz4j/clone/recipe/meta.yaml:43: missing_description: The recipe is missing a description
ERROR: /tmp/abs_292nphiz4j/clone/recipe/meta.yaml:43: missing_documentation: The recipe is missing a doc_url or doc_source_url
ERROR: /tmp/abs_292nphiz4j/clone/recipe/meta.yaml:43: missing_dev_url: The recipe is missing a dev_url
Errors were found

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_78tb9ws_xy/clone/recipe/meta.yaml:16: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_78tb9ws_xy/clone/recipe/meta.yaml:21: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_78tb9ws_xy/clone/recipe/meta.yaml:43: missing_documentation: The recipe is missing a doc_url or doc_source_url
ERROR: /tmp/abs_78tb9ws_xy/clone/recipe/meta.yaml:43: missing_dev_url: The recipe is missing a dev_url
ERROR: /tmp/abs_78tb9ws_xy/clone/recipe/meta.yaml:43: missing_license_family: The recipe is missing the about/license_family key.
WARNING: /tmp/abs_78tb9ws_xy/clone/recipe/meta.yaml:43: missing_description: The recipe is missing a description
Errors were found


Add importing multiple data files and grid-plotting

Add my commands on importing multiple data files in a directory (can be modified)
Update plotting and add grid-plotting commands
Update reshaping and calculating difference
Re-structure the script

Thanks @TinyMarsh. My response and comments are:

At first, I received "Rscript command not found" which might be a common issue. Path of R needs to be added using, e.g.
$Env:PATH +=  "C:\Program Files\R\R-4.3.2\bin"

I changed the R script again and updated renv.lock file as well. I kept both ways of importing multiple files as Option 1 (command line) and Option 2 (all csv files in the directory) and added one line of combining dataframes in option 1, because we will need to combine all the simulation results (csv files) to take weighted mean and plot. From my perspective, option 2 is more convenient when importing a large number of csv files, like 50 or 100. Option 1 is more flexible if we need to import, e.g. 20 of the 50 simulation results. We can keep both maybe.

Actually I've got error message when running R script, as described in #1.

Sorry I tried to make changes in this PR but ended up creating a new PR #4 . Apologize for this.

@jzhu20 did you have any code changes in this PR that you wanted to keep? If not we can close this PR and continue with #4.


Add a compose validator for sending to public streams that are not "#test here" on chat.zulip.org

It's unclear whether we'll want to do this as a more general feature, but we can implement the czo-only version of this as follows:

Adding configuration for a new UserHotSpot (at the data layer; it won't be displayed as one), perhaps called compose_public_stream_warning to keep track of whether we've shown this warning.  It should be initialized to True (already shown) for existing users and for new users unless settings.SHOW_PUBLIC_STREAM_WARNING is set on the backend (in which case it should be False).  (We would eventually replace this with a realm-level setting should we choose to make the feature more generally available, but this is quicker for the basic use cases).
Extend validate_stream_message with code for checking if the user is sending to a public stream, and compose_public_stream_warning is False, display the compose notice (and then set it to True).

@zulipbot claim

@zulipbot claim

Not currently planned. In general, we should put our efforts towards educating users about streams/topics in more organic ways.


cannot build readme.adoc in root directory

known issue with current asciidoc-gradle-plugin 1.5.2

therefore I cannot solve it here - need to wait for new asciidoc-gradle-plugin version!


update p5js.org/examples Mobile section to ES6

This will involve updating all examples in src/data/examples/en, src/data/examples/es, and src/data/examples/zh-Hans folders.
As a step forward in the transition to ES6 all of the examples on https://p5js.org/examples should be updated to use ES6 standard. This will often mean simply switching 'var' to 'let' or in some cases using es6 classes where applicable.
There are tons of resources online for learning about ES6. Here is an interactive guide that covers the biggest features.

@lmccart  can  I work on  src/data/examples/en, src/data/examples/es, and src/data/examples/zh-Hans
or is @AnimeshSinha1309 is going to update everything?


User Modules permissions are not elevated even in unsafe mode.

Cant sceIoWrite() anywhere besides the apps own app0, savedata0, ux0:data/ etc just like a "safe" application would have those restrictions.

It is one of the reasons why plugins are used as intermediaries, which allow full access as:

https://github.com/Rinnegatamante/kuio
https://github.com/CelesteBlue-dev/PSVita-RE-tools#ioplus-01-02--by-dots-tb

yes, but it'd be nice if this was built into henkaku without needing other tools to make it work.


Video stucks after ESN change

Bug report
Your Environment

Netflix add-on version: v1.12.7
Operating system version/name: Android 6.0.1
Device model: Xiaomi Mijia Youth Edition (MiProjLED1)

Used Operating system:

[x] Android
[ ] iOS
[ ] Linux
[ ] OSX
[ ] Raspberry-Pi
[ ] Windows

Describe the bug
On default configuration everything works great except video resolution (only 960x540). According to instruction I manually changed ESN from NFANDROID1-PRV-T-L3-XIAOMMIPROJLED1-XXXX  to NFANDROID1-PRV-T-XIAOMMIPROJLED1-XXXX and it worked. Now video resolution is actually FullHd but after ~2min of watching, loading spinner shows up, loads to 100% and video stucks  (but time is still normally going). The same behaviour if I try to fast-forward video.
Expected behavior
Video doesn't stuck
Actual behavior
Video stucks on FullHd
Steps to reproduce the behavior

Change ESN in addon settings
Run addon
Play video, wait 2min or fast-forward

The debug log can be found here:
kodi.log

Unfurnately you are using Kodi 18,
the addon for Kodi 18.x versions is not more mainteined and no more support will be provided,
suggest you to install Kodi 19 from scratch

hi, I'm having the exact same problem and I'm using kodi 19.3 for android

I have the same issue (in both Kodi 18 and 19). Changed ESN (PRV-T- to PRV-0-T-) for FHD, it works for a while, then video stucks but audio comes through. Please let me know if there's any workaround. :(


Dark theme: Make the keyboard dark

Note that the keyboard is dark if the user turns the invert colour setting on

related to #1444


Some suggestions for NNI quantizer to improve support for pytorch DataParallel API

Describe the issue:
It seems that NNI QAT_Quantizer doesn't support PyTorch DataParallel correctly, there are some suggestions for NNI to support DataParallel API.
1. Assign buffer variables with the in-place operation
https://github.com/microsoft/nni/blob/2ca227f8144f1bc2328a572017904f45afd4812d/nni/algorithms/compression/pytorch/quantization/quantizers.py#L254-L285
According to pytorch DataParallel document:

In each forward, module is replicated on each device, so any updates to the running module in forward will be lost. For example, if module has a counter attribute that is incremented in each forward, it will always stay at the initial value because the update is done on the replicas which are destroyed after forward.

In this case, I suggest that replacing = with torch.Tensor.copy_() for all buffer variables. For example, replacing module.tracked_min_input = torch.min(output) with module.tracked_min_input.copy_(torch.min(output))
2. Register module.weight as real buffer
https://github.com/microsoft/nni/blob/2ca227f8144f1bc2328a572017904f45afd4812d/nni/compression/pytorch/compressor.py#L473
I suggest that replacing self.module.register_buffer('weight', self.module.old_weight) with self.module.register_buffer('weight', self.module.old_weight.data).
Since self.module.old_weight is a Parameter which requires gradient, self.module.register_buffer('weight', self.module.old_weight) will cause that self.weight is still a Parameter which requires gradient.

Very meaningful suggestions, thank you! In the following releases, we will refactor current quantizer implementation and your suggestions will be considered seriously. What's more, you can submit PR to improve current design if possible.

@QuanluZhang we could consider about these meaningful suggestions during refactoring Quantization and Pruning.

Looking forward to using the new version of NNI :)

Looking forward to using the new version of NNI :)

Thanks @un-knight for the interactive feedbacks. This will be part of the long term efforts in @J-shang 's Quantization and Pruning plan, we will reference this issue as a use case of the bigger feature in future releases, stay tuned!

Looking forward to using the new version of NNI :)

Thanks @un-knight for the interactive feedbacks. This will be part of the long term efforts in @J-shang 's Quantization and Pruning plan, we will reference this issue as a use case of the bigger feature in future releases, stay tuned!

@QuanluZhang we could consider about these meaningful suggestions during refactoring Quantization and Pruning.

Does NNI v3.0 support multi-gpu training for model compression (pruner, distiller, quantizer)?
I found multi-gpu training via DataParallel is supported in v1.4 and here is the example:
https://github.com/microsoft/nni/blob/v1.4/examples/model_compress/multi_gpu.py
However, I found this DataParallel related issue is still open.


Don't throw an exception when serializing non-namespace elements

This allows us to write elements without declared namespaces as seen in the following XML:
<ns:foo xmlns:ns="...">
  <Bar/>
  <FooBar/>
</ns:foo>

Note: Technically these elements have namespaces, these won't be recognized by this library though until #23 is implemented. We'll however be able to pass them through during read -> modify -> write roundtrips.

When combined with #23 the test case for generic, non-ns elements fails. Maybe we can have a look at this together.

#23 is not meant to be merged, as it breaks the serialization of non-prefixed elements. Regardless, we can still have a talk sometime, if needed.

Cf. my updated comment on #24.


1.10.2 version cant use eu from ic2 machine

problem: cant use eu from ic2 machine
ic2: industrialcraft-2-2.6.245-ex110
Mekanism: Mekanism-1.10.2-<IP_ADDRESS>1
**Forge:<IP_ADDRESS>6

Duplicate of #4370


fix(axios): add back axios-retry

This should help alleviate issues when requesting data from the service.

:tada: This PR is included in version 1.1.0-alpha.9 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Enhance Logging for Job Cleanup and Reduce REPL Inactivity Timeout

Description

Added detailed logging to improve visibility during streaming job cleanup.
Decreased REPL job inactivity timeout from 30 to 10 minutes..

Tested manually to ensure new logs are correctly displayed during streaming job cleanup.
Issues Resolved
https://github.com/opensearch-project/opensearch-spark/issues/157
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Thanks for the changes!
Just minor comment that could you add some info logging when we shutting down thread pool and stopping SparkContext? thinking maybe helpful if we know the shutdown code actually runs. Thanks!

added more logging. Also reused JobOperator in FlintREPL as well.


permissions issues with MDE collector

Hello, we have some problems configuring the MDE collector.
This is linked to https://filigran.atlassian.net/browse/OBAS0-10
thank you

Closing this issue, the follow up bug has been open here https://github.com/OpenBAS-Platform/openbas/issues/2035


Display messages from SQL Server

@lucyzhang929 Have you looked into whether there are any race conditions here when running queries with multiple result sets? Would any messages show up out of order relative to the results themselves?

@corivera Tested a bunch of different queries and didn't see any issues with ordering


Fix error where default_css was missing

Ignore elements where there is no special css or js to load
Add test to check for regression on geojson popup
Fix selectors for a few tests
Bump version to 0.21.1

Fixes #200
Fixes #199

Had to fiddle with some selectors to get it working both locally and on github actions, not totally sure why the discrepancy, but now it's working @randyzwitch


Swap net6 in-proc hidden state, update SDK version and templates

Resolves #566
Resolves #567
Draft PR - this is to come after #570 and once the new SDK is in place, and the corresponding templates published. Templates PR here: https://github.com/Azure/azure-functions-templates/pull/1567
This will of course need to be rebased atop #570 and any other releases that come through before this is ready.
Current diff gist: https://gist.github.com/mattchenderson/c8fbdefc974f7f0acf06cb7d21af4030/revisions

Rebased against the commit from #570. The gist has also been updated. The templates remain placeholder values which will need to be updated, yet.

Updated over latest version. This is still missing the templates at present.

This PR now includes an update to include .NET 9 Windows support

The PR now includes the expected template version, though this is not yet published. This PR will be marked ready for review once the templates are published.


Enforce signed requests

There is a new security mechanism in town:
http://developers.instagram.com/post/116410697261/publishing-guidelines-and-signed-requests
Don't know, if the old system with signed headers is fully deprecated.
Documentation of the feature:
https://instagram.com/developer/secure-api-requests/

I change;
https://github.com/luizzgithub/Instagram-PHP-API/commit/d7168ea2948793b3165e3b57e6e352f51384a24d

hi @luizzgithub! can you try to re-do the changes with the same settings @cosenary use to format his code? (i think there's a mismatch between spaces/tabs, or the indent level)
currently it's not obvious, which lines you have changed!

I have been receiving "No matching code" errors from Instagram when trying to grant permissions to new users to my app, do you think this might be the cause? In such case, shouldn't errors be of the type "signature error"? Has anyone had the same problem?

@agustinbaretto I am having the same issues today. It seems that if I do the regular authorization and I return the access_token from the login page, instead of the code, I receive the correct access_token. I have no idea why this is happening.

@alinberce I solved my problem by changing my IP. It seems that it happens when you get blacklisted for some reason. I have already contacted Instagram and asked them why this might have happened but still had no reply from them.

@agustinbaretto  thanks for your answer. After restarting my heroku server it worked but I can randomly see the error... so sometimes it works sometimes it does not. Since I have the client_id working with normal auth flow and POST operations also work, I find it weird to be blacklisted somehow right when they made changes in the API. The app has worked in the same way, same amount of users for months now. So my guess is that they did some changes to accommodate the new API and some things are not right. I saw that the problem appeared for others too. Right now I am using normal auth (the access_token is retuned by login, and not the code) and all post operations are made with normal instagram calls from my android app, not the server. The limits are low but at least it works until I make the changes to switch to Secure API.
@luizzgithub  Thank you very much for posting your changes. I am not familiar with PHP too much (I am an android dev) so your code helps me a lot.

sorry , no time ;
@johannesnagl
@alinberce  Thank you , for your feedback!
my new change:
https://github.com/luizzgithub/Instagram-PHP-API/blob/master/src/Instagram.php

i agree that luizzgithub solution works.
i added the _generateSig function, changed the _signHeader function and added the following lines before if(isset($params)...
$sig = $this->_generateSig($function, $params);
$params = array_merge(array('sig' => $sig), (array)$params);

Any chance to get a working code in master before September, 1st, where the new security mechanism is required?
There are three pull requests at the moment:
#128 (red lights)
#141 (spin-off of #128, currently red lights due to coding guidelines)
#159 (green lights)

luizzgithub solution works

Take a look @beeseenmedia commit : https://github.com/beeseenmedia/Instagram-PHP-API/commit/caf7699d2ccfd2d4e0b1c3a1fd3e59a4094d6ae1

yeah, I am using my commit beeseenmedia@caf7699  which is basically @luizzgithub solution, with a few changes which added max and min id support for a lot of function and made a lot of them authorized api calls.

we went with https://github.com/cosenary/Instagram-PHP-API/pull/159 - highly recommended! thx to @jublo!

You’re welcome, @johannesnagl!

Merged.


Token renewal causes malformed JSON to be delivered with WAS v.<IP_ADDRESS>

Using WebSphere Application Server v.<IP_ADDRESS>, when the security token managed by proxy.jsp expires or is otherwise deemed invalid, the following happens:

The client browser (CLIENT) makes a request to the WebSphere Application Server (APP SERVER) for information required from the GIS REST service endpoint (GIS SERVER).
The APP SERVER delivers the request to the GIS SERVER along with a token that is invalid, presumably because of having expired but possibly for other reasons.
The GIS SERVER delivers a response (DENIAL RESPONSE) to the APP SERVER indicating that the token is invalid. This response is 61 bytes in length, contains 61 characters and is not passed back to the CLIENT.
The APP SERVER delivers a request to the GIS SERVER requesting a new token. This request contains valid credentials.
The GIS SERVER delivers a response containing a new valid token and corresponding duration information about that token. This information is not delivered to the CLIENT.
The APP SERVER re-delivers the original request from step 2 to the GIS SERVER for the information needed from the GIS SERVER. This request is accompanied with the new valid token delivered in step 5.
The GIS SERVER delivers a response containing the originally requested data (GOOD DATA), which is almost always far longer than 61B in length.
The APP SERVER attempts to deliver the GOOD DATA by handing the response string to the OutputStream but uses the Content-Length header from the DENIAL RESPONSE in step 3 instead of the most recent response from the GIS SERVER.
The APP SERVER detects the mismatch between the Content-Length header and the GOOD DATA, sends the first 61B of the GOOD DATA to the browser and closes the connection to the browser.
The CLIENT receives a response from the APP SERVER but instead of being the complete parcel of GOOD DATA, what is delivered is the first 61 characters of the GOOD DATA.

Frankly sir, I don't like it.

Experiencing the same issue.

I figured out that at step 7, the content-length was changed but the HttpServletResponse was still using the content-length of 61 that for the bad response. Just change response content-length to the correct number right before outputstream write out. Adding below code before buffer.flush() will fix the issue:
clientResponse.setContentLength(buffer.size());
buffer.flush();

Oh yeah, we fixed that in the proxy piece eight months ago. Just lie to the
code about the buffer length. The code is marginally less secure but who
cares?
J
On Wed, Sep 2, 2020, 5:32 PM Hunter Wei<EMAIL_ADDRESS>wrote:

I figured out that at step 7, the content-length was changed but the
HttpServletResponse was still using the content-length of 61 that for the
bad response. Just change response content-length to the correct number
right before outputstream write out. Adding below code before
buffer.flush() will fix the issue:
  clientResponse.setContentLength(buffer.size());
  buffer.flush();

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Esri/resource-proxy/issues/528#issuecomment-686063023,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABSKXNEKWDIFQE6BGWSCLC3SD3BXZANCNFSM4ISE5URA
.


05/03/2018 02:54 : Create Pull Request for branch master -> prTesting1_2018050302

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestRef1.md
:white_check_mark:Succeeded

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


Cannot connect to iGrill Mini w/ FW: 1.18

Followed instructions and all I get is
Authenticating...
encrypted device challenge: 8c2fc96624607xxxx8ce006a7c8c63c5
decrypted device challenge: 39865666d259xxxx1ff7c0273c7ea68e
Invalid device challenge

Perhaps they have updated the encryption key in the new firmware? I haven't used my iGrill for some time now, so I don't know

No, it was the code. It doesn't give the option of selecting the iGrill Mini so it automatically keeps on trying for a regular iGrill.


Provide a way to simplify testing with and without authentication

This is a follow up task from PR #317. Instead of running each test with security turned on. We want to be able run some tests with authentication turned off, so focus on other aspects.
Right now this is not possible. At the same time, setting up an HTTP became a pretty lengthy line. We could improve that too.
The idea is to leverage the test-context stuff to declare on the test of "authentication" is required or not. That gives the test a context and application which is set up as requested. HTTP calls are handled by that text context, and simplified that way.

Do we still need this, @jcrossley3 ? Tests seem to work well with authentication so I don't see why it's needed TBH.

I dunno. I like the idea of being able to test app behavior without regard to auth, but I agree the impact is relatively negligible at this time.


Where should we put extra stuff that doesn't fit into core?

An extras repo?
Each on in a separate repo?
NFI

My suggestions:

skatejs/warehouse - Lerna repo
skatejs/griptape - Lerna repo
each extra in separate repo project

Downsides:

via Lerna ( decorators package will be written with TS, others authored by @treshugart probably vanilla JS ). I guess it can be solved, but have to try
separate projects ( maintenance problems ? )

What is the downside of having an extras folder?

longer build time
more dist files

The good thing is that they stay in sync. It is easier for people that use the extras but an overhead for people that just use the core.

@Hotell ES decorators are at stage 2 and have the same characteristics as TS. I think I want to keep most things in Vanilla so it keeps the barrier low for anyone to contribute.

You know my opinion, vanilla js sucks and there is zero overhead ( even better for smaller codebases ) to using type annotations within code instead of JSDoc and also keeps the docs up to date + many other benefits ( auto generating type definitions -> TS and Flow )
TS gives us another powerful feature - design type reflection, so it can infer from compile time Types what type of variable are you using.
for instance:
import {h, Component} from 'skatejs';
import {customElement, prop} from 'skate-grip-tape';

type Props = {}
class User {
 name: string;
 email: string;
}

@customElement('x-hello')
class Hello extends Component<Props>{
  @prop() greet: string;
  @prop() user: User;
}

typescript and Reflection will gives us design types, which can be leveraged for creating appropriate props API even with proposed validations api under the hood.
so the code will "transform" to:
import {h, prop, Component} from 'skatejs';

class Hello extends Component {
  static get props(){
    return {
      greeting: prop.string(),
      user: prop.object({
        validate(value){
          return value instanceOf User || throw new Error('this is not a user')
        }
      }),
    }
  }
}

customElements.define('x-hello', Hello );

So "I'm afraid" that I will "have to" create skate decorators library outside of this project, which is ok I guess :D

I like the idea of putting extras in a separate repo, although maybe a repo for each additional thing makes more sense than one big repo, just to keep things easy.  I personally also like the convention that Ember and Angular have taken recently of putting official packages under a @__library_name__ namespace on NPM, so you'd do something like
import { Component } from 'skate';
import StyledMixin from `@skate/shady-css`

class Foo extends StyledMixin(Component) {
  ...
}

Yup scoping is indeed great idea and having extras under separate repo is flawless victory with Lerna.
Angular has also everything under one mono repo for instance although they don't use lerna or webpack rather old school maintenance gulp hell ...

What would the benefit be of putting them all in one repo via Lerna? I feel like keeping things separate makes more sense for things like error tracking and versioning. Nothing wrong with a small repo!

I like the idea of separate repos because it functionally separates out each bit. It also makes it simpler to use TS / Flow / Vanilla in each one without affecting the tooling of the other. The difficult part is build duplication. For that we have skatejs-build. However, maintaining that kinda sucks and nwb is pretty great.

Turns out they don't support Semver. I'm not sure how comfortable I am with that. Any minor version has the possibility of breaking us. I'd reference the clarification of that, but I don't want to induce extra chatter here.
Is Flow / Vanilla really that bad!?

What is this Typescript discussion about? Rewriting the core of Skate in TS? What benefits will that provide component authors? Is it merely for decorators / mixins? Would much prefer Vanilla with Flow TBH.

Currently we're doing this in separate repos and using conartist to manage duped configs. Will close for now.


[SPARK-37502][SQL] Support cast aware output partitioning and required if it can up cast

What changes were proposed in this pull request?

Enhance semantic equals at Partitioning to support cast aware output partitioning and required if it can up cast.
Why are the changes needed?

If a Cast is up cast then it should be without any truncating or precision lose or possible runtime failures. So the output partitioning should be same with/without Cast if the Cast is up cast.
Let's say we have a query:
-- v1: c1 int
-- v2: c2 long

SELECT * FROM v2 JOIN (SELECT c1, count(*) FROM v1 GROUP BY c1) v1 ON v1.c1 = v2.c2

The executed plan contains three shuffle nodes which looks like:
SortMergeJoin
  Exchange(cast(c1 as bigint))
    HashAggregate
      Exchange(c1)
        Scan v1
  Exchange(c2)
    Scan v2

We can simplify the plan using two shuffle nodes:
SortMergeJoin
  HashAggregate
    Exchange(c1)
      Scan v1
  Exchange(c2)
    Scan v2

Does this PR introduce any user-facing change?

yes, the plan may be changed
How was this patch tested?

Add test in:

org.apache.spark.sql.catalyst.DistributionSuite
org.apache.spark.sql.SQLQuerySuite

Test build #145762 has started for PR 34755 at commit ed68a25.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50234/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/50234/

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

cc @viirya @cloud-fan

Test build #145762 has finished for PR 34755 at commit ed68a25.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
trait PartitioningSemanticEquals

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


Add support for workspaces.

Co-authored-by: zbarnz<EMAIL_ADDRESS>Co-authored-by: dahvd<EMAIL_ADDRESS>You should have been here.

What a time it was


commande "eval" not working

Exemple : eval "$(ssh-agent -s)"

Shouldn't that be based on the shell you are using, not the terminal?

This should be fixed by now. Terminus now inherits $SSH_AUTH_SOCK from the parent process


User can filter by dollar amount

Looks good, could you clean it up a little so the handler name matches the state key?


silx.gui.plot.PlotWidget: Fixed OpenGL backend image display with sqrt colormap normalization

This PR fixes a typo which causes a bug for displaying all zeros image with sqrt colormap normalization in the OpenGL backend of the PlotWidget.
closes #3242

Thanks a lot


mozInnerScreenX

I was looking at the mdn's documentation and realized that mozInnerScreenX was what we were looking for the other night.
unfortunately, doesn't look implemented by other vendors right now.

So i guess mouse events' hack probably still work well. cc. @timoxley

i rewrote most of this to be an atom-shell app, and now there are nice atom-shell apis we can use for this instead!

@maxogden just checked back on this... looks like this new approach is exciting! will try out and see :+1:


A summary collection of some meaningful and meaningless stats combined:

Before
After
Diff

Wasm size (bytes)
286,727
177,359
-38%

Wasm + gz (bytes)
112,473
78,991
-30%

JS size (bytes)
133,513
109,370
-18%

JS + gz (bytes)
33,856
27,563
-19%

Build time
2m 15s
0m 40s
-70%

zlib version
1.2.8
1.2.11

libpng version
1.6.18beta04
1.6.34

npm deps
181 + 2 tar
66
-64%

build.sh lines
87
43
-51%

(feel free to check commit messages for more details)

Whoa, this is great!

Pushing to live…

Seems to work. Thanks for merging / publishing!


ipam/crd: Fix may allocated IPs which have been marked as ready-for-release

Fix the problem that CRD IPAM may apply for IPs that have been marked as ready-for-release.
Fixes: #32531
Due to the sequential locking requirements of the nodeStore and allocator objects, I completed the statistics of IPs to be released within the scope of nodeStore.mutex by using a map. This avoids the problem of IP addresses being allocated to newly created Pods during the unlocked period.
Fixes: #32531
Fix IPAM of CRD mode may apply for IPs that have been marked as ready-for-release.

/test

Hi, thanks for the submission. Do you think it is possible to come up with a unit test to validate the change in functionality?

@hemanthmalla Could you take a look here since you were the most recent codeowner that modified this logic?

@weiwei02 Can you describe the race condition in a little more detail ?
Are we trying to fix the window between allocator unlock and node lock ?
https://github.com/cilium/cilium/blob/04a5d7f559a70b0143e8cb74281bd716f3828c5c/pkg/ipam/crd.go#L434-L435

Hi, thanks for the submission. Do you think it is possible to come up with a unit test to validate the change in functionality?
@joestringer Thanks for your advice. I have thought about this question, but unit tests may not be able to describe the data security issues caused by the gap of locks, so I did not add any additional unit tests.

@weiwei02 Can you describe the race condition in a little more detail ?@weiwei02你能更详细地描述一下比赛情况吗？
Are we trying to fix the window between allocator unlock and node lock ?我们是否试图修复分配器解锁和节点锁定之间的窗口？
https://github.com/cilium/cilium/blob/04a5d7f559a70b0143e8cb74281bd716f3828c5c/pkg/ipam/crd.go#L434-L435

@hemanthmalla Yes, I have described the issue I found in the actual operating environment in detail in #32531. In the updateLocalNodeResource() function, if the lock of nodeStore and the lock of allocator are released simultaneously, during the gap time, the IP address might be allocated by the allocator.

@weiwei02 please fix the failing lint in BPF Checks / Check Patch. Looks like the commit message is too long

/test

There is one last nit, your commit description is missing the # before the issue number to get the link.
Otherwise LGTM! Approving it.

Please address the checkpatch errors in your commit message. In particular the author sign-off.

@weiwei02 ping?

@weiwei02 Our CI is not happy with the commit message, could you look into this?


UI always condenses extremely long names and large number of parameters

For example, only around 80 characters of a valid 1000 character name and around 600 out of 1000 valid skills are shown even in the expanded view panel. Perhaps a limit on number of characters, skills and tags allowed can be set.

Does my recent pr fixes this?


Function "format" not available within Ergo Expression

Consider the following grammar:
{{%
    if toString(dueDate) != ""
    then "Payment due on: " ++ format(dueDate, "DD MMMM YYYY")
    else ""
%}}

where dueDate is defined in the model as:
o DateTime dueDate

The output is:
error: Compilation error (at file formula_ad595e03bc3978e0b6cbb40f42a131a18c562648d8894b4baad7b7f4377bfa51 line 3 col 31). Cannot find function with name 'format'
    then "Payment due on: " ++ format(dueDate, "DD MMMM YYYY")
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Other functions, such as toString work fine.
Would be nice if we could format DateTime variables within Ergo Expression blocks.
Also.... note that, even though it is not needed, the Ergo syntax must have an else clause, otherwise the compiler throws a parser error.
For examples, this syntax fails...
{{%
    if toString(dueDate) != ""
    then "Payment due on: " ++ toString(dueDate)
%}}

whereas, this syntax is fine...
{{%
    if toString(dueDate) != ""
    then "Payment due on: " ++ toString(dueDate)
    else ""
%}}

Would be nice if else clause was optional.
To reproduce, execute draft command on attached template using the included data.json file:
cicero draft --template . --data ./data.json --output ./text/sample.md --unquoteVariables

empty-contract.zip

I'll have to dig out the status of that format function. My hunch is that it's been removed, but left in the documentation.
However, you can use date time formatting in Ergo using the Expr as Format expression:
bash-3.2$ more text/grammar.tem.md
Name: {{name}}
Payment due by {{dueDate as "DD MMMM YYYY"}}

{{%
    if toString(dueDate) != ""
    then "Payment due on: " ++ dueDate as "DD MMMM YYYY"
    else ""
%}}
bash-3.2$ cicero draft --template . --data ./data.json --output ./sample.md --unquoteVariables
8:37:44 AM - info: Creating file: ./sample.md
8:37:44 AM - info: Name: Fred
Payment due by 17 December 2020

Payment due on: 17 December 2020

About the separate question:

Also.... note that, even though it is not needed, the Ergo syntax must have an else clause, otherwise the compiler throws a parser error.

What would you want the expression to return if the condition is false?
I might be wrong, but I am guessing that answer is likely dependent on the context (here maybe "" but maybe something different for other conditionals).

Actually, the format function does work as expected, but it's in the org.accordproject.time library: https://docs.accordproject.org/docs/ref-ergo-stdlib.html#time
So you will need to import it (as you would for any other date time functions):
bash-3.2$ cat logic/logic.ergo
namespace org.accordproject.empty

// Import time functions
import org.accordproject.time.*

contract Empty over EmptyContract {
  clause donothing(request : EmptyRequest) : EmptyResponse {
    return EmptyResponse{}
  }
}
bash-3.2$ more text/grammar.tem.md
Name: {{name}}
Payment due by {{dueDate as "DD MMMM YYYY"}}

{{%
    if toString(dueDate) != ""
    then "Payment due on: " ++ format(dueDate,"DD MMMM YYYY")
    else ""
%}}
bash-3.2$ cicero draft --template . --data ./data.json --output ./sample.md --unquoteVariables
8:56:58 AM - info: Creating file: ./sample.md
8:56:58 AM - info: Name: Fred
Payment due by 17 December 2020

Payment due on: 17 December 2020
bash-3.2$

Here is a fixed up archive:
empty-contract.zip

Thanks @jeromesimeon - My bad on the missing import.  Thanks for pointing this out and sorry for wasting your time. Appreciate the updated doco too.
Regarding the mandatory nature of the else clause... I have to keep reminding myself that Ergo is a functional language and evaluates everything. I'm used to more procedural languages which allow the else to be optional.  All good.


Markdown link opens in frame which crashes the output

If a link is clicked in output, it tries to open in the same frame, which crashes the output for rest of the activity duration.

I'll open a PR fixing this.

Good point.

Fixed in https://github.com/llaske/sugarizer/pull/674


have no cityscapes_json_dataset_evaluator

have no cityscapes_json_dataset_evaluator @lvpengyuan

@xgmiao @yuanyay Thank you for pointing out the mistake. The missing file has been uploaded. Please update your code from git.


Integrate pjconf

To simplify the configuration system I think we should integrate with the pjconf package I've written.
https://github.com/bschroeter/pjconf
It handles json configuration a lot more simply and should help us abstract out some of the complexity to another library.

This is not a high priority at the moment, please re-raise if needed.


⚠ Bofrost.lu has degraded performance

In 77ae9e6, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2351 ms

Resolved: Bofrost.lu performance has improved in ca7ff9e after 42 minutes.


[WIP][fix] Refactored Server Tests

Refactored Server Tests file to ES6 .
Closes #27

Add --watchAll in client/package.json in "test" to run all tests.

ok


Not possible to manage the boolean data of a row

I'm submitting a ...  (check one with "x")
[X] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, post on Stackoverflow or Gitter

Current behavior
I can't manage a simple control (if it is True or False) of a boolean row to write a given string.
Expected behavior
If the row in question is true, write "Active".
If the row in question is false, write "Passive".
Reproduction of the problem
Before opening this issue I asked for help on stackoverflow but without solving ... the problem is described here: https://stackoverflow.com/questions/56290893/ngx-datatable-how-to-handle-a-boolean-data-of-a-row
What is the motivation / use case for changing the behavior?
The reason is that in the table the boolean value comes out while I must be able to insert a string value (therefore only in the visibility of the table).
Surely something escapes me ...
Please tell us about your environment:
"node": ">= 8.9.4",
"npm": ">= 5.6.0"

Table version:
10.4.0

Angular version:
Angular 6

Browser:
All

Language: "
typescript": "~3.2.4"

Hello @nobady90,
Looks like you aren't properly using the documentation of ngx-datatable.
As you can check at the Inline Template / source code section, it is pretty easy to achieve the desired behaviour as you can see below:

In my example, rows is the source data array and value is the status property value of each row.
Replace the *ngIfstatements with the boolean check like as *ngIf="value" and *ngIf="!value" and that's it!

Cheers!

perfect, it worked. I missed this step. thank you!