text:
Random flickering/artifacting when opengl introspection is not needed

Hyprland Version
Hyprland, built from branch main at commit 99ca26d4eb84e0071264713902e5b287fcab392e  (hooksystem: fix missed log include).
Tag: v0.32.3-84-g99ca26d4
flags: (if any)
debug
Bug or Regression?
Regression
Description
Similar to #3952.  Weird flickering artifacts in lower right quadrant of screen. Bisected to commit aedcade68dd0615fd919a7249633a554d0accd81
System:
  Host: gentoo Kernel: 6.6.2-gentoo arch: x86_64 bits: 64 Desktop: Hyprland
    Distro: Gentoo Base System release 2.14
Machine:
  Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
  Mobo: ASUSTeK model: TUF GAMING Z790-PLUS WIFI v: Rev 1.xx
    serial: <superuser required> UEFI: American Megatrends v: 1220
    date: 07/28/2023
CPU:
  Info: 24-core (8-mt/16-st) model: 13th Gen Intel Core i9-13900KS bits: 64
    type: MST AMCP cache: L2: 32 MiB
  Speed (MHz): avg: 837 min/max: 800/5600:6000:4300 cores: 1: 1100 2: 800
    3: 800 4: 800 5: 800 6: 800 7: 1100 8: 800 9: 1100 10: 1100 11: 800 12: 800
    13: 800 14: 800 15: 800 16: 800 17: 800 18: 800 19: 800 20: 801 21: 800
    22: 800 23: 800 24: 800 25: 800 26: 800 27: 800 28: 800 29: 800 30: 800
    31: 800 32: 800
Graphics:
  Device-1: NVIDIA AD102 [GeForce RTX 4090] driver: nvidia v: 545.29.06
  Display: wayland server: Xwayland v: 21.1.99 compositor: Hyprland driver:
    X: loaded: nvidia gpu: nvidia,nvidia-nvswitch resolution: 1: 2560x1440~165Hz
    2: 3840x2160~160Hz
  API: EGL v: 1.5 drivers: nvidia,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6.0 vendor: nvidia v: 545.29.06 renderer: NVIDIA GeForce
    RTX 4090/PCIe/SSE2
  API: Vulkan v: 1.3.268 drivers: nvidia surfaces: xcb,xlib,wayland

debug:disable_logs = false

exec-once = waybar & swaybg -o \* -i ~/Pictures/Wallpapers/forest_sunset_pink.jpg -m fill & swayidle -w
exec-once = /usr/libexec/polkit-gnome-authentication-agent-1
exec-once = udiskie -t
exec-once = foot spotify_player & foot nvtop & foot btop

exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store

monitor=DP-3,3840x2160@159.975,2560x0,1.5
monitor=DP-2,2560x1440@164.958,0x0,1

# NVIDIA
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = WLR_NO_HARDWARE_CURSORS,1
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DEKSTOP,Hyprland
# try again when latest gamescope works with 535/545
#env = XWAYLAND_NO_GLAMOR,1 # with this you'll need to use gamescope for gaming

xwayland {
    force_zero_scaling = true
}
env = GDK_SCALE,1.5
env = QT_SCALE_FACTOR,1.5
env = ELM_SCALE,1.5
env = XCURSOR_SIZE,24
env = XCURSOR_THEME,Sunity-cursors

env = TERM,foot
env = TERMINAL,foot

input {
    follow_mouse = 1
    kb_options=ctrl:nocaps
}

general {
    gaps_in = 8
    gaps_out = 15
    border_size = 2
    col.active_border = rgb(cdd6f4)
    col.inactive_border = rgb(11111b)
    layout = master
}

decoration {
  rounding = 5
}

animations {
    enabled = yes
    #easeOutExpo
    bezier = myBezier, 0.22, 1, 0.36, 1

    animation = windows, 1, 7, myBezier, slide
    animation = windowsOut, 1, 7, myBezier, slide
    animation = border, 1, 7, myBezier
    animation = fade, 1, 1, myBezier
    animation = fadeDim, 0
    animation = workspaces, 1, 5, default
    animation = specialWorkspace, 1, 5, default, slidefadevert 50%
}

master {
}

misc {
  force_default_wallpaper = 0
  vrr = 1
  allow_session_lock_restore = true
}

workspace=1,monitor:DP-2,default:true,persistent:true
workspace=2,monitor:DP-3,default:true,persistent:true
workspace=3,monitor:DP-3,default:true,persistent:true
workspace=special, gapsin:70, gapsout:120, on-created-empty:foot
windowrule = float, Rofi
windowrule = noborder, Rofi
windowrule = workspace 3 silent, ^(steam)$
windowrule = workspace 3 silent, ^(discord)$
windowrule = fullscreen,title:^(Steam Big Picture Mode)$
windowrule = tile,title:^(Old School RuneScape)$

$mainMod = SUPER

# keybind for Master layout
bind = SUPER_SHIFT, SPACE, layoutmsg, orientationnext
bind = $mainMod, comma, layoutmsg, addmaster
bind = $mainMod, period, layoutmsg, removemaster
bind = $mainMod, SPACE, layoutmsg, swapwithmaster

bind = $mainMod, RETURN, exec, foot
bind = $mainMod SHIFT, C, killactive
bind = $mainMod SHIFT, Q, exit,
bind = $mainMod, R, exec, sh $HOME/.config/rofi/bin/launcher
bind = $mainMod SHIFT, R, exec, sh $HOME/.config/rofi/bin/runner
bind = $mainMod, P, exec, sh $HOME/.config/rofi/bin/powermenu
bind = $mainMod, V, togglefloating,
bind = $mainMod, F, fullscreen
bind = $mainMod, W, exec, pkill -SIGUSR1 '^waybar$'
bind = $mainMod, C, exec, cliphist list | sh $HOME/.config/rofi/bin/clipboard | cliphist decode | wl-copy

# volume control
bind = $mainMod, MINUS, exec, amixer sset Master 5%-;
bind = $mainMod, EQUAL, exec, amixer sset Master 5%+;

# screenshot
bind = $mainMod, A, exec, shotname=$(date '+%Y-%m-%d-%H:%M:%S').png && grim ~/Pictures/Screenshots/$shotname && dunstify -u low --replace=699 "Screenshot ${shotname} Saved."
bind = $mainMod, S, exec, shotname=$(date '+%Y-%m-%d-%H:%M:%S').png && grim -o "$(hyprctl activeworkspace | grep -m1 "DP-" | cut -d' ' -f7 | sed s/://g)" ~/Pictures/Screenshots/$shotname && dunstify -u low --replace=699 "Screenshot ${shotname} Saved."
bind = $mainMod SHIFT, S, exec, shotname=$(date '+%Y-%m-%d-%H:%M:%S').png && grim -g "$(slurp)" ~/Pictures/Screenshots/$shotname && dunstify -u low --replace=699 "Screenshot ${shotname} Saved."

bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

#vim bindings for move focus
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d

bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, Z, togglespecialworkspace

bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, Z, movetoworkspace, special

bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d

#vim bindings for move window
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d

exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

How to reproduce
Most easily reproduce with 2 windows in master/slave layout -- in my case, Firefox as master and foot as slave. Do something in the master window like play a video, change tabs, etc.
Crash reports, logs, images, videos
hyprland.log

https://github.com/hyprwm/Hyprland/assets/7462622/6da60d73-5fde-4b0b-b21c-48da5dbcf9d4

latest commit should the problem

@imxyy1soope1 it's still persistent--that's why I opened this issue since the original issue was closed out.

if you float a window with blur, does the issue go away?

@vaxerski yep that fixes it if i do that

What does floating a window with blur mean exactly? I have the same issue and it is driving me insane!

@BendTheKn33 floating it instead of tiling the window and blur meaning the blur window effect

Thanks, that's what I thought but when I for example toggle a terminal window, which has blur, to float the issue remains. Yes there is less flicker but still it's clearly there and annoying.
Guess I'll wait for the next update and use another WM for the time being.

