text:
Advanced Settings Parameters

This is a draft requesting feedback on how to implement more fine granular parameterization of the underlying BlobServiceClients and corresponding requests.
Concrete motivation
We cannot accept slow feedback on failed put requests. If connection is not available the request should fail within a few seconds. This can be achieved by passing corresponding keyword arguments to the BlobService clients and the upload request.
Possible implementations
It is probably best to implement advanced settings in general with untyped keyword arguments/dictionaries which are passed directly to underlying calls. These should correspond exactly to the keyword arguments of the azure.storage.blob classes and the user is forwarded to the documentation of the azure sdk on the usage of these parameters.
The question is how the signature of AzureBlobFileSystem should look like. Possible implementation by example:
Subdictionary for each subclass / call
anon: True
# all other typed arguments
kwargs:
  exclude_cli_credential: False
  exclude_environment_credential: True
# .... any other arguments
client_kwargs:
  initial_backoff: 2
  increment_base: 1
  random_jitter_range: 1
# .... any other arguments passed to BlobServiceClient
upload_kwargs:
  timeout: 2
# .... any other arguments passed to upload.

I implemented this version first because it is safest with respect to unintended effects and naming conflicts. This can be extended to more requests, i.e. download_kwargs and others. One could also skip the _kwargs suffix.
kwargs forwarding
anon: True
# all other typed arguments
kwargs:
  exclude_cli_credential: False
  exclude_environment_credential: True
  initial_backoff: 2
  increment_base: 1
  random_jitter_range: 1
  timeout: 2
# .... any other arguments passed to BlobServiceClient and requests.

This is more in line with the current implementation and should also work, haven't checked though. There might be some naming conflicts.
Design decision
Both of these approaches, and anything inbeetween would also work. This is mainly a question of taste and consistency rather than correctness, so I want to reach to @TomAugspurger and other experts to make a decision.

@hayesgb, can you give feedback on this?

