tcmalloc: large alloc on  Colab and Tensorflow killed on local machine due to over consumption of RAM

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04 LTS
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): Conda
TensorFlow version (use command below): tensorflow-gpu version 1.9.0
Python version: 3.6
Bazel version (if compiling from source): N/A
GCC/Compiler version (if compiling from source): 7.4.0
CUDA/cuDNN version:  V10.1.243
GPU model and memory: Quadro RTX 5000; and 16 GB RAM

Describe the current behavior
The tensorflow API always tries to consume the maximum RAM even when I have a GPU and the kernel gets killed while training my deep learning algorithm. I referred online on multiple sources (1, 2, 3, 4, 5, 6) and tried the following things :

Reduce the batch size
Change the optimizer from adam to momentum

However, none of these suggestions helped to solve the problem.
Describe the expected behavior
Be able to train without over consumption of memory and not cause the tensorflow kernel to get killed
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
I ran the following code in an ipython notebook in both my local machine (local GPU) and Google Colab :
!git clone https://github.com/charlesq34/pointnet.git
cd pointnet/sem_seg/
!sh download_data.sh
!python train.py --log_dir log6 --test_area 6

Other info / logs
The error log is very long and hence I am attaching it in a separate text file here :
ERROR_LOG.txt

@arunumd, You would like to try with latest Tenosrflow version 2.0.0. Thanks!

@gadagashwini I tried to install tensorflow 2 using the following command pip install --upgrade tensorflow==2.0.0-rc0 and then ran the ipython notebook. But the symptoms still don't seem to change. I get the same error still. As you can see below, the tcmalloc error still persists and there is also a new error related to lack of compatibility between tensorflow2 and tensorflow1
tcmalloc: large alloc<PHONE_NUMBER> bytes == 0xdbcc6000 @  0x7fdc37e4b1e7 0x7fdc33bf3d51 0x7fdc33c58a84 0x7fdc33c58bc3 0x7fdc33cf8ade 0x7fdc33cf9344 0x7fdc33cf9492 0x4f8925 0x4f98c7 0x4f6128 0x4f9023 0x6415b2 0x64166a 0x643730 0x62b26e 0x4b4cb0 0x7fdc37a48b97 0x5bdf6a
(23585, 4096, 9)
(23585, 4096)
tcmalloc: large alloc<PHONE_NUMBER> bytes == 0x1b0d8c000 @  0x7fdc37e4b1e7 0x7fdc33bf3d51 0x7fdc33c58a84 0x7fdc33c58bc3 0x7fdc33ce618a 0x7fdc33ce65d8 0x4f9ba9 0x4f6128 0x4f9023 0x6415b2 0x64166a 0x643730 0x62b26e 0x4b4cb0 0x7fdc37a48b97 0x5bdf6a
(20291, 4096, 9) (20291, 4096)
(3294, 4096, 9) (3294, 4096)
Traceback (most recent call last):
  File "train.py", line 276, in <module>
    train()
  File "train.py", line 126, in train
    pointclouds_pl, labels_pl = placeholder_inputs(BATCH_SIZE, NUM_POINT)
  File "/content/pointnet/sem_seg/model.py", line 13, in placeholder_inputs
    pointclouds_pl = tf.placeholder(tf.float32,
AttributeError: module 'tensorflow' has no attribute 'placeholder'

@arunumd, Tensorflow supports manual device placement and limiting gpu memory growth. Please refer this link. Please let us know if that helps. Thanks!

@gadagashwini After running through a bunch of problems with tensorflow during initial development stage, we felt it was better to look for another reliable API. Hence we made a decision to move to PyTorch. I will be glad to look into this problem again later when I will have time. For now the issue is not resolved.

@arunumd In Tensorflow 2.0, there is no placeholder. If you are using TF 1.x code, You need to update your TF1.x code to TF2.0 code and then run it.
Please take a look at this question..

@gowthamkpr That suggestion sounds irrelevant to the problem. As per the description, the stated Tensorflow version is 1.x. So technically there is no necessity to upgrade code to TF 2.x when the installed Tensorflow version is 1.x

I tried to install tensorflow 2 using the following command pip install --upgrade tensorflow==2.0.0-rc0 and then ran the ipython notebook. But the symptoms still don't seem to change. I get the same error still. As you can see below, the tcmalloc error still persists and there is also a new error related to lack of compatibility between tensorflow2 and tensorflow1

I was referring this comment @arunumd as there is no concept of palce holders in TF2.0

I tried to install tensorflow 2 using the following command pip install --upgrade tensorflow==2.0.0-rc0 and then ran the ipython notebook. But the symptoms still don't seem to change. I get the same error still. As you can see below, the tcmalloc error still persists and there is also a new error related to lack of compatibility between tensorflow2 and tensorflow1

I was referring this comment @arunumd as there is no concept of palce holders in TF2.0

@gadagashwini suggested I try running the same code with TF2.0. So I tried. It didn't work neither. I am not sure if @gadagashwini also expected me to refactor the whole code ? I do not want to refactor anything.. I am interested in knowing whether or TF1.x is capable of running this code without the tmalloc error ? Why is this error being caused ? I think we have to focus on the root problem..

We cannot exactly trace what the error is but please take a look at this issue here and try to replicate it.

Closing this issue due to the lack of recent activity. Please add additional comments and we can open this issue again. Thanks!

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

It has been 29 days with no activity and the awaiting response label was assigned. Is this still an issue?

We are closing this issue for now due to lack of activity. Please comment if this is still an issue for you. Thanks!

@gowthamkpr i faced the same issue .
tensorflow-gpu==1.15.0
keras==2.2.4
in colab

same here.
torch==1.4.0
in colab

I am interested in seeing a long term solution for this issue which seems to be quite common for many people who are using Tensorflow 1.x. For what it is worth based on the face value of it, it seems like an API issue which cannot be fixed by users. This issue is not resolved until it is proven that there is a permanent fix to this problem.

it's because of loading a large file. I have the same problem but when I truncate my file error disappears

What about tensorflow-cpu ? There is no options to lower memory usage like tensorflow for gpu. I've 32GB RAM with a 5900x and it just kill when memory is full like a bad c program

I am working on sentiBert :
https://github.com/WadeYin9712/SentiBERT
I am facing this issue, again and again, writing two files each one having 6GB and 3GB NumPy binary files.
using
torch==1.1.0
torchvision==0.3.0
Can anyone help me with that?
Thanks


Fusing: Unify all FFmpeg subsamples into one FFmpegSubsampler

Clipping, Resolution, FrameRate can all be done in one class

Also look at params you can pass in to speed up the whole process. Here's some thing ChatGPT suggests:
Setting the preset to ultrafast and other FFmpeg parameters: The preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize). If you want to set the preset to 'ultrafast', you can do so by adding it to the kwargs dictionary like so:
kwargs["preset"] = "ultrafast"
Do keep in mind that this will only work if you're re-encoding the video (i.e., not using the "copy" codec).
Here are a few other FFmpeg parameters that you can experiment with:
crf (Constant Rate Factor): This is another parameter you can play around with if you're re-encoding the video. Lower values mean better quality but larger file size. 23 is the default, and 18-28 is a sensible range to consider. You can set it like so: kwargs["crf"] = 23.
tune: This option allows you to tune the encoder for specific kinds of input or to achieve a specific result. For example, the "zerolatency" option is useful for streaming use cases. You can set it like so: kwargs["tune"] = "zerolatency".
threads: This option determines how many threads FFmpeg uses for encoding. The best value depends on your specific hardware. You can set it like so: kwargs["threads"] = 4.
Remember, each of these parameters is a trade-off - there's no magic setting that will give you the best of everything. You'll need to experiment with different settings and see what works best for your specific use case.


CON-4758 Improve performance for products from connect

Coverage increased (+0.02%) to 34.405% when pulling 2472db73588e06129d0344f1e8532c476e09da6f on CON-4758 into 2be129a3328e3639a91080a2297818e5e403f0c1 on master.

Coverage increased (+0.02%) to 34.405% when pulling 2472db73588e06129d0344f1e8532c476e09da6f on CON-4758 into 2be129a3328e3639a91080a2297818e5e403f0c1 on master.

Coverage increased (+0.02%) to 34.405% when pulling 2472db73588e06129d0344f1e8532c476e09da6f on CON-4758 into 2be129a3328e3639a91080a2297818e5e403f0c1 on master.


Update ns-processthreadsapi-startupinfow.md

Fix missing content

@ericlaw1979 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


feat: add Raohai/Raohai

What type of PR is this? (check all applicable)

[ ] 🚀 Added Name
[ ] ✨ Feature
[x] ✅ Joined Community
[ ] 🌟 ed the repo
[ ] 🐛 Grammatical Error
[ ] 📝 Documentation Update
[ ] 🚩 Other

Description
Add profile https://github.com/RaoHai/RaoHai.
And An article "How I Built A Self-Updating README by Webhooks and Netlify Functions" .
Add Link of GitHub Profile
https://github.com/RaoHai/RaoHai

ping @abhisheknaiidu

Sorry, I didn't see, you've merge conflicts, resolve them please

Resolved.


Rename User to UserService

In many applications has class User as domain object. User in this package is service. May rename him to UserService?

Yes. Good idea.

Yes. Good idea.

Maybe it will be better to rename it to IdentityService?

Maybe it will be better to rename it to IdentityService?

Maybe it will be better to rename it to IdentityService?

Maybe it will be better to rename it to IdentityService?

@armpogart likely that won't reflect the purpose of the class well.

@armpogart likely that won't reflect the purpose of the class well.

User and UserService are commonly used in any application, the purpose of the class is to have the identity of the user, from this point of view it seems good that it is called IdentityService, and so there will be no collisions in the names.

User and UserService are commonly used in any application, the purpose of the class is to have the identity of the user, from this point of view it seems good that it is called IdentityService, and so there will be no collisions in the names.

AuthService?

AuthService?

CurrentUser ?

CurrentUser ?

UserService - often applications has their UserService, so we will again have a collision, if we are going to rename it to UserService, we can also keep it just User which is not good at first place.
AuthService - will not be appropriate name as this class doesn't do any authentication per se, authentication is done in middlewares using UserAuth method for example.
CurrentUser - this name is ok, but it has a one problem. This class doesn't reflect our user, which is usually our entity.
Everything in this class is written to help to work with the IdentityInterface through IdentityRepository, so I think that the name that really reflects the purpose of the class is IdentityService as the class has getIdentity(), switchIdentity(), renewIdentity(), and access checking for current IdentityInterface. So it's just a service to work with identity.

UserService - often applications has their UserService, so we will again have a collision, if we are going to rename it to UserService, we can also keep it just User which is not good at first place.
AuthService - will not be appropriate name as this class doesn't do any authentication per se, authentication is done in middlewares using UserAuth method for example.
CurrentUser - this name is ok, but it has a one problem. This class doesn't reflect our user, which is usually our entity.
Everything in this class is written to help to work with the IdentityInterface through IdentityRepository, so I think that the name that really reflects the purpose of the class is IdentityService as the class has getIdentity(), switchIdentity(), renewIdentity(), and access checking for current IdentityInterface. So it's just a service to work with identity.

The class does two things:

Authenticates user (login, logout, etc)
Checks user access to restricted areas

So, it should be divided to two classes:

Authentication
AccessChecker