@BendTheKn33 for me the last usable commit is e40e486f61f2643578b9977b86f408799dbc75fd, so you may try rolling back to that for time being unless there are things in later commits you absolutely need. (Technically, 802ab58f8a129b42d61ec13898fd978e0920f7d8 doesn't have the issue, but it does have the black cursor issue / resolution issue)

you're saying 802ab58 doesn't have the issue? Can you bisect it then after that commit?

@vaxerski Correct--https://github.com/hyprwm/Hyprland/commit/aedcade68dd0615fd919a7249633a554d0accd81 is where it appears

roight. That doesn't help. :/

can any one of you add a glFlush() as a first thing in beginRender()?

@vaxerski doesn't seem to make any difference

:(

patch.txt
?

renamed cuz it's not limited to nv

@vaxerski no dice

Didn't work for me either.

:(

I assume wlroots with nvidia patches + sway-git does not exhibit this issue?

what about d2c3b23ace745d3f79926c71d4cb3c481a394841

hyprlandCrashReport135341.txt
@vaxerski it goes poopy now

see #3998 already fixed in head

@vaxerski that seems to have fixed it!!

the crash or the artifacts?

oke, great, closing then :)


text:
[REQ] Fade out option

Current Behavior
On authentication, the onscreen graphics are immediately killed.
Wanted Behavior
Have an option in the config for the graphics to fade out like how they fade in before the graphics are killed.

#60

source: gharchive/issue

authors: BowlBird vaxerski

repo: hyprwm/hyprlock

license_type: permissive

license_source: github-api


text:
Stock doesn't decrease after selling one variation of a variable product

Hi there and thanks for your plugin !
Here is the description of an issue I'm experiencing :

Can you reproduce this issue on default Wordpress theme (eg Storefront)?
Yes.
Can you reproduce this issue when all other plugins are disabled except WooCommerce, Polylang and Hyyan WooCommerce Polylang Integration?
Yes.
What product versions and settings are you using when this issue occurs?

PHP: 5.6.30
WordPress: 4.7.4
WooCommerce: 3.0.6
Polylang: 2.13
Hyyan WooCommerce Polylang Integration: 0.29.1
Browser: Chrome (58.0.3029.96)

Steps to Reproduce

Check the stock in a variable product
Go to the variable product in shop
Buy the variable product
Check the stock in variable product which didn't decrease

What I Expected
I expected the stock to decrease itself from 1 item when the user buy 1 item.
What Happened Instead
The stock didn't decrease.

Hey @Wiloud  , please note the version 0.29.1 doesn't work with WooCommerce: 3.0.6 , try the to download the plugin from the master branch  , it contians the latest updates to support WooCommerce: 3.0.6.
The new version will be released soon in the wordpress repo

Hey @hyyan , thanks a lot for this quick answer.
It worked !
Best !
Wil

authors: Wiloud hyyan

repo: hyyan/woo-poly-integration

license: mit

license_source: bigquery


text:
Found bugs in inference_img.py

inference_img.py - line 99
with bugs:
res.append(model.inference(img0, img1, (i+1) * 1. / (n+1), args.scale))

fixed:
img_list.append(model.inference(img0, img1, (i+1) / n))

There's no res variable, so I assumed it should be img_list
Formula was incorrect, resulting in a 0.333 ratio instead of 0.5 for x2 interpolation
There's no args.scale argument, so I removed it, but you can add it in the list of arguments to keep it

Thank you! Modified it.

Also, it seems like at line 70, it's not sending the ratio to model.inference(), resulting in a 0.5 ratio every time, even if another was provided. But I'm not 100% sure. My fix:
img_list = [img0, model.inference(img0, img1, args.ratio), img1]

Hey @hzwer - I wrote another fix above, but it seems you didn't see it. I don't know GitHub well. Sorry.

@yaroslav-semeniuk Thank you so much for your feedback!

Hey @hzwer - I wrote another fix above, but it seems you didn't see it. I don't know GitHub well. Sorry.

You can try to fork the project to your own branch, fix it, and pull your branch as a pull request.

authors: hzwer oblessnoob yaroslav-semeniuk

repo: hzwer/Practical-RIFE

license: MIT


text:
纯色背景或天空位置的马赛克问题

请问一下作者，有出现过在天空位置出现马赛克的现象么，该如何解决？是否是warp的问题（已训练70Epoch）

建议改用 lpips 训练，看看会不会好一些

可以试试最新的pytorch1.9

authors: JasonSheng-atp NEFUJoeyChen hzwer


text:
README編集

READMEを編集
project cardのlink追加

filename等変更


text:
Fix small documentation bugs

Just fixed a few broken links (npm is case sensitive and postProcessor gives you 404). Maybe it'd be a good idea to change the name of this repo to lower case too :)
There was a small mistake with the name of the overloadTranslationOptionHandler method
One more thing, bower installation doesn't work yet so I left it as is in case they support case sensitive names.

bower should now be registered...missed that install from repo seems not to work....so will need to register all the new stuff on bower.
renamed the function: overloadTranslationOptionHandler: sprintf.overloadTranslationOptionHandler so it matches with i18next
thank you for the help

source: gharchive/pull-request


text:
Android Oreo Build Error

SystemUI.zip
I've decompiled the systemui.apk on Android Oreo from the 6p. I've edited a few XML's. Upon building I get this error. If I decompile the apk and build it as is I still get the error
Information

Apktool Version (2.2.4) -
Operating System (Windows) -
APK From? (Stock Oreo system.img) -

Stacktrace/Logcat
W: ERROR: 9-patch image C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUI.apk\res\drawable-xxxhdpi\pip_dismiss_scrim.9.png malformed.
W:        No marked region found along edge.
W:        Found along left edge.
W: ERROR: Failure processing PNG image C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUI.apk\res\drawable-xxxhdpi\pip_dismiss_scrim.9.png
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\KRISY~1.DES\AppData\Local\Temp\brut_util_Jar_3948520725014907572.tmp, p, --forced-package-id, 127, --min-sdk-version, 26, --target-sdk-version, 26, --version-code, 26, --version-name, 8.0.0, --no-version-vectors, -F, C:\Users\KRISY~1.DES\AppData\Local\Temp\APKTOOL2731525356834830561.tmp, -0, arsc, -0, arsc, -I, C:\Users\krisy.DESKTOP-3EFRBLR\AppData\Local\apktool\framework\1.apk, -S, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUI.apk\res, -M, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUI.apk\AndroidManifest.xml]
	at brut.androlib.Androlib.buildResourcesFull(Androlib.java:496)
	at brut.androlib.Androlib.buildResources(Androlib.java:430)
	at brut.androlib.Androlib.build(Androlib.java:329)
	at brut.androlib.Androlib.build(Androlib.java:267)
	at brut.apktool.Main.cmdBuild(Main.java:230)
	at brut.apktool.Main.main(Main.java:83)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\KRISY~1.DES\AppData\Local\Temp\brut_util_Jar_3948520725014907572.tmp, p, --forced-package-id, 127, --min-sdk-version, 26, --target-sdk-version, 26, --version-code, 26, --version-name, 8.0.0, --no-version-vectors, -F, C:\Users\KRISY~1.DES\AppData\Local\Temp\APKTOOL2731525356834830561.tmp, -0, arsc, -0, arsc, -I, C:\Users\krisy.DESKTOP-3EFRBLR\AppData\Local\apktool\framework\1.apk, -S, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUI.apk\res, -M, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUI.apk\AndroidManifest.xml]
	at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:441)
	at brut.androlib.Androlib.buildResourcesFull(Androlib.java:482)
	... 5 more
Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\KRISY~1.DES\AppData\Local\Temp\brut_util_Jar_3948520725014907572.tmp, p, --forced-package-id, 127, --min-sdk-version, 26, --target-sdk-version, 26, --version-code, 26, --version-name, 8.0.0, --no-version-vectors, -F, C:\Users\KRISY~1.DES\AppData\Local\Temp\APKTOOL2731525356834830561.tmp, -0, arsc, -0, arsc, -I, C:\Users\krisy.DESKTOP-3EFRBLR\AppData\Local\apktool\framework\1.apk, -S, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUI.apk\res, -M, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUI.apk\AndroidManifest.xml]
	at brut.util.OS.exec(OS.java:95)
	at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:435)
	... 6 more
A subdirectory or file modified-system-apk-files-here already exists.
W: ERROR: 9-patch image C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUIGoogle.apk\res\drawable-xxxhdpi\pip_dismiss_scrim.9.png malformed.
W:        No marked region found along edge.
W:        Found along left edge.
W: ERROR: Failure processing PNG image C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUIGoogle.apk\res\drawable-xxxhdpi\pip_dismiss_scrim.9.png
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\KRISY~1.DES\AppData\Local\Temp\brut_util_Jar_7543208047023060219.tmp, p, --forced-package-id, 127, --min-sdk-version, 26, --target-sdk-version, 26, --version-code, 26, --version-name, 8.0.0, --no-version-vectors, -F, C:\Users\KRISY~1.DES\AppData\Local\Temp\APKTOOL4037231958546700424.tmp, -0, arsc, -0, arsc, -I, C:\Users\krisy.DESKTOP-3EFRBLR\AppData\Local\apktool\framework\1.apk, -S, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUIGoogle.apk\res, -M, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUIGoogle.apk\AndroidManifest.xml]
	at brut.androlib.Androlib.buildResourcesFull(Androlib.java:496)
	at brut.androlib.Androlib.buildResources(Androlib.java:430)
	at brut.androlib.Androlib.build(Androlib.java:329)
	at brut.androlib.Androlib.build(Androlib.java:267)
	at brut.apktool.Main.cmdBuild(Main.java:230)
	at brut.apktool.Main.main(Main.java:83)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\KRISY~1.DES\AppData\Local\Temp\brut_util_Jar_7543208047023060219.tmp, p, --forced-package-id, 127, --min-sdk-version, 26, --target-sdk-version, 26, --version-code, 26, --version-name, 8.0.0, --no-version-vectors, -F, C:\Users\KRISY~1.DES\AppData\Local\Temp\APKTOOL4037231958546700424.tmp, -0, arsc, -0, arsc, -I, C:\Users\krisy.DESKTOP-3EFRBLR\AppData\Local\apktool\framework\1.apk, -S, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUIGoogle.apk\res, -M, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUIGoogle.apk\AndroidManifest.xml]
	at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:441)
	at brut.androlib.Androlib.buildResourcesFull(Androlib.java:482)
	... 5 more
Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\KRISY~1.DES\AppData\Local\Temp\brut_util_Jar_7543208047023060219.tmp, p, --forced-package-id, 127, --min-sdk-version, 26, --target-sdk-version, 26, --version-code, 26, --version-name, 8.0.0, --no-version-vectors, -F, C:\Users\KRISY~1.DES\AppData\Local\Temp\APKTOOL4037231958546700424.tmp, -0, arsc, -0, arsc, -I, C:\Users\krisy.DESKTOP-3EFRBLR\AppData\Local\apktool\framework\1.apk, -S, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUIGoogle.apk\res, -M, C:\Users\krisy.DESKTOP-3EFRBLR\Desktop\APK-Multi-Tool-master\APK-Multi-Tool-master\APK-Multi-Tool-master\projects\SystemUIGoogle.apk\AndroidManifest.xml]
	at brut.util.OS.exec(OS.java:95)
	at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:435)
	... 6 more

Steps to Reproduce

apktool b systemui

Frameworks
If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files
(.apks that live in /system/framework or /system/priv-app)
APK
If this APK can be freely shared, please upload/attach a link to it.
Questions to ask before submission

Have you tried apktool d, apktool b without changing anything? Yes
If you are trying to install a modified apk, did you resign it? N/A
Are you using the latest apktool version? Yes

Hmm. Seems to be a 9patch issue more so than related to Oreo. Recent image tickets:
https://github.com/iBotPeaches/Apktool/issues/1559
https://github.com/iBotPeaches/Apktool/issues/1522
Without the apk to investigate the 9patch image directly, there is not much I can do here :/

I attached the apk in a zip on the original post. #1522 seems to be a very similar issue

Hai m trying to recompile systemUI.apk, This error is comming,,,
Any help,
System:- Windows 10
Apktool Version:- apktool_2.2.4
Android:- Oreo
Recompile:- command:- java -jar apktool.jar b SystemUI -c
Error:-
I: Using Apktool 2.2.4
I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
W: ERROR: 9-patch image C:\Users\subin\Desktop\My project\Devices\Osprey\Oreo\Osprey\SystemUI\res\drawable-xhdpi\pip_dismiss_scrim.9.png malformed.
W:        No marked region found along edge.
W:        Found along left edge.
W: ERROR: Failure processing PNG image C:\Users\subin\Desktop\My project\Devices\Osprey\Oreo\Osprey\SystemUI\res\drawable-xhdpi\pip_dismiss_scrim.9.png
Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\subin\AppData\Local\Temp\brut_util_Jar_1834093262529986261.tmp, p, --forced-package-id, 127, --min-sdk-version, 26, --target-sdk-version, 26, --version-code, 26, --version-name, 8.0.0, --no-version-vectors, -F, C:\Users\subin\AppData\Local\Temp\APKTOOL1957412541163737414.tmp, -0, arsc, -0, arsc, -I, C:\Users\subin\AppData\Local\apktool\framework\1.apk, -S, C:\Users\subin\Desktop\My project\Devices\Osprey\Oreo\Osprey\SystemUI\res, -M, C:\Users\subin\Desktop\My project\Devices\Osprey\Oreo\Osprey\SystemUI\AndroidManifest.xml]
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:496)
at brut.androlib.Androlib.buildResources(Androlib.java:430)
at brut.androlib.Androlib.build(Androlib.java:329)
at brut.androlib.Androlib.build(Androlib.java:267)
at brut.apktool.Main.cmdBuild(Main.java:230)
at brut.apktool.Main.main(Main.java:83)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\subin\AppData\Local\Temp\brut_util_Jar_1834093262529986261.tmp, p, --forced-package-id, 127, --min-sdk-version, 26, --target-sdk-version, 26, --version-code, 26, --version-name, 8.0.0, --no-version-vectors, -F, C:\Users\subin\AppData\Local\Temp\APKTOOL1957412541163737414.tmp, -0, arsc, -0, arsc, -I, C:\Users\subin\AppData\Local\apktool\framework\1.apk, -S, C:\Users\subin\Desktop\My project\Devices\Osprey\Oreo\Osprey\SystemUI\res, -M, C:\Users\subin\Desktop\My project\Devices\Osprey\Oreo\Osprey\SystemUI\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:441)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:482)
... 5 more
Caused by: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\subin\AppData\Local\Temp\brut_util_Jar_1834093262529986261.tmp, p, --forced-package-id, 127, --min-sdk-version, 26, --target-sdk-version, 26, --version-code, 26, --version-name, 8.0.0, --no-version-vectors, -F, C:\Users\subin\AppData\Local\Temp\APKTOOL1957412541163737414.tmp, -0, arsc, -0, arsc, -I, C:\Users\subin\AppData\Local\apktool\framework\1.apk, -S, C:\Users\subin\Desktop\My project\Devices\Osprey\Oreo\Osprey\SystemUI\res, -M, C:\Users\subin\Desktop\My project\Devices\Osprey\Oreo\Osprey\SystemUI\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:95)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:435)
... 6 more