Hi @barmetti.  Apologies for the delay responding here.
Normally, I would lean toward passing all params that are passed to BlobServiceClient method being embedded in client_kwargs, but given the large number of potential params, and the risk of collision between params across the different methods, I like you proposal of splitting these into upload_kwargs, download_kwargs.
My only concern (which is small, and I wouldn't block on it I think) is the possible complexity if this is used in a dask io operation.
dd.read_parquet(path,
    storage_options={
        "connection_string": CONN_STR,
        "client_kwargs": {},
        "upload_kwargs": {},
        "download_kwargs": {},
)

OK, so we agree on nesting args for passing advanced settings parameters to the azure sdk. We use the _kwargs suffix to semantically distinguish these params from the rest.
Not quite sure if I correctly understood the dask io problem you are referring. One does not need to require keys for the additional kwargs, use empty dictionaries if they are not present. Your example:
storage_options={
        "connection_string": CONN_STR,
        "client_kwargs": {},
        "upload_kwargs": {},
        "download_kwargs": {}
}

Would be equivalent to:
storage_options={
        "connection_string": CONN_STR
}

I will come up with an implementation of this feature. The goal is to provide full control over the azure.storage.blob SDK.

I checked all the azure.store.blob invocations in spec.py. There are far more than just upload/download. Continuing  upload_kwargs, download_kwargs for all methods will result in lots of duplications of the same parameter with the same meaning. For example the timeout argument is used in all methods. It is possible to use a different value for each method, but this almost never makes sense.
Instead, I suggest we just use the existing kwargs field to pass through any argument to azure.store.blob methods.
This may result in conflicts. In order to avoid this I compiled a list of all arguments (excluding explicitly set arguments such as name) of azure.store.blob functions used in spec.py. I found, that if the same argument name is used in different methods, the description string is identical (up to formatting) and identical argument name means same type.
Here is the full list
api_version:
  description: "The Storage API version to use for requests. Default value is the
    most recent service version that is compatible with the current SDK. Setting to
    an older version may result in reduced feature compatibility.  .. versionadded::
    12.2.0"
  methods: BlobServiceClient
  type: str
blob_type:
  description: The type of the blob. This can be either BlockBlob, PageBlob or AppendBlob.
    The default value is BlockBlob.
  methods: BlobClient.upload_blob
  type: azure.storage.blob.BlobType
container_encryption_scope:
  description: "Specifies the default encryption scope to set on the container and
    use for all future writes.  .. versionadded:: 12.2.0"
  methods: BlobServiceClient.create_container
  type: Any
content_settings:
  description: ContentSettings object used to set blob properties. Used to set content
    type, encoding, language, disposition, md5, and cache control.
  methods: BlobClient.upload_blob
  type: azure.storage.blob.ContentSettings
cpk:
  description: Encrypts the data on the service-side with the given key. Use of customer-provided
    keys must be done over HTTPS. As the encryption key itself is provided in the
    request, a secure connection must be established to transfer the key.
  methods: BlobClient.get_blob_properties | BlobClient.download_blob | BlobClient.upload_blob
  type: azure.storage.blob.CustomerProvidedEncryptionKey
credential:
  description: The credentials with which to authenticate. This is optional if the
    account URL already has a SAS token. The value can be a SAS token string, an instance
    of a AzureSasCredential from azure.core.credentials, an account shared access
    key, or an instance of a TokenCredentials class from azure.identity. If the resource
    URI already contains a SAS token, this will be ignored in favor of an explicit
    credential - except in the case of AzureSasCredential, where the conflicting SAS
    tokens will raise a ValueError.
  methods: BlobServiceClient
  type: Any
delete_snapshots:
  description: "Required if the blob has associated snapshots. Values include: - "only":
    Deletes only the blobs snapshots. - "include": Deletes the blob along with all
    snapshots."
  methods: ContainerClient.delete_blob
  type: str
delimiter:
  description: When the request includes this parameter, the operation returns a BlobPrefix
    element in the response body that acts as a placeholder for all blobs whose names
    begin with the same substring up to the appearance of the delimiter character.
    The delimiter may be a single character or a string.
  methods: ContainerClient.walk_blobs
  type: str
destination_lease:
  description: The lease ID specified for this header must match the lease ID of the
    destination blob. If the request does not include the lease ID or it is not valid,
    the operation fails with status code 412 (Precondition Failed).
  methods: BlobClient.start_copy_from_url
  type: Any
encoding:
  description: Encoding to decode the downloaded bytes. Default is None, i.e. no decoding.
  methods: BlobClient.download_blob | BlobClient.upload_blob
  type: str
encryption_scope:
  description: "A predefined encryption scope used to encrypt the data on the service.
    An encryption scope can be created using the Management API and referenced here
    by name. If a default encryption scope has been defined at the container, this
    value will override it if the container-level scope is configured to allow overrides.
    Otherwise an error will be raised.  .. versionadded:: 12.2.0"
  methods: BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: str
etag:
  description: An ETag value, or the wildcard character (*). Used to check if the
    resource has changed, and act according to the condition specified by the `match_condition`
    parameter.
  methods: ContainerClient.delete_blob | BlobServiceClient.delete_container | BlobClient.get_blob_properties
    | BlobClient.download_blob | BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: str
if_modified_since:
  description: A DateTime value. Azure expects the date value passed in to be UTC.
    If timezone is included, any non-UTC datetimes will be converted to UTC. If a
    date is passed in without timezone info, it is assumed to be UTC. Specify this
    header to perform the operation only if the resource has been modified since the
    specified time.
  methods: ContainerClient.delete_blob | BlobServiceClient.delete_container | BlobClient.get_blob_properties
    | BlobClient.download_blob | BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: datetime.datetime
if_tags_match_condition:
  description: "Specify a SQL where clause on blob tags to operate only on blob with
    a matching value. eg. ``"\\"tagname\\"=""my tag"""``  .. versionadded:: 12.4.0"
  methods: ContainerClient.delete_blob | BlobClient.get_blob_properties | BlobClient.download_blob
    | BlobClient.upload_blob
  type: str
if_unmodified_since:
  description: A DateTime value. Azure expects the date value passed in to be UTC.
    If timezone is included, any non-UTC datetimes will be converted to UTC. If a
    date is passed in without timezone info, it is assumed to be UTC. Specify this
    header to perform the operation only if the resource has not been modified since
    the specified date/time.
  methods: ContainerClient.delete_blob | BlobServiceClient.delete_container | BlobClient.get_blob_properties
    | BlobClient.download_blob | BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: datetime.datetime
immutability_policy:
  description: "Specifies the immutability policy of a blob, blob snapshot or blob
    version. Currently this parameter of upload_blob() API is for BlockBlob only.  ..
    versionadded:: 12.10.0     This was introduced in API version ""2020-10-02""."
  methods: BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: azure.storage.blob.ImmutabilityPolicy
include_deleted:
  description: "Specifies that deleted containers to be returned in the response.
    This is for container restore enabled account. The default value is `False`. ..
    versionadded:: 12.4.0"
  methods: BlobServiceClient.list_containers
  type: bool
include_system:
  description: "Flag specifying that system containers should be included. .. versionadded::
    12.10.0"
  methods: BlobServiceClient.list_containers
  type: bool
incremental_copy:
  description: Copies the snapshot of the source page blob to a destination page blob.
    The snapshot is copied such that only the differential changes between the previously
    copied snapshot are transferred to the destination. The copied snapshots are complete
    copies of the original snapshot and can be read or copied from as usual. Defaults
    to False.
  methods: BlobClient.start_copy_from_url
  type: bool
lease:
  description: If specified, get_container_properties only succeeds if the container"s
    lease is active and matches this ID.
  methods: ContainerClient.get_container_properties | ContainerClient.delete_blob
    | BlobServiceClient.delete_container | BlobClient.get_blob_properties | BlobClient.download_blob
    | BlobClient.upload_blob
  type: Any
legal_hold:
  description: "Specified if a legal hold should be set on the blob. Currently this
    parameter of upload_blob() API is for BlockBlob only.  .. versionadded:: 12.10.0     This
    was introduced in API version ""2020-10-02""."
  methods: BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: bool
length:
  description: Number of bytes to read from the stream. This is optional, but should
    be supplied for optimal performance.
  methods: BlobClient.upload_blob
  type: int
match_condition:
  description: The match condition to use upon the etag.
  methods: ContainerClient.delete_blob | BlobServiceClient.delete_container | BlobClient.get_blob_properties
    | BlobClient.download_blob | BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: azure.core.MatchConditions
max_block_size:
  description: The maximum chunk size for uploading a block blob in chunks. Defaults
    to 4*1024*1024, or 4MB.
  methods: BlobServiceClient
  type: int
max_chunk_get_size:
  description: "The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024,
    or 4MB.  .. admonition:: Example:      .. literalinclude:: ../samples/blob_samples_authentication_async.py         :start-after:
    [START create_blob_service_client]         :end-before: [END create_blob_service_client]         :language:
    python         :dedent: 8         :caption: Creating the BlobServiceClient with
    account url and credential.      .. literalinclude:: ../samples/blob_samples_authentication_async.py         :start-after:
    [START create_blob_service_client_oauth]         :end-before: [END create_blob_service_client_oauth]         :language:
    python         :dedent: 8         :caption: Creating the BlobServiceClient with
    Azure Identity credentials."
  methods: BlobServiceClient
  type: int
max_concurrency:
  description: The number of parallel connections with which to download.
  methods: BlobClient.download_blob | BlobClient.upload_blob
  type: int
max_page_size:
  description: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024,
    or 4MB.
  methods: BlobServiceClient
  type: int
max_single_get_size:
  description: The maximum size for a blob to be downloaded in a single call, the
    exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024,
    or 32MB.
  methods: BlobServiceClient
  type: int
max_single_put_size:
  description: If the blob size is less than or equal max_single_put_size, then the
    blob will be uploaded with only one http PUT request. If the blob size is larger
    than max_single_put_size, the blob will be uploaded in chunks. Defaults to 64*1024*1024,
    or 64MB.
  methods: BlobServiceClient
  type: int
maxsize_condition:
  description: Optional conditional header. The max length in bytes permitted for
    the append blob. If the Append Block operation would cause the blob to exceed
    that limit or if the blob size is already greater than the value specified in
    this header, the request will fail with MaxBlobSizeConditionNotMet error (HTTP
    status code 412 - Precondition Failed).
  methods: BlobClient.upload_blob
  type: int
metadata:
  description: "A dict with name-value pairs to associate with the container as metadata.
    Example: `{""Category"":""test""}`"
  methods: BlobServiceClient.create_container | BlobClient.start_copy_from_url
  type: dict(str, str)
min_large_block_upload_threshold:
  description: The minimum chunk size required to use the memory efficient algorithm
    when uploading a block blob. Defaults to 4*1024*1024+1.
  methods: BlobServiceClient
  type: int
name_starts_with:
  description: Filters the results to return only containers whose names begin with
    the specified prefix.
  methods: BlobServiceClient.list_containers
  type: str
premium_page_blob_tier:
  description: A page blob tier value to set the blob to. The tier correlates to the
    size of the blob and number of allowed IOPS. This is only applicable to page blobs
    on premium storage accounts.
  methods: BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: azure.storage.blob.PremiumPageBlobTier
progress_hook:
  description: "A callback to track the progress of a long running download. The signature
    is function(current: int, total: int) where current is the number of bytes transfered
    so far, and total is the total size of the download."
  methods: BlobClient.download_blob | BlobClient.upload_blob
  type: Any
public_access:
  description: "Possible values include: ""container"", ""blob""."
  methods: BlobServiceClient.create_container
  type: str or azure.storage.blob.PublicAccess
rehydrate_priority:
  description: Indicates the priority with which to rehydrate an archived blob
  methods: BlobClient.start_copy_from_url
  type: azure.storage.blob.RehydratePriority
requires_sync:
  description: Enforces that the service will not return a response until the copy
    is complete.
  methods: BlobClient.start_copy_from_url
  type: bool
results_per_page:
  description: The maximum number of container names to retrieve per API call. If
    the request does not specify the server will return up to 5,000 items.
  methods: BlobServiceClient.list_containers
  type: int
seal_destination_blob:
  description: "Seal the destination append blob. This operation is only for append
    blob. .. versionadded:: 12.4.0"
  methods: BlobClient.start_copy_from_url
  type: bool
secondary_hostname:
  description: The hostname of the secondary endpoint.
  methods: BlobServiceClient
  type: str
source_authorization:
  description: "Authenticate as a service principal using a client secret to access
    a source blob. Ensure "bearer " is the prefix of the source_authorization string.
    This option is only available when `incremental_copy` is set to False and `requires_sync`
    is set to True.  .. versionadded:: 12.9.0"
  methods: BlobClient.start_copy_from_url
  type: str
source_etag:
  description: The source ETag value, or the wildcard character (*). Used to check
    if the resource has changed, and act according to the condition specified by the
    `match_condition` parameter.
  methods: BlobClient.start_copy_from_url
  type: str
source_if_modified_since:
  description: A DateTime value. Azure expects the date value passed in to be UTC.
    If timezone is included, any non-UTC datetimes will be converted to UTC. If a
    date is passed in without timezone info, it is assumed to be UTC. Specify this
    conditional header to copy the blob only if the source blob has been modified
    since the specified date/time.
  methods: BlobClient.start_copy_from_url
  type: datetime.datetime
source_if_unmodified_since:
  description: A DateTime value. Azure expects the date value passed in to be UTC.
    If timezone is included, any non-UTC datetimes will be converted to UTC. If a
    date is passed in without timezone info, it is assumed to be UTC. Specify this
    conditional header to copy the blob only if the source blob has not been modified
    since the specified date/time.
  methods: BlobClient.start_copy_from_url
  type: datetime.datetime
source_lease:
  description: Specify this to perform the Copy Blob operation only if the lease ID
    given matches the active lease ID of the source blob.
  methods: BlobClient.start_copy_from_url
  type: Any
source_match_condition:
  description: The source match condition to use upon the etag.
  methods: BlobClient.start_copy_from_url
  type: azure.core.MatchConditions
standard_blob_tier:
  description: A standard blob tier value to set the blob to. For this version of
    the library, this is only applicable to block blobs on standard storage accounts.
  methods: BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: azure.storage.blob.StandardBlobTier
tags:
  description: "Name-value pairs associated with the blob as tag. Tags are case-sensitive.
    The tag set may contain at most 10 tags.  Tag keys must be between 1 and 128 characters,
    and tag values must be between 0 and 256 characters. Valid tag key and value characters
    include: lowercase and uppercase letters, digits (0-9), space (` `), plus (+),
    minus (-), period (.), solidus (/), colon (:), equals (=), underscore (_)  ..
    versionadded:: 12.4.0"
  methods: BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: Any
timeout:
  description: The timeout parameter is expressed in seconds.
  methods: ContainerClient.get_container_properties | BlobServiceClient.list_containers
    | ContainerClient.walk_blobs | BlobServiceClient.create_container | ContainerClient.delete_blob
    | BlobServiceClient.delete_container | BlobClient.get_blob_properties | BlobClient.download_blob
    | BlobClient.upload_blob | BlobClient.start_copy_from_url
  type: int
use_byte_buffer:
  description: Use a byte buffer for block blob uploads. Defaults to False.
  methods: BlobServiceClient
  type: bool
validate_content:
  description: If true, calculates an MD5 hash for each chunk of the blob. The storage
    service checks the hash of the content that has arrived with the hash that was
    sent. This is primarily valuable for detecting bitflips on the wire if using http
    instead of https, as https (the default), will already validate. Note that this
    MD5 hash is not stored with the blob. Also note that if enabled, the memory-efficient
    upload algorithm will not be used because computing the MD5 hash requires buffering
    entire blocks, and doing so defeats the purpose of the memory-efficient algorithm.
  methods: BlobClient.download_blob | BlobClient.upload_blob
  type: bool
version_id:
  description: "The version id parameter is an opaque DateTime value that, when present,
    specifies the version of the blob to delete.  .. versionadded:: 12.4.0 This keyword
    argument was introduced in API version ""2019-12-12""."
  methods: ContainerClient.delete_blob
  type: str

I conclude that passing through kwargs to invocations of azure.storage.blob methods is safe. I will implement this and add well formatted version of this argument list to the readme.
For the record, here the script used for generating this list:
import azure.storage.blob
import azure.storage.blob.aio
import docstring_parser
import yaml

# checked all invocations from spec.py of azure.storage.blob methods. Explicitly provided arguments to be excluded as second item in tuple.

methods = [
    (azure.storage.blob.aio.BlobServiceClient,['account_url']),
    (azure.storage.blob.ContainerClient.get_container_properties,[]),  # via container exisis
(azure.storage.blob.BlobServiceClient.list_containers,['include_metadata']),  # via ls
(azure.storage.blob.ContainerClient.walk_blobs,['include','name_starts_with']),  # via ls
(azure.storage.blob.ContainerClient.list_blobs,['include','name_starts_with','results_per_page']),  # via ls
(azure.storage.blob.BlobServiceClient.create_container,['name']),  # via mkdir
(azure.storage.blob.ContainerClient.delete_blob,['blob']),  # via rm
(azure.storage.blob.BlobServiceClient.delete_container,['container']),  # via rmdir
(azure.storage.blob.BlobClient.get_blob_properties,['version_id']),  # via isfile
(azure.storage.blob.BlobClient.exists,['version_id']),
(azure.storage.blob.BlobClient.download_blob,['offset','length','version_id']),
(azure.storage.blob.BlobClient.upload_blob,['data','overwrite','metadata','raw_response_hook']),
(azure.storage.blob.BlobClient.start_copy_from_url,['source_url'])]

method_params = list(map(lambda _: (*_,docstring_parser.parse(_[0].__doc__).params),methods))

# check correctly listed explicitly provided argumgents, checked that missing arguments are due to incorrect docstring or docstring parser
for _ in method_params:
    arg_names = [*map(lambda param: param.arg_name,_[-1])]
    for arg_name in _[1]:
        if arg_name not in arg_names:
            print(_[0],arg_name)

lookup = {}

for _ in method_params:
    for param in _[-1]:
        if param.arg_name not in _[1]:
            lookup.setdefault(param.arg_name,{'methods': [],'types': [],'defaults':[],'descriptions':[]})
            lookup[param.arg_name]['methods'].append(_[0].__qualname__)
            if param.type_name not in lookup[param.arg_name]['types']:
                lookup[param.arg_name]['types'].append((param.type_name or "Any").replace("~",""))
            if param.default not in lookup[param.arg_name]['defaults']:
                lookup[param.arg_name]['defaults'].append(param.default)
            description = param.description.replace("\n"," ")
            if description not in lookup[param.arg_name]['descriptions']:
                lookup[param.arg_name]['descriptions'].append(description)

data = { key: {"methods": " | ".join(value["methods"]),"type": value["types"][0],"description":value["descriptions"][0]} for key,value in lookup.items()}

yaml.dump(data)

authors: barmettl hayesgb

repo: fsspec/adlfs


text:
Switch to Poetry, add dependabot and pre-commit for linting. Remove versioneer

POC for #602
I also refactored the tests to use fixtures, which I think is a lot more flexible and will allow us to split the gigantic test file up a bit.
Edit: I also refactored the moto3 server fixture to keep a persistent server running and use unique bucket names. This speeds up the tests a lot.

I am certainly in favour of precommit, and running automatic jobs locally as they do in CI. This should be made uniform across all projects.
I remain to be convinced by poetry...
@efiop , perhaps you have an opinion on applying this kind of thing here and for other fsspec projects?

I remain to be convinced by poetry...

The current setup.py, requirements.txt, test-requirements.txt, manifest.ini setup is definitely considered to be a legacy way of setting up a project now.
Poetry is really simple way to get a consistent project setup with no fuss. The lockfile also guarantees reproducible builds, and combined with a thing like Dependabot means that we'll have a fairly immediate way of knowing if one of our dependencies breaks without breaking all existing builds. I like it a lot, and while it's not perfect it's probably as close as we've got so far to a simple, fast and consistent CLI (a-la cargo).
All I can suggest is that we try it and see what happens, and we can always revert if you feel unhappy with it.

I've split out the test refactor into https://github.com/fsspec/s3fs/pull/611 - this is a nightmare to rebase and I think it has a great impact on test readability + speed.
I've split pre-commit out into https://github.com/fsspec/s3fs/pull/612.

I am certainly in favor of precommit, and running automatic jobs locally as they do in CI. This should be made uniform across all projects.

💯 Related to https://github.com/fsspec/community/issues/6 I would start there and then propagate the template into particular projects.

Sorry, I don't have the capacity right now to start it myself, but I would definitely wait (or start) for the template to be introduced and not proceed with this PR here for now. Might be able to come back to that in the mid term future.

+1, let's aim to do this (and pre-commit.ci rather than a action! ) for the next release cycle in ~1month.

source: gharchive/pull-request

authors: efiop martindurant orf

license_type: permissive

license_source: bigquery


text:
FtcRobotController v8.0

Before issuing a pull request, please see the contributing page.

done

license_source: github-api


text:
Upgrade vendored packages

There was an upstream breakage in goconvey.
https://github.com/smartystreets/goconvey/issues/561

Looks like this is premature - I have go 1.12 installed on my machine, but this project targets 1.11. Going to close this out - @fubarhouse  can reopen later when ready to upgrade.

Sounds good thanks! - the update to 1.12 is on my todo list so I'll reopen this soon.

authors: fubarhouse issmirnov

repo: fubarhouse/ansible-role-tester

license: MIT


text:
Shebang in winecfg from wine-ge isn't patched

winecfg from wine-ge doesn't work because it contains /bin/sh shebang. I'm not sure why - I don't see how it's patched in wine from nixpkgs.

It does work for me.
The use of /bin/sh should not affect anything, since NixOS has that path available, along with /usr/bin/env.

Oh, I messed it up with my sandboxing config. I noticed this difference between wine from nixpgks and wine-ge and thought it was the problem. Sorry for the noise.

source: gharchive/issue

authors: fufexan kurnevsky

repo: fufexan/nix-gaming


text:
GMFL-Net: 繰り返し動作カウントのためのグローバル多重幾何特徴学習ネットワーク

タイトル: GMFL-Net: 繰り返し動作カウントのためのグローバル多重幾何特徴学習ネットワーク
リンク: https://arxiv.org/abs/2409.00330
概要:
深層学習の継続的な発展に伴い、反復動作カウントの分野は多くの研究者から注目を集めています。人体姿勢推定ネットワークを用いた姿勢キーポイントの抽出は、効果的な姿勢レベルの手法であることが証明されています。しかし、既存の姿勢レベルの手法は、単一の座標がカメラの視点の変化による動作の歪みに対して十分に安定しておらず、顕著な姿勢を正確に識別できないため、例外から実際の動作への移行時に誤検出を起こしやすいという欠点があります。これらの問題を克服するために、シンプルでありながら効率的なグローバルマルチジオメトリ特徴学習ネットワーク（GMFL-Net）を提案します。具体的には、複数形状の特徴を融合し、入力された複数形状の特徴間の意味的類似性を学習することで、情報表現を改善することを目的としたMIA-Moduleを設計しました。次に、グローバルな視点から特徴表現を改善するために、ポイント単位とチャネル単位の要素間の相互依存性を強化し、MIA-Moduleによって生成された豊富な局所情報と組み合わせて、包括的で最も代表的なグローバル特徴表現を合成するGBFL-Moduleも設計しました。さらに、既存のデータセットが不十分であることを考慮し、異なるサイクル長と例外、より長いテストセットを含むCountix-Fitness-pose（https://github.com/Wantong66/Countix-Fitness）と呼ばれる新しいデータセットを収集し、姿勢レベルで詳細なアノテーションを付与しました。また、ランジとローププッシュダウンという2つの新しいアクションクラスも追加しました。最後に、RepCount-pose、UCFRep-pose、Countix-Fitness-poseの各ベンチマークを用いた広範な実験により、提案するGMFL-Netが最先端の性能を達成することを示しました。

論文要約
論文要約:  GMFL-Net: 繰り返し動作カウントのためのグローバル多重幾何特徴学習ネットワーク
この論文では、動画から反復動作の回数をカウントするタスクにおいて、より正確に動作を認識できる新しい深層学習モデル GMFL-Net を提案しています。
従来の手法は、カメラアングルが変わると動作の認識精度が低下したり、例外動作に弱かったりする問題がありました。
GMFL-Netの改善点:

MIA-Module: 複数の視点から得られた特徴を組み合わせることで、視点の変化に強い情報表現を実現。
GBFL-Module:  MIA-Moduleで得られた情報に加えて、全体的な特徴も考慮することで、より正確な動作認識を実現。

新しいデータセット:

既存のデータセットの不足を補うため、より多くのバリエーションを含む新しいデータセット Countix-Fitness-pose を作成。

様々な長さの動作サイクル
例外動作
より長いテストセット
新しい動作クラス (ランジ、ローププッシュダウン)

実験結果:

提案手法であるGMFL-Netは、既存手法と比較して、RepCount-pose, UCFRep-pose, Countix-Fitness-pose の全てのベンチマークにおいて、最高の精度を達成。

結論:
GMFL-Netは、従来手法よりも高精度な反復動作カウントを実現する効果的な手法であることが示されました。

@yukihiko-fuyuki が以下のラベルを提案し、適用しました：

pose-estimation
video-understanding
dataset

repo: fulfulggg/Information-gathering


text:
Namespace cuerdas.vendor.xregexp not found

When I try to require [cuerdas.core :as str] I get the following error:
No such namespace: cuerdas.vendor.xregexp, could not locate cuerdas/vendor/xregexp.cljs, cuerdas/vendor/xregexp.cljc, or Closure namespace "cuerdas.vendor.xregexp" in file file:/home/z/.m2/repository/funcool/cuerdas/2.0.3/cuerdas-2.0.3.jar!/cuerdas/regexp.cljc

Some test case to reproduce that?

authors: kiemdoder niwinz

repo: funcool/cuerdas


text:
Callback connection -- Listener#onConnected vs connect(callback#onSuccess) ?

Hi -- I'm getting setup with a callback connection and I was wondering, functionally, what is the difference between:
        conn = client.callbackConnection();
        conn = conn.listener(new Listener() {
            @Override
            public void onConnected() {

            }
...
};

and
        conn = client.callbackConnection();
        conn.connect(new Callback<Void>() {
            @Override
            public void onSuccess(Void value) {

            }
...
}

Thanks

Did you ever find out the answer? I'm also confused by this API

repo: fusesource/mqtt-client


text:
Cut Reviewable boilerplate from commit messages

This change is

Thanks! :heart:
bors r+

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

Comments from Reviewable

authors: mithrandi notriddle

repo: fusionapp/documint

license: mit


text:
研究发现，5-HT功能活动降低与抑郁症患者的抑郁心境、食欲减退、失眠、昼夜节律紊乱、内分泌功能紊乱、性功能障碍、焦虑不安、不能应付应激、活动减少等密切相关；而5-HT功能增高与躁狂症的发病有关。

使用：
jieba.add_word("5-HT功能", freq=True, tag='n')
jieba.add_word("食欲减退", freq=True, tag='n')
jieba.add_word("昼夜节律紊乱", freq=True, tag='n')
然后分词处理：
print("/".join(jieba.cut(sta, HMM=True)))
发现结果为：
研究/发现/，/5/-/HT/功能/活动/降低/与/抑郁症/患者/的/抑郁/心境/、/食欲减退/、/失眠/、/昼夜节律紊乱/、/内分泌/功能/紊乱/、/性功能
障碍/、/焦虑不安/、/不能/应付/应激/、/活动/减少/等/密切相关/；/而/5/-/HT/功能/增高/与/躁狂症/的/发病/有关/。
预计结果是：
研究/发现/，/5-HT功能/活动/降低/与/抑郁症/患者/的/抑郁/心境/、/食欲减退/、/失眠/、/昼夜节律紊乱/、/内分泌/功能/紊乱/、/性功能
障碍/、/焦虑不安/、/不能/应付/应激/、/活动/减少/等/密切相关/；/而/5-HT功能/增高/与/躁狂症/的/发病/有关/。
“5-HT功能”，为什么没有用？

那怎么解决这个问题。因为有些专业名里面包含这种“-”
liwy@futongdf.com.cn
发件人： LuoZe
发送时间： 2018-09-06 21:22
收件人： fxsjy/jieba
抄送： lwy1111111; Author
主题： Re: [fxsjy/jieba] 研究发现，5-HT功能活动降低与抑郁症患者的抑郁心境、食欲减退、失眠、昼夜节律紊乱、内分泌功能紊乱、性功能障碍、焦虑不安、不能应付应激、活动减少等密切相关；而5-HT功能增高与躁狂症的发病有关。 (#666)
因为有“-”，所以对两边的数据进行了切分
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

from pyhanlp import *

CustomDictionary.insert('5-HT功能', '医疗术语 10')
print(HanLP.segment('研究发现，5-HT功能活动降低与抑郁症患者的抑郁心境'))

[研究/vn, 发现/v, ，/w, 5-HT功能/医疗术语, 活动/vn, 降低/v, 与/cc, 抑郁症/nhd, 患者/n, 的/ude1, 抑郁/a, 心境/n]

谢谢，但是我问的是结巴的解决方法！

谢谢，但是我问的是结巴的解决方法！

之前有帖子写了，特殊字符，可以考虑修改
jieba.re_han_default = re.compile(r'([\u4e00-\u9fa5a-zA-Z0-9+#&._%/-]+)', re.UNICODE)

authors: YuboHe botissue lwy1111111

repo: fxsjy/jieba


text:
Add adminconfig policies' evaluation

Signed-off-by: Shlomit Koyfman shlomitk@il.ibm.com
Will close https://github.com/fybrik/fybrik/issues/794
Implementation of OPA-based evaluation of config policies according to #932
Initial approach: the policies are added in the deployment time. Changes of policies are not tracked.
This PR also changes the way data path is constructed, removing hard-coded capabilities, like "read" and "copy"

@simanadler Added documentation in  site/docs/reference/config-policies.md. This page is referenced from the modules.md page when describing how the data plane is constructed.

repo: fybrik/fybrik


text:
Changes to differentiate electron cash from electrum

Some more changes to fix issue #180. I've tested installation on linux, nothing is installed that would conflict with Electrum.

Please!

This looks good to me.  I have not tested it so I will leave it to @fyookball to merge.

I have tested it and it is perfect

authors: Danconnolly LRonHubs kyuupichan

repo: fyookball/electrum


text:
Got 'Unknown formatter "tollFreePhoneNumber"' using es_ES locale

Summary
In a Laravel project, Faker is provided using a config parameter, 'faker_locale', so the dependency is well instantiated. If not set, fallsback to en_US
Tracking the error message, it seems that there is a typo in Faker\Provider\es_ES\PhoneNumber: function is called tollFreeNumber instead  of tollFreePhoneNumber
Changing the function's name solves the issue.
Versions

Version

PHP
7.3.18

fzaninotto/faker
1.9.1

Self-enclosed code snippet for reproduction
// file config\app.php
    /*
    |--------------------------------------------------------------------------
    | Facker Locale Configuration
    |--------------------------------------------------------------------------
    |
    | The facker locale determines the default locale that will be used
    | by the generators.
    |
    */

    'faker_locale' => 'es_ES',

// file database\factory\PersonaFactory.php
$factory->define(Persona::class, function (Faker $faker) {
	$despacho = Despacho::all();
	if ( $despacho->count() > 0 ) {
		$despachoId = $despacho->random()->id;
	} else {
		$despachoId = null;
	}

	$genero = Genero::all();
	if ( $genero->count() > 0 ) {
		$generoId = $genero->random()->id;
	} else {
		$generoId = null;
	}

	$unidad = Unidad::all();
    if ($unidad->count() > 0) {
        $unidadId = $unidad->random()->id;
    } else {
        $unidadId = null;
    }

    return [
        'nombre' => $faker->firstName(),
        'apellidos' => $faker->lastName(),
        'siglas' => $faker->title(),
        'email' => $faker->safeEmail(),
	'observaciones' => $faker->paragraph(1, true),
	// ... more attributes ...
    ];
});

// trrying to use it anywhere, even tinker
$sample = factory('App\Models\Persona')->create()

Expected output
=> App\Models\Persona {#3539
     nombre: "Cristina",
     apellidos: "Robledo",
     siglas: "Lic.",
    ...
}

Actual output
InvalidArgumentException with message 'Unknown formatter "tollFreePhoneNumber"'

I've made a PR https://github.com/fzaninotto/Faker/pull/2031 with the addition. Test failed because other langauges issues.

repo: fzaninotto/Faker


text:
persian(farsi) lorem

Persian language was added to lorem

Lorem is never localized. Please use the realText provider instead.

sorry,i don't understant you,why we cannot change lorem file,i just added persian words instead of british's
it's very usefull for iranin developers

authors: MahdiAbedi fzaninotto


text:
Module not found: Can't resolve 'react-infinite-ticker'

After doing npm i react-infinite-ticker and importing VerticalTicker by : import { VerticalTicker } from "react-infinite-ticker"; seeing the following error :

Module not found: Can't resolve 'react-infinite-ticker'

Appreciate any suggestions.

Hi @dparkar .
Sorry for the delay. There was indeed a problem with. It's been fixed in c9fdd100af8ddde77ab99fc753d9f3e8aa74d2a7
Please give it a go npm i react-infinite-ticker@1.0.0-rc.1 and let me know if it's fixed.
Thanks

license: ISC


text:
エッジの条件にマッチしたノードのみを取得するようにする

現在のg2g mapperはエッジとノードの取得は個別に行われているが、
このままだと、例えば条件を満たすエッジとそれにまつわるノードのみを取ってくるようなG2GMLが書きづらい。むしろエッジの条件にマッチしたノードのみを取得するようにする動作を基本として、マッチしていないノードも含めて取得するような動作はオプションとして指定できるような形にすると使いやすいのではないか

現状の実装は、
ノードの制約はエッジの検索に引き継がれるが、
エッジの制約はノードの検索に引き継がれない
例として、
A から始まるミュージシャンを取ってこれても、
A から始まるグループ（エッジ・プロパティに押し込まれる）
で繋がったミュージシャンを取ってこれない
そこで、エッジの制約をノードの検索引き継ぐと、
その制約を満たすエッジを持たないノードは取得されなくなる
しかし、これは生成後のグラフで Orphan ノードなので、
取ってこれなくてもよいのではないか
ノードとエッジを別々の SPARQL で取ってくるところは、
今後も変わらないですよね？

確かに別々のSPARQLのままでも取れましたね・・・
一方で、あるエッジに関するSPARQLがノードも一緒に取ってくるようになると

SPARQLの発行が1回ですむためJenaを使う場合はデータのロードが減ってちょっと早くなる
エッジに関してLIMITをかけた検索を実装しやすくなる
というメリットもあるような気がしてきました

先程の議論の結果：

エッジ定義の条件をノード取得時の SPARQL に反映させる
変更後、Orphan ノードが取得されなくなる（取得するオプションもおいおい検討）
ノードごと、エッジごと、に SPARQL を発行する内部動作は変更しない
G2GML のシンタックスや書き方は変更しない

0.2.0 で対応完了

0.2.0 で対応完了

authors: matsusho070 ryotas ryotayamanaka


text:
When creating a lot of containers, core0 becomes irresponsive and don't receive command anymore

Test script
from JumpScale import j
import threading

def thread(i):
    cl = j.clients.g8core.get('10.101.200.2', port=6379)
    cl.container.create('file:///tmp/flist-7d8e5d35c347ba21fa2ed85fce802d68.db.tar.gz')
    print("started container %d" % i)

if __name__ == '__main__':
    threads = []
    for i in range(128):
        threads.append(threading.Thread(target=thread, kwargs={'i':i}))

    for t in threads:
        print("starts %s" % t.name)
        t.start()

    for t in threads:
        t.join()
        print("%s stopped" % t.name)

This for some thread a timeout exception is raise from the client.
After all the commands timeouts

Default processes are limited to 200.

authors: grimpy zaibon


text:
Add more documentation to tokens page and onboarding page

The site is lacking in documentation on the tokens page and onboarding page. Ex. we should describe the purpose of linking each 3rd party service.

Fixed in release branch 1.1


text:
Feature/diversity

Extending the QC metrics to VCF highlight the fact that some metrics are highly correlated with the genetic ancestry of a sample. It was agree by the group that we should diverify the benchmark sample set to include diverse ancestry.
Updated set that maximized diversity in term of population and gender:

Population name (26)
Superpopulation code (5)
No. of samples (M/F)

African   Ancestry SW
AFR
4

African   Caribbean
AFR
4

Bengali
SAS
5

British
EUR
4

CEPH
EUR
4

Colombian
AMR
4

Dai   Chinese
EAS
4

Esan
AFR
4

Finnish
EUR
4

Gambian   Mandinka
AFR
4

Gujarati
SAS
4

Han   Chinese
EAS
4

Iberian
EUR
4

Japanese
EAS
4

Kinh   Vietnamese
EAS
4

Luhya
AFR
4

Mende
AFR
4

Mexican   Ancestry
AMR
4

Peruvian
AMR
4

Puerto   Rican
AMR
2

Punjabi
SAS
3

Southern   Han Chinese
EAS
2

Tamil
SAS
4

Telugu
SAS
4

Toscani
EUR
4

Yoruba
AFR
4

TODO:

[x] Switch sample list
[ ] Run NPM pipeline on the new list
[ ] Run ARGO pipeline on the new list
[ ] Update distribution plot
[ ] Update correlation plot

Issue: the n.100 "diversity" results from npm-sample-qc pipeline are flat
{
"wgs_qc_metrics": {
        "count_deletions": 435012,
        "count_insertions": 420547,
        "count_snvs": 3906868,
        "cross_contamination_rate": "1.13179e-09",
        "insert_size_std_deviation": "99.3",
        "mad_autosome_coverage": "4",
        "mean_autosome_coverage": "29.94",
        "mean_insert_size": "429.5",
        "pct_autosomes_15x": "95.90",
        "pct_reads_mapped": "99.81",
        "pct_reads_properly_paired": "98.4",
        "ratio_heterozygous_homzygous_indel": 1.93,
        "ratio_heterozygous_homzygous_snv": 1.57,
        "ratio_insertion_deletion": 0.97,
        "ratio_transitions_transversions_snv": 1.96,
        "yield_bp_q30": "102984371235"
    }
  }

While the results from npm-sample-qc v0.13.0 are nested
{
    "wgs_qc_metrics": {
        "aln_metrics": {
        },
        "variant_metrics": {
        }
    }
}

We need to re-run the npm-sample-qc v0.13.0 on the "diversity" dataset


text:
Use ember-giftwrap

Provide a globals version with https://github.com/ef4/ember-giftwrap

haha awesome

authors: gabesmed miguelcobain

repo: gabesmed/ember-leaflet


text:
🛑 Dissenter is down

In 896a27c, Dissenter (https://dissenter.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Dissenter is back up in d6836d9 after 55 minutes.

repo: gadmln/gabstatus


text:
update react-router v2

Hi. react-router updated v2.
Some api were deprecated. Expect to apply new api.
Thank you!

sorry it's other

repo: gaearon/redux-devtools


text:
NavigationDrawerLayout is open by default when app is started. Also Not able to trigger drawer close/open on button onPress.

Hello,
I've implemented your library but I'm unable to close the NavigationDrawerLayout while the screen is loading. I've tried close={true} as said by you but It's not working.

  <NavigationDrawerLayout

    percent={75}
    close={true}
    //statusBar="#008cff"
    //statusBarTransparency={0.3}
    ref = {_drawer => (this.drawer = _drawer)}
    type={this.state.type}
    drawerPosition="left"
    selected="opt0"
    window="menu"
    color="#fff"
    backgroundColor={colors.white}
    imageBackground="http://www.pswca.org/images/skins/bg-banner-red.png"
    first={'username'}
    second={'joined'}>

as you can see in the above code. I've also mentioned the ref props to trigger the opening and closing of the drawer but it is also not happening. So, I wanted to ask that is there any props that I'm missing to implement both issues. Kindly assist me on that.
Thanks.

Hello all developer, It working with android, whey it error with ios?

Hi @many-pichr : With iOS it does not work.

@Pankajlilan : Are there any news? If the problem has been solved, please kindly close the thread.

Hi @gaetanozappi ,
Your componentDidMount(){ this.closeDrawer(); } solution worked but to open drawer I've tried your solution <AssetExample openDrawer={this.openDrawer} /> but it is not working. Also how will we navigate from the menu item from here?

@Pankajlilan :
Do this test with this code is tell me what happens:
App.js
import * as React from 'react';
import { StyleSheet, View, Text, ToastAndroid } from 'react-native';
import NavigationDrawerLayout from 'react-native-navigation-drawer-layout';

import Homepage from './page/Homepage';
import PageOne from './page/PageOne';
import DefaultPage from './page/DefaultPage';

export default class App extends React.Component {
  constructor() {
    super();
    this.state = {
      menu: {
        name: 'opt0',
        title: 'Le mie app e i miei giochi',
      },
      type: '',
    };
  }

  openDrawer = () => {
    this.drawer.openDrawer();
  };

  changeComponent = name => {
    switch (name) {
      case 'opt0':
        return <Homepage menu={this.state.menu} openDrawer={this.openDrawer} />;
      case 'opt1':
        return <PageOne menu={this.state.menu} />;
      default:
        return <DefaultPage menu={this.state.menu} />;
    }
  };

  render() {
    return (
      <NavigationDrawerLayout
        ref={_drawer => (this.drawer = _drawer)}
        percent={75}
        //statusBar="#008cff"
        //statusBarTransparency={0.3}
        type={this.state.type}
        drawerPosition="left"
        selected={this.state.menu.name}
        window="menu"
        color="#fff"
        backgroundColor="#fff" //303030
        imageBackground="https://c.wallhere.com/photos/aa/44/glare_colorful_bright_circles-679384.jpg!d"
        first={'username'}
        second={'joined'}
        account={[
          {
            username: 'james.bond',
            name: 'James Bond',
            email: 'james.bond.xx@xxx.xxx',
            image:
              'https://cdn1.iconfinder.com/data/icons/avatar-2-2/512/Casual_Man_2-512.png',
            joined: 'Joined at Jun 21, 2021',
            badgeText: '100',
            badgeColor: '#fff',
            badgeBackground: '#303030',
            circle: ['transparent', 'transparent'],
          },
          {
            username: 'sherlock.holmes',
            name: 'Sherlock Holmes',
            email: 'sherlock.holmes.xx@xxx.xxx',
            badgeText: '100',
            badgeColor: '#fff',
            badgeBackground: '#303030',
            circle: ['#fff000', 'transparent', '#00ffd0'],
          },
          {
            name: 'Shinichi Kudo',
            email: 'shinichi.kudo.xx@xxx.xxx',
            image:
              'https://cdn1.iconfinder.com/data/icons/avatar-2-2/512/Casual_Man_3-512.png',
            badgeText: '21',
            badgeColor: '#fff',
            badgeBackground: '#25dbd2',
            joined: 'Joined at Jun 31, 2021',
            circle: ['transparent', 'transparent'],
          },
          {
            name: 'Arthur Conan Doyle',
            email: 'arthur.conan.doyle.xx@xxx.xxx',
            image:
              'https://cdn0.iconfinder.com/data/icons/user-interface-vol-3-12/66/68-512.png',
            circle: ['transparent', 'transparent'],
          },
        ]}
        badgeFunction={e => {
          return e > 99 ? '99+' : e;
        }}
        menu={[
          {
            type: 'menu',
            name: 'opt0',
            title: 'Le mie app e i miei giochi',
            icon: 'apps',
            colorText: '#000',
            colorTextFocus: '#4CAF50',
            colorIcon: '#c1c1c1',
            colorIconFocus: '#4CAF50',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
            badgeText: '100',
            badgeColor: '#fff',
            badgeBackground: '#1194ff',
          },
          {
            type: 'menu',
            name: 'opt1',
            title: 'Le mie notifiche',
            icon: 'add-alert',
            colorText: '#000',
            colorTextFocus: '#607D8B',
            colorIcon: '#c1c1c1',
            colorIconFocus: '#607D8B',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
            badgeText: '31+',
          },
          {
            type: 'menu',
            name: 'opt2',
            title: 'Abbonamenti',
            icon: 'refresh',
            colorText: '#000',
            colorTextFocus: '#607D8B',
            colorIcon: '#c1c1c1',
            colorIconFocus: '#607D8B',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
          },
          { type: 'divider' },
          {
            type: 'title',
            title: 'App Google',
            colorText: '#000',
          },
          {
            type: 'menu',
            name: 'opt3',
            title: 'Home page',
            icon: 'home',
            colorText: '#000',
            colorTextFocus: '#4CAF50',
            colorIcon: '#4CAF50',
            colorIconFocus: '#4CAF50',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
          },
          {
            type: 'collapse',
            name: 'opt4',
            title: 'Film',
            iconCollapsingName: 'local-movies',
            iconColor: '#ccc',
            colorText: '#000',
            colorTextFocus: '#4CAF50',
            colorIcon: '#f44336',
            colorIconFocus: '#f44336',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
            menu: [
              {
                name: 'sub0',
                title: "Apri l'app Film",
                icon: 'film',
                colorText: '#000',
                colorTextFocus: '#f44336',
                colorIcon: '#f44336',
                colorIconFocus: '#f44336',
                background: 'transparent',
                backgroundFocus: '#e8e8e8',
              },
            ],
          },
          {
            type: 'collapse',
            name: 'opt4',
            title: 'Libri',
            showOnStart: true,
            rippleColor: '#000',
            backgroundBarNormal: '#545a63',
            backgroundBarFocus: '#22252A',
            iconBarNameNormal: 'book',
            iconBarNameFocus: 'book',
            iconBarColorNormal: '#1194ff',
            iconBarColorFocus: '#ffb600',
            textBarColorNormal: '#1194ff',
            textBarColorFocus: '#ffb600',
            animateIconColorNormal: '#1194ff',
            animateIconColorFocus: '#ffb600',
            iconColor: '#ccc',
            colorText: '#000',
            colorTextFocus: '#4CAF50',
            colorIcon: '#f44336',
            colorIconFocus: '#f44336',
            background: 'transparent',
            badgeText: '100',
            badgeColor: '#fff',
            badgeBackground: '#1194ff',
            badgeRadius: 4,
            badgeStyle: {},
            menu: [
              {
                name: 'sub1',
                title: "Apri l'app Libri",
                icon: 'book',
                colorText: '#000',
                colorTextFocus: '#2196F3',
                colorIcon: '#2196F3',
                colorIconFocus: '#2196F3',
                background: 'transparent',
                backgroundFocus: '#e8e8e8',
                badgeText: '100',
                badgeColor: '#fff',
                badgeBackground: '#1194ff',
                badgeRadius: 4,
                close: true,
              },
            ],
          },
          { type: 'divider' },
          {
            type: 'menu',
            name: 'opt9',
            title: 'Account',
            icon: 'person-pin',
            colorText: '#000',
            colorTextFocus: '#607D8B',
            colorIcon: '#c1c1c1',
            colorIconFocus: '#607D8B',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
          },
          {
            type: 'menu',
            name: 'opt10',
            title: 'Utilizza codice',
            icon: 'code',
            colorText: '#000',
            colorTextFocus: '#607D8B',
            colorIcon: '#c1c1c1',
            colorIconFocus: '#607D8B',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
          },
          {
            type: 'menu',
            name: 'opt11',
            title: 'Lista desideri',
            icon: 'check-circle',
            colorText: '#000',
            colorTextFocus: '#607D8B',
            colorIcon: '#c1c1c1',
            colorIconFocus: '#607D8B',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
          },
          {
            type: 'menu',
            name: 'opt12',
            title: 'Play Protect',
            icon: 'verified-user',
            colorText: '#000',
            colorTextFocus: '#607D8B',
            colorIcon: '#c1c1c1',
            colorIconFocus: '#607D8B',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
          },
          {
            type: 'menu',
            name: 'opt13',
            title: 'Impostazioni',
            icon: 'settings',
            colorText: '#000',
            colorTextFocus: '#607D8B',
            colorIcon: '#c1c1c1',
            colorIconFocus: '#607D8B',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
          },
          {
            type: 'menu',
            name: 'opt14',
            title: 'Close Drawer',
            icon: 'exit-to-app',
            colorText: '#000',
            colorTextFocus: '#607D8B',
            colorIcon: '#c1c1c1',
            colorIconFocus: '#607D8B',
            background: 'transparent',
            backgroundFocus: '#e8e8e8',
            close: true,
          },
        ]}
        onPress={e => {
          ToastAndroid.show(
            'Title: ' + e.title + ' * ' + 'Name: ' + e.name,
            ToastAndroid.SHORT
          );
          console.log('Menu:', e);
          var type = e.name == 'opt3' ? 'simple' : '';
          this.setState({ menu: e, type });
        }}>
        <View
          style={{
            flex: 1,
            marginTop: 25,
            //alignItems: 'flex-end',
          }}>
          <Text>{this.state.menu.name}</Text>
          {this.changeComponent(this.state.menu.name)}
        </View>
      </NavigationDrawerLayout>
    );
  }
}

const styles = StyleSheet.create({});

page/DefaultPage.js
import * as React from 'react';
import { Text, View, StyleSheet } from 'react-native';

export default class DefaultPage extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.paragraph}>DefaultPage</Text>
        <Text style={{ marginTop: 25, marginRight: 5, textAlign: 'right' }}>
          State: {this.props.menu.title}!
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    backgroundColor: '#ecf0f1',
    padding: 8,
  },
  paragraph: {
    margin: 24,
    fontSize: 18,
    fontWeight: 'bold',
    textAlign: 'center',
  },
});

page/Homepage.js
import * as React from 'react';
import { Text, View, Button } from 'react-native';

export default class Homepage extends React.Component {
  render() {
    return (
      <View
        style={{
          flex: 1,
          //alignItems: 'flex-end',
        }}>
        <Text style={{ marginTop: 25, marginRight: 5, textAlign: 'right' }}>
          Hello World!
        </Text>
        <Text style={{ marginTop: 25, marginRight: 5, textAlign: 'right' }}>
          State: {this.props.menu.title}!
        </Text>
        <Button
          onPress={() => this.props.openDrawer()}
          title="Open"
          color="#4286f4"
        />
      </View>
    );
  }
}

page/PageOne.js
import * as React from 'react';
import { Text, View, StyleSheet } from 'react-native';

export default class PageOne extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.paragraph}>Page One</Text>
        <Text style={{ marginTop: 25, marginRight: 5, textAlign: 'right' }}>
          State: {this.props.menu.title}!
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    backgroundColor: '#ecf0f1',
    padding: 8,
  },
  paragraph: {
    margin: 24,
    fontSize: 18,
    fontWeight: 'bold',
    textAlign: 'center',
  },
});