The are two packages desgined for this, "auth" and "access", so Authentication can be moved to "auth" package, and AccessChecker can be moved to "access" package.

The class does two things:

Authenticates user (login, logout, etc)
Checks user access to restricted areas

So, it should be divided to two classes:

Authentication
AccessChecker

The are two packages desgined for this, "auth" and "access", so Authentication can be moved to "auth" package, and AccessChecker can be moved to "access" package.

No "Services" and "Managers" should be anywhere in the framework, as those names are too abstract and are not describing anything at all.

No "Services" and "Managers" should be anywhere in the framework, as those names are too abstract and are not describing anything at all.

Maybe part of package move to yiisoft/auth (create interface for AutoLoign, GuestIdentity, User, etc.). This package rename to yii-identity or yii-auth. This will make the auth package more functional without essential increasing of dependencies. This package will be provide implementation of auth based on yii packages session and cookie.

Maybe part of package move to yiisoft/auth (create interface for AutoLoign, GuestIdentity, User, etc.). This package rename to yii-identity or yii-auth. This will make the auth package more functional without essential increasing of dependencies. This package will be provide implementation of auth based on yii packages session and cookie.

So, it should be divided to two classes:

https://github.com/yiisoft/access/blob/master/src/AccessCheckerInterface.php whose implementation is RBAC. This packages has it for convenience. The method for access checking is where the data is so data isn't passed as an argument all the time.

So, it should be divided to two classes:

https://github.com/yiisoft/access/blob/master/src/AccessCheckerInterface.php whose implementation is RBAC. This packages has it for convenience. The method for access checking is where the data is so data isn't passed as an argument all the time.


Plots of branch lengths

Produce plots of the distribution of branch lengths for each data set

Solved. See here


Make audio short fade out and in

I ended up not using a fade because it sounded bad, but I do have the music starting, changing track, and starting between certain scenes now, so I'm considering this done


Thumbnail avatars change aspect ratio sometimes

The avatar for Apple World Today, for instance, is not square, and it ends up getting squooshed horizontally in the timeline. The aspect ratio should remain the same, even though it won’t look that great. (Note how it appears in the detail view.)

Feed URL: https://www.appleworld.today/blog?format=RSS

I just pushed the fix for this to master.  I was incorrectly setting the image size and width when creating the NSImage from the CGImage.
Unfortunately the resulting image from Apple World shrank down to 48x8 which gets disregarded in the timeline code.  You can verify with the iOS Dev Tools feed.  It also had an avatar that was getting distorted and no longer is.
https://iosdev.tools/rss.php


Tooling to generate Checkstyle and Spotbugs suppression files

Description
Adds /eng/scripts/linting_suppression_generator.py which is capable of generating Checkstyle and Spotbugs suppression files for a given project.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


feat(portal): add webhook configuration on application alerts in portal

Issue
https://github.com/gravitee-io/issues/issues/6703
Description
add webhook configuration on application alerts in portal

📚  View the storybook of this branch here

🚀 CI was able to deploy the build of this PR, so you can now try it directly here
Notes: The deployed app is linked to the management API of the Element Zero team's environment.

I close, cause this PR content was reported in this one : https://github.com/gravitee-io/gravitee-api-management/pull/1034


Update Reset-SPSites.md

Filled in placeholder text.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-server/Reset-SPSites.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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


Switch to the 'ceph' org on quay

I can add whoever we want to the org and use that account for pushing images.
I already created: https://quay.io/repository/ceph/csi-cephfs and https://quay.io/repository/ceph/csi-rbd.
I believe it makes more sense to use the 'ceph' org.

@leseb makes sense to have csi images under ceph org.
just to note, current images names are rbdplugin and cephfsplugin, do we need to make changes in  https://github.com/ceph/ceph-csi/blob/csi-v1.0/Makefile#L19 ?

I guess I removed the 'plugin' part because I thought it wasn't that necessary and that csi-cephfs was pretty self-explanatory? wdyt?

So yes, if we go that route we will have to change the Makefile accordingly and just push the image to the new quay, that's easy.

Agreed, someone with access needs to edit Travis configuration and Makefile to push the image to quay.

@humblec @nixpanic any comments on moving to ceph org in quay?

Yes, it would be nice to move to quay.io/ceph/ceph-csi. From release 3.0 and onwards, I guess.


Have a separate model for LN similar to Motion

well say you use per-column hold difficulty thing
0 is not held 1 is held
1 1 1 0 0 0 0
gives no difficulty increase
while other combinations give difficulty increase
like 1 1 0 0 1 0

robby250

LNoteHead: same as a regular note
LNoteTail: 0.2 of a note for LNs shorter than 0.1 sec, up to 1 note for LNs longer than 0.5 sec
LNoteBody:
Keep track of which buttons are held, separate columns per hand.
Whenever a Note or LNoteHead is pressed, check whether outward, inward or both wrist rotations are blocked for that press and increase difficulty accordingly: 1.3x outward blocked, 1.5x inward blocked, 2.0x both.
If there are multiple LNs blocking a certain wrist rotation then it's sort of redundant but still useful to keep track of them and increase difficulty by 0.1x. For example, if inward wrist rotation is blocked by 2 LNs instead of 1, then increase the difficulty by 1.6x instead of 1.5x.
If within a short timeframe there are notes on the same hand where the player must alternate quickly between outward, inward and finger muscles then difficulty increases futher. Quick alternation between a note that has outward rotation blocked and another note that has inward rotation blocked usually means that there's a LN in the middle of the notes and it's harder to press them, so in this example instead of increasing difficulty by 1.3x for the outward blocked note and 1.5x for inward blocked note, the whole pattern is increased in difficulty by 1.8x.
The numbers are just for the sake of example and can be fine tuned later after implementation.


Document the bin format

What is the format of the bin serialization format? Is it similar to https://docs.rs/bincode? For example, does it work between architectures with different endianness?

So far at least, we have not committed to maintaining a stable format. However, it does not change frequently, and the entire implementation is only ~500 LoC. Am adding BE<->LE interop shortly, so should be in the next version.


create /tmp/bigfile with dd instead of head