Confirmed
W: ERROR: 9-patch image /Users/connortumbleson/Desktop/Apktool/Bugs/Bug1608/SystemUI/res/drawable-xxxhdpi/pip_dismiss_scrim.9.png malformed.
W:        No marked region found along edge.
W:        Found along left edge.
W: ERROR: Failure processing PNG image /Users/connortumbleson/Desktop/Apktool/Bugs/Bug1608/SystemUI/res/drawable-xxxhdpi/pip_dismiss_scrim.9.png

Confirmed duplicate of #1522. All about this stupid malformed "pip_dismiss_scrim.9.png" image.
Future details will be in #1522 . Thanks for the report.

i have this another error and don't have idea why have this...
I: Using Apktool 2.3.4
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
S: WARNING: Could not write to (C:\Users\rafy2\AppData\Local\apktool\framework), using C:\Users\rafy2\AppData\Local\Temp\ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
W: ERROR: 9-patch image C:\Users\rafy2\Desktop\Apktool_By_Xianos\SystemUI\res\drawable-xxhdpi\pip_dismiss_scrim.9.png malformed.
W:        No marked region found along edge.
W:        Found along left edge.
W: ERROR: Failure processing PNG image C:\Users\rafy2\Desktop\Apktool_By_Xianos\SystemUI\res\drawable-xxhdpi\pip_dismiss_scrim.9.png
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\rafy2\AppData\Local\Temp\brut_util_Jar_4109523728293022626.tmp, p, --forced-package-id, 127, --min-sdk-version, 27, --target-sdk-version, 27, --version-code, 20171030, --version-name, 8.1.0, --no-version-vectors, -F, C:\Users\rafy2\AppData\Local\Temp\APKTOOL3236394871236666726.tmp, -0, arsc, -0, webp, -0, res/drawable-ldrtl-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png, -0, res/drawable-mdpi-v4/ic_call_lock_normal.9.png, -0, res/drawable-mdpi-v4/ic_call_lock_pressed.9.png, -0, res/drawable-mdpi-v4/ic_email_lock_normal.9.png, -0, res/drawable-mdpi-v4/ic_email_lock_pressed.9.png, -0, png, -0, res/drawable-xhdpi-v4/ic_biometric_small_icon_bg.9.png, -0, res/drawable-xhdpi-v4/lb_card_shadow_focused.9.png, -0, res/drawable-xhdpi-v4/lb_card_shadow_normal.9.png, -0, res/drawable-xxhdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png, -0, res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png, -0, res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png, -0, res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png, -0, res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png, -0, res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png, -0, res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png, -0, res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png, -0, res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png, -0, res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png, -0, res/drawable-xxhdpi-v4/abc_scrubber_primary_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_scrubber_track_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png, -0, res/drawable-xxhdpi-v4/biometric_toast_progress_bg.9.png, -0, res/drawable-xxhdpi-v4/biometric_toast_result_bg.9.png, -0, res/drawable-xxhdpi-v4/fmm_btn_k.9.png, -0, res/drawable-xxhdpi-v4/fmm_btn_w.9.png, -0, res/drawable-xxhdpi-v4/ic_notification_overlay.9.png, -0, jpg, -0, res/drawable-xxhdpi-v4/lb_action_bg_focused.9.png, -0, res/drawable-xxhdpi-v4/lb_in_app_search_bg.9.png, -0, res/drawable-xxhdpi-v4/lb_in_app_search_shadow_focused.9.png, -0, res/drawable-xxhdpi-v4/lb_in_app_search_shadow_normal.9.png, -0, res/drawable-xxhdpi-v4/nav_background.9.png, -0, res/drawable-xxhdpi-v4/pip_dismiss_scrim.9.png, -0, res/drawable-xxhdpi-v4/recents_lower_gradient.9.png, -0, res/drawable-xxhdpi-v4/recents_status_gradient.9.png, -0, res/drawable-xxhdpi-v4/recents_task_shadow.9.png, -0, res/drawable-xxhdpi-v4/screenshot_panel.9.png, -0, res/drawable-xxhdpi-v4/search_bg_transparent.9.png, -0, res/drawable-xxhdpi-v4/status_background.9.png, -0, res/drawable/bubble_03_l_bottom.9.png, -0, res/drawable/bubble_03_left.9.png, -0, res/drawable/bubble_03_right.9.png, -0, res/drawable/bubble_04_left.9.png, -0, res/drawable/bubble_04_right.9.png, -0, res/drawable/bubble_bottom_arrow_left.9.png, -0, res/drawable/bubble_bottom_arrow_right.9.png, -0, res/drawable/bubble_bottom_r_arrow_left.9.png, -0, res/drawable/bubble_bottom_r_arrow_right.9.png, -0, res/drawable/bubble_left_arrow_bottom.9.png, -0, res/drawable/bubble_left_arrow_top.9.png, -0, res/drawable/bubble_line_03_left.9.png, -0, res/drawable/bubble_line_03_right.9.png, -0, res/drawable/bubble_line_04_left.9.png, -0, res/drawable/bubble_line_04_right.9.png, -0, res/drawable/bubble_line_bottom_arrow_left.9.png, -0, res/drawable/bubble_line_bottom_arrow_right.9.png, -0, res/drawable/bubble_line_bottom_r_arrow_left.9.png, -0, res/drawable/bubble_line_bottom_r_arrow_right.9.png, -0, res/drawable/bubble_line_left_arrow_bottom.9.png, -0, res/drawable/bubble_line_left_arrow_top.9.png, -0, res/drawable/bubble_line_right_arrow_bottom.9.png, -0, res/drawable/bubble_line_right_arrow_top.9.png, -0, res/drawable/bubble_line_top_arrow_left.9.png, -0, res/drawable/bubble_line_top_arrow_right.9.png, -0, res/drawable/bubble_line_top_r_arrow_left.9.png, -0, res/drawable/bubble_line_top_r_arrow_right.9.png, -0, res/drawable/bubble_right_arrow_bottom.9.png, -0, res/drawable/bubble_right_arrow_top.9.png, -0, res/drawable/bubble_top_arrow_left.9.png, -0, res/drawable/bubble_top_arrow_right.9.png, -0, res/drawable/bubble_top_r_arrow_left.9.png, -0, res/drawable/bubble_top_r_arrow_right.9.png, -0, res/drawable/focused_bg.9.png, -0, res/drawable/homescreen_badge_bg.9.png, -0, res/drawable/homescreen_badge_multiselect_bg.9.png, -0, res/drawable/knox_scrollbar.9.png, -0, res/drawable/tw_scrollbar_mtrl.9.png, -0, ogg, -0, arsc, -I, C:\Users\rafy2\AppData\Local\Temp\1.apk, -S, C:\Users\rafy2\Desktop\Apktool_By_Xianos\SystemUI\res, -M, C:\Users\rafy2\Desktop\Apktool_By_Xianos\SystemUI\AndroidManifest.xml]

authors: KrisYarno ROM-PacMe Subinsmani iBotPeaches

repo: iBotPeaches/Apktool


text:
🛑 Game 04 - Tsuki is down

In 8e88549, Game 04 - Tsuki (https://game04.idrunk.fr) was down:

HTTP code: 502
Response time: 431 ms

Resolved: Game 04 - Tsuki is back up in 416b6f7 after 10 minutes.


text:
Support linting of source code

added the ability to scan source code files and apply rules

added source-checker Rule for declarative rules

introduced the idea of an intermediate representation object

defines its own type, as each representation can be different, and its source path so that it is self-documenting
multiple parsers can parse the same file, each returning a different intermediate representation. eg. HTML files can be parsed by an HTML parser, a Javascript parser, and a CSS parser
a single parser can produce multiple intermediate representations if it likes, so that the result of parsing by one more parsers is an array of intermediate representations
rules are specific to an intermediate representation type and are only applied to the representations that they know how to parse

pass in an API object for plugins to call

only call in there is currently getLogger to get the lint tool's logger

fixed the plugin loader to be able to load plugins written in ESM.

Currently, node cannot load them from a directory, so you have to load them from the main file instead.

moved more functionality into the Project class so that later after more updates, we can offer linting as a library as well as a command-line tool

Checks will fail until the i18nlint-common library is approved and published to npm

Okay i18nlint-common is published, and this is updated and ready for review. (Yes, sorry it is so big.)


text:
Android MotoG9 discovery issue

Environment:
Sagemcom F@st 3865bProximus (b-box3)
Release: 8c.514A
GUI Version
7.4.2.0
The  Sagemcom  Client seems to have issues while discovering my Androids devices.
After further investigation the issue seems triggered by the 'hostname' and device type values seen into the router. By default in the router you don't have a friendly name so not sure if your application is expecting a value because in the HA entity you are mapping the same friendly name value.
Workaround is: change the device type from 'Generic' to 'Mobile phone' and assign a friendly name then reload the application
Action Taken:

Added the Sagemcom client integration

Reloaded home Assistant

the client doesn't discover the Motorola G9 Android
Sagemcom F@st
192.168.1.1
12 devices and 12 entities

Tried to reload either the application or HA but no luck

Changed the Motorola device type and the friendly name in the router

Reloaded the client and issue is fixed

Apologies but i cannot share the logs somehow HA didn't print any logs even though i added the required lines in the configuration file.

Currently there not much is logged from the integration, thus you won't see a lot indeed.
Currently we use the following definition for the name, so that shouldn't be the issue. Are you familiar with Python and are you able to try if it works with the Python client directly? (https://github.com/iMicknl/python-sagemcom-api)
    @property
    def name(self):
        """Return name of the device."""
        return self.user_host_name or self.host_name

Ok i will give it a try by using the client.

@cingolo could you have a look if it works with the latest version? :)

Oki, I will run few tests later today
Inviato da Yahoo Mail su Android
Il ven, 9 apr, 2021 alle 14:57, Mick @.***> ha scritto:
@cingolo could you have a look if it works with the latest version? :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

authors: cingolo iMicknl

repo: iMicknl/ha-sagemcom-fast