Also, I got one more issue that. When the user is changed from navigation drawer. which event is called so that we get to know that this is the specific user? Do you have any parameter for that?

@Pankajlilan :  Have you tried the example, what results from da works? Does it solve the problem of the original title of the issues?

@Pankajlilan : Use version 0.0.6.
In the readme in the example:
https://github.com/gaetanozappi/react-native-navigation-drawer-layout#-usage
Take a look at: changeAccount
...
changeAccount={e => {
  console.log('Account:', e);
}}
...

authors: Pankajlilan gaetanozappi many-pichr


text:
To include tx_hash and input data in TxpoolTransaction

currently TxpoolTransaction is a synonym of TransactionRequest and it doesn't include "tx_hash" and not deserilize input data.
It's very useful to add these too fields for TxpoolTransaction.

WIP on this here https://github.com/gakonst/ethers-rs/pull/465, if you want to try getting it over the line?

authors: KennyYanXM gakonst

repo: gakonst/ethers-rs


text:
Refactoring spine loader

Refactoring the SpineLoader to replace the native AssetManager in spine-core with the engine's loader system.
Change the output of the loader from spine Entity to static skeletal data.
Issue related : #88 #85

done

repo: galacean/engine-spine


text:
Cannot turn in expedition

For some reason, when I tried to turn in expedition 5918, the server always responded with 500.
I did have the required amount of Icarus class ships (74.87k), because I tried to turn in another one (4507, which required 77.76k), to test whether all of them are broken, and that one turned in okay.
I'm not sure, but I think I should have enough drones to test again before it expires. Unless you find what could have been wrong with it.