dd will create a sparse file if supported by the system, which should rule out IO bottlenecks, and not actually consume 1 GB of disk space, and be much faster to create (especially if you're not running on a SSD) - unlike head >
btw on GNU dd you can use seek=1GB instead of<PHONE_NUMBER>, but not sure how portable that is on systems like MacOS or *BSD

checked what would happen on a system that DOES NOT support sparse files:
# truncate -s 2G fat32.img
# mkfs.fat -F 32 fat32.img
mkfs.fat 4.1 (2017-01-24)
# mkdir fat32
# mount fat32.img fat32
# cd fat32
# dd if=/dev/null bs=1 count=0 seek=1000000000 of=bigfile1
0+0 records in
0+0 records out
0 bytes copied, 7.9143e-05 s, 0.0 kB/s
# dd if=/dev/null bs=1 count=0 seek=1000000000 of=bigfile2
0+0 records in
0+0 records out
0 bytes copied, 6.8841e-05 s, 0.0 kB/s
# dd if=/dev/null bs=1 count=0 seek=1000000000 of=bigfile3
dd: failed to truncate to<PHONE_NUMBER> bytes in output file 'bigfile3': No space left on device
#

looks good

I'm a little wary of taking this change, because sparse files are kind of magical. I feel like a benchmark (even a silly informal one like this one) needs to serve two purposes, which are similar but not exactly the same:

Demonstrate that the thing you're measuring is fast.
Give you confidence that the measurement is real and applies to your use case.

I think hashing a real file might be meaningfully better at (2). Users are more likely to know what the current command means, than they are to understand some of the less common dd flags, and that matters.
With that said, I'd also want to test this on macOS to see what happens. Has anyone gotten a chance to do that?

I think the current example with head is doing its job pretty well, so I'm going to close these.


Render Gets Stuck on 24%

I'm running into an issue where terminalizer render file_name stops rendering at 39 frames (24%):
Rendering frame 39/159 24% [=======-----------------------] 14.4s^C
me@local:$
me@local:$ terminalizer render high_baller_intro
Rendering frame 39/159 24% [=======-----------------------] 12.0s^C
me@local:$
me@local:$ terminalizer render high_baller_intro
Rendering frame 39/159 24% [=======-----------------------] 11.8s
me@local:$
me@local:$ terminalizer render high_baller_intro.yml
Rendering frame 39/159 24% [=======-----------------------] 12.1s^C
me@local:$
me@local:$ terminalizer render high_baller_intro.yml
Rendering frame 39/159 24% [=======-----------------------] 11.8s^C
me@local:$

I've checked a few other issues here on Github and I can't seem to find a common cause. Here's my .yml file:
# The configurations that used for the recording, feel free to edit them
config:

  # Specify a command to be executed
  # like `/bin/bash -l`, `ls`, or any other commands
  # the default is bash for Linux
  # or powershell.exe for Windows
  command: bash -l

  # Specify the current working directory path
  # the default is the current working directory path
  cwd: /Users/john/aion_web3

  # Export additional ENV variables
  env:
    recording: true

  # Explicitly set the number of columns
  # or use `auto` to take the current
  # number of columns of your shell
  cols: 80

  # Explicitly set the number of rows
  # or use `auto` to take the current
  # number of rows of your shell
  rows: 24

  # Amount of times to repeat GIF
  # If value is -1, play once
  # If value is 0, loop indefinitely
  # If value is a positive number, loop n times
  repeat: 0

  # Quality
  # 1 - 100
  quality: 100

  # Delay between frames in ms
  # If the value is `auto` use the actual recording delays
  frameDelay: auto

  # Maximum delay between frames in ms
  # Ignored if the `frameDelay` isn't set to `auto`
  # Set to `auto` to prevent limiting the max idle time
  maxIdleTime: 2000

  # The surrounding frame box
  # The `type` can be null, window, floating, or solid`
  # To hide the title use the value null
  # Don't forget to add a backgroundColor style with a null as type
  frameBox:
    type: floating
    title: Terminalizer
    style:
      border: 0px black solid
      # boxShadow: none
      # margin: 0px

  # Add a watermark image to the rendered gif
  # You need to specify an absolute path for
  # the image on your machine or a URL, and you can also
  # add your own CSS styles
  watermark:
    imagePath: null
    style:
      position: absolute
      right: 15px
      bottom: 15px
      width: 100px
      opacity: 0.9

  # Cursor style can be one of
  # `block`, `underline`, or `bar`
  cursorStyle: block

  # Font family
  # You can use any font that is installed on your machine
  # in CSS-like syntax
  fontFamily: "Monaco, Lucida Console, Ubuntu Mono, Monospace"

  # The size of the font
  fontSize: 12

  # The height of lines
  lineHeight: 1

  # The spacing between letters
  letterSpacing: 0

  # Theme
  theme:
    background: "transparent"
    foreground: "#afafaf"
    cursor: "#c7c7c7"
    black: "#232628"
    red: "#fc4384"
    green: "#b3e33b"
    yellow: "#ffa727"
    blue: "#75dff2"
    magenta: "#ae89fe"
    cyan: "#708387"
    white: "#d5d5d0"
    brightBlack: "#626566"
    brightRed: "#ff7fac"
    brightGreen: "#c8ed71"
    brightYellow: "#ebdf86"
    brightBlue: "#75dff2"
    brightMagenta: "#ae89fe"
    brightCyan: "#b1c6ca"
    brightWhite: "#f9f9f4"

# Records, feel free to edit them
records:
  - delay: 1000
    content: 'n'
  - delay: 50
    content: o
  - delay: 50
    content: d
  - delay: 50
    content: e
  - delay: 50
    content: ' '
  - delay: 50
    content: c
  - delay: 50
    content: o
  - delay: 50
    content: 'n'
  - delay: 50
    content: s
  - delay: 50
    content: o
  - delay: 50
    content: l
  - delay: 50
    content: e
  - delay: 50
    content: .
  - delay: 50
    content: j
  - delay: 50
    content: s
  - delay: 50
    content: "\r\n"
  - delay: 100
    content: "Connected to default https://aion-web3-api.example.com\r\n\r\n"
  - delay: 100
    content: "aion-web3-api.example.com> "
  - delay: 1000
    content: c
  - delay: 50
    content: o
  - delay: 50
    content: 'n'
  - delay: 50
    content: s
  - delay: 50
    content: t
  - delay: 50
    content: ' '
  - delay: 50
    content: h
  - delay: 50
    content: i
  - delay: 50
    content: g
  - delay: 50
    content: h
  - delay: 50
    content: _
  - delay: 50
    content: b
  - delay: 50
    content: a
  - delay: 50
    content: l
  - delay: 50
    content: l
  - delay: 50
    content: e
  - delay: 50
    content: r
  - delay: 50
    content: ' '
  - delay: 50
    content: '='
  - delay: 50
    content: ' '
  - delay: 50
    content: "0x..."
  - delay: 50
    content: ''
  - delay: 50
    content: "\r\n\r\n"
  - delay: 100
    content: "[undefined]\r\n\r\n"
  - delay: 100
    content: "aion-web3-api.example.com> "
  - delay: 1000
    content: w
  - delay: 50
    content: e
  - delay: 50
    content: b
  - delay: 50
    content: '3'
  - delay: 50
    content: .
  - delay: 50
    content: e
  - delay: 50
    content: t
  - delay: 50
    content: h
  - delay: 50
    content: .
  - delay: 50
    content: g
  - delay: 50
    content: e
  - delay: 50
    content: t
  - delay: 50
    content: B
  - delay: 50
    content: a
  - delay: 50
    content: l
  - delay: 50
    content: a
  - delay: 50
    content: 'n'
  - delay: 50
    content: c
  - delay: 50
    content: "e"
  - delay: 50
    content: '('
  - delay: 50
    content: 'h'
  - delay: 50
    content: i
  - delay: 50
    content: g
  - delay: 50
    content: h
  - delay: 50
    content: _
  - delay: 50
    content: b
  - delay: 50
    content: a
  - delay: 50
    content: l
  - delay: 50
    content: l
  - delay: 50
    content: e
  - delay: 50
    content: r
  - delay: 50
    content: ','
  - delay: 50
    content: ' '
  - delay: 50
    content: "("
  - delay: 50
    content: e
  - delay: 50
    content: r
  - delay: 50
    content: r
  - delay: 50
    content: ','
  - delay: 50
    content: ' '
  - delay: 50
    content: b
  - delay: 50
    content: a
  - delay: 50
    content: l
  - delay: 50
    content: )
  - delay: 50
    content: ' '
  - delay: 50
    content: =
  - delay: 50
    content: '>'
  - delay: 50
    content: ' '
  - delay: 50
    content: '{'
  - delay: 50
    content: b
  - delay: 50
    content: a
  - delay: 50
    content: l
  - delay: 50
    content: a
  - delay: 50
    content: 'n'
  - delay: 50
    content: c
  - delay: 50
    content: e
  - delay: 50
    content: ' '
  - delay: 50
    content: =
  - delay: 50
    content: ' '
  - delay: 50
    content: b
  - delay: 50
    content: a
  - delay: 50
    content: l
  - delay: 50
    content: '}'
  - delay: 50
    content: )
  - delay: 50
    content: "\r\r\n"
  - delay: 100
    content: "Promise {\r\n  \e[36m<pending>\e[39m,\r\n  domain:\r\n   Domain {\r\n     domain: \e[1mnull\e[22m,\r\n     _events:\r\n      [Object: null prototype] {\r\n        removeListener: \e[36m[Function: updateExceptionCapture]\e[39m,\r\n        newListener: \e[36m[Function: updateExceptionCapture]\e[39m,\r\n        error: \e[36m[Function: debugDomainError]\e[39m },\r\n     _eventsCount: \e[33m3\e[39m,\r\n     _maxListeners: \e[90mundefined\e[39m,\r\n     members: [] } }\r\n"
  - delay: 100
    content: "https://aion-web3-api.example.com> "
  - delay: 1000
    content: b
  - delay: 50
    content: a
  - delay: 50
    content: l
  - delay: 50
    content: a
  - delay: 50
    content: 'n'
  - delay: 50
    content: c
  - delay: 50
    content: e
  - delay: 50
    content: "\r\n44893545833580441025"
  - delay: 50
    content: "\r\nhttps://aion-web3-api.example.com> "
  - delay: 1000
    content: w
  - delay: 50
    content: e
  - delay: 50
    content: b
  - delay: 50
    content: '3'
  - delay: 50
    content: .
  - delay: 50
    content: u
  - delay: 50
    content: t
  - delay: 50
    content: i
  - delay: 50
    content: l
  - delay: 50
    content: s
  - delay: 50
    content: .
  - delay: 50
    content: f
  - delay: 50
    content: r
  - delay: 50
    content: o
  - delay: 50
    content: m
  - delay: 50
    content: 'N'
  - delay: 50
    content: A
  - delay: 50
    content: m
  - delay: 50
    content: p
  - delay: 50
    content: (
  - delay: 50
    content: b
  - delay: 50
    content: a
  - delay: 50
    content: l
  - delay: 50
    content: a
  - delay: 50
    content: 'n'
  - delay: 50
    content: c
  - delay: 50
    content: e
  - delay: 50
    content: ','
  - delay: 50
    content: ' '
  - delay: 50
    content: ''''
  - delay: 50
    content: a
  - delay: 50
    content: i
  - delay: 50
    content: o
  - delay: 50
    content: 'n'
  - delay: 50
    content: ''''
  - delay: 50
    content: )
  - delay: 100
    content: "\r\r\n\e[32m'44.893545833580441025'\r\n"
  - delay: 50
    content: "https://aion-web3-api.example.com> "
  - delay: 952
    content: "logout\r\nSaving session..."
  - delay: 11
    content: "\r\n...saving history..."
  - delay: 6
    content: "truncating history files...\r\n...completed.\r\n"

Running V0.4.1 on macOS Mojave (10.14 [18A391]) installed via Brew.

I manually edited the output above after recording, so it may be that there's a syntax error somewhere. But it plays normally by running terminalizer play high_baller_intro.

@mohnjatthews Thanks for reporting this
It is related to the following empty frame. Is Terminalizer added it or you removed its content ?
  - delay: 50
    content: ''"

Looks like that did it! Would you mind if I submit a pull request to put that into a troubleshooting / faqs section?

Yeah, pretty much all the other ones work. The only difference is that this recording (in this issue) was quite a long one.
I'm leaning more towards the fact that I manually edited it wrong.

I haven't encountered this issue again.


SLING-4484 - XSS POM references wrong scm URLs

Updated URLs to point to correct location.

Applied by Radu Cotescu in r1665226


Please fix testing

Please fix standard Github testing.
Node 16 is outdated for a long time. At least node 16 must be removed and test must be done using node 18 / 20 / 22.
Please let us know if you need any help to adjust tests.
Note:
Future releases might be blocked from repositories if standard testing is not working.

I'ld like to say that is file is maybe coming from the adapter test

Please advise who to solve this testing issue.

Hello @mcm1957
May you can help here?

Thanks testing is woking now!


fix(docs): error in select all table doc

Closes #2313
📝 Description
When I select all in the table with 100 data(10 rows per page), go to the next page and uncheck one of the rows.
It says "9 items are selected", however, it should say "99" not "9".
⛳ Current behavior (updates)
https://github.com/nextui-org/nextui/assets/62743644/c9519d2e-0637-4e89-b0eb-90296f255d6e
🚀 New behavior
Here is the new behavior!✌ I would like you to let me know that this behavior meets the requirements. Thank you! 😄

By selecting all rows initially and then allowing the user to deselect specific rows.

https://github.com/nextui-org/nextui/assets/62743644/0686ddf7-d8c9-41d4-9e6b-d712a5fa8ea3
💣 Is this a breaking change (Yes/No):

📝 Additional Information

Summary by CodeRabbit

New Features

Enhanced multi-page selection management in the Table component, allowing for page-specific selections.
Added functions for bulk selection updates and checks on selection states across pages.

Here's the case you may take a look.

select all and see 20 of 20 selected (which is ok)
type fisher in "Search by name ..." input to filter
you will see 20 of 1 selected

4. unselect all, it shows `15 of 1 selected`

That was really good catch, thanks, Marcus. I will fix that later today!


Fix FlightSQL queries from Grafana

When testing out the InfluxDB Grafana plugin with the v1 query API in Edge (v3), I found that when using SQL to query the target server does not work.
hyper is rejecting the request with an "invalid HTTP method" error.
You can see this error in the logs here:
2024-03-14T18:45:59.267691Z TRACE hyper::proto::h1::conn: Conn::read_head
2024-03-14T18:45:59.267793Z TRACE hyper::proto::h1::io: received 232 bytes
2024-03-14T18:45:59.268304Z TRACE parse_headers: hyper::proto::h1::role: Request.parse bytes=232
2024-03-14T18:45:59.268633Z TRACE hyper::proto::h1::conn: State::close_read()
2024-03-14T18:45:59.268659Z DEBUG hyper::proto::h1::conn: parse error (invalid HTTP method parsed) with 232 bytes
2024-03-14T18:45:59.268743Z DEBUG hyper::proto::h1::role: sending automatic response (400 Bad Request) for parse error
2024-03-14T18:45:59.268989Z TRACE encode_headers: hyper::proto::h1::role: Server::encode status=400, body=None, req_method=None
2024-03-14T18:45:59.269576Z DEBUG hyper::proto::h1::io: flushed 84 bytes
2024-03-14T18:45:59.269609Z TRACE hyper::proto::h1::conn: flushed({role=server}): State { reading: Closed, writing: Closed, keep_alive: Disabled, error: hyper::Error(Parse(Method)) }
2024-03-14T18:45:59.269653Z TRACE hyper::proto::h1::conn: shut down IO complete
2024-03-14T18:45:59.269724Z DEBUG hyper::server::server::new_svc: connection error: invalid HTTP method parsed

The issue appears to be that Grafana is attempting a TLS handshake when establishing the connection, and because I am running my influxdb3 server locally, I am not serving TLS.
This is the error showing in Grafana:
ERROR: flightsql: rpc error: code = Unavailable desc = connection error: desc = "transport: authentication handshake failed: tls: first record does not look like a TLS handshake"

I attempted to disable all manner of TLS in my local Grafana, to no avail.
As it turns out, there was recently an issue opened for this very thing, and a PR that closes it. So, once that is released, we can try this out again with TLS properly disabled.

I'm using the latest version and I have the same issue here, is there any solution ?

Hey @m0kr4n3!

I'm using the latest version [...]