text:
Open/Close Status indicator (percentage) inconsistency  - AwningValance (io:AwningValanceIOComponent)

[x ] I have read the Readme, including the Advanced section regarding debugging.

Describe the bug
percentage indicatory is not consistent overy the somfy products
To Reproduce
configure entity in entity card
Expected behavior
same status indicator in percentage for every somfy cover product
Screenshots

Environment (please complete the following information):

ha-tahoma version: 2020.6.4-15
Home Assistant version: core-2021.1.4
Platform: cover.volant

Device: (if your problem is related to a specific device)
pc

Model:
current_position: 0
ui_class: Awning
widget: AwningValance
controllable_name: 'io:AwningValanceIOComponent'
rssi_level: 32
'core:NameState': Volant
'core:PriorityLockTimerState': 0
'core:StatusState': available
'core:DiscreteRSSILevelState': low
'core:RSSILevelState': 32
'core:ClosureState': 0
'core:OpenClosedState': open
'core:Memorized1PositionState': 105
friendly_name: Volant
supported_features: 527
device_class: awning

Type: controllable_name: 'io:AwningValanceIOComponent'

Additional context
Add any other context about the problem here.

Thanks for reporting @inconsx. It seems that there is an issue in the latest version of ha-tahoma or changes have been made on the side of Somfy TaHoma...
We have had these issues in the past as well, however when we reverse the state, someone else will have issues with exactly the same device. We need to investigate more, will let you know when I do require more details.
Do you know the type (TaHoma vs Connexoon) of your hub and the firmware version of your hub? And just to double check, the status on tahomalink.com is correct?
(possible duplicate of #352 and #350)

Thanks for reporting @inconsx. It seems that there is an issue in the latest version of ha-tahoma or changes have been made on the side of Somfy TaHoma...
We have had these issues in the past as well, however when we reverse the state, someone else will have issues with exactly the same device. We need to investigate more, will let you know when I do require more details.
Do you know the type (TaHoma vs Connexoon) of your hub and the firmware version of your hub? And just to double check, the status on tahomalink.com is correct?
(possible duplicate of #352 and #350)

Hey
It's a Tahoma and the firmware is 2.18.
Status is correct.
Thanks and regards

Hey
It's a Tahoma and the firmware is 2.18.
Status is correct.
Thanks and regards

Could you give https://github.com/iMicknl/ha-tahoma/archive/fix/awning_valance.zip a try? Extract this file and place custom_components/tahoma in your custom_components folder. This should solve your issues.

Hi,
can we reopen this issue.
Volant is now 90 % open but is shown 10% open

Tahoma FW: 2.19
Home Assistant 2021.2.3
current_position: 12
rssi_level: 38
'core:NameState': Volant
'core:PriorityLockTimerState': 0
'core:StatusState': available
'core:DiscreteRSSILevelState': low
'core:RSSILevelState': 38
'core:ClosureState': 88
'core:OpenClosedState': open
'core:Memorized1PositionState': 105
friendly_name: Volant
supported_features: 527
device_class: awning

@inconsx which version of the TaHoma integration are you using?

@iMicknl
2.4.7

@inconsx this fix has been confirmed with others with the same device.. Perhaps there are even differences between the same devices.
Do all buttons work? (open / close / set position). I would like to understand if this is just a cosmetic issue or if this disables the functionality.

@iMicknl
every button is working, yes.
it's just inverted and it's the only entity which shows percentage indicator when closed (before 0% and now inverted 100%)

Hello,
I've got the same issue. It's been like since the start (about 1 year ago).
Beside the awning, all other Somfy equipment report the correct states in HA.
I went through several Tahoma firmwares and several Home Assistant releases, and no improvement as been seen.
Currently I'm on these releases :
Tahoma firmware : 2021.1.4-12
Home Assistant : docker 2021.4.3
HA Tahoma : 2.4.8
Below, on the screenshots, you can see the awning is reported to be open when it's actually closed (Tahoma on android or tahomalink.com show me the correct status). I can still use the HA Tahoma integration to open or close the awning, but I have to know that the numbers and status are incorrect.

@labr3ythank, I would like to see if I can tackle this issue this week. Is anyone willing to work with me via Discord to see if we can debug / fix this issue? Would be great to have this solved before the integration is added to core.
Join us on Discord (https://discord.gg/3Wpn6q9z or add iMick#1903, to discuss in more detail. Eventually the easiest would be if you are able to change your password temporarily and share your credentials privately, so I can have a quick look and see how to fix it :).

I could help with that. I'll try to join you later on discord after work. We can see how and when we can do some testing.

authors: iMicknl inconsx labr3y

repo: iMicknl/ha-tahoma


text:
checkpoint no page found

https://download.impersonator.org/iper_plus_plus_latest_checkpoints.zip no page found

@fpcarva have you find a different link?

@fpcarva have you find a different link?

https://github.com/iPERDance/iPERCore/blob/main/docs/install.md
scroll down to OneDrive 1  or  OneDrive 2

@Burtdoe can i use the OneDrive in the wget command?

authors: Burtdoe ProudFoxx42069 fpcarva

repo: iPERDance/iPERCore


text:
pause

hello i want to know how can i pause and resume download of file
so thanks

There are Pause and Unpause functions.

repo: iTaybb/pySmartDL

license: unlicense


text:
Adding in UITableViewCell

I’m adding LCBannerView in a UITableViewCell, it seems that it is adding this again and again as i’m seeing overlapped images after scrolling.
Any suggestions how can I fix this?

Sorry this is my fault... But I can't fix it now...
But I have some Advice, you could change some properties in .m file, like imageName, imageURLs... You could move those from .m file to .h file, and than, you should reset bannerView.imageName, bannerView.imageURLs... in UITableView's delegate method tableView:cellForRowAtIndexPath:, for example:
cell.bannerView.imageName = self.dataSourceArray[indexPath.row][@"imageName"];
cell.bannerView.imageURLs = self.dataSourceArray[indexPath.row][@"imageURLs"];

If I'm free, I will fix it like this way :)

Thanks. 👍
I’ll give it a try.

Hey, I had fix this bug a moment ago, you could run pod update to get the Latest release.
For more information you could see the README's Release Logs.

Thanks much appreciated.

authors: MVakas iTofu

repo: iTofu/LCBannerView


text:
feat: Add new Icon component

CSS: Added new iui-svg-icon class that takes an svg as a child. Allows changing size and fill using data-iui-icon-color and data-iui-icon-size attributes.
React: Added an Icon component, used like this:
<Icon><SvgCloseSmall /></Icon>
<Icon fill='informational'><SvgInfoCircular /></Icon>

Other notes:

I used the name iui-svg-icon to prevent conflicts with iui-icon that is already used in a bunch of components.
I kept backwards compatibility with the data-iui-icon-color attributes because those are already part of our released css.
I tried not to change the icon.scss file because it contains mixins that are used all over the project. I wanted to reuse the icon-sizes map but I was having issues because sass sees xl as string but 2xl as number. and changing the whole map to be explicitly strings would result in dozens of changes in other components, so I just duplicated the icon sizes map.

It's not ideal that our utils folder is a catch-all that is used to dump all our helper mixins and components. It is confusing to keep track of what's internal vs user facing, makes it hard to change things, and results in a bloated util.css file. We should improve this folder in the future.

Pending

[x] narrow down list of sizes (see comment)
[x] test with new svgs (after https://github.com/iTwin/iTwinUI-icons/pull/56)
[x] test with our components (example: passing <Icon> to <Button>)

I've changed the default size to medium because that is the most common use case. Users will need to opt into autoscaling with text using size='auto'.

so what do we do about this? https://github.com/iTwin/iTwinUI/pull/854#issuecomment-1372811544

I've also tested in some of our components like <IconButton> and it displays fine but the wrapping span ends up increasing in height in a little bit.

so what do we do about this? #854 (comment)

I've also tested in some of our components like <IconButton> and it displays fine but the wrapping span ends up increasing in height in a little bit.

Is it avoidable?

Is it avoidable?

I haven't been able to figure out why this is happening. need to investigate and play around a bit more. Maybe someone else can figure it out?

so what do we do about this? #854 (comment)

I've also tested in some of our components like <IconButton> and it displays fine but the wrapping span ends up increasing in height in a little bit.

Is it avoidable?

I haven't been able to figure out why this is happening. need to investigate and play around a bit more. Maybe someone else can figure it out?

should be fixed in bccf588. does that look good?

repo: iTwin/iTwinUI


text:
Implement normal mapping

Look at this Three.js tutorial about normal mapping: https://sbcode.net/threejs/normalmap/
Could we do something similar in the iTwin.js renderer?  This could be valuable when rendering terrain, etc. if the source data has a normal map for a mostly-flat surface.
Requires:

[x] Ability to define and use normal maps on frontend
[ ] Support for generating pattern map coords in shader (@MarcNeely)
[x] Ability to define normal maps in RenderMaterial elements (@pmconne)
[x] Ensure MicroStation connector includes normal maps in material definitions (@pmconne)
[x] Include normal map info in tiles (@pmconne)

Yes, we can do normal mapping. It would require WebGL 2 because max texture units, but that's no longer a problem except for iOS users who refuse to update to 15. IIRC the DGN converter already preserves normal maps (and bump, glow, etc maps) from MicroStation when converting materials.

Appears to be high priority.

(for one user).

@DStradley will look at relevant QV code.

@PeterJBassett We are looking at adding support for normal maps -- could you provide us any information or documentation on how the UVs are stored in the data passed in from FutureOn subsea models?

@PeterJBassett We are looking at adding support for normal maps -- could you provide us any information or documentation on how the UVs are stored in the data passed in from FutureOn subsea models?
cc @MarcNeely @pmconne

Hi @PeterJBassett Just checking in again -- we would like to implement normal mapping for FutureOn subsea models -- do you know what process you are following to create the UV coordinates from a FutureOn normal map?

Hello @MarcNeely - I apologise, I forgot to reply. Here is some information from a colleague.
So first the UV wrapping should be set to ClampToEdgeWrapping. Filter to Linear.
We use tangent space normal maps. Each pixel in the normal map is actually a normal encoded, where  R = X, G = Y and B = Z.
The encoding follow the usual :
normal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;

The code for genarting the UVs are quite simple, and I think it should be part of the exporter ?
const vertices = new Float32Array(this.resource._heightmapWidth * this.resource._heightmapHeight * 3)
const normals = new Float32Array(this.resource._heightmapWidth * this.resource._heightmapHeight * 3)
const uvs = new Float32Array(this.resource._heightmapWidth * this.resource._heightmapHeight * 2)

let offset = 0
let offset2 = 0
let offset3 = 0

for (let iy = 0; iy < gridY1; iy++) {
  const y = iy * segmentHeight - heightHalf
  for (let ix = 0; ix < gridX1; ix++) {
    const x = ix * segmentWidth - widthHalf

    vertices[offset3] = x
    vertices[offset3 + 1] = y
    vertices[offset3 + 2] = heights[offset]

    normals[offset3] = 0
    normals[offset3 + 1] = 0
    normals[offset3 + 2] = 1

    uvs[offset2] = ix / gridX
    uvs[offset2 + 1] = 1 - iy / gridY

    offset3 += 3
    offset2 += 2
    offset++
  }
}

@MarcNeely @DStradley @pmconne See above reply about UVs + normal maps.

@PeterJBassett
Thanks for the information.
A few more questions--
In the FutureOn example data we have, there is a pattern texture depicting the seabed being drawn in addition to the normal map texture.  Is it correct that this is displayed in addition to the normal map?
We also need to know where the UV coordinates for the pattern texture originate.  Do you use the same UV coordinates as the normal map texture?
If they are not the same UV coordinates, can they be derived from them using a scaling factor or some kind of transformation?
What is the wrapping mode for the pattern texture?
cc @MarcNeely @DStradley @pmconne

@MarcNeely @DStradley @pmconne
Here is some further info from my colleague.
So, this will get a bit hairy.
There is actually two way of rendering the user can chose from :
Simple color ( in this case, we just use the color defined in “seabedColor”. In this case we just display the seabed with the normal map on top. We usually scale a bit the normals so that it looks a bit better.
We use a texture, in this case the textures can be found inside the “public” assets path of the software. The “texture key” is defined in “seaBedTextureName”. We default to “muddyDiffuse” if this value is not set
  const filenamesToLoad = {
    rocksDiffuse: 'RockySeabed_dark_01_1024x1024.jpg',
    rocksLightDiffuse: 'RockySeabed_light_01_1024x1024.jpg',
    rocks2Diffuse: 'rocks2.jpg',
    sandsDiffuse: 'SandySeabed_dark_01_1024x1024.jpg',
    sandsLightDiffuse: 'SandySeabed_light_01_1024x1024.jpg',
    muddyDiffuse: 'MuddySeabed_dark_01_1024x1024.jpg',
    muddyLightDiffuse: 'MuddySeabed_light_01_1024x1024.jpg',
    desertDiffuse: 'DesertSand_01_1024x1024.jpg',
  }
  for (const key in filenamesToLoad) {
    const filename = filenamesToLoad[key]
    const texture = textureLoader.load('/assets/textures/seabed/' + filename, (texture) => {
      threeVisualizer.requestRender()
    })
    texture.wrapS = RepeatWrapping
    texture.wrapT = RepeatWrapping
    texture.encoding = sRGBEncoding
    this.seabedTextures[key] = texture
  }

So for example, using my local dev : if “ https://futureon-designer.lvh.me/assets/textures/seabed/RockySeabed_dark_01_1024x1024.jpg
If we use the texture, the shader is a bit particular as we try to tile it depending on the depth so that it does not look to bad. So basically we generate the UVs dynamically :
{
  shader.vertexShader =
    `
      //attribute vec4 homogeneousPosition;

      uniform vec2 uvOffsetCustom;
      //uniform mat4 modelViewProjectionMatrix;
      uniform float orthographicFakeDistance;

      varying vec2 vUvCustom;
      varying float vDepth;

    `
    +
    insertStringAfterSubstring('<fog_vertex>', shader.vertexShader, `
      vec2 modelPosition = (modelMatrix * vec4(position, 0.0)).xy; // 0.0 is used to ignore translation
      vUvCustom = uvOffsetCustom + modelPosition;
      vec4 viewPosition = modelViewMatrix * vec4(position, 1.0);

      if (isOrthographic) {
        vDepth = orthographicFakeDistance;
      } else {
        vDepth = -viewPosition.z;
      }

      //#if (HAS_PRECALCULATED_HOMOGENEOUS_POSITION == 1)
      //  gl_Position = homogeneousPosition;
      //#else

      //gl_Position = modelViewProjectionMatrix * vec4(position, 1.0);
      // WEIRD! The modelViewProjectionMatrix had more artifacts than in-shader "projectionMatrix * viewPosition"; flashing artifacts for the infinite seabed,
      // and sometimes weird clipping or something making the quad concave. Bug story for future reference: To fix infinite seabed flashing, I wrote code to update
      // the position attribute to be the frustum-to-infinite-seabed intersection. Still had flashing. So I did the homogeneous position calculation on CPU and
      // passed that directly in instead. That fixed it. Later, I looked at the water, and noticed that even though I don't do any special frustum intersection or
      // such (I just set a 1x1 quad's scale to be camera.far * 2), it didn't have any flashing artifacts. I tried doing "projectionMatrix * viewPosition" in
      // the shader instead of passing it as a uniform for the seabed material, to match the water material, and sure enough, that was what caused the flashing
      // for some reason. Not sure why, but perhaps the uniforms have less precision than the in-shader calculations here? Or perhaps a large number of uniforms
      // just messes things up without throwing an error? (Edit: I checked and .capabilities says we have 1024 uniforms available, so weird if it would mess up this way.)
      // Take note of this for the future. However, the frustum intersection still makes UVs precise on the seabed, so I will keep that. However, the homogeneous
      // position attribute doesn't seem like it's needed, hence I commented it out.

      gl_Position = projectionMatrix * viewPosition;

      //#endif

    `)
}

// Extend fragment shader
{
  shader.fragmentShader =
    `
      varying vec2 vUvCustom;
      varying float vDepth;
    `
    +
    replaceSubstring('#include <map_fragment>', shader.fragmentShader, `
      float logDepth = log2(vDepth);
      float repetitions = 3.0;
      vec4 texelColor = mix(
        texture2D(map, vUvCustom / clamp(pow(2.0, floor(logDepth)), float(MIN_TILE_SIZE), float(MAX_TILE_SIZE)) * repetitions),
        texture2D(map, vUvCustom / clamp(pow(2.0, floor(logDepth) + 1.0), float(MIN_TILE_SIZE), float(MAX_TILE_SIZE)) * repetitions),
        fract(logDepth)
      );
      diffuseColor *= texelColor;

    `)
}

Hi @PeterJBassett --
The texture mapping mode you describe above appears to be feasible to implement in iTwin.js as well as regular normal mapping.
Do you know the origin of this texture mapping technique and its name?  Is this something you would like to see implemented in iTwin.js?  (In addition to normal mapping).
cc @MarcNeely @DStradley @pmconne

Hello @markschlosseratbentley @MarcNeely @DStradley @pmconne
Apologise for the delay replying. There is no standard name for the texture mapping technique.
This is the reply from my colleague:
If you mean the way we keep the seabed detailed as we zoom in and out, it's a shader part i wrote, found in TerrainMaterial.js. Not sure if it has a name. It basically shaderized your old LOD mesh method, but with fading between the two closest levels, to avoid popping as you zoom.

In addition to the frontend code, we need normal maps transferred from the backend. We also need scale.

Still in progress.

@MarcNeely please let me know what I can help with.

Hello @markschlosseratbentley Thanks for your update, apologies for not replying sooner.
Can you provide any more info on how to use the normal mapping feature, eg. how to input the normal map image into iTwin.

@PeterJBassett supply a normal map when creating a RenderMaterialElement.

repo: iTwin/itwinjs-core


text:
React to UI code move

All UI code is about to be moved out of core into appui.
### Tasks
- [x] https://github.com/iTwin/presentation/issues/2
- [x] https://github.com/iTwin/presentation/issues/8
- [x] https://github.com/iTwin/presentation/issues/4
- [x] https://github.com/iTwin/presentation/issues/16
- [x] https://github.com/iTwin/presentation/issues/13
- [x] https://github.com/iTwin/presentation/issues/25
- [x] https://github.com/iTwin/presentation/issues/14
- [x] https://github.com/iTwin/presentation/issues/3
- [x] https://github.com/iTwin/presentation/issues/31
- [x] https://github.com/iTwin/presentation/issues/38
- [x] https://github.com/iTwin/presentation/issues/15
- [ ] https://github.com/iTwin/presentation/issues/40
- [ ] https://github.com/iTwin/presentation/issues/43
- [ ] https://github.com/iTwin/presentation/issues/42

All items done

repo: iTwin/presentation


text:
Is there a sane way to store tokens created by a service?

Is it possible to use store provided by an existing non-OAuth authentication service?
I'm trying to use Providers.Credentials to integrate with an existing backend services that issues JWTs, but I'm having a heck of a time figuring out how to make this work.
When I POST /auth/tokens with the credentials, the access and refresh tokens are handed back to me. I need to have these tokens available to me in the API layer so that I can add them to the request headers of subsequent requests, but it's not clear to me how to sanely store these for later access (storing them in a global  or singleton in a package feels side-effecty and generally "icky").
Here's what I have so far:
async function authorize({ username, password }) {
  const client = makeClient()

  try {
    const {
      data: {
        access,
        refresh,
      },
    } = await client.post('/auth/tokens', {
      email: username,
      password,
    })

    const { data: user } = await client.get('/users/me', {
      headers: {
        Authorization: makeAuthHeader(access),
      }
    })

    return user
  } catch (error) {
    console.error('ERROR: %o', error)
    return null
  }
}

Documentation feedback

[ ] Found the documentation helpful
[x] Found documentation but was incomplete
[ ] Could not find relevant documentation
[ ] Found the example project helpful
[x] Did not find the example project helpful

I've even dug through the source code a little to see if there was a way to "sneak" these tokens into the session, but I didn't see a clear path forward.

Hey thanks for the detail and for feedback on documentation.
I think I understand what you want to do and it makes sense. I actually had to check to see what would happen when I tried it because it's a reasonable expectation but I wasn't sure it was supported or not.
It turns out there is a bug with the credentials flow and user object isn't persisted when you sign in, but is supposed to be. You should be able to access the user object returned in the jwt() and signin() callbacks, but the user is coming though as a function rather than an object.
You can work around that by using a JWT callback option that takes care of that problem by calling the function:
  callback: {
    jwt: async (token) => {

      if (typeof token.user === 'function') {
        token.user = token.user()
      }

      console.log('JWT DEBUG', token)
      return Promise.resolve(token)
    },
  }

This is a legit bug and should be fixed.

@iaincollins Thanks, but the problem isn't that I can't get at the user object....the problem is that there's no easy way to  store the access and refresh tokens I get back from my server. After much tinkering around, here's what I currently have. As you can see from the code below, I basically had to pass the res object all the way down into my authorize function so that I could set a pair of cookies. If you  can think of a better solution, I'm all ears!
export default function handleRequest(req, res) {
  return nextAuth(req, res, makeConfig(req, res))
}

function makeConfig(req, res) {
  const authorize = makeAuthorizeFn(req, res)

  // redacted
}

export function makeAuthorizeFn(res) {
  return async function authorize({ username, password }) {
    const client = makeClient()
    try {
      const {
        data: {
          access,
          refresh,
        },
      } = await client.post('/auth/tokens', {
        email: username,
        password,
      })

      // This is a bit hacky, but at least it gets the tokens back
      // to the client.
      res.setHeader('Set-Cookie', [
        serialize('access', access, { path: '/' }),
        serialize('refresh', refresh, { path: '/' }),
      ])

      //  redacted
}

Oh sure! The idea is that you should be able to set them on the user object and for that to get persisted (securely) in the JWT.

One thing to note here is that when I tried to set anything other than { id, name, email, image } to the user object, it would not make it into
the session. I didn't dig far enough in the code to figure out why or where
the other keys were be weeded out.
On Wed, Jun 24, 2020 at 11:25 AM Iain Collins notifications@github.com
wrote:

Oh sure! The idea is that you should be able to set them on the user
object and for that to get persisted (securely) in the JWT.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/iaincollins/next-auth/issues/325#issuecomment-648989228,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACCS2MZFCSZ6BRRKDJGGFDRYJAKHANCNFSM4OG2QJ2A
.

If you add a property to the user object in this scenario, then it's persisted to the JSON Web Token (assuming you use the work around above until the bug is fixed - when it's fixed you won't need to touch the jwt callback).
The session callback can be used to decide what properties can be safely exposed / exported from the JWT to the client side session object, if that makes sense.

@iaincollins, while I did notice that the example provided in the documentation was setting the user as a function, I do not have that problem because I'm already resolving the authorize function with the user object...but you couldn't know  that because I redacted the code to keep the focus where it belongs. :-)
Here's the entirety of my makeAuthorizeFn higher-ordered function:
export function makeAuthorizeFn(res) {
  return async function authorize({ username, password }) {
    const client = makeClient()

    try {
      const {
        data: {
          access,
          refresh,
        },
      } = await client.post('/auth/tokens', {
        email: username,
        password,
      })

      // This is a bit hacky, but at least it gets the tokens back
      // to the client.
      res.setHeader('Set-Cookie', [
        serialize('access', access, { path: '/' }),
        serialize('refresh', refresh, { path: '/' }),
      ])

      const { data: user } = await client.get('/users/me', {
        headers: {
          Authorization: makeAuthHeader(access),
        }
      })

      // N.B.: Adding fields to the user object at this point does not work

      return user
    } catch (error) {
      console.error('ERROR: %o', error)
      return null
    }
  }
}

Just for grins and giggles, I tried adding user.foo = "hello, world" where I currently have the N.B. comment, but when the session is dumped, the foo datum is nowhere to be found:
{"user":{"name":"Dan Kreft","email":"dan@kreft.net","image":null},"expires":"2020-07-24T23:20:32.599Z"}

This is what I was referring to in my previous comment.
I cannot simply use the jwt callback, because that callback does not have access to the tokens that were returned to me by the service.

This is what your callbacks needs to look like:
callbacks: {
    jwt: async (token) => {
      if (typeof token.user === 'function') { token.user = token.user() } // Workaround required for bug
      return Promise.resolve(token)
    },
    session: async (session, token) => {
      // Copy properties from token contents to the client side session
      //
      // By default only 'safe' values like name, email and image which are
      // typically needed for presentation purposes (e.g. "you are logged in as…")
      // to avoid exposing sensitive information to the client inadvertently.
      session.user.data = token.user.data
      return Promise.resolve(session)
    }
}

The user object returned from the authorize callback is saved to the JWT (e.g. in token.user).
The session() callback controls what data is exposed from the JWT to the client session.

You shouldn't need the JWT callback, it's only used above because of a big with JWT and the Credentials Provider.

The bug related to this is now being tracked in #329

Note that async is not necessary (it actually causes eslint to complain) if you don't have an await in the function. I'll have another look at your proposed solution.

Okay, now I see what's going on here.  It's a little confusing the way it's laid out here because I never would have thought that the session() callback's second argument would be the thing returned by authorize().
At this point, though, I'm thinking that I'm probably going to stick with my current res.setHeader() solution because at least with the way I have it laid out now, my client doesn't have to worry about extracting the tokens from the session and figuring out where to put them (e.g. in cookies or in localStorage)...it only has to concern itself with pulling the tokens out of their respective cookies.
Thanks for your diligence...I feel more confident in using NextAuth knowing that you're so attentive. :-)

Note that async is not necessary (it actually causes eslint to complain)

The purpose of it whenever I give an example code is to make it clear the function is async and a promise is expected.
(Otherwise people then immediately ask "How can I do async calls?")

Okay, now I see what's going on here. It's a little confusing the way it's laid out here because I never would have thought that the session() callback's second argument would contain the thing returned by authorize().

To clarify, as per the docs it's always the contents of the JSON Web Token as the second argument to the session() callback. It is present if, and only if, JWT sessions are enabled. This is not always the same as what is returned by authorize() as what is saved to the JWT can be overridden in the jwt() callback.
For users who are using other configurations, other data will be stored in the JWT (e.g. a user object from a database and/or the profile response from an OAuth Provider).
The session() callback provides provide a way selectively expose things to the client securely, in a simple and uniform away that works for all providers and is almost certainly less code and more performant than other solutions.

my client doesn't have to worry about extracting the tokens from the session and figuring out where to put them (e.g. in cookies or in localStorage).

Any properties accessed via a session object are be automatically kept up to date, and kept in sync across tabs and windows, and are persisted across page navigation in a single page app so that people can avoid doing exactly this (which actually, you have done - you have put tem.
I'd recommend to anyone else reading this they use the session property, if nothing else it's much less code to maintain and makes it easier to avoid bugs.
To confirm for anyone reading this in future, this is all you need to do to add data to a session from if you return it in a user object from authorize():
callbacks: {
  session: (session, token) => {
    session.user.data = token.user.data
    return session
  }
}

If you do that, they will be there when you access the session object from the client.

@iaincollins I'm taking another look at using the session (I was ignorant of getSession()) and this looks promising, but I don't see a way to update data in the session after login. If I'm to store my tokens in the session, I need to be able to write to it after I refresh my access token. I've tried Googling for a solution, but to no avail. Is there something else I'm missing?

authors: dkreft iaincollins

repo: iaincollins/next-auth

license: ISC


text:
Download annotations from GUI as CSV

Similar to the image saving, it'd be nice to have a button to download the annotations table directly from the GUI.

links to download both the annotation and the dot file have been added to the interface

repo: ialbert/genescape-central


text:
Disable tooltips on mobile devices

Hi,
I'm trying to find a way to disable tooltips from being displayed when the viewport is smaller than 800px
Thanks

Hi,
you should probably use a condition like if ($(window).width() >= 800) { $(sel).tooltipster({...}); }.
You may also do this check in functionBefore and return false if the screen is false, in case you want to account for the case when the user can change the resolution of his screen over time.
It's also possible to use a simple media query on .tooltipster-base if you want to hide the tooltips (they will actually still run though, but will be invisible). But beware that it might cause memory leaks in case they're not auto-closing.

Okay thanks

authors: karlhudsonphillips louisameline

repo: iamceege/tooltipster


text:
Expose Input focus & blur event

Expose Input focus & blur event, so user can control the focus / blur event in a form

thanks for your help @waveo-wangxiao!

authors: iamstevendao waveo-wangxiao

repo: iamstevendao/vue-tel-input


text:
Error When Prompting Mistral/Mixtral Model from AWS Bedrock

Description:
I successfully cloned the repository from the main branch and tested the application with LLMs deployed on Azure using the OpenAI resource, and everything worked as expected. However, I encountered an issue when attempting to prompt a Mistral model hosted on AWS Bedrock.
Steps to Reproduce:

Cloned the repository from the main branch.
Created temporary credentials on AWS for accessing the AWS Bedrock.
Attempted to send prompts to the Mistral/Mixtral LLM models.
Received the following error message for both model types.

Expected Behavior:
I expected that the prompts would be successfully processed by the Mistral/Mixtral models without any errors.
Observed Behavior:
When attempting to send prompts, the application failed to collect responses and suggested re-running the prompt node. The specific error logged was:
Errors collecting responses. Re-run prompt node to retry.
Mistral Mixtral: "c.get is not a function"

Environment:
Operating System: Ubuntu 22.04 + docker

Thanks for this issue. @massi-ang is the point person for Bedrock integrations.
massi-ang
@massi-ang might you know what is going on?
c.get doesn't sound like any code in the ChainForge code base (there is no "get" function or "c.get" call). So, it sounds like this might actually be a bug on the Bedrock side with loading the model. Not sure.

Hi @ianarawjo, do you use the boto3 AWS client to query the Bedrock models? If not, I'm curious—why don't you use it? I've noticed it's more straightforward since you can just use regular API keys without needing a session key.

I didn’t write the Bedrock integration, @massi-ang did. He would have to comment here.

Hi, we use the boto3 client. The @mirai73/bedrock-fm library is just a wrapper around the boto3 client to provide the correct prompt formatting for the different models. The reason why we require temporary credentials and a session token via the UI is to safeguard you against the possibility of accidentally leaking long term credentials.
I'll need to look how allow to use just an AccessKeyId and SecretAccessKey when running locally, that is when using chainforge/app.py serve.

@bahamasbahamas regarding the issue you are facing, I tested the latest main commit and I could not reproduce the error. Does this happen with any flow and prompt or just specific configurations?

HI @bahamasbahamas. I reproduced this problem both on chainforge.ai/play site and when using chainforge serve from a local install. On the other hand I do not get this error when I clone the repo locally and build the react backend from chainforge/react-server with npm run build and then serve it via python chainforge/app.py serve. Similarly there is no error when serving the react app with other means, as you can see by accessing this url https://d1sozkr3w0qe91.cloudfront.net/.
@ianarawjo can you share how the react app is built so that I can get to the root cause of the problem?

There is no difference with how the react app is built —npm run build is what is done in all cases. The sole difference is just adding /play the HTML index page on the /play site. There are no other differences.

authors: bahamasbahamas ianarawjo massi-ang

repo: ianarawjo/ChainForge


text:
bugfix：error in node 0.12.7

for issues TypeError: Object.keys called on non-object #88
modify the order of condition.

Coverage remained the same at 93.592% when pulling 17a55be98fcc3d07f306aad58cfb8a7a55c8a473 on 81735595:master into 6971e27a577d165cde360ebed86a59dfc18ac55b on iarna:master.

Coverage remained the same at 93.592% when pulling 17a55be98fcc3d07f306aad58cfb8a7a55c8a473 on 81735595:master into 6971e27a577d165cde360ebed86a59dfc18ac55b on iarna:master.

Coverage remained the same at 93.592% when pulling 17a55be98fcc3d07f306aad58cfb8a7a55c8a473 on 81735595:master into 6971e27a577d165cde360ebed86a59dfc18ac55b on iarna:master.

Coverage remained the same at 93.592% when pulling 17a55be98fcc3d07f306aad58cfb8a7a55c8a473 on 81735595:master into 6971e27a577d165cde360ebed86a59dfc18ac55b on iarna:master.

An error in all versions of node, I expect. Thank you!

authors: 81735595 coveralls iarna

repo: iarna/gauge

license: isc


text:
error with installing pyfhel "ERROR: Could not build wheels for Pyfhel"

I have two issues @ibarrond
the first, I installed pyfhel 2.0.1, but when I tried to import, I got this error
ModuleNotFoundError: No module named 'pyfhel'
which leads me to the main issue that made me use pyfhel version 2.0.1
whenever I try to install the new versions using
pip install pyfhel==3.4.0
or
pip install pyfhel==3.4.1.
or even the plain pip install pyfhel
I got this error over and over again

I need this for my master's thesis. Please help as soon as possible.

Try with Pyfhel, capitalizing the first letter.
For the installation of a more recent version:

Try in a console with admin rights.
Otherwise install it in WSL.

Thank you for your replay
However, I have tried following your instructions, but unfortunately, it didn't work.
I even tried it on kali-linux system VMware version, but it didn't work either, showing the same error message. using sudo the superuser privileges

Closing, since the error was posted as images and not as text.

repo: ibarrond/Pyfhel


text:
[Feature request] Run ping only till the first success

[Feature request] Run ping only till the first success
Currently user can choose the number of pings to make. But in fact quite often 1 successful in enough to understand that the server is online. While 1 fail should not be enough because the problem can be with user's mobile connection, so additional attempts would be required.
Proposal: Add a new checkbox "Stop after the first successful" near the ping amount (3 by default) settings.

Thanks for the suggestion. I see the point but this cannot be done in the way it's currently implemented. Java/Android API does not provide a library for ICMP/ping. The app simply calls the system ping and parses the output for additional info, Success is decided by the the ping process return code (0=success). The ping count is the option "-c" for the ping command and it simply pings n times and does not stop prematurely. Of course I could do several pings with "-c 1" and aggregate everything by myself but I think it's to much effort for to little gain. The current behaviour also makes sense and I like it, so it would mean 2 different implementations and a switch.

Of course I could do several pings with "-c 1" and aggregate everything by myself but I think it's to much effort for to little gain.

In this case I would definitely do that, call it several times.
The current behavior is not making much sense to me. E.g. what should happend if user set 3 pings and got 2 success and 1 fail? Should the user be notified that server is down or up? To my opinion - it is up, but that means that all pings out of 3 were useless except the first that succeeded, which is exactly what I proposed.
Maybe I am missing some use case for the current behavior.

It's the "standard" behaviour of the ping utility. It reports overall success on at least one successful attempt. For me this makes the most sense. More pings on one try offer additional info, like average latency. However with the suggested way I can do whatever behaviour seems reasonable and I'm not fixed to ping behavior, so it's obviously better but a matter if it's worth the effort, since now it may do additonal pings that may not be necessary, depending on ones view on this, but do not hurt too much either. I'll think about it when I find the time for the pings. The time schedule feature will take a lot of time anyway. Maybe I'm in the mood to do other things between, but not now.

Release 1.5.0 does provide "stop on success" switch for ping and connect

authors: baack ibbaa

repo: ibbaa/keepitup


text:
Provide Diamond with --jobs, not "--processes"

Description
When investigating the inconsistent --processes tag, I realised that run_diamond.sh was not written in a robust way, and "processes" is not a good description of its function.
Specifically, in this command (pulled out the parts not relevant to parallelization):
ls ${DB_PATH}/nr*.dmnd | parallel -j ${PROCESSES}
diamond blastx --quiet -d ${DB_PATH}/nr.{%}.dmnd \
--threads ${THREADS} -o ${OUTPUT}.{%}.tsv

PROCESSES is not really "processes", it's the number of jobs we tell parallel to run at once
we use the {%} replacement string, which is the job number, to decide which database we use in --d... I think they way we've set this up we need to literally always be counting from 1-6. (which is what screen.py was doing, but not run_pipeline.sh). Based on some local testing of parallel, if we were running with only 2 processes, then the outputs would get (I think? not sure what diamond does with pre-existing output files) overwritten

I have changed this to set the number of jobs to run in parallel based on the threads and CPUs (unless a number is supplied) and made some other parts of run_diamond a bit more robust, then propagated those changes.
Issues:
Addresses #10, though we'll need to change the wiki once this is released
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected) (well, it's a breaking change to run_pipeline, but not to commec screen, which is the preferred interface)

Thanks for raising that, I hadn't caught the possible weird problem with integer division. I think (more or less by accident) this will be fine in this case, because GNU parallel interprets --jobs 0 as "run as many jobs in parallel as possible" according to the docs.
In the case where threads is 1, we aren't concerned about needing to manage the number of jobs because we're not multithreeading, so -j 0 --use-cpus-instead-of-cores is the behaviour you want.

repo: ibbis-screening/common-mechanism


text:
feature(editor): set route to in progress on edit, warn about unapproved routes when exporting

Checklist

[x] Appropriate branch selected (all PRs must first be merged to dev before they can be merged to master)
[x] Any modified or new methods or classes have helpful JSDoc and code is thoroughly commented
[x] The description lists all applicable issues this PR seeks to resolve
[x] The description lists any configuration setting(s) that differ from the default settings
[x] All tests and CI builds passing
[x] The description lists all relevant PRs included in this release (remove this if not merging to master)

Description
Two main changes:

When any part of a route gets edited, the progress gets set to In Progress.
In the Create Snapshot window, any in progress or pending routes will be displayed as a warning, since they will not be included in the published result.

The snapshot pane directly requests the list of routes from the backend, which requires a lock. Therefore, in the Editor Feed Source Panel, a lock is requested before opening the Snapshot pane. After closing, the lock is removed.

A few issues: Why are the tests failing? It looks like it is not related to my code.
Also, I'm having a type issue on line 78 in CreateSnapshotModal.js that shows up in VSCode.
"Cannot call fetchRouteEntities().then because property then is missing in  function [1].Flow(InferError)"

I think we finally got there in the end!

repo: ibi-group/datatools-ui


text:
Speed up feed source retrieval

Checklist

[x] Appropriate branch selected (all PRs must first be merged to dev before they can be merged to master)
[x] Any modified or new methods or classes have helpful JSDoc and code is thoroughly commented
[x] The description lists all applicable issues this PR seeks to resolve
[x] The description lists any configuration setting(s) that differ from the default settings
[ ] All tests and CI builds passing

Description
Companion front end PR for https://github.com/ibi-group/datatools-server/pull/529. This PR makes use of the new FeedSourceSummary endpoint on the front end to speed up the FeedSourceTable.

e2e tests, of course, will fail until the back end PR is merged

Backend is merged, tests should be passing!


text:
使用emoji的时候在yylabel 右边间歇很大，特别是最靠右的输入一个emoji 再输入的时候就会导致换行

断行是由系统的 CoreText 控制的。。
如果不介意英文单词被断行，那可以设置 lineBreakMode 为 char wrapping。

authors: ibireme liamscofield

repo: ibireme/YYText


text:
refactor: simplify, move frameworks, etc.

drop dagster (memory issue that needs investigation + drop orchestration complexiy)
add website
streamlit -> shiny
add a package/CLI
no more VM needed, just run in a GHA

generally a regression on the dashboard visualizations, but all the data is there

going to yolo merge this and go from there

repo: ibis-project/ibis-analytics


text:
Updated Notebook

Updated Notebook Pre-Trained Models
Updated Notebook Fine-Tune Models

@sahil11129 Table of contents still has a different format. Please let me or @Abhilasha-Mangal know if you are having trouble formatting it.

repo: ibm-build-lab/Watson-NLP


text:
Pass OpenJCEPlus Branch to the build scripts

Also add ability to override openjceplus branch at build launch

Test cases
00:00:21.655      "PUBLISH_NAME": "jdk-11.0.23.1.2+9_openj9-0.44.0-rc2",
...
00:00:46.663  WARNING: OpenJCEPlus Branch cannot be determined based on PUBLISH_NAME. Using default branch: semeru-java11

00:01:02.701      "PUBLISH_NAME": "jdk-11.0.23+9_openj9-0.44.0-rc2",
...
00:01:27.776  BUILD_CONFIG[OPENJCEPLUS_BRANCH]="semeru-java-11.0.23"

00:00:19.644      "PUBLISH_NAME": "jdk-11+9_openj9-0.44.0-rc2",
...
00:00:43.651  BUILD_CONFIG[OPENJCEPLUS_BRANCH]="semeru-java-11"

00:00:15.454      "PUBLISH_NAME": "jdk-11.0.23.1+9_openj9-0.44.0-rc2",
...
00:00:40.814  BUILD_CONFIG[OPENJCEPLUS_BRANCH]="semeru-java-11.0.23.1"

repo: ibmruntimes/ci-jenkins-pipelines


text:
🛑 Secret Site is down

In f874fa4, Secret Site ($SECRET_SITE) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Secret Site is back up in b814f28.

repo: icarephone/upptime


text:
Docs: add in the mailmerge scaffold & scripts used for MaDs & document their usage

Adds a new mailmerge directory with the scripts used the MaDs family allocation notification emails in 2024, alongside documentation as to how to use them.

@Gum-Joe could you include this folder in .dockerignore just cause we don't need it there?

@Gum-Joe could you include this folder in .dockerignore just cause we don't need it there?

Fixed in b0ab264b693e0b8f16d1304482dd528436d9a731 @cybercoder-naj

Updates applied, re-review requested

authors: Gum-Joe cybercoder-naj


text:
fix: sass-loader and less-loader can't be resolved

背景
@ice/pkg-plugin-docusaurus 使用社区的 npm 包 docusaurus-plugin-less 和 docusaurus-plugin-sass 分别解析 less 和 sass。但我们使用子进程启动 docusaurus 本地预览服务，并且指定了 cwd 是 rootDir：
https://github.com/ice-lab/icepkg/blob/bca916d4093eda6f21995f8cea514fec100bbcc4/packages/plugin-docusaurus/src/doc.mts#L41
导致对于以下代码在 require sass-loader 的时候没法 resolve 到（因为是从项目根目录 node_modules 开始向上目录开始找）
https://github.com/rlamana/docusaurus-plugin-sass/blob/d97f88c3e24fd16477eac6d8f56a2703425ece9a/docusaurus-plugin-sass.js#L31
然后会报这样的错误：

虽然已经提了 PR，但一直没有发版本：
https://github.com/rlamana/docusaurus-plugin-sass/pull/25
因此考虑把 sass 和 less 的 webpack 解析规则内置到 docusaurus 插件

revert this PR after https://github.com/rlamana/docusaurus-plugin-sass/pull/25 was accepted

repo: ice-lab/icepkg


text:
"Comparison method violates its general contract" when executing the example

Hi,
I tried to run the example on hadoop local mode(Ubuntu 16.04).
But there was an exeption:
Verify Overlap:    Exception in thread "main" java.io.IOException: Job failed!
Later I checked brush.details.log. It showed such message:
java.lang.IllegalArgumentException: Comparison method violates its general contract!     at java.util.TimSort.mergeHi(TimSort.java:868)     at java.util.TimSort.mergeAt(TimSort.java:485)     at java.util.TimSort.mergeCollapse(TimSort.java:410)     at java.util.TimSort.sort(TimSort.java:214)     at java.util.TimSort.sort(TimSort.java:173)     at java.util.Arrays.sort(Arrays.java:659)     at java.util.Collections.sort(Collections.java:217)     at Brush.VerifyOverlap$VerifyOverlapReducer.reduce(VerifyOverlap.java:252)     at Brush.VerifyOverlap$VerifyOverlapReducer.reduce(VerifyOverlap.java:1)     at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:519)     at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:420)     at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:260)
I'm not sure whether it was a hadoop configuration mistake or a java version issue.
But I've tried both java 7 and java 8 and got the same result.
Can you provide the software environment in which your experiments were run?

Same error here. Tested on ubuntu cluster. It used to work on earlier versions, maybe java 6?
uname -a

Linux clu04 3.2.0-120-generic #163-Ubuntu SMP Tue Dec 20 15:12:28 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
java -version

java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
hadoop version

Hadoop 2.6.0.2.2.4.2-2
Subversion git@github.com:hortonworks/hadoop.git -r 22a563ebe448969d07902aed869ac13c652b2872
Compiled by jenkins on 2015-03-31T19:40Z
Compiled with protoc 2.5.0
From source with checksum b3481c2cdbe2d181f2621331926e267
This command was run using /usr/hdp/2.2.4.2-2/hadoop/hadoop-common-2.6.0.2.2.4.2-2.jar
hadoop log:
Log Type: stderr

Log Upload Time: Fri Apr 21 20:47:23 +0300 2017

Log Length: 790

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/hadoop/yarn/local/filecache/14/mapreduce.tar.gz/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/hadoop/yarn/local/usercache/sbarberakis/appcache/application_1486050547626_0009/filecache/10/job.jar/job.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
log4j:WARN No appenders could be found for logger (org.apache.hadoop.ipc.Server).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Log Type: stdout

Log Upload Time: Fri Apr 21 20:47:23 +0300 2017

Log Length: 0

Log Type: syslog

Log Upload Time: Fri Apr 21 20:47:23 +0300 2017

Log Length: 26679123

Showing 4096 bytes of 26679123 total. Click here for the full log.

2017-04-21 20:47:15,887 INFO [eventHandlingThread] org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler: Copied to done location: hdfs://clu01.softnet.tuc.gr:8020/mr-history/tmp/sbarberakis/job_1486050547626_0009_conf.xml_tmp
2017-04-21 20:47:15,919 INFO [eventHandlingThread] org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler: Moved tmp to done: hdfs://clu01.softnet.tuc.gr:8020/mr-history/tmp/sbarberakis/job_1486050547626_0009.summary_tmp to hdfs://clu01.softnet.tuc.gr:8020/mr-history/tmp/sbarberakis/job_1486050547626_0009.summary
2017-04-21 20:47:15,946 INFO [eventHandlingThread] org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler: Moved tmp to done: hdfs://clu01.softnet.tuc.gr:8020/mr-history/tmp/sbarberakis/job_1486050547626_0009_conf.xml_tmp to hdfs://clu01.softnet.tuc.gr:8020/mr-history/tmp/sbarberakis/job_1486050547626_0009_conf.xml
2017-04-21 20:47:15,965 INFO [eventHandlingThread] org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler: Moved tmp to done: hdfs://clu01.softnet.tuc.gr:8020/mr-history/tmp/sbarberakis/job_1486050547626_0009-1492794892265-sbarberakis-MatchPrefix+SRR001665_1_k21_asm.tmp%2F00%2Dpreprocess+-1492796834354-50-0-FAILED-default-1492794896416.jhist_tmp to hdfs://clu01.softnet.tuc.gr:8020/mr-history/tmp/sbarberakis/job_1486050547626_0009-1492794892265-sbarberakis-MatchPrefix+SRR001665_1_k21_asm.tmp%2F00%2Dpreprocess+-1492796834354-50-0-FAILED-default-1492794896416.jhist
2017-04-21 20:47:15,979 INFO [Thread-465] org.apache.hadoop.mapreduce.jobhistory.JobHistoryEventHandler: Stopped JobHistoryEventHandler. super.stop()
2017-04-21 20:47:15,981 INFO [Thread-465] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Setting job diagnostics to Task failed task_1486050547626_0009_r_000008
Job failed as tasks failed. failedMaps:0 failedReduces:1

2017-04-21 20:47:15,985 INFO [Thread-465] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: History url is http://clu01.softnet.tuc.gr:19888/jobhistory/job/job_1486050547626_0009
2017-04-21 20:47:15,998 INFO [Thread-465] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Waiting for application to be successfully unregistered.
2017-04-21 20:47:16,189 INFO [IPC Server handler 23 on 38026] org.apache.hadoop.mapred.TaskAttemptListenerImpl: MapCompletionEvents request from attempt_1486050547626_0009_r_000034_3. startIndex 0 maxEvents 10000
2017-04-21 20:47:16,326 INFO [Socket Reader #1 for port 38026] SecurityLogger.org.apache.hadoop.ipc.Server: Auth successful for job_1486050547626_0009 (auth:SIMPLE)
2017-04-21 20:47:16,344 INFO [IPC Server handler 8 on 38026] org.apache.hadoop.mapred.TaskAttemptListenerImpl: JVM with ID : jvm_1486050547626_0009_r_9895604650191 asked for a task
2017-04-21 20:47:16,344 INFO [IPC Server handler 8 on 38026] org.apache.hadoop.mapred.TaskAttemptListenerImpl: JVM with ID: jvm_1486050547626_0009_r_9895604650191 is invalid and will be killed.
2017-04-21 20:47:16,978 INFO [IPC Server handler 11 on 38026] org.apache.hadoop.mapred.TaskAttemptListenerImpl: Progress of TaskAttempt attempt_1486050547626_0009_r_000034_3 is : 0.0
2017-04-21 20:47:16,999 INFO [Thread-465] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Final Stats: PendingReds:0 ScheduledMaps:0 ScheduledReds:6 AssignedMaps:0 AssignedReds:37 CompletedMaps:50 CompletedReds:1 ContAlloc:214 ContRel:42 HostLocal:45 RackLocal:5
2017-04-21 20:47:17,000 INFO [Thread-465] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Deleting staging directory hdfs://clu01.softnet.tuc.gr:8020 /user/sbarberakis/.staging/job_1486050547626_0009
2017-04-21 20:47:17,016 INFO [Thread-465] org.apache.hadoop.ipc.Server: Stopping server on 38026
2017-04-21 20:47:17,016 INFO [IPC Server listener on 38026] org.apache.hadoop.ipc.Server: Stopping IPC Server listener on 38026
2017-04-21 20:47:17,016 INFO [IPC Server Responder] org.apache.hadoop.ipc.Server: Stopping IPC Server Responder
2017-04-21 20:47:17,016 INFO [TaskHeartbeatHandler PingChecker] org.apache.hadoop.mapreduce.v2.app.TaskHeartbeatHandler: TaskHeartbeatHandler thread interrupted

brush.details.log.txt

I just tried with jdk1.6.0_91, same result

Hi,
According to the documentation we cloud found right now, the error of "Comparison method violates its general contract" is from the API changes of JAVA version 7 (or since a specific version of JAVA 6).
Please try to add the following arguments while running CloudBrush under Hadoop.

-javaopts -Djava.util.Arrays.useLegacyMergeSort=True

The original Hadoop environment we build the program is on Hadoop 0.20.203 with Java 1.6 (the exactly version is gone, sorry about that). On the other hand, the JAR file attached on the project is a RUNNABLE JAR built on the above specific environment. We strongly suggest users to rebuild the JAR file from source code according to the Hadoop version you choose to avoid some incompatible changes from the API changes between Hadoop 1 and 2.
Sincerely,
Antony.

Hi Antony,
Thanks for your reply.
Running:
hadoop jar CloudBrush.jar -javaopts -Djava.util.Arrays.useLegacyMergeSort=True -reads Ec10k -asm Ec10k_Brush -k 21 -readlen 36
didn't help, but the best way is to rebuild the project indeed.
However I have failed to do so, since I am not really familiar with native java building environment, and there is not any additional MANIFEST.MF or instructions included. Therefore I opened a separate issue about compilation. Any help would be much appreciated.

authors: chefarov jacky6016 moneycat


text:
Fix ecoregions map selection

the default ecoregion selected should be North Sea and the selection should be visible when the map loads. the map selections needs to be connected to the dropdown selection box as well

It is also sometimes possible for more than 1 region to be selected in the dropdown box

authors: Neilmagi lucalamoni

repo: ices-tools-dev/fisheriesXplorer


text:
File / folder selection in tree view

Hi, would it be possible to allow multiple selection of files and folders? That would be much needed when cherrypicking remote files / folders for mass downloading.
Thank you.

+1

The new version already supports it.

authors: Deathturtle icetee niccolomineo

repo: icetee/remote-ftp


text:
Custom typings or type definition

Hi!
I'm finding that in both my first and second project I've had issues with transfering Date type over the trpc. Is there a way to define the type to be Date rather the string?
(Apologies for the autolabel)

It seems that the issue has been with how I was integrating superjson into my client therefore not getting correct types

repo: icflorescu/trpc-sveltekit


text:
Communicate errors and warnings to user as appropriate

Instead of just spewing everything into the console (which we should still do), we should figure out what to display to the user when various error/warning conditions happen.

34df742

repo: ichung/kataomoi


text:
feat: stellar intent contract

Description:
Commit Message
type: commit message

see the guidelines for commit messages.
Changelog Entry
version: <log entry>

Checklist:

[ ] I have performed a self-review of my own code
[ ] I have documented my code in accordance with the documentation guidelines
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have run the unit tests
[ ] I only have one commit (if not, squash them into one commit).
[ ] I have a descriptive commit message that adheres to the commit message guidelines

Please review the CONTRIBUTING.md file for detailed contributing guidelines.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 89.51%. Comparing base (c7dae72) to head (3ecba4e).
Report is 3 commits behind head on main.

Additional details and impacted files

@@             Coverage Diff              @@
##               main       #9      +/-   ##
============================================
- Coverage     89.62%   89.51%   -0.12%
  Complexity       77       77
============================================
  Files            39       39
  Lines          2275     2307      +32
  Branches         37       37
============================================
+ Hits           2039     2065      +26
- Misses          219      225       +6
  Partials         17       17

Flag
Coverage Δ

solidity
86.11% <ø> (-1.39%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 4 files with indirect coverage changes

authors: bishalbikram codecov-commenter

repo: icon-project/intent-contracts


text:
Implicit int cast to BigInteger during interscore calls isn't supported

In the current goloop version, a method with an int return type from a foreign SCORE is implicitely converted to BigInteger through an interscore call.
Related issue talking about this behavior : https://github.com/icon-project/goloop/issues/65
However, that behavior isn't implemented in javaee-unittest and make the tests fail with a ClassCastException:
this.decimals = ((BigInteger) Context.call(token_addr, "decimals")).intValue();

Such line fails to run because the "decimals" method from IRC2 returns an int natively. The unittest package uses the int return type instead of the BigInteger one.
How hard would it be to fix javaee-unittest in order to copy the goloop engine behavior ?

You might have noticed, I have modified the IRC2 javaee-tokens RI for decimals to have a return type of BigInteger.
https://github.com/sink772/javaee-tokens/commit/a4cad6c4c98a5307fd5a0b7e12e5e032cf64146e
This is just a workaround solution, but I believe you don't need to use int type here if you want to get the value via inter-call.
I think it's better to use BigInterger in all cases for external readonly methods.

repo: icon-project/javaee-unittest