Thanks, Fixed

authors: edvordo petaki

repo: galaxyofdrones/galaxyofdrones


text:
Galaxy with CVMFS seems to work on newer kubernetes

**** This isn't a bug, I just want to point out that CVMFS seems to work better now.... ***
Hi, I saw this pull request https://github.com/cernops/cvmfs-csi/pull/35 on the cernops/cvmfs-csi and decided to try it. I added a few edits in a new_provisioner branch https://github.com/cyrilcros/cvmfs-csi/blob/new_provisioner/deployments/helm/cvmfs-csi/values.yaml
That's been working well for me, notably because it has a different csi-cvmfsplugin image that solves some issues (https://github.com/cernops/cvmfs-csi/issues/26). I just added some quick other changes like in this pull request https://github.com/cernops/cvmfs-csi/pull/22/files , or removing the attach component as in https://github.com/cernops/cvmfs-csi/issues/29 .
I am getting 504 timeout errors from nginx I am now trying to fix, but now the PVCs are created as they should on Kubernetes 1.21...

Thank you for pointing out that PR!!
I'll work on porting the new version on our end to have Galaxy's CVMFS work post-1.19.

Yes, from what I have seen the Helm chart needed just minor work, but the CSI plugin itself needs an update. The fbarreir/csi-cvmfsplugin:9 Docker image (from this guy I assume: Fernando Barreiro )  seems to use a modernized version, ideally you may get the source code from him. I don't see it on his public Github....