To be clear, do you mean that you are using the latest version of influxdb of latest version of Grafana?
In either case, can you verify the version of influxdb that you are using? This issue is specifically for the v3 version of influxdb that is still under development, so I just want to make sure that you aren't using a previous major version, e.g., v1.x or v2.x.
It looks like the change to allow insecure gRPC connections from Grafana's InfluxDB plugin will be part of the 11.0.0 release, which is still in preview. Unless you are willing to try out the 11.0.0-preview version of Grafana, you will need to wait for its official release.

I'm using grafana/grafana:11.0.0 with docker compose to test it. The problem still seems to exist.
Is there anyone else like that?

Hello,
I solved the problem by updating to the latest version of Grafana ( grafana/grafana:11.0.0-preview ) as yours, and building InfluxDB V3 from the base repository. Here is the configuration of the data source that I'm using:

and here's the result:

Note: It is necessary to create a database first for it to work.
Thanks to @hiltontj for the help, I appreciate it.

Glad you got it to work @m0kr4n3 - thanks for verifying!
@hipibo - I think the key, as @m0kr4n3 pointed out, is to add the insecureGrpc: true to the datasource configuration for your InfluxDB plugin. That configuration was the feature added in the PR that is part of the 11.0.0 release. Sorry that I didn't make that clear... only upgrading to 11.0.0 without adding the configuration won't resolve the issue.
I plan to leave this open until I get time to verify that it works on the stable 11.0.0 version of Grafana.

After downloading the latest version of Grafana on MacOS (11.3.0), I was able to configure the InfluxDB datasource to allow for a SQL connection to work. See this screenshot of the configuration I am using, to point at a local running InfluxDB:

I will close this issue out for now.


Is there any way to make tagging faster?

Is there some way to trade prediction quality for tagging speed? Right now it gives very good results but works extremely slow. What could be done to make the architecture more speed-oriented?

What is the speed you get? It should not be that slow. Training without CRF will make it a bit faster, and will decrease the quality.
Also, the tagger should be run on CPU, it will be faster than on GPU. It's also better to use 1 CPU core only. The fastest if you have N cores is to split the dataset you want to tag in N files, and apply the tagger N times (one for each file, using 1 CPU only).


Attribute directives apply for everything in an application

Hello!
I think it was supposed that all inner attribute directives would apply only to a parent <leaflet> element directive, but they are invoked everywhere, e.g. in angular-google-maps directive (which causes the following error: Controller 'leaflet', required by directive 'center', can't be found!).  As a workaround, I deleted 'center' from the line 3365:
var centerDirectiveTypes = ['center', 'lfCenter'];

but I think it's better to find a way to prevent invoking constructors for all such directives if an element is not a <leaflet>.

I am also seeing this error when I am using angular-google-maps directive.

I thought this was fixed in #914 with the alternative lf-center by @nmccready ?

@st04 when I did what @leitasat suggested above...it worked for me...so the issue still exists.

+1


Executing custom build with --headless flag throws error

Godot version
v4.0.dev (5efe80f30)
System information
Arch Linux, Vulkan
Issue description
Executing a custom build using --headlessflag throws this error:
> godot.linuxbsd.opt.tools.64 --headless -e -q
Godot Engine v4.0.dev.custom_build.5efe80f30 - https://godotengine.org
ERROR: Changing the VSync mode is not supported by this display server.
   at: window_get_vsync_mode (servers/display_server.cpp:332)
ERROR: Sub-windows not supported by this display server.
   at: create_sub_window (servers/display_server.cpp:196)
ERROR: Condition "window_id == DisplayServer::INVALID_WINDOW_ID" is true.
   at: _make_window (scene/main/window.cpp:233)

Some context: I was using docker (FROM archlinux:latest) and got stuck trying to initialize Godot so it creates editor_settings-3.tres file.
Steps to reproduce

git clone https://github.com/godotengine/godot.git && cd godot
scons use_lto=yes tools=yes target=release_debug && cd bin
godot.linuxbsd.opt.tools.64 --headless -e -q

Minimal reproduction project
No response

It doesn't throw errors for me (albeit on a target=debug and no LTO build) when running in a terminal under KDE Plasma on X11. It also doesn't show any window as expected, but it might well be that it still calls some window-related code that errors when the display server is actually headless.


Unable to add OpenID Connect Provider

Describe the bug
When trying to add new OpenID Connect Provider via Security -> Add OpenID Connect Provider dialog the following happens:

I fill in the fields
Press Save
The dialog gets cleared, but it stays in the screen
I close the dialog, cannot see any OpenID providers listed
Reload he page, provider still no providers listed

To Reproduce
In my environemnt, just doing the steps above
Expected behavior
New OpenId provider would have been listed on the page
Screenshots / Logs

The same time I press Save in the dialog the following is appears in the log:

firezone             | 08:01:50.367 erl_level=error domain=otp file=gen_server.erl function=error_info/8 line=1402 mfa=:gen_server.error_info/8 module=gen_server pid=<0.538.0> [error] GenServer #PID<0.538.0> terminating firezone             | ** (stop) exited in: :gen_statem.call(#PID<0.561.0>, {:start, 5000}, :infinity) firezone             |     ** (EXIT) an exception was raised: firezone             |         ** (CaseClauseError) no case clause matching: {:error, {:asn1, {:bad_range, [{:"OTP-PUB-KEY", :"dec_OTP-X520countryname", 2, [file: '../src/OTP-PUB-KEY.erl', line: 17787]}, {:"OTP-PUB-KEY", :decode, 2, [file: '../src/OTP-PUB-KEY.erl', line: 1233]}, {:pubkey_cert_records, :transform, 2, [file: 'pubkey_cert_records.erl', line: 65]}, {:lists, :map, 2, [file: 'lists.erl', line: 1315]}, {:pubkey_cert_records, :transform, 2, [file: 'pubkey_cert_records.erl', line: 92]}, {:pubkey_cert_records, :decode_tbs, 1, [file: 'pubkey_cert_records.erl', line: 332]}, {:pubkey_cert_records, :decode_cert, 1, [file: 'pubkey_cert_records.erl', line: 42]}, {:public_key, :pkix_decode_cert, 2, [file: 'public_key.erl', line: 521]}]}}} firezone             |             (public_key 1.13.2) pubkey_cert_records.erl:65: :pubkey_cert_records.transform/2 firezone             |             (stdlib 4.2) lists.erl:1315: :lists.map/2 firezone             |             (public_key 1.13.2) pubkey_cert_records.erl:92: :pubkey_cert_records.transform/2 firezone             |             (public_key 1.13.2) pubkey_cert_records.erl:332: :pubkey_cert_records.decode_tbs/1 firezone             |             (public_key 1.13.2) pubkey_cert_records.erl:42: :pubkey_cert_records.decode_cert/1 firezone             |             (public_key 1.13.2) public_key.erl:521: :public_key.pkix_decode_cert/2 firezone             |             (public_key 1.13.2) public_key.erl:1104: :public_key.pkix_subject_id/1 firezone             |             (ssl 10.8.6) tls_handshake_1_3.erl:1531: :tls_handshake_1_3.split_cert_entries/4
Platform (please complete the following information):

Firezone Version 0.7.35 .Same happens with 0.7.34
OS: Linux
Distro: Ubuntu 20.04
Kernel version: 5.4.122
Deployment method: Docke Compose

Additional context

This is fresh installation.
Using Caddy v2.6.2 as reverse proxy, with self-signed certificates
Tried adding OpenID connector with authelia (4.37) or authentik (2023.8.3) with same results. Both are self-hosted with self-signed certificates.

This is probably about self-signed certificates. I was able try with same Firezone and Autlhelia versions, but using certificates from Let's Encrypt. OpenID provider was correctly added and it is working. So I guess the question is how to I make Firezone work with Authelia that is having self-signed certificates.
I'm assuming I should probably be setting HTTP_CLIENT_SSL_OPTS, but unfortunately the docs have no example, so don't have a clue what the variable should contain.
If I run openssl s_client -verify_return_error -connect authelia.host.intranet:443  -CAfile ca_chain.pem the verification passes.. So I guess I should tell Firezone to use the same ca_chain.pem when verifying the certificate from authelia?

Hi @RenneNiku -- you'll need to specify the HTTP_CLIENT_SSL_OPTS env var to configure Erlang's ssl module appropriately. See docs here: https://www.firezone.dev/docs/reference/env-vars#webserver

@jamilbk But exactly how should I define that variable, the docs don't show any examples ( and I don't have any knowledge about Erlang either)

@RenneNiku It depends on what exactly you're trying to achieve with regards to self-signed certificates.
Try {"cacertfile":"/path/to/pem-encoded-custom-cacerts.pem"}
https://www.erlang.org/doc/man/ssl#type-client_option

Thank you for the example @jamilbk
I defined it like this:
HTTP_CLIENT_SSL_OPTS={ "cacertfile": "/tmp/ca_chain.pem"} in docker-compose .env -file.
and tried to add OpenID connector. Got he following:
firezone             | 07:41:58.426 erl_level=notice file=ssl_pkix_db.erl function=decode_cert/2 line=339 mfa=:ssl_pkix_db.decode_cert/2 module=ssl_pkix_db pid=<0.153.0> [notice] SSL WARNING: Ignoring a CA cert as it could not be correctly decoded.~n firezone             | 07:41:58.426 erl_level=notice file=ssl_pkix_db.erl function=decode_cert/2 line=339 mfa=:ssl_pkix_db.decode_cert/2 module=ssl_pkix_db pid=<0.153.0> [notice] SSL WARNING: Ignoring a CA cert as it could not be correctly decoded.~n firezone             | 07:41:58.437 erl_level=error domain=otp file=gen_server.erl function=error_info/8 line=1402 mfa=:gen_server.error_info/8 module=gen_server pid=<0.3062.0> [error] GenServer #PID<0.3062.0> terminating firezone             | ** (stop) exited in: :gen_statem.call(#PID<0.3080.0>, {:start, 5000}, :infinity)
After that the same error as above ((CaseClauseError) no case clause matching and so on...)
If I exec into firezone container and inside the container run
openssl s_client -verify_return_error -connect authelia.host.intranet:443  -CAfile /tmp/ca_chain.pem I  get verification OK. So the file is there, and openssl thinks it is OK, but apparently the CA file  has something the used library dislikes.


Fix #1014

Send arguments from ionic cli to cordova cli

This PR is no longer applicable with the latest refactor.  Sorry it took so long to get around to this, but we do appreciate the PR!
Thanks again!


spec: several sections require core types and don't mention  []byte | string

https://tip.golang.org/ref/spec#Slice_expressions states that

The core type of a must be a string, array, pointer to array, or slice.

https://tip.golang.org/ref/spec#Appending_and_copying_slices states for append that

The core type of s must be a slice of type []E. The values x are passed to a parameter of type ...E and the respective parameter passing rules apply. As a special case, if the core type of s is []byte, append also accepts a second argument with core type string followed by ....

and for copy that

The core types of both arguments must be slices with identical element type. [...] As a special case, if the destination's core type is []byte, copy also accepts a source argument with core type string.

All three passages require that the types have core types. append and copy do allow for two different core types (string and []byte) for the two arguments, but they don't allow []byte | string for the second argument. The compiler, however, special-cases []byte | string in all these places, as can be seen in the following function, which compiles:
func foo[T []byte | string](x T) {
	var dst []byte
	dst = append(dst, x...)
	_ = x[0:1]
	copy(dst, x)
}

/cc @findleyr

CC @griesemer


Arch: switch away from using naivedatetime to utc datetime

this is going to be critical when in the future ben will discover that there need to be many datacenters in many continents

not urgent, but the more database tables are created with naive timestamps, the more painful the migration will be over time.  Also, should research into just how bad it is or isn't this migration.

also consider storing dates in the db down to the millisecond or microsecond resultion.


Works finely! @alimary i just had this same issue. The link given by @damieng has a solution you may want to try.

Thank you so much! It works finely!!
@alimary i just had this same issue. The link given by @damieng has a solution you may want to try.
C:\Users_username_\AppData\Local\atom\app-1.8.0\resources\cli
Originally posted by @sayhelloelijah in https://github.com/atom/apm/issues/547#issuecomment-225393582

Thanks for reaching out!
We require the template to be filled out on all new issues and pull requests. We do this so that we can be certain we have all the information we need to address your submission efficiently. This allows the maintainers to spend more time fixing bugs, implementing enhancements, and reviewing and merging pull requests.
Thanks for understanding and meeting us halfway :grinning:


WMS problem when sharing

Hi!
It seams that 3DcityDB webmap wont include all WMS I added when sharing the map. Only one of my WMS is condired. Is there a way to fix this issue?
Thanks for your time!
Regards, Abel

Hi Abel,
could you provide us the link of your client including all WMS you wished to include?
Best,
Son

Hi Son!
Ypu can see my work here: https://3d.sokigo.com/demo/ This is a combination between Cesium 1.43 and 3dCityDB web client. I can do many staffs such as drag and drop, etc.
This is a link tom my WMS: https://3d.sokigo.com/geoserver/ows
and the layers are : pbr_bestammelser   and   pbr_detaljplaner
Because my changes I am facing som  problem with sharing. Is like an empty extra terrain layer is created when charing the map...
Any help will be appreciated !
Best regars
Abel

Hi Abel,
it appears that the WMS link you provided is empty or invalid. I guess you meant these two layers:
bakgrunder:pbr_bestammelser and bakgrunder:pbr_detaljplaner (this one is just blank).
However, when I entered these URLs into your client as a WMS layer, an error 404 (file or directory not found) is returned. Removing the /proxy/ parameter seems to get rid of this error as a workaround. But since I do not know in details the modifications you've made to your web client, please test again if this is what you wanted to achieve.
Cheers,
Son

Hi Son!
Thanks for your answer  and time. I used to remove the "proxy" and the layers works, But the problem continues. Here are tow working WMS:
https://3d.sokigo.com/geoserver/bakgrunder/wms
Layer:     pbr_bestammelser
and   https://3d.sokigo.com/geoserver/oversvamning/wms
layer      oversv_stock
These  WMS works and you kan see tha they get in ito the ImageryLayers box, but only one of them will be visible. I have even tried with your demo site : https://3dcitydb.org/3dcitydb-web-map/1.4/3dwebclient/index.html and is the same problem.
Thanks for your time!
Abel

Hi Abel,
the current version only displays one imagery layer at a time, which means that it currently does not support displaying two WMS layers on the globe simultaneously or adding more than one custom WMS layers to the base layer picker. However, if you indeed want to add two fixed WMS layers to the base layer picker, you could manually insert them into the code to fit to your specific use case, please refer to the function addWebMapServiceProvider(). I hope this answers your question.
Best,
Son

Hi Son!
I will give it a try and I will return to you.
Thanks for your time!
Regards!
Abel
2018-04-13 12:19 GMT+02:00 Son H. Nguyen<EMAIL_ADDRESS>
Hi Abel,
the current version only displays one imagery layer at a time, which means
that it currently does not support displaying two WMS layers on the globe
simultaneously or adding more than one custom WMS layers to the base layer
picker. However, if you indeed want to add two fixed WMS layers to the base
layer picker, you could manually insert them into the code to fit to your
specific use case, please refer to the function addWebMapServiceProvider()
https://github.com/3dcitydb/3dcitydb-web-map/blob/master/3dwebclient/script.js#L828.
I hope this answers your question.
Best,
Son
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/3dcitydb/3dcitydb-web-map/issues/22#issuecomment-381092583,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL_kxd-Hse-drO33vPIMSGkZQ0xe28mXks5toHuxgaJpZM4SFUZD
.

Hi Son! I just added this code with my WMS link and dint work att all. any idea on how to add 2 or 3 fixed WMS on the LayersPicker box?
function addWebMapServiceProvider() {
var baseLayerPickerViewModel = viewer.baseLayerPicker.viewModel;
var wmsProviderViewModel = new Cesium.ProviderViewModel({
name: addWmsViewModel.name.trim("orto"),
iconUrl: addWmsViewModel.iconUrl.trim("Widgets/Images/ImageryProviders/bingAerial.png"),
tooltip: addWmsViewModel.tooltip.trim("testing"),
creationFunction: function () {
return new Cesium.WebMapServiceImageryProvider({
url: addWmsViewModel.url.trim("https://3d.sokigo.com/geoserver/bakgrunder/wms"),
layers: addWmsViewModel.layers.trim("orto"),
parameters: Cesium.queryToObject(addWmsViewModel.additionalParameters.trim()),
proxy: addWmsViewModel.proxyUrl.trim().length == 0 ? null: new Cesium.DefaultProxy(addWmsViewModel.proxyUrl.trim())
});
}
});
baseLayerPickerViewModel.imageryProviderViewModels.push(wmsProviderViewModel);
baseLayerPickerViewModel.selectedImagery = wmsProviderViewModel;
}
Best regards!
Abel

Hi Abel,
you can manually add two layers using this code:
addWebMapServiceProviderManual();
function addWebMapServiceProviderManual() {
    var baseLayerPickerViewModel = cesiumViewer.baseLayerPicker.viewModel;

    var addWmsViewModel1 = {
        name: 'Layer 1',
        iconUrl: '',
        tooltip: '',
        url: 'https://3d.sokigo.com/geoserver/bakgrunder/wms',
        layers: 'pbr_bestammelser',
        additionalParameters: '',
        proxyUrl: '/proxy/'
    };
    var wmsProviderViewModel1 = new Cesium.ProviderViewModel({
        name: addWmsViewModel1.name.trim(),
        iconUrl: addWmsViewModel1.iconUrl.trim(),
        tooltip: addWmsViewModel1.tooltip.trim(),
        creationFunction: function () {
            return new Cesium.WebMapServiceImageryProvider({
                url: addWmsViewModel1.url.trim(),
                layers: addWmsViewModel1.layers.trim(),
                parameters: Cesium.queryToObject(addWmsViewModel1.additionalParameters.trim()),
                proxy: addWmsViewModel1.proxyUrl.trim().length == 0 ? null: new Cesium.DefaultProxy(addWmsViewModel1.proxyUrl.trim())
            });
        }
    });
    baseLayerPickerViewModel.imageryProviderViewModels.push(wmsProviderViewModel1);
    // baseLayerPickerViewModel.selectedImagery = wmsProviderViewModel1;

    var addWmsViewModel2 = {
        name: 'Layer 2',
        iconUrl: '',
        tooltip: '',
        url: '',
        layers: 'https://3d.sokigo.com/geoserver/oversvamning/wms',
        additionalParameters: 'oversv_stock',
        proxyUrl: '/proxy/'
    };
    var wmsProviderViewModel2 = new Cesium.ProviderViewModel({
        name: addWmsViewModel2.name.trim(),
        iconUrl: addWmsViewModel2.iconUrl.trim(),
        tooltip: addWmsViewModel2.tooltip.trim(),
        creationFunction: function () {
            return new Cesium.WebMapServiceImageryProvider({
                url: addWmsViewModel2.url.trim(),
                layers: addWmsViewModel2.layers.trim(),
                parameters: Cesium.queryToObject(addWmsViewModel2.additionalParameters.trim()),
                proxy: addWmsViewModel2.proxyUrl.trim().length == 0 ? null: new Cesium.DefaultProxy(addWmsViewModel2.proxyUrl.trim())
            });
        }
    });
    baseLayerPickerViewModel.imageryProviderViewModels.push(wmsProviderViewModel2);
    baseLayerPickerViewModel.selectedImagery = wmsProviderViewModel2;
}

Thanks a lot Son! I will try it right away!
Regards,
Abel

Hi Son!
I just implemented your suggestion and it worked pefectly! Thanks a lot for your support! Here is my site: https://3d.sokigo.com/demo
I am trying to do the same with the 3DcityDB layer and I cant get the same result. I want my lod1-data to be on from start in the default webmap. Is that possible? This is my code:
addLayerViewModelManual();
function addLayerViewModelManual() {
var addLayerViewModel1 = {
url: "https://3d.sokigo.com/demo/data/lods/stock_collada_MasterJSON.json",
name: "stock",
thematicDataUrl: "",
cityobjectsJsonUrl: "",
minLodPixels: "",
maxLodPixels: "",
maxSizeOfCachedTiles: 200,
maxCountOfVisibleTiles: 400
}
},
Cesium.knockout.track(addLayerViewModel1);
Cesium.knockout.applyBindings(addLayerViewModel1, document.getElementById('citydb_addlayerpanel'));
Regards!
Abel

Hi Abel,
to insert e.g. a building layer you can either adjust the URL parameters (such as ?layer_0=...&name=...) or use some codes as you were trying to in the previous comment. Here is an example code you can use:
addLOD1Manual();
function addLOD1Manual() {
    addLayerViewModel = {
        url: "https://3d.sokigo.com/demo/data/lods/stock_collada_MasterJSON.json",
        name: "stock",
        thematicDataUrl: "",
        cityobjectsJsonUrl: "",
        minLodPixels: "",
        maxLodPixels: "",
        maxSizeOfCachedTiles: 200,
        maxCountOfVisibleTiles: 400
    }
    addNewLayer();
}

The function addLOD1Manual() is our own specified function, which overrides the already defined addLayerViewModel object with new information and then calls the existing function addNewLayer().

Thanks a lot Son!
Regards!
Abel
2018-04-23 12:10 GMT+02:00 Son H. Nguyen<EMAIL_ADDRESS>
Hi Abel,
to insert e.g. a building layer you can either adjust the URL parameters
(such as ?layer_0=...&name=...) or use some codes as you were trying to
in the previous comment. Here is an example code you can use:
addLOD1Manual();function addLOD1Manual() {
addLayerViewModel = {
url: "https://3d.sokigo.com/demo/data/lods/stock_collada_MasterJSON.json",
name: "stock",
thematicDataUrl: "",
cityobjectsJsonUrl: "",
minLodPixels: "",
maxLodPixels: "",
maxSizeOfCachedTiles: 200,
maxCountOfVisibleTiles: 400
}
addNewLayer();
}
The function addLOD1Manual() is our own specified function, which
overrides the already defined addLayerViewModel object with new
information and then calls the existing function addNewLayer()
https://github.com/3dcitydb/3dcitydb-web-map/blob/master/3dwebclient/script.js#L789
.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/3dcitydb/3dcitydb-web-map/issues/22#issuecomment-383524380,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL_kxb8JoWdvE9QPwbnbRi9f-NqtPGnZks5traiBgaJpZM4SFUZD
.