@cyrilcros I am trying to get all of these changes merged into our helm charts, but the fbarreir/csi-cvmfsplugin:9 Docker image does not seem to exist on Docker Hub or quay.io and I can not find any contact information for Fernando Barreiro.  I was hoping the brinkmanlab/csi-cvmfsplugin:1.2.0 Docker image would be a drop in replacement. The PVCa and PVa are created, but I get the following error when launching Galaxy:
MountVolume.MountDevice failed for volume "pvc-2f420977-f878-4e0b-ae6a-95c387b4c426" : rpc error: code = Internal desc = mount failed: exit status 32 Mounting command: mount Mounting arguments: -t cvmfs -o config=/etc/cvmfs/config-csi-cvmfs-pvc-2f420977-f878-4e0b-ae6a-95c387b4c426-a48189e8-d068-11ec-a3a6-fa163e3c7d6b data.galaxyproject.org /var/lib/kubelet/plugins/kubernetes.io/csi/pv/pvc-2f420977-f878-4e0b-ae6a-95c387b4c426/globalmount Output: CernVM-FS: running with credentials 999:997 CernVM-FS: loading Fuse module... Failed to fetch manifest (22 - history init failure)

Is this still working for you?

authors: almahmoud cyrilcros ksuderman

repo: galaxyproject/galaxy-helm


text:
Update to Tool Management slides for Admin Training 2021

Some proposed updates to the toolshed/tool management slides:
Additions:

Three slides at the beginning talking about the tool panel and tool configuration files
Slide containing a screenshot of the toolshed
shed-tools install example slide
two slides on shed-tools test

Changes:

workflow-to-tools slide instead of workflow-install

Deletions:

run-data-managers slide
Dependency resolvers example
Slide about integrated tool panel (this is covered in added slides on tool configuration files)

Some slides have been rearranged as well.  The approximate running time is 20 minutes.
For things that I have taken out, I can easily put these back if they are missed.

Thank you @nsoranzo!

Thanks so much @cat-bro.
I'll rebase get the automated video going over in #2152.

authors: cat-bro hexylena

repo: galaxyproject/training-material


text:
Filter by fasta

Added a feature where id list can be accession number in the fasta header (necessarily not the complete fasta header).
Eg. filter fasta id based on Uniprot accession number from a Uniprot like fasta file.
This modification uses pattern recognition to match the accessions in the header.

Thanks!

repo: galaxyproteomics/tools-galaxyp


text:
消費税率を編集できるようにする

今は消費税率１０％固定で請求書や見積書の額を計算しているが、消費税率を編集できるようにする。

これは過去に作成した請求・見積書に影響が出ないよう、InvoicesとQuotationsにtaxカラムを追加するのがベストだろうか？

良い質問だね。まったくそのとおり。
さらにいえば、商品明細ごとに10％と8％を分けられるようにすべきなんだが、そのへんは大平さんの意見が聞きたいところだね。

商品ごとに消費税率の設定が必要になるし、請求・見積内でも消費税率の設定が必要になり影響範囲のが大きい為、この機能は次フェーズでの実装に回す。

今フェーズは終了。なのでClose。
次フェーズに持ち越すのでWikiに残す。

authors: gamasenninn monomonosu

repo: gamasenninn/soho-caddie


text:
Add support for connecting to redis server over SSL

Description
Fixes https://github.com/gamenet/redis-memory-analyzer/issues/49
Intention of this PR is to provide very basic support for connecting to redis server over SSL. It doesn't perform any kind of cert verification which means connection to redis server won't be secure.

As for those failing tests, let me know if this project is active - I can look into more details then.

@Ashish-Bansal yes please. Could you check why it`s failed with Python 3.4.х ?

@misterion Python 3.4.x reached end of life. redis-py dropped support for the same. That's the reason tests are failing. Do we want to retain its support ?

@Ashish-Bansal i`m not deep involved in python, sorry. You are right, may i ask you to remove 3.4 from .travis.yml in this request?

authors: Ashish-Bansal misterion

repo: gamenet/redis-memory-analyzer


text:
[Suggestion] Prevent players sending messages when not logged in.

You can impersonate other people.

It should already prevent chat messages.


text:
Add options for customizing text

This would give the people using this plugin more options to custom the message this plugin says through the TextConfiguration, where they can make the plugin say whatever he/she wants. This would be useful for foreign servers and much more.

Sorry for these many comments. I really like your changes.

I fixed the changes you want, it should be ready to merge. Meanwhile I will document as much code as I can to make it easily understandable.

@games647 I am having some trouble fixing the merge conflicts. Are you able to cherry pick my code and merge it yourself? (Sorry, new to git)

Yes

Finished ^^. Thank you very much for the commit.


text:
If you have suggestions please make a pull request

I probably won't add a lot of new functions.
If you see something that should be changed or something that should be added make a pull request.

Thanks for the great work.
Does this version of TNS include lazload support for <picture> tag? If so could you provide example use case markup 🙏

@dr-codswallop I made a wiki with examples: https://github.com/gammesB/tiny-slider-withfixes/wiki
If you find some other things that should be added please make a issue with the needed text/explanation then I will add it.

authors: dr-codswallop gammesB

repo: gammesB/tiny-slider-withfixes


text:
Failed to activate the language-babel package

[Enter steps to reproduce:]

Issue once happened in here, but I'm using the latest version of Atom...
Fire up Atom
Check the notification area

Atom: 1.15.0-beta3 x64
Electron: 1.3.13
OS: Microsoft Windows 10 Enterprise
Thrown From: language-babel package 2.55.3
Stack Trace
Failed to activate the language-babel package
At unexpected indentation in file:///C:/Users/Pingshun Huang/.atom/packages/language-babel/lib/did-insert-text.coffee:20:1

SyntaxError: unexpected indentation
  at /packages/language-babel/lib/did-insert-text.coffee:20:1

Commands
     -2:34.5.0 tree-view:show (atom-workspace.workspace.scrollbars-visible-always.tinted-tab-bar.no-tab-min-width.panel-shadows.panel-contrast.use-animations.compact-tree-view.blend-tree-view.paint-cursor.theme-atom-material-syntax-dark.theme-atom-material-ui)

Non-Core Packages
advanced-open-file 0.16.5
aligner 0.22.3
atom-beautify 0.29.17
atom-material-syntax-dark 0.2.7
atom-material-ui 1.3.9
atom-terminal 0.8.0
atom-ternjs 0.17.2
autocomplete-modules 1.6.7
autocomplete-paths 1.0.5
autocomplete-python 1.8.55
autoprefixer 3.6.1
color-picker 2.2.5
d3-snippets 0.2.0
django-atom 0.2.4
emmet 2.4.3
file-icons 2.0.15
git-log 0.4.1
git-plus 7.3.2
git-time-machine 1.5.6
highlight-selected 0.12.0
Hydrogen 1.5.5
hyperclick 0.0.40
js-hyperclick 1.10.1
language-babel 2.55.3
linter 1.11.23
linter-coffeelint 1.2.1
linter-csslint 1.3.4
linter-eslint 8.1.2
linter-flake8 2.1.4
linter-jsonlint 1.3.0
linter-markdown 3.1.0
linter-xmllint 1.4.0
merge-conflicts 1.4.4
minimap 4.26.8
minimap-pigments 0.2.2
pigments 0.39.0
project-manager 3.3.3
qolor 0.4.1
regex-railroad-diagram 0.16.0
split-diff 1.2.0
sync-settings 0.8.1
tree-view-git-status 1.3.1

Yeah, sorry about that-  bit rushed. Try 2.55.4

Funny how fast people upgrade. 🙂

All good now. :)

[Enter steps to reproduce:]

...
...

Atom: 1.17.2 x64
Electron: 1.3.15
OS: Mac OS X 10.12.4
Thrown From: language-babel package 2.65.1
Stack Trace
Failed to activate the language-babel package
At Maximum call stack size exceeded

RangeError: Maximum call stack size exceeded
    at Array.indexOf (native)
    at Object._.contains._.include (/Applications/Atom.app/Contents/Resources/app/node_modules/underscore/underscore.js:219:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:294:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)
    at Grammar.module.exports.Grammar.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:298:1)
    at GrammarRegistry.module.exports.GrammarRegistry.grammarUpdated (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:181:1)

... a lot more like this

(/Applications/Atom.app/Contents/Resources/app/src/config.js:236:1)
    at Config.module.exports.Config.removeAtKeyPath (/Applications/Atom.app/Contents/Resources/app/src/config.js:386:1)
    at Package.module.exports.Package.enable (/Applications/Atom.app/Contents/Resources/app/src/package.js:84:1)
    at PackageManager.module.exports.PackageManager.enablePackage (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:185:1)
    at HTMLButtonElement.enablementButtonClickHandler (/Applications/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/package-card.js:361:1)

Commands
     -0:51.6.0 tree-view:show (atom-workspace.workspace.scrollbars-visible-when-scrolling)
     -0:34.5.0 core:paste (input.hidden-input)
     -0:23 core:backspace (input.hidden-input)

Non-Core Packages
atom-beautify 0.29.26
auto-reveal-in-sidebar 0.8.0
busy-signal 1.4.1
color-picker 2.2.5
editorconfig 2.2.2
emmet 2.4.3
file-icons 2.1.7
intentions 1.1.2
language-babel 2.65.1
language-javascript-jsx 0.3.7
language-vue 0.22.1
linter 2.0.0
linter-eslint 8.2.1
linter-sass-lint 1.7.4
linter-ui-default 1.6.0

authors: Jones-S dodekeract gandm pingshunhuangalex

repo: gandm/language-babel


text:
Fix regex to catch rules without specific types

Currently flask-swagger does not support paths with no types
bad
@route('/<param>/<another>')

good
@route('/<string:param>/<string:another>')

The problem explained here: https://regex101.com/r/iL3jK2/3
Solution explained here: https://regex101.com/r/gZ2rV3/4
This PR fixes the problem!

Thanks Bruno!