Hi Son!
I hope you are doing great!
I am trying to add TerrainProvider från Cesium ion and tried the following
but is not working att all. any idea?
var addTerrainProviderModel1 = {
name: 'Min terrain',
iconUrl: 'img/orto.png',
tooltip: '',
url: 'Cesium.IonResource.fromAssetId(4537)',
proxyUrl: ''
};
var terrainProviderModel1 = new Cesium.ProviderModel({
name: addTerrainModel1.name.trim(),
iconUrl: addTerrainModel1.iconUrl.trim(),
tooltip: addTerrainViewModel1.tooltip.trim(),
creationFunction: function () {
return new Cesium.WebMapServiceImageryProvider({
url: addTerrainViewModel1.url.trim(),
layers: addTerrainViewModel1.layers.trim(),
parameters:
Cesium.queryToObject(addTerrainViewModel1.additionalParameters.trim()),
proxy: addTerrainViewModel1.proxyUrl.trim().length == 0 ?
null: new Cesium.DefaultProxy(addTerrainViewModel1.proxyUrl.trim())
});
}
});
baseLayerPickerViewModel.terrainProviderViewModels.push(demProviderViewModel1);
baseLayerPickerViewModel.selectedTerrain = demProviderViewModel1;
Best regards,
Abel Gonzalez
2018-04-23 14:18 GMT+02:00 Son H. Nguyen<EMAIL_ADDRESS>
Closed #22 https://github.com/3dcitydb/3dcitydb-web-map/issues/22.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/3dcitydb/3dcitydb-web-map/issues/22#event-1588989162,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL_kxXoaK5H_AtVtiDAcb7yYZxKk7_Zeks5trcaYgaJpZM4SFUZD
.


ResGCN module

Hi,
I am looking up for ResGCN structure. Where can I find it in this repo? I understand from the below statement that it should be in the ,nets folder but I couldnt find .nets. Can you kindly help me on this?
 from .nets import ResGCN
Thanks
Mritula

in GaitGraph/src/models/ResGCNv1

Hi, I am looking up for ResGCN structure. Where can I find it in this repo? I understand from the below statement that it should be in the ,nets folder but I couldnt find .nets. Can you kindly help me on this?
 from .nets import ResGCN
Thanks Mritula

in GaitGraph/src/models/ResGCNv1


Getting podspec details from package information

For example version is now hardcoded antique 0.21.5. So why not get needed details from package.json and those are always up-to-date.
Description
Fixed podspec to be more dynamically.
Compatibility

OS
Implemented

iOS
✅❌

Android
✅❌

Windows
✅❌

Checklist

[X] I have tested this on a device/simulator for each compatible OS (tested that app with device-info dependency runs and works normally with iOS simulator after change)
[ ] I mentioned this change in CHANGELOG.md.

I will quickly admit I am very new to iOS development. This looks very clean and simple though. May I ask what steps you took to test that it worked, and what results I should expect before and after your change so I can reproduce that it works as intended?

I have project where that library is one dependency. Since pods are default way to go with react native sooner than later (https://github.com/react-native-community/discussions-and-proposals/issues/104, first issue), I have move everything I easily could installed with cocoapods.
In this case:

Replace react-native-device-info's podspec from node_modules with that PR one
go to project ios folder
rm -rf Pods Podfile.lock & pod install (there is probably better ways to clean Pods project than delete Podfile.lock but it works)
Check from installation output that pod get installed with correct version:

...
Fetching podspec for `RNDeviceInfo` from `../node_modules/react-native-device-info`
Installing RNDeviceInfo (0.29.1)
...
Pod installation complete! There are 21 dependencies from the Podfile and 33 total pods installed. (numbers from my project)

Check diff from Podfile.lock, RNDeviceInfo version and checksum should be changed:

-  - RNDeviceInfo (0.21.5):
+  - RNDeviceInfo (0.29.1):

-  RNDeviceInfo: e7c5fcde13d40e161d8a27f6c5dc69c638936002
+  RNDeviceInfo: a80e94f282c91e3b3a7d4ae75ed68b11479474b8

Run app with iOS Simulator, go somewhere where you use react-native-device-info and notice that a) app won't crash, b) used method returns value as expected

I'm not very familiar too with native side (especially iOS) and don't know if this changed really anything with how this library behaviour when you use it, looks like pods have worked with wrong version number too just fine. I have just noticed that if I upgrade react-native-device-info, it won't install Pod with new version like it will do mainly with other dependencies I use, so checked what is wrong here and find that reason is hardcoded version in podspec which won't follow librarys version 🙂

Awesome, thank you!
This will be shipped in the next release when it's due.


Fix docstrings ending with more than 3 double quotes

When a docstring ends with a single double quote, like in the following example, the regex would match on the first three double quotes, ending the string, and then the next single double quote would open another string, leading to broken highlighting.
type Currency {
  """This is the currency code e.g "EUR", "USD""""
  code: String!
}

Code like this is generated by Apollo rover's schema dump for example.
An issue I could see would be matching 5 quotes of a closing triplet immediately followed by another opening triplet because the regex is probably eager. """string1""""""string2"""" could be split into [""" string1 """"" " string2 " " "]. But that's probably really uncommon.

@dncrews any interest? Should I just close this?


app-layer-template: only for version < 7

The C templates have been removed from 7.0.

The C templates have been removed from 7.0.

Have they already ?

The C templates have been removed from 7.0.

Have they already ?

Premature optimization.  Still requires the PR.

PR is open https://github.com/OISF/suricata/pull/8182


Histogram library

Write a library in util/hist.c to help generate statistics for large numbers of data readings.
Issue #6 builds a Latency Timer program that measures the round trip delay between a client a server. To be accurate, you want to gather hundreds or thousands of such measurements, but if you just report the average that doesn't give the complete picture. This histogram library will help by providing an easy way to summarize large amounts of data.
The interface should be something like:
// put code in util/hist.h and util/hist.c

/* Create an array with nun_buckets that will store data from min to max */
struct histogram* histogram_create(int min, int max, int num_buckets);

/* Increment the bucket for data_point */
void histogram_inc(struct histogram* hist, int data_point);

/* Print out the histogram bucket counts */
void histogram_print(struct histogram* hist);

You should use uint32 or uint64 types instead of ints!

I would like to claim this issue for the next two days.
Sincerely,
Anthony

closed by #91


simplify soldier creation

since we decided to remove the engineer, we only need to create soldier. It feels to me that is is an extra step to toggle the build soldier button on a new planet, since this is such a common thing to do, and it's hard to keep track of which planet is toggled (AI has advantage than human on this). What if we make it like the resource planet. As long as you own this soldier/hybrid planet, it will train soldiers automatically.
This introduces a new problem however, the resource might go down without player doing anything. But we don't have any indication in our current game that resource is directly linked with soldiers, either.

Um. Nevermind. I think it's better to leave the soldier toggle there. Later on, we will have more different kinds of planets(in theory, we will), and each planet has different actions for user to take, we cannot just default anything. But there should be some visual indication for planet that is creating unit, as well as planet that is generating resource

I don't think we should remove the soldier toggle.
Now to make it more complicated....
I think we can use the resources for upgrades to soldier units. I already built a structure for upgrading soldiers in the SoldierUnit struct you will see defenseMod and attackMod. These mods are included in the CombatScript already as well. I'm thinking this would be an action that can only happen on Soldier planets and can take the place of the Engineer toggle.
Yes, we should have a visual indication. maybe a small animation like a soldier head with + signs floating up?

I like the idea of soldier head popping up. but I don't think we want to add upgrade feature. As we see TA playing, this is a pretty fast pace game with a lot of stuff to keep track of. I think it would be too hard for user to remember to upgrade their unit

The TA was mostly playing that fast because he didn't understand what was going on. When you play more strategically it slows down considerably.
I imagined the upgrade feature applying to all soldiers even if they were already trained. It would also be a high cost item.
My concern comes down to the useful and fun factor with the resources. If we can only spend it on training soldiers, I think that's kinda boring. Making your units more powerful sounds a bit more exciting.

Yeah I agree that we should have more various ways of spending resource. What about a training planet. When player claims its ownership, they needs to click a button to activate it, and there will be a progress bar like the ship loading progress bar. Once it reaches maximum, your global soldier property level up by 1, then it will automatically reset the progress bar and start a second round of leveling up.  Next time you take it back you have to start from 0% again.

So what does increasing your global soldier property level do?

I think instead of telling user the chose the attack , defence of soldiers to upgrade, we abstract it into levels. Say level one 50 attack, 100 defence, level 2 75 attack , 200 defence .

Agreed, it's unnecessary to get into those details since it's a fast paced game.
I am imagining the resource expenditure for the upgrade happening all at once upfront. Say 100 resources for level , 150 level 2

Yeah, when it starts a cycle of upgrading, resource is deducted, if it fails due to enemy attack, the resource will not be refunded


Update AutoValue to 1.2-rc1, exclude its classes from the apk

No changelog, but basically it now has extensions and better-shaded dependencies like Guava.

Current coverage is 81.42%

Merging #134 into master will not affect coverage as of ed489d3

@@            master    #134   diff @@
======================================
  Files           37      37
  Stmts          549     549
  Branches        47      47
  Methods          0       0
======================================
  Hit            447     447
  Partial         29      29
  Missed          73      73

Review entire Coverage Diff as of ed489d3

Powered by Codecov. Updated on successful CI builds.

:+1:


Geowave 999

#999

Coverage decreased (-9.2%) to 42.244% when pulling 3ee53cf8b99bc261c042be0f6c9afdd245027e4c on mak438:GEOWAVE-999 into 13f94c04daacbfb256afbc60878ac2017ef45fcf on ngageoint:master.

Apparently one of the new tests segfaulted during the CI build. Looking into that.

Coverage increased (+0.3%) to 51.827% when pulling f9e327c36ead972306ddfb4ee559b15f1f596281 on mak438:GEOWAVE-999 into 13f94c04daacbfb256afbc60878ac2017ef45fcf on ngageoint:master.

Coverage increased (+0.3%) to 51.827% when pulling f9e327c36ead972306ddfb4ee559b15f1f596281 on mak438:GEOWAVE-999 into 13f94c04daacbfb256afbc60878ac2017ef45fcf on ngageoint:master.

Coverage increased (+0.3%) to 51.827% when pulling f9e327c36ead972306ddfb4ee559b15f1f596281 on mak438:GEOWAVE-999 into 13f94c04daacbfb256afbc60878ac2017ef45fcf on ngageoint:master.

Coverage increased (+0.3%) to 51.827% when pulling f9e327c36ead972306ddfb4ee559b15f1f596281 on mak438:GEOWAVE-999 into 13f94c04daacbfb256afbc60878ac2017ef45fcf on ngageoint:master.

Coverage increased (+0.3%) to 51.827% when pulling f9e327c36ead972306ddfb4ee559b15f1f596281 on mak438:GEOWAVE-999 into 13f94c04daacbfb256afbc60878ac2017ef45fcf on ngageoint:master.

Coverage increased (+0.3%) to 51.827% when pulling f9e327c36ead972306ddfb4ee559b15f1f596281 on mak438:GEOWAVE-999 into 13f94c04daacbfb256afbc60878ac2017ef45fcf on ngageoint:master.

resubmitted as PR #1036
I tweaked the filter to add ".. and sizeMB < 1" just to make sure we're getting small files (considering there was no time constraint, as imagery is collected in the future there are no guarantees of the size without this.
I also add calls to set the scale which essentially scales the image first before ingest, and it therefore finished quickly.
Lastly, just squashed commit history down


Api 1 request error to new-authz, once

I got this error, once:
 + Requesting authorization for games.home.hotblocks.nl...
  + ERROR: An error occurred while sending post-request to https://acme-v01.api.letsencrypt.org/acme/new-authz (Status 500)

Details:
HTTP/1.1 100 Continue
Expires: Sat, 10 Mar 2018 01:29:48 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache

HTTP/1.1 500 Internal Server Error
Server: AkamaiGHost
Mime-Version: 1.0
Content-Type: text/html
Content-Length: 176
Expires: Sat, 10 Mar 2018 01:29:48 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Sat, 10 Mar 2018 01:29:48 GMT
Connection: close

<TITLE>Error</TITLE>
An error occurred while processing your request.

Reference #179.13a9645f.1520645388.b9ed2bc

Then I updated Dehydrated to head, and then it worked.
So no real problem, just sharing. Not sure if it was LE's fault or Dehydrated's. Do with it what you want.

LE had problems for a while, "Internal Server Error" is never a dehydrated issue, thanks for reporting anyway.


Hero Mdbook last-changed error

Situation
Installing the new hero mdbook with the script on the readme page, I get this error:

@timurgordon
Any idea? Thanks!

if you install new hero should be fixed


Update ShopTransactionStatusServerRequest.php

add handling of missing status responses by PAYONE
otherwise static::STATUS_FAILED will be wrongly returned in the missing cases

Merged. Thank you for this.

Before I make a release, do you have any further details about how this would work in practice? For example, an action of "underpaid" comes out as a pending transaction in OmniPay's eyes. I'm not sure whether "underpaid" is as far as the transaction can go, or whether a remaining balance can still be paid, or how the merchant site should handle this (maybe just flagged up to the store owner if it remains pending for too long?). Any examples or arguments as to how each of these actions fit into the overall status would be useful.

Hello,
thank you for your reply! Please, see https://www.payone.com/
fileadmin/downloads/sonstiges/PAYONE_Platform_Client_API_EN.pdf page 105
ff. for further precise details concerning this topic, too.
We had the following problem:
We got a message by PAYONE like
{"code":"invoice","key":"ca57...","txaction":"appointed","
portalid":"202...","aid":"36...","clearingtype":"rec","
notify_version":"7.4","txtime":"1493212054","currency":"EUR"
,"userid":"100464...","accessname":"","accesscode":""
,"param":"","mode":"test","price":"52.54","id":{"1":"
1214","2":"-"},"pr":{"1":"44.99","2":"7.55"},"no":{"1":"1","2":"1"},"de":{"1":"Product
name","2":"Standardversand"},"ti":{"1":"Product name","2":"
Standardversand"},"va":{"1":"19.0","2":"0.0"},"txid":"
222874492","reference":"584","sequencenumber":"0","company":
"","firstname":"Holger","lastname":"Payer","street":"F\u00fcrstenstr., 111,
<EMAIL_ADDRESS>","country":"DE","shipping_company":"","shipping_firstname":"Holger","
shipping_lastname":"Payer","shipping_street":"F\u00fcrstenstr., 111,
111","shipping_zip":"12345","shipping_city":"D\u00fcsseldorf","shipping_
country":"DE","transaction_status":"completed","balance":
"52.54","receivable":"52.54"}
As you can see, especially "txaction":"appointed" was transmitted by PAYONE.
Then, approximately 10 minutes later, we got a message like:
{"code":"invoice","key":"ca57...","txaction":"paid",
"portalid":"202...","aid":"36...","clearingtype":"rec","
notify_version":"7.4","txtime":"1493212054","currency":"EUR"
,"userid":"100464...","accessname":"","accesscode":""
,"param":"","mode":"test","price":"52.54","id":{"1":"
1214","2":"-"},"pr":{"1":"44.99","2":"7.55"},"no":{"1":"1",
"2":"1"},"de":{"1":"Product name","2":"Standardversand"},"ti":{"1":"Product
name","2":"Standardversand"},"va":{"1":"19.0","2":"0.0"},"txid":"
222874492","reference":"584","sequencenumber":"0","company":
"","firstname":"Holger","lastname":"Payer","street":"F\u00fcrstenstr., 111,
<EMAIL_ADDRESS>","country":"DE","shipping_company":"","shipping_firstname":"Holger","
shipping_lastname":"Payer","shipping_street":"F\u00fcrstenstr., 111,
111","shipping_zip":"12345","shipping_city":"D\u00fcsseldorf","shipping_
country":"DE","balance":"0","receivable":"52.54"}
In this case "txaction":"paid" was sent by PAYONE.
At this point, the previous evalution of
ShopTransactionStatusServerRequest.php led to the problem that "paid" was
not evaluated to static::STATUS_COMPLETED but to static::STATUS_FAILED. In
turn, this led to the trouble that our shop system (extensions aimeos and
aimeos_pay within TYPO3) evaluated the status of the given order to
"refused".
(In some cases a third message with "txaction":"invoice" was additionally
sent.)
Therefore, we changed the case distinctions in the method
getTransactionStatus() within the class ShopTransactionStatusServerRequest.
("add handling of missing status responses by PAYONE
otherwise static::STATUS_FAILED will be wrongly returned in the missing
cases")
With kind regards,
Dennis Dittmann
2017-05-08 13:27 GMT+02:00 Jason Judge<EMAIL_ADDRESS>
Before I make a release, do you have any further details about how this
would work in practice? For example, an action of "underpaid" comes out as
a pending transaction in OmniPay's eyes. I'm not sure whether "underpaid"
is as far as the transaction can go, or whether a remaining balance can
still be paid, or how the merchant site should handle this (maybe just
flagged up to the store owner if it remains pending for too long?). Any
examples or arguments as to how each of these actions fit into the overall
status would be useful.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/academe/OmniPay-Payone/pull/22#issuecomment-299842119,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AbH-2IGtr9WJwBjHum2-BxuDrCO-a7S3ks5r3vwegaJpZM4NR4cr
.

Thanks, that helps put it into context. I think a table of the mappings should go into the readme to raise its visibility a bit, as it feels important to know what assumptions are being made. I'll do that now, then make a minor release (since the logic has changed slightly).


Prevent showing the private key in the error

Depending on how and where this package is used, this could leak the key to the user. In our case this means it can leak a key that is not owned by the calling user.

This change is

@spheromak would be great if you can check this one. Doesn't change any logic, just the error response.

thnx @svanharmelen


Operator description should link to latest CLI

The operator description should only contain a link to the releases page of Tekton CLI to download the latest. The project link should be removed.

Fixed in
https://github.com/operator-framework/community-operators/pull/579


Using JSX without importing React does not raise a warning/error

Here is a sample JS file that demonstrates the issue. I define a couple of routes using JSX but don't explicitly reference React:
// import React from 'react';
import { Route } from 'react-router';

import Home from './Home';
import Site from './Site';

let routes =
  <Route path="/" handler={Site}>
    <Route name="home" path="/" handler={Home} />
  </Route>;

export default routes;

This code fails to run because the JSX transformer (I use Babel) adds in React.createElement(Route, ...), and React was not imported. The linter should complain that the JSX runtime is not defined. Also, when I uncomment import React from 'react'; the linter complains that React is unused even though it is needed.

There is 2 rules to handle these case:

react-in-jsx-scope: that will ensure React is available in the scope where JSX is used.
jsx-uses-react: that will prevent the React variable to be incorrectly marked as unused.

Does theses 2 rules solve your problem ?

Yes, that's perfect. Thank you for the pointers @yannickcr!


Update Roadmap for 2024

The Roadmap needs to be updated again.  #15661 updated the roadmap for 2023 near the end of the year.
It' s 2024 now.
Isn't a radmap supposed to show the road ahead, not only backwards?

The roadmap still tells me about "up next in the terminal" what i migth get in an upcoming version 1.19, which was ouf of preview thre months ago.
There's something embarrassing about that.


Timeline

Design
UI Elements -> Timeline
The components must be crafted as reusable vuestic-components

@asvae card titles font size is wrong (must be 1.2-1.375 rem)


Added "or" condition processing to validation parameters

Added a new format for handling "or" conditions. Specifically this would be written as
<ValidatedInput               id="profile-companyMail"               name="companyMail"               type="email"               placeholder="Email"               validate="isEmpty|isEmail"               errorHelp="Incorrect Email"             />
The above would validate a non-required email field.

Note: This additionally has test reporting and working unit tests for the old and new behaviour.
Note: I've also updated the test harness reporter to include code coverage.
Note: Currently the conditions can either be all "and" or  all "or" it does not support both.
TODO: Implement mixing of "or" and "and" condition logic. This would include something like...
(isEmpty|isEmail)&(isEmpty|isMobilePhone)
backward compatability would keep the ',' seperator so the above could also be written as
(isEmpty|isEmail),(isEmpty|isMobilePhone)
or
isEmpty|(isEmail|isMobilePhone)

Please see issue #25 for a description of the original issue.

This is covered by PR #54. A new single syntax to handle this and injecting parameters into the new Validator update.


<EMAIL_ADDRESS>project does not start, as it creates a new folder inside

Environment

Operating System: Darwin
Node Version:     v18.16.0
Nuxt Version:     3.6.1 and 3.6.5
Nitro Version:    2.5.2
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      ssr, app, css, windicss, build, buildModules, modules, experimental, components, vite, runtimeConfig, vueuse
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Build Modules:    -

Reproduction
I couldn’t create a minimal reproduction. Both sites are having problems and I can’t start.
Describe the bug
I started a project on version 3.6.1 about fifteen/twenty days ago (more or less). And yesterday it started giving an error. It is not starting. After so much research, it is creating a folder called “o” with two other folders inside “.nuxt” and “node_modules”.

These folders are probably preventing it, even because the code remains the same as three days ago when it was working properly. It was the last time I changed any settings or installed a library. From then on, I only worked on the layout. I deleted the “node_modules” folder, which fixed the first initiation and went well. But then when I shut down and start again, it goes back to creating the “o” folder. Maybe it’s with the version.

Update: I tried updating from version 3.6.1 to 3.6.5, but it’s still having problems.
Additional context

Logs
No response

Wow, I’m glad you found the error. lmao.
Yes, it seems that you were starting with “yarn dev o” instead of “yarn dev -o” and I believe that Nuxt without the dash recognizes it as a new command or a new project and ended up creating this folder. Sorry hehe.


Competitions w/ Tracks - Superscore option not shown

In competitions with tracks (https://www.duosmium.org/results/2022-02-05_NC_elizabeth_city_regional_c/), the "Superscore" option isn't show in the popup.

This behavior is intentional since track superscores are difficult given the current implementation of tracks and superscoring.
When superscoring, we currently generate a new interpreter from a modified SciolyFF representation that changes placings based on the superscore. The new interpreter is then used normally by the Duosmium template (with some cosmetic tweaks). Two main issues arise with this implementation:

Schools with teams in multiple tracks are not compatible with the combined and split track display method default in Duosmium, since a superscored representation combines all team placings from a school. This could be worked around by combining placements from a school from teams in the same track, so there will be a duplicate school entry for each track.
Track event placements are computed from the combined, "main" placement. Since gaps are allowed in placements, the computed track placings will not be accurate. This can be worked around by setting the explicit key to true and explicitly setting place and trackPlace.


limit_val_batches=0.0 has no effect when overfit_batches=1

🐛 Bug
I want to overfit a batch using overfit_batches, limit_val_batches is set to 0.0 but there's still a validation batch every epoch making it take twice as long. Why is validation happening at all when using overfit_batches and why is limit_val_batches not working as expected?
This is my trainer,
trainer = pl.Trainer(
    gpus=1,
    overfit_batches=1,
    limit_val_batches=0.0,
    log_every_n_steps=1,
    deterministic=True,
)

To Reproduce
I tried to reproduce using the boring model, but the colab nb is broken

Expected behavior
Validation shouldn't happen by default when using overfit_batches. If it is desirable to have a validation batch then limit_val_batches=0.0 should override that behavior.
Environment
pytorch 1.9.0
lightning 1.4.1

Dear @rbracco,
Would you like to give it a try ?
This is definitely a good first issue.
Best,
T.C

Sure, I'm happy to PR, I would just like to clarify the desired behavior. Would it be...
A. No validation by default when using overfit_batches?
B. Validation by default, but limit_val_batches=0.0 prevents validation?
Thank you.

Dear @rbracco,
I would go for solution B.
overfit_batches=1 makes sure everything works properly for training, validation.
If you had limit_val_batches=0.0, there shouldn t be validation.
Feel free to make a PR with this addition.
Best,
T.C

I would go for solution B.
overfit_batches=1 makes sure everything works properly for training, validation.
If you had limit_val_batches=0.0, there shouldn t be validation.
Feel free to make a PR with this addition.
Best,
T.C

@tchaton
I meets this problem too and checkout the codes in Trainer of master.
It seems like that the DebuggingConnector will reset limit_val_batches, limit_train_batches and limit_test_batche to overfit_batches when overfit_batches > 0 through function determine_data_use_amount via PR #3447. And this happends all the time since there is no switcher to control it.

Hey @popfido,
The default value for limit_val_batches=1.0. If a user sets it explicitly to .0, I would expect overfit batches not to over-write it as it is a request from the user.

Hi @tchaton,
How about other param that also be reseted by determine_data_use_amount to overfit_batches like limit_test_batche or limit_train_batches,. Although it's hard to image that there exists such kind of user who will set both  overfit_batches > 0, and limit_train_batches or limit_test_batche = 0.0
Bests,
F.W

Hi @tchaton,
In my view the fast solution for this bug is to check whether the value of limit_val_batches, limit_train_batches and limit_test_batche is the default value. If not, then keep them from resetting by overfit_batches.
Bests,
F,W


Missing top padding in status notification sidebar when everything is okay

Padding is missing above the green icon:

thanks for the issue, @LeoniePhiline
which version of iphone?
which version iOS?
which version of yoroi mobile?
could you provide steps to reproduce?

Hi, sorry I posted this in the wrong project. :)
It’s ledger live 😁


Dependency Update

https://github.com/conbench/conbenchcoms/pull/21 make some changes to the R conbench client. This PR updates that and some other dependencies. In addition, this update some of the reporting code to be inline with that conbenchcoms code.
fyi @assignUser and @raulcd

Actually looking at the rendered report from CI it looks like something went wrong?

Please set the BASELINE_GIT_COMMIT & CONTENDER_GIT_COMMIT environment variables to the commit hash of the baseline and the release.

Actually looking at the rendered report from CI it looks like something went wrong?

This is actually as intended right now. I wasn't able to give those two variables defaults so the CI report just ended up being this. It is probably worth figuring out at some point but maybe not in this PR?


Image not aligned after orientation change

Describe the bug
The Image is not longer aligned to Center (for example) after an orientation change (rotate the phone) - however, it returns to the default Top-Start. After re-opening the page on the new orientation, the image loads fine, however, if it rotates again, moves back to the Top-Start alignment
Affected platforms

Android

Affected components
Select of the components below:

SketchAsyncZoomImage

Versions

zoomimage version*: 1.1.0-alpha05
Kotlin version*: 2.0.0
Compose version(s)* (Jetpack): 2024.06.00

Running Devices

Pixel 6; Android 15; arm64
Pixel 7; Android 14; arm64

Sample code
    Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
        SketchZoomAsyncImage(
            modifier = Modifier.fillMaxSize(),
            uri = media.uri.toString(),
            contentScale = ContentScale.Fit,
            contentDescription = null
        )
    }

Reproduction steps

Create Compose Screen with given snippet
Set an uri
Open the app and observe the image being correctly displayed
Rotate the phone screen to landscase
Observe the image being aligned to the Top-Start instead
Rotate again to portrait and observe the image staying to Top-Start

Expected behavior

Create Compose Screen with given snippet
Set an uri
Open the app and observe the image being correctly displayed
Rotate the phone screen to landscase
Observe the image being correctly displayed
Rotate again to portrait and observe the image being correctly displayed

Screenshots

Additional context
None.
Thanks for creating this library, completely full-fills my use-cases, but there's this small thing that delays me to release the version with your library instead of coil and telephoto

I think it defaults to this on orientation change, maybe the state is not held correctly trough configuration changes
https://github.com/panpf/zoomimage/blob/main/zoomimage-compose-sketch-core/src/commonMain/kotlin/com/github/panpf/zoomimage/SketchZoomAsyncImage.kt#L296

SketchZoomAsyncImage(
      modifier = Modifier.fillMaxSize(),
      uri = media.uri.toString(),
      contentScale = ContentScale.Fit,
      alignment = Alignemnt.Center,
      contentDescription = null
)

You can get rid of the Box and set the alignment directly using the alignment parameter of SketchZoomAsyncImage

I need the box to overlay the blur and the normal image.

Ok, let me look into the issue again. My plan is to release a new version this Friday which should fix this issue.

Thanks! I'm looking forward to it

I have tried many times and still can't reproduce this problem. Can you create a simple complete project that can repeat this problem for me?
Here is my demonstration video
https://github.com/user-attachments/assets/d8dd7caa-ff41-4d20-9524-1c158536e9ec

I have tried many times and still can't reproduce this problem. Can you create a simple complete project that can repeat this problem for me?
Here is my demonstration video
2024-08-<IP_ADDRESS>.mp4

I'll double check my project then I'll get back with a sample project

Can you try in the context of an Horizontal Pager?

This reproduces the issue (while this is an extreme measure - having the key to constantly recompose the screen - something for sure it's wrong in my project if this happens)
val key = Random.nextInt()
key(key) {
    SketchZoomAsyncImage(
        modifier = Modifier.fillMaxSize(),
        uri = "content://media/external/images/media/54",
        contentDescription = null
    )
}

@panpf I have solved the issue!
The culprit: (AndroidManifest.xml)
android:configChanges="orientation"

This reproduces the issue (while this is an extreme measure - having the key to constantly recompose the screen - something for sure it's wrong in my project if this happens)
val key = Random.nextInt()
key(key) {
    SketchZoomAsyncImage(
        modifier = Modifier.fillMaxSize(),
        uri = "content://media/external/images/media/54",
        contentDescription = null
    )
}

You are doing this wrong, please remove the random key, it will cause the SketchZoomAsyncImage component to load/destroy in a loop and never stop. You can either not set the key or use uri as the key.
You can see the image because there is a memory cache. After the second time, it is loaded from the memory cache, which will be very fast.
The default alignment of the image is TopStart. SketchZoomAsyncImage will calculate the offset based on the actual Alignment after the image is loaded successfully. Unfortunately, the SketchZoomAsyncImage component is destroyed before it can calculate the offset. This cycle repeats and results in the result you see now.

@panpf I have solved the issue!
The culprit: (AndroidManifest.xml) android:configChanges="orientation"

I have tested this and it does not cause this problem.

@panpf I have solved the issue!
The culprit: (AndroidManifest.xml) android:configChanges="orientation"

I have tested this and it does not cause this problem.

"keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
Have you tried with the full set?

This reproduces the issue (while this is an extreme measure - having the key to constantly recompose the screen - something for sure it's wrong in my project if this happens)
val key = Random.nextInt()
key(key) {
    SketchZoomAsyncImage(
        modifier = Modifier.fillMaxSize(),
        uri = "content://media/external/images/media/54",
        contentDescription = null
    )
}

You are doing this wrong, please remove the random key, it will cause the SketchZoomAsyncImage component to load/destroy in a loop and never stop. You can either not set the key or use uri as the key.
You can see the image because there is a memory cache. After the second time, it is loaded from the memory cache, which will be very fast.
The default alignment of the image is TopStart. SketchZoomAsyncImage will calculate the offset based on the actual Alignment after the image is loaded successfully. Unfortunately, the SketchZoomAsyncImage component is destroyed before it can calculate the offset. This cycle repeats and results in the result you see now.

Yeah I know, it was purely experimental.

I only tried orientation

@panpf I have solved the issue!
The culprit: (AndroidManifest.xml) android:configChanges="orientation"

I have tested this and it does not cause this problem.

"keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
Have you tried with the full set?

Because removing the orientation flag from there it fixed the bug on my side

This is my example, I can't reproduce the problem
<application
        android:name="com.github.panpf.zoomimage.sample.MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name="com.github.panpf.zoomimage.sample.MainActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />
        </provider>
    </application>

class MainActivity : BaseActivity() {

    @OptIn(ExperimentalFoundationApi::class)
    @SuppressLint("RestrictedApi")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        EdgeToEdgeUtils.applyEdgeToEdge(/* window = */ window,/* edgeToEdgeEnabled = */ true)
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
            window.statusBarColor = Color.parseColor("#60000000")
        }
        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O) {
            window.navigationBarColor = Color.TRANSPARENT
        }

        setContent {
            HorizontalPager(
                state = rememberPagerState {
                    ResourceImages.values.size
                },
                modifier = Modifier.fillMaxSize()
            ) {
                SketchZoomAsyncImage(
                    uri = ResourceImages.values[it].uri,
                    contentDescription = "",
                    modifier = Modifier.fillMaxSize()
                )
            }
        }
    }
}

@IacobIonut01 Is there any new progress?

I'll close the issue as I have not managed to isolate the issue using a sample project, just in my case it seems that only the orientation flag was causing issue in this specific case, If I manage to properly reproduce the issue with a clean sample app, I'll re-open it. Until then, thanks for helping me out with this amazing library

Thank you for your appreciation. If this library really helps you, I hope you can recommend it to others who need an image zoom library, because the more people use it, the better it will become.

For sure!


decode should use an anonymous generic for the string

Description
The most common use-case for this function is it call it like so:
let bytes = prefix_hex::decode::<Vec<u8>>(&hex_str)?;

But with the recent changes, the generic S: AsRef<str> must also be specified.
let bytes = prefix_hex::decode::<Vec<u8>, _>(&hex_str)?;

This parameter should be inferred for usability.
pub fn decode<T: FromHexPrefixed>(hex: impl AsRef<str>) -> Result<T, Error> {
    T::from_hex_prefixed(hex)
}

Also, this change was breaking but was not marked as such in the changelog.

That's fair. Still, it's nice to have a heads up.

That's fair. Still, it's nice to have a heads up.

Definitely, sorry about that.