authors: atlithorn rochacbruno

repo: gangverk/flask-swagger


text:
What's the strided convolution stand for in your paper?

What's the strided convolution stand for in your paper?

I guess you were referring the SpatialFullConvolution layer? We did not use it in our paper. It follows from the neural fabric architecture, and will be useful for semantic segmentation.

Is there a pretrained model for fine-tunning？

authors: gaohuang miraclewkf

repo: gaohuang/MSDNet


text:
testDecode.ipynb中计算Range-FFT后有报错

运行成功了，但是有报错：
C:\Users\Administrator\AppData\Local\Temp\ipykernel_1172\2177965870.py:13: RuntimeWarning: divide by zero encountered in log
plt.imshow(np.log(np.abs(range_plot.sum(1)).T))
然后就如上图所示，会有三条大黑框
我百度了一下，说是数据太大的问题？要改变浮点数精度

这部分数据丢失了，默认填充0，在转换为对数尺度时0是负无穷，会有个警告，不影响显示，但数据丢失确实是一个问题，可能是丢包了？

这部分数据丢失了，默认填充0，在转换为对数尺度时0是负无穷，会有个警告，不影响显示，但数据丢失确实是一个问题，可能是丢包了？

那我再调一下试试，还有老是时不时就会[fpga_udp]udp time out，比较烦，感觉很玄学，有时能连上有时就不行了。请问您清楚这个情况吗？我雷达是IWR1843Boost

这部分数据丢失了，默认填充0，在转换为对数尺度时0是负无穷，会有个警告，不影响显示，但数据丢失确实是一个问题，可能是丢包了？

那我再调一下试试，还有老是时不时就会[fpga_udp]udp time out，比较烦，感觉很玄学，有时能连上有时就不行了。请问您清楚这个情况吗？我雷达是IWR1843Boost

自己更新并记录：
针对上述提示[fpga_udp]udp time out然后没有采集数据的情况——是因为SOP模式没有设置为功能模式（SOP0：1，SOP1：0，SOP2：0），在closed issue #2里有提到
我也是才看到（囧），难怪作者不理我hh

authors: Ningoose gaoweifan

repo: gaoweifan/pyRadar


text:
General improvements

I made these changes to a fork I made a few months ago for some large reindexing jobs I had to do for work and thought I'd offer to merge them back if you want.
Changes:

Separate 'from' and 'to' API versions since they may not always be the same. I was going from 1.5 to 2.1 when I did this.
Make boolean option strings actual booleans. This wasn't working correctly.
Enable cluster sniffing by default and allow enabling or disabling it. Large reindexing jobs are almost guaranteed to fail if hitting only one node. It also makes reindexing much faster when it can balance the load across the cluster.
Automatically prefix URLs with the http:// protocol if not specified. The client doesn't cope well if the referenced node URLs don't contain a protocol and it also doesn't give a useful error message.
Swap Q for Bluebird as the promise library. It dropped copious amounts of time from the reindexing jobs I was doing. Bluebird is much faster.
Allow resolving promises with falsey values in scripts to skip reindexing the record.

Yes! PR is welcome, appreciate!  Merged and new version 1.1.14 is avaiable in npm. Thank you for your contribution!

authors: garbin jwarkentin

repo: garbin/elasticsearch-reindex


text:
Update OWNERS

/kind enhancement
What this PR does / why we need it:
In internal discussions it was agreed that we (@ialidzhikov , @dimitar-kostadinov , @Kostov6) take the ownership for the extension and work on making it production ready (ref https://github.com/gardener/gardener-extension-registry-cache/issues/3).
Which issue(s) this PR fixes:
Part of https://github.com/gardener/gardener-extension-registry-cache/issues/3
Special notes for your reviewer:
N/A
Release note:

NONE

/approve

authors: ialidzhikov oliver-goetz


text:
Switch back to upstream VPA CRD (with strict validation)

/area auto-scaling
/kind enhancement
What would you like to be added:
With https://github.com/gardener/gardener/pull/4675 we relaxed the VPA CRD to allow unknown fields in order to unblock users who applied "broken" VPA objects before. See https://github.com/gardener/gardener/pull/4675 for more details.
Why is this needed:
We should switch back to the upstream VPA CRD again (maybe with a feature gate in case we still have users that apply "broken" VPA objects (?)) to have the schema validation in-place (hence, to forbid "broken" VPA objects to be created).

/cc @timuthy @voelzmo

/assign

@andrerun are there any updates on this issue?

@timebertt We were blocked on a few internal issues, but these have been resolved. I think we're going to fix this soon!

Documenting discussion on a side channel:
Today I confirmed that an update was recently made to bring existing clusters to conformance. As next steps, I will validate said conformance to the v1 schema, and then I’ll switch to it. Unless we consider it urgent, it will take a couple of weeks due to competing priorities.

/remove-lifecycle frozen

authors: andrerun ialidzhikov rfranzke timebertt voelzmo

repo: gardener/gardener


text:
[ci:component:github.com/gardener/autoscaler:v1.20.0->v1.21.0]

Release Notes:
NodeTemplate is not formed using cache in case nodegrp has minimum size zero. This is done to keep nodeTemplate updated even when instance type of nodegrp is updated.

CA is now synced with upstream v1.21.0

/close in favor of #5955


text:
Create new version 4.5.1

A new version needs creating for the latest TorBrowser 4.5.1.

Release v4.5.1 has now been created.

repo: garethflowers/tor-browser-portable


text:
added turven

Description
I have added turven.
Fixes #47
Type of change
Please delete options that are not relevant.

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

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

[ ] Test A
[ ] Test B

Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist:

[x] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Please make all PRs to hakincodes branch.

@mharshita ??

@garimasingh128 @ShauryaBhandari  Sorry but i dont know how to shift to another branch.

There's an edit option near the title of your PR on the top of this screen. Do that from there. Or google it simply.

@garimasingh128  Done!

Conflicting files
public/index.html
Please do a pull and resolve these.

@garimasingh128  I have done it. Please review. and also sorry for the delay.


text:
can not add option value to reservation

Hello,
I am trying to add a Option Value to a new created reservation, but I am always getting an access violation. I tried both ways as below both times I get the violation.
Can anybody explain me, why this error occurs?
var dhcpServer = DhcpServer.Connect(192.168.0.1);
var scope = dhcpServer.Scopes.First();
var NewReservation = scope.Reservations.AddReservation("192.168.0.10", "AA:BB:CC:DD:EE:FF");
NewReservation.Client.Name = "Demo";
var Option67 = dhcpServer.Options.GetDefaultOption(67);
var ReservationOption67 = Option67.CreateOptionStringValue("demo");
NewReservation.Options.AddOrSetOptionValue(Option67);

NewReservation.Options.SetOptionValue(dhcpServer.Options.GetDefaultOption(67).CreateOptionStringValue("DEMO"));

I haven't been able to reproduce the error.
The sample code you provided must have been modified before posting (perhaps to anonymize?):

The first line is missing quotes around the specified IP address.
AddOrSetOptionValue (line 7) cannot receive variable Option67 (of type IDhcpServerOption) as a parameter; I guess ReservationOption67 (IDhcpServerOptionValue) was intended.

Without correcting those mistakes the code would not build (let alone throw an access violation).
After adjusting however, the code does build, and (in my environment) runs successfully.
var dhcpServer = DhcpServer.Connect("YourServerAddress");
var scope = dhcpServer.Scopes.First();
var NewReservation = scope.Reservations.AddReservation("ClientAddressWithinScopeRange", "AA:BB:CC:DD:EE:FF");
NewReservation.Client.Name = "Demo";
var Option67 = dhcpServer.Options.GetDefaultOption(67);
var ReservationOption67 = Option67.CreateOptionStringValue("demo");
NewReservation.Options.AddOrSetOptionValue(ReservationOption67);

Some more information will be needed to diagnose.

Which version of the DhcpServerApi library are you using?
Which version of Windows Server are you targeting?
Which version of .NET are you using?
Is you app running as 32 or 64-bit?
Please provide an exception stack-trace, and the full error message.

Hi,
here the needed answers:
yes the missing "" and the other wrong value happed due to anonymising.
I tried the code, you posted - still getting the error.

1.0.2 alpha
Windows Server 2016
.Net 4.5 (tried 4.5.2 same error)
set to any CPU

System.AccessViolationException was unhandled.  HResult=-2147467261  Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.  Source=DhcpServerApi  StackTrace:       bei Dhcp.Native.Api.DhcpSetOptionValueV5(String ServerIpAddress, UInt32 Flags, Int32 OptionID, String ClassName, String VendorName, IntPtr ScopeInfo, DHCP_OPTION_DATA_Managed OptionValue)       bei Dhcp.DhcpServerOptionValue.SetOptionValueV5(DhcpServer server, IntPtr scopeInfo, Int32 optionId, String className, String vendorName, IEnumerable1 values)
bei Dhcp.DhcpServerOptionValue.SetOptionValue(DhcpServer server, IntPtr scopeInfo, Int32 optionId, String className, String vendorName, IEnumerable1 values)       bei Dhcp.DhcpServerOptionValue.SetScopeReservationOptionValue(DhcpServer server, DhcpServerIpAddress scopeAddress, DhcpServerIpAddress reservationAddress, Int32 optionId, String className, String vendorName, IEnumerable1 values)
bei Dhcp.DhcpServerOptionValue.SetScopeReservationOptionValue(DhcpServerScopeReservation reservation, Int32 optionId, String className, String vendorName, IEnumerable1 values)       bei Dhcp.DhcpServerOptionValue.SetScopeReservationOptionValue(DhcpServerScopeReservation reservation, DhcpServerOptionValue optionValue)       bei Dhcp.DhcpServerScopeReservationOptionValueCollection.AddOrSetOptionValue(IDhcpServerOptionValue value)       bei DHCPSET._Default.Button1_Click(Object sender, EventArgs e) in z:\Visual Studio\DHCPSET\DHCPSET\Default.aspx.cs:Zeile 369.       bei System.Web.UI.WebControls.Button.OnClick(EventArgs e)       bei System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)       bei System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)       bei System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)       bei System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)       bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)       bei System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)       bei System.Web.UI.Page.ProcessRequest()       bei System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)       bei System.Web.UI.Page.ProcessRequest(HttpContext context)       bei ASP.default_aspx.ProcessRequest(HttpContext context) in c:\Users\user01\AppData\Local\Temp\2\Temporary ASP.NET Files\vs\6a55e114\2c3fbbe3\App_Web_1qiifnuq.1.cs:Zeile 0.       bei System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()       bei System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)       bei System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)       bei System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error)       bei System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)       bei System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)       bei System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)       bei System.Web.HttpRuntime.ProcessRequest(HttpWorkerRequest wr)       bei Microsoft.VisualStudio.WebHost.Request.Process()       bei Microsoft.VisualStudio.WebHost.Host.ProcessRequest(Connection conn)       bei Microsoft.VisualStudio.WebHost.Host.ProcessRequest(Connection conn)       bei Microsoft.VisualStudio.WebHost.Server.OnSocketAccept(Object acceptedSocket)       bei System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)       bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)       bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)       bei System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()       bei System.Threading.ThreadPoolWorkQueue.Dispatch()       bei System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()  InnerException:

Thank you for the information. I believe your application (regardless of your hardware/OS) is running in 32-bit mode. It is likely the 'Prefer 32-bit' option is selected. While I hope 32-bit applications will work, testing of this library is largely restricted to 64-bit applications.
With the information you provided I was able to narrow down the 32/64-bit compatibility difference 897421ba1a531f70675de5ae2b2e5ad7709926c3.
I've released an alpha build including this change:
https://www.nuget.org/packages/DhcpServerApi/1.0.3-alpha
Please test and let me know your result.

Thank you.
I used the new 1.0.3 NuGet-Package and it worked like a charm.

authors: AboveNBeyondCode garysharp

repo: garysharp/DhcpServerApi


text:
How does the schema.graphql works?

Hello, I am facing some issue when using this library.
In the example there is a schema.graphql but I am not quite sure where this file is generated,
is it generated in the Backend? or generated by the graphql-codegen plugin?
I am using Nestjs as my backend so I tried to import the schema generated by autoSchemaFile config.
When it comes to custom scalar, it seem this library doesn't support scalars at all, or maybe I did something wrong.
Here is my schema.gql file in Backend side:
"""
A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.
"""
scalar DateTime

type SomeEntity {
  createdAt: DateTime!
  id: Int!
}

By checking source code, it seem this library only process
if (n.kind === 'ObjectTypeDefinition' || n.kind === 'InterfaceTypeDefinition') {
where custom scalars kind is ScalarTypeDefinition.
Thank you for the library and any advice!

Okay so I found what's wrong,
I have custom scalar for my database JSON column which uses the JSONObject scalar,
but since the transform function checks transformDefinition at the last,
it threats that custom scalar to be property of GraphQL structure.
I created a PR to fix this by moving the transformDefinition checking to the beginning.

Hey @nodegin, thanke you for contributing! :) Sorry that it took so long to reply, i just did not notice this issue until now. I kind of forgot that i made this public, i will check for regulary now!
I'm not sure i fully understand the Issue, can you maybe post the relevant part of your backend schema with the JSONObject?

@co-sic Hello! Sorry actually I already fixed the issue and created a PR.
The root cause was the parsing sequence, in my schema I have a field defined as JSONObject, but the current code when it checks the result is object it parse and return it immediately,
that will cause issue when you have custom object type in your schema like JSONObject because the transformDefinition will never get called.
In the PR I moved the parsing sequence to check if result fulfills transformDefinition first and it fixed my issue.

Hey, i saw your PR already, but i had trouble understanding why this is needed, since the library is fro transforming scalars. So if you have an object type then i check all the fields. So what exactly is your JSONObject? Can you show me the graphql definition of it or maybe part of your schema for me to understand better?

@co-sic Yes sure, so I have a schema looks like below
type OrderEntity {
  id: Int!
  item: JSONObject!
}

and JSONObject scalar is imported from graphql-scalars
import { GraphQLJSONObject } from 'graphql-scalars';
The sample data is like
{
  "id": 1,
  "item": {
    "productName": "test",
    "images": [],
    "price": 1000
  }
}

In this case, I just want the library to treat the item field as normal object,
but not GraphQL property, currently it will never hit the transformDefinition,
since typeof item is "object" then it will treat itemas GraphQL property.

@nodegin okay i understood now. I was not expecting there to be a type of scalar that is represented as an object. Makes sense now. Thanks for the fix! :)

authors: co-sic nodegin

repo: gastromatic/graphql-transform-scalars


text:
Various fixes to the responsiveness of workflow dropdown

💬 Description
A user reported an issue when using the new workflow dropdown on a smaller resolution. Peaks ended up giving some feedback on how we can improve the responsiveness, here are those changes!
This PR is mostly style updates. As well as a change to our collapsible logic to handle the changing of sizes better.
🔗 Links
https://trello.com/c/T6gWuxPx/1588-regular-the-new-workflow-ui-makes-it-difficult-to-leave-longer-notes
✅ Checklist

[ ] Tests written
[ ] Browser tested
[ ] Added to documentation
[ ] Added to storybook

I feel like there’s probably a simpler way of doing this, but i suppose animations need a fixed value to work that forces our hand a bit?

Yee we need the exact values to know how much to animate. I have tried estimating but it makes the animations too long/short and it looks baaaad.

repo: gathercontent/gather-ui


text:
Avatar component updates

This PR adds finesse to the current presence component, and refactors Storybook with revamped stories.

 [Editor] Avatar Design Feedback

authors: kyleharper nhqe


text:
Add gatsby-image to starter

Solving for https://github.com/gatsbyjs/gatsby/issues/9158 to add "gatsby-image" plugin to this starter.
The Image component located in src/components/image.js uses a StaticQuery to load the image from src/images/. The Image component is added to src/pages/index.js.
I went with querying for a fluid image rather than fixed. Happy to swap this out if it makes sense.
@jlengstorf recommended to grab a royalty-free image from Unsplash or something of the like. I opted to use the Gatsby Astronaut image since it fits well with the theme 🚀

So fun! @lexishanson thanks! This is a great idea because gatsby-image is super awesome :)
I think once this is merged, I'll create issues to add this change to https://github.com/gatsbyjs/gatsby-starter-default

@pieh haha whoops! 😂 I meant to say, let's explain this addition in the READme file. Would you want to do that, @lexishanson?
Like @pieh said, in the READme file we should emphasize the benefits of gatsby-image. (@pieh is that what you meant?)

@pieh Do you mean something like this?
/*
 * This component is built using `gatsby-image` to automatically serve optimized
 * images with lazy loading and reduced file sizes. The image is loaded using a
 * `StaticQuery`, which allows us to load the image from directly within this
 * component, rather than having to pass the image data down from pages.
 *
 * For more information, see the docs:
 * - `gatsby-image`: https://gatsby.app/gatsby-image
 * - `StaticQuery`: https://gatsby.app/staticquery
 */

If so, I can update the comment so we can merge this.

Was just about to comment I probably am bike-shedding and delaying the merge, but we can use that for sure @jlengstorf!

Thanks @pieh @shannonbux, and @jlengstorf thank you for adding the extra details in the comments - very well-said 🙂

authors: jlengstorf lexishanson pieh shannonbux

repo: gatsbyjs/gatsby-starter-default


text:
Update Layout children Type

Having the error below with element type.
Failed prop type: Invalid prop children of type array supplied to Layout, expected a single ReactElement.

👍

authors: JigzPalillo KyleAMathews


text:
Please clarify instructions

Hello. I'm trying to follow the instructions for setting up a similar keyboard project and I think they could be clearer. It may be that my level of intelligence is below average or I'm making some incorrect assumptions about the process. It may also be that the instructions were written for an older version of Kicad.
This is what I'm doing:
I have an open project which looks like follows:

Begin by preparing your hierarchical schematic as per normal.
Done:

create a new project with the same name as the sch file
I suspect in my case that would be "untitled". I have no idea how that name got stuck but I can't seem to change it.  Nevertheless, I am creating a separate project named "Untitled" in the same folder (assuming this is how the plugin can connect the two projects together)

Since there is  no connection to the original project I am assuming there are some constraints as to where the project files should reside because these newly created files are completely empty and not tied to the sub-schematics in any way.
Indeed, the new projects appears to be in a sub-project inside the original project folder:

This means I canot follow the steps in the instructions:
create a PCB inside the project, update the PCB from the schematic,
Since those are already created empty.
Assuming Keycad 8 automatically creates subfolders for the project which was not intended I decided to move the project file inside the original project manually, together with the .kicad_pcb file. The untitled.kicad_sch already exists at the destination.
This seems to work. But I think you may follow a different procedure which we may benefit from. I don't think mnually moving the file is what you would expect. I also don't figure there may be a way to use subfolders?
All the best.

Yeah this is very confusing.  I figured it out eventually:

Create a new project, the name should be the same as your hierarchical schematic (sub schematic), in the same folder as your main project.  Make sure you UNCHECK the box that says "Create a new folder for the project"

Open the new project, make your sub-pcb in that project.

Open the main project, then open the plugin.  On the top list to select which sheets to populate, you need to double click them.  I was just selecting items and it wasn't working.

authors: Leaveyou hoeken

repo: gauravmm/HierarchicalPcb


text:
⬆  Bump main to 3.0.0~pre1

Part of https://github.com/gazebo-tooling/release-tools/issues/578

Those are just examples, so I think they should be ok either way

repo: gazebosim/gz-plugin


text:
Escape Key

Is there a reason why the escape key was left out?

escape key is plwced on the right side of "p" letter.....

@REHAN7866 for me that's the backspace key. Do I have to hold it?

+1

Oh..sry.... That's my fault...

No point in installing vim w/o ESC key.

Escape Key added in latest commit (147e84c87ccca0740e25209f43d1a574a0c8dff0), should be uploaded to the PlayStore soon.

authors: REHAN7866 dj-algorhythm gazlaws-dev lentusignavus rangeoshun

repo: gazlaws-dev/codeboard


text:
Do not display the "Reserve DOI" button for resources with a publishing organization without an affiliation with DataCite.

Functionality should be hidden if:

[x] There is no organizations associated with DataCite
[x] Current user has no registration rights
[x] Current publishing organization is not set or does not have DataCite association

@MattBlissett @CecSve did I miss anything?

Sorry that I am late in following up. Just to make sure I understand.
Would the functionality be hidden if (keep in mind the original question was coming from a publisher on a cloud IPT:

one or more organizations associated with the IPT has a DataCite account
the user has registration rights
the user (wrongly) choose the publishing organization with the DataCite association

@ymgan does this sound like the scenario you were highlighting, please?

Users without registration rights won't see the DOI button.

Yes exactly as you highlighted @CecSve , thank you!! I can share the screenshot if it is clearer! The scenario I hope that this bug fix could prevent is: Reserved DOI button should be hidden from organization without DataCite account.

The Italian National Antarctic Museum does not have an associated DataCite account, so the "Resolve DOI" button should be hidden in the screenshot below.

Ok thank you both - that seems to be resolved in the next version then.

The 3.0.2 already deployed to cloud.gbif.org

authors: CecSve mike-podolskiy90 ymgan

repo: gbif/ipt


text:
DOI display redundant and DOI link broken

On the dataset page the DOI link has a label "DOI" then the DOI itself has the "doi:" prefix, which seems redundant. The link is also broken, currently it is doi:10.15468/inygc6 which isn't a URL.

Yes that shouldn't be like that. neither the double DOI nor the missing link. And there are more not properly resolved DOIs around I've noticed. Thanks for reporting.

authors: MortenHofft rdmpage


text:
HiDPI (retina) tiles aren't used for all occurrence layers

I updated those on https://api.gbif-uat.org/v2/map/demo.html to set pixel_density, it seems to work, although I'm not 100% certain.
The Windows laptop on my desk has a HiDPI screen, it will be useful to test that as well as a Mac.

Was fixed a few days ago by af67d1b5e82f3fe09cc894cb1cc3d72270be89e